Import Cobalt 22.master.0.302142
diff --git a/src/.pre-commit-config.yaml b/src/.pre-commit-config.yaml
index 6240f63..0150efe 100644
--- a/src/.pre-commit-config.yaml
+++ b/src/.pre-commit-config.yaml
@@ -123,7 +123,7 @@
         entry: python precommit_hooks/run_python2_unittests.py
         language: python
         language_version: python2
-        additional_dependencies: ['mock']
+        additional_dependencies: ['mock', 'jsonschema']
         types: [python]
     -   id: osslint
         name: osslint
diff --git a/src/base/logging.cc b/src/base/logging.cc
index 5c0e7ee..c89ed7f 100644
--- a/src/base/logging.cc
+++ b/src/base/logging.cc
@@ -138,7 +138,11 @@
   return "UNKNOWN";
 }
 
-int g_min_log_level = 0;
+#if defined(OFFICIAL_BUILD)
+int g_min_log_level = LOG_FATAL;
+#else
+int g_min_log_level = LOG_INFO;
+#endif
 
 LoggingDestination g_logging_destination = LOG_DEFAULT;
 
@@ -551,7 +555,7 @@
   g_min_log_level = std::min(LOG_FATAL, level);
 }
 
-#if defined(OFFICIAL_BUILD)
+#if defined(OFFICIAL_BUILD) && !SB_IS(EVERGREEN)
 int GetMinLogLevel() {
   return LOG_NUM_SEVERITIES;
 }
@@ -575,7 +579,7 @@
 
 void SetLogPrefix(const char* prefix) {}
 
-#else  // defined(OFFICIAL_BUILD)
+#else  // defined(OFFICIAL_BUILD) && !SB_IS(EVERGREEN)
 
 int GetMinLogLevel() {
   return g_min_log_level;
@@ -619,7 +623,7 @@
          base::ContainsOnlyChars(prefix, "abcdefghijklmnopqrstuvwxyz"));
   g_log_prefix = prefix;
 }
-#endif  // defined(OFFICIAL_BUILD)
+#endif  // defined(OFFICIAL_BUILD) && !SB_IS(EVERGREEN)
 
 void SetShowErrorDialogs(bool enable_dialogs) {
   show_error_dialogs = enable_dialogs;
diff --git a/src/base/logging.h b/src/base/logging.h
index 5363975..e2e94b5 100644
--- a/src/base/logging.h
+++ b/src/base/logging.h
@@ -412,12 +412,12 @@
 // LOG_IS_ON(DFATAL) always holds in debug mode. In particular, CHECK()s will
 // always fire if they fail.
 
-#if defined(OFFICIAL_BUILD)
+#if defined(OFFICIAL_BUILD) && !SB_IS(EVERGREEN)
 #define LOG_IS_ON(severity) false
-#else  // defined(OFFICIAL_BUILD)
+#else  // defined(OFFICIAL_BUILD) && !SB_IS(EVERGREEN)
 #define LOG_IS_ON(severity) \
   (::logging::ShouldCreateLogMessage(::logging::LOG_##severity))
-#endif  // defined(OFFICIAL_BUILD)
+#endif  // defined(OFFICIAL_BUILD) && !SB_IS(EVERGREEN)
 
 // We can't do any caching tricks with VLOG_IS_ON() like the
 // google-glog version since it requires GCC extensions.  This means
@@ -445,9 +445,9 @@
 #define LOG_IF(severity, condition) \
   LAZY_STREAM(LOG_STREAM(severity), LOG_IS_ON(severity) && (condition))
 
-#if defined(OFFICIAL_BUILD)
+#if defined(OFFICIAL_BUILD) && !SB_IS(EVERGREEN)
 #define LOG_ONCE(severity) EAT_STREAM_PARAMETERS
-#else  // defined(OFFICIAL_BUILD)
+#else  // defined(OFFICIAL_BUILD) && !SB_IS(EVERGREEN)
 #define LOG_ONCE_MSG "[once] "
 
 constexpr uint32_t kFnvOffsetBasis32 = 0x811c9dc5U;
@@ -481,7 +481,7 @@
           ((::logging::LogOnceHelper<::logging::hash_32_fnv1a_const(__FILE__), \
                                     __LINE__>::logged_ = true) == true)))      \
       << LOG_ONCE_MSG
-#endif  // defined(OFFICIAL_BUILD)
+#endif  // defined(OFFICIAL_BUILD) && !SB_IS(EVERGREEN)
 
 // The VLOG macros log with negative verbosities.
 #define VLOG_STREAM(verbose_level) \
diff --git a/src/base/synchronization/condition_variable_starboard.cc b/src/base/synchronization/condition_variable_starboard.cc
index 5443cb6..67747f0 100644
--- a/src/base/synchronization/condition_variable_starboard.cc
+++ b/src/base/synchronization/condition_variable_starboard.cc
@@ -25,8 +25,9 @@
 
 ConditionVariable::ConditionVariable(Lock* user_lock)
     : user_mutex_(user_lock->lock_.native_handle())
-#if !defined(NDEBUG)
-    , user_lock_(user_lock)
+#if !defined(NDEBUG) || defined(DCHECK_ALWAYS_ON)
+      ,
+      user_lock_(user_lock)
 #endif
 {
   bool result = SbConditionVariableCreate(&condition_, user_mutex_);
@@ -41,13 +42,13 @@
 void ConditionVariable::Wait() {
   internal::ScopedBlockingCallWithBaseSyncPrimitives scoped_blocking_call(
       BlockingType::MAY_BLOCK);
-#if !defined(NDEBUG)
+#if !defined(NDEBUG) || defined(DCHECK_ALWAYS_ON)
   user_lock_->CheckHeldAndUnmark();
 #endif
   SbConditionVariableResult result =
       SbConditionVariableWait(&condition_, user_mutex_);
   DCHECK(SbConditionVariableIsSignaled(result));
-#if !defined(NDEBUG)
+#if !defined(NDEBUG) || defined(DCHECK_ALWAYS_ON)
   user_lock_->CheckUnheldAndMark();
 #endif
 }
@@ -57,13 +58,13 @@
       BlockingType::MAY_BLOCK);
   SbTime duration = max_time.ToSbTime();
 
-#if !defined(NDEBUG)
+#if !defined(NDEBUG) || defined(DCHECK_ALWAYS_ON)
   user_lock_->CheckHeldAndUnmark();
 #endif
   SbConditionVariableResult result =
       SbConditionVariableWaitTimed(&condition_, user_mutex_, duration);
   DCHECK_NE(kSbConditionVariableFailed, result);
-#if !defined(NDEBUG)
+#if !defined(NDEBUG) || defined(DCHECK_ALWAYS_ON)
   user_lock_->CheckUnheldAndMark();
 #endif
 }
diff --git a/src/base/threading/thread_collision_warner.h b/src/base/threading/thread_collision_warner.h
index bb1ade0..fcd1d71 100644
--- a/src/base/threading/thread_collision_warner.h
+++ b/src/base/threading/thread_collision_warner.h
@@ -20,7 +20,7 @@
 //
 //          In this case the macro DFAKE_SCOPED_LOCK has to be
 //          used, it checks that if a thread is inside the push/pop then
-//          noone else is still inside the pop/push
+//          no one else is still inside the pop/push
 //
 // class NonThreadSafeQueue {
 //  public:
@@ -39,7 +39,7 @@
 //
 //          In this case the macro DFAKE_SCOPED_RECURSIVE_LOCK
 //          has to be used, it checks that if a thread is inside the push/pop
-//          then noone else is still inside the pop/push
+//          then no one else is still inside the pop/push
 //
 // class NonThreadSafeQueue {
 //  public:
@@ -98,7 +98,7 @@
 //   DFAKE_MUTEX(shareable_section_);
 // };
 
-#if !defined(NDEBUG)
+#if !defined(NDEBUG) || defined(DCHECK_ALWAYS_ON)
 
 // Defines a class member that acts like a mutex. It is used only as a
 // verification tool.
diff --git a/src/build/config/sysroot.gni b/src/build/config/sysroot.gni
index 18d2d57..9f616b7 100644
--- a/src/build/config/sysroot.gni
+++ b/src/build/config/sysroot.gni
@@ -24,6 +24,10 @@
   use_sysroot = current_cpu == "x86" || current_cpu == "x64" ||
                 current_cpu == "arm" || current_cpu == "arm64" ||
                 current_cpu == "mipsel" || current_cpu == "mips64el"
+
+  if (is_starboard) {
+    use_sysroot = false
+  }
 }
 
 if (sysroot == "") {
diff --git a/src/build/config/ui.gni b/src/build/config/ui.gni
index 1ad352c..cc7a10f 100644
--- a/src/build/config/ui.gni
+++ b/src/build/config/ui.gni
@@ -25,7 +25,8 @@
   # Indicates if Ozone is enabled. Ozone is a low-level library layer for Linux
   # that does not require X11.
   use_ozone =
-      is_chromeos || (is_chromecast && !is_android) || is_fuchsia || is_linux
+      is_chromeos || (is_chromecast && !is_android) || is_fuchsia ||
+      is_linux && !is_starboard
 
   # Indicates if the UI toolkit depends on X11.
   # Enabled by default. Can be disabled if Ozone only build is required and
diff --git a/src/build/toolchain/cc_wrapper.gni b/src/build/toolchain/cc_wrapper.gni
index 4c6d751..6d6cfcf 100644
--- a/src/build/toolchain/cc_wrapper.gni
+++ b/src/build/toolchain/cc_wrapper.gni
@@ -35,6 +35,9 @@
 declare_args() {
   # Set to "ccache", "icecc" or "distcc".  Probably doesn't work on windows.
   cc_wrapper = ""
+  if (is_starboard) {
+    cc_wrapper = "ccache"
+  }
 }
 
 assert(!use_goma || cc_wrapper == "",
diff --git a/src/build/toolchain/gcc_toolchain.gni b/src/build/toolchain/gcc_toolchain.gni
index 9418f5c..09af53d 100644
--- a/src/build/toolchain/gcc_toolchain.gni
+++ b/src/build/toolchain/gcc_toolchain.gni
@@ -126,9 +126,9 @@
     assert(defined(invoker.toolchain_args),
            "Toolchains must specify toolchain_args")
     invoker_toolchain_args = invoker.toolchain_args
-    assert(defined(invoker_toolchain_args.current_cpu),
+    assert(is_starboard || defined(invoker_toolchain_args.current_cpu),
            "toolchain_args must specify a current_cpu")
-    assert(defined(invoker_toolchain_args.current_os),
+    assert(is_starboard || defined(invoker_toolchain_args.current_os),
            "toolchain_args must specify a current_os")
 
     # When invoking this toolchain not as the default one, these args will be
@@ -141,10 +141,12 @@
       # needs to be passed through unchanged to all secondary toolchains to
       # ensure that it's always the same, regardless of the values that may be
       # set on those toolchains.
-      host_toolchain = host_toolchain
+      if (!is_starboard) {
+        host_toolchain = host_toolchain
 
-      if (!defined(invoker_toolchain_args.v8_current_cpu)) {
-        v8_current_cpu = invoker_toolchain_args.current_cpu
+        if (!defined(invoker_toolchain_args.v8_current_cpu)) {
+          v8_current_cpu = invoker_toolchain_args.current_cpu
+        }
       }
     }
 
@@ -652,6 +654,9 @@
   } else {
     toolprefix = ""
   }
+  if (is_starboard) {
+    clang_base_path = invoker.clang_base_path
+  }
 
   gcc_toolchain(target_name) {
     prefix = rebase_path("$clang_base_path/bin", root_build_dir)
diff --git a/src/starboard/linux/x64x11/vulkan/starboard_platform.gyp b/src/build_overrides/angle.gni
similarity index 60%
copy from src/starboard/linux/x64x11/vulkan/starboard_platform.gyp
copy to src/build_overrides/angle.gni
index 82c4436..18ad0e7 100644
--- a/src/starboard/linux/x64x11/vulkan/starboard_platform.gyp
+++ b/src/build_overrides/angle.gni
@@ -1,4 +1,4 @@
-# Copyright 2017 The Cobalt Authors. All Rights Reserved.
+# Copyright 2021 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.
@@ -11,8 +11,15 @@
 # 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.
-{
-  'includes': [
-    '../shared/starboard_platform_target.gypi',
-  ],
-}
+
+angle_has_build = true
+angle_root = "//third_party/angle"
+
+# Overrides for ANGLE's dependencies
+angle_glslang_dir = ""
+angle_googletest_dir = "//testing/gtest"
+angle_libjpeg_turbo_dir = ""
+angle_jsoncpp_dir = ""
+angle_libpng_dir = ""
+angle_spirv_cross_dir = ""
+angle_spirv_tools_dir = ""
diff --git a/src/starboard/linux/x64x11/vulkan/starboard_platform.gyp b/src/build_overrides/swiftshader.gni
similarity index 64%
copy from src/starboard/linux/x64x11/vulkan/starboard_platform.gyp
copy to src/build_overrides/swiftshader.gni
index 82c4436..5453b04 100644
--- a/src/starboard/linux/x64x11/vulkan/starboard_platform.gyp
+++ b/src/build_overrides/swiftshader.gni
@@ -1,4 +1,4 @@
-# Copyright 2017 The Cobalt Authors. All Rights Reserved.
+# Copyright 2021 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.
@@ -11,8 +11,12 @@
 # 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.
-{
-  'includes': [
-    '../shared/starboard_platform_target.gypi',
-  ],
-}
+
+# We are building SwiftShader in ANGLE
+swiftshader_standalone = false
+
+# Path to SwiftShader
+swiftshader_dir = "//third_party/SwiftShader"
+
+# Paths to SwiftShader dependencies
+swiftshader_spirv_tools_dir = "//third_party/spirv-tools/src"
diff --git a/src/buildtools/deps_revisions.gni b/src/buildtools/deps_revisions.gni
new file mode 100644
index 0000000..d66c2a9
--- /dev/null
+++ b/src/buildtools/deps_revisions.gni
@@ -0,0 +1,9 @@
+# Copyright 2018 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+declare_args() {
+  # Used to cause full rebuilds on libc++ rolls. This should be kept in sync
+  # with the libcxx_revision vars in //DEPS.
+  libcxx_revision = "8fa87946779682841e21e2da977eccfb6cb3bded"
+}
diff --git a/src/cobalt/CHANGELOG.md b/src/cobalt/CHANGELOG.md
index 5cd14df..ce818d5 100644
--- a/src/cobalt/CHANGELOG.md
+++ b/src/cobalt/CHANGELOG.md
@@ -175,6 +175,12 @@
    Platforms can implement UrlFetcher observer for performance tracing by
    implementing CobaltExtensionUrlFetcherObserverApi.
 
+ - **Added support for Cobalt Updater Notification.**
+
+   Platforms can implement CobaltExtensionUpdaterNotificationApi to
+   receive notifications from the Cobalt Evergreen Updater.
+
+
 ## Version 20
 
  - **Support for QUIC and SPDY is now enabled.**
diff --git a/src/cobalt/base/wrap_main_starboard.h b/src/cobalt/base/wrap_main_starboard.h
index c02a6eb..fdcf7c9 100644
--- a/src/cobalt/base/wrap_main_starboard.h
+++ b/src/cobalt/base/wrap_main_starboard.h
@@ -97,8 +97,7 @@
       g_at_exit = NULL;
       break;
     }
-#if SB_API_VERSION >= SB_ADD_CONCEALED_STATE_SUPPORT_VERSION || \
-    SB_HAS(CONCEALED_STATE)
+#if SB_API_VERSION >= 13
     case kSbEventTypeBlur:
     case kSbEventTypeFocus:
     case kSbEventTypeConceal:
@@ -110,18 +109,17 @@
     case kSbEventTypeUnpause:
     case kSbEventTypeSuspend:
     case kSbEventTypeResume:
-#endif  // SB_API_VERSION >= SB_ADD_CONCEALED_STATE_SUPPORT_VERSION ||
-        // SB_HAS(CONCEALED_STATE)
+#endif  // SB_API_VERSION >= 13
     case kSbEventTypeInput:
     case kSbEventTypeUser:
     case kSbEventTypeLink:
     case kSbEventTypeVerticalSync:
     case kSbEventTypeScheduled:
-#if SB_API_VERSION >= SB_ACCESSIBILITY_EVENTS_RENAMED_VERSION
+#if SB_API_VERSION >= 13
     case kSbEventTypeAccessibilitySettingsChanged:
 #else
     case kSbEventTypeAccessiblitySettingsChanged:
-#endif  // SB_API_VERSION >= SB_ACCESSIBILITY_EVENTS_RENAMED_VERSION
+#endif  // SB_API_VERSION >= 13
     case kSbEventTypeLowMemory:
     case kSbEventTypeWindowSizeChanged:
 #if SB_API_VERSION >= 12 || SB_HAS(ON_SCREEN_KEYBOARD)
@@ -136,17 +134,17 @@
     case kSbEventTypeAccessibilityCaptionSettingsChanged:
 #endif  // SB_API_VERSION >= 12 || SB_HAS(CAPTIONS)
 #if SB_API_VERSION >= 12
-#if SB_API_VERSION >= SB_ACCESSIBILITY_EVENTS_RENAMED_VERSION
+#if SB_API_VERSION >= 13
     case kSbEventTypeAccessibilityTextToSpeechSettingsChanged:
 #else
     case kSbEventTypeAccessiblityTextToSpeechSettingsChanged:
-#endif  // SB_API_VERSION >= SB_ACCESSIBILITY_EVENTS_RENAMED_VERSION
+#endif  // SB_API_VERSION >= 13
 #endif  // SB_API_VERSION >= 12
-#if SB_API_VERSION >= SB_NETWORK_EVENTS_VERSION
+#if SB_API_VERSION >= 13
     case kSbEventTypeOsNetworkDisconnected:
     case kSbEventTypeOsNetworkConnected:
 #endif
-#if SB_API_VERSION >= SB_EVENT_DATE_TIME_CONFIGURATION_CHANGED_VERSION
+#if SB_API_VERSION >= 13
     case kSbEventDateTimeConfigurationChanged:
 #endif
       event_function(event);
diff --git a/src/cobalt/bindings/testing/dom_string_bindings_test.cc b/src/cobalt/bindings/testing/dom_string_bindings_test.cc
index 298fbef..c66bd43 100644
--- a/src/cobalt/bindings/testing/dom_string_bindings_test.cc
+++ b/src/cobalt/bindings/testing/dom_string_bindings_test.cc
@@ -185,6 +185,72 @@
   EXPECT_STREQ("かわいい\0です", result.c_str());
 }
 
+// Invalid UTF-16 surrogates with UTF-8 encoding
+// \uFFDD = Replacement char (utf-8) = \xEF\xBF\xBD
+
+// Sanity check
+TEST_F(DOMStringBindingsTest, ReplaceUT8SanityCheck) {
+  EXPECT_CALL(test_mock(), set_property(std::string("abc123")));
+  std::string result;
+  std::string input("test.property = \"abc123\";");
+  EXPECT_TRUE(EvaluateScript(input, &result));
+  EXPECT_STREQ("abc123", result.c_str());
+}
+
+// Surrogate half (low)
+TEST_F(DOMStringBindingsTest, ReplaceUT8SurrogateLow) {
+  EXPECT_CALL(test_mock(), set_property(std::string("\xEF\xBF\xBD")));
+  std::string result;
+  std::string input("test.property = \"\\uD800\";");
+  EXPECT_TRUE(EvaluateScript(input, &result));
+  EXPECT_STREQ("\xEF\xBF\xBD", result.c_str());
+}
+
+// Surrogate half (high)
+TEST_F(DOMStringBindingsTest, ReplaceUT8SurrogateHigh) {
+  EXPECT_CALL(test_mock(), set_property(std::string("\xEF\xBF\xBD")));
+  std::string result;
+  std::string input("test.property = \"\\uDC00\";");
+  EXPECT_TRUE(EvaluateScript(input, &result));
+  EXPECT_STREQ("\xEF\xBF\xBD", result.c_str());
+}
+
+// Surrogate half (low), in a string
+TEST_F(DOMStringBindingsTest, ReplaceUT8SurrogateLowInString) {
+  EXPECT_CALL(test_mock(), set_property(std::string("abc\xEF\xBF\xBD"
+                                                    "123")));
+  std::string result;
+  std::string input("test.property = \"abc\\uD800123\";");
+  EXPECT_TRUE(EvaluateScript(input, &result));
+  EXPECT_STREQ(
+      "abc\xEF\xBF\xBD"
+      "123",
+      result.c_str());
+}
+
+// Surrogate half (high), in a string
+TEST_F(DOMStringBindingsTest, ReplaceUT8SurrogateHighInString) {
+  EXPECT_CALL(test_mock(), set_property(std::string("abc\xEF\xBF\xBD"
+                                                    "123")));
+  std::string result;
+  std::string input("test.property = \"abc\\uDC00123\";");
+  EXPECT_TRUE(EvaluateScript(input, &result));
+  EXPECT_STREQ(
+      "abc\xEF\xBF\xBD"
+      "123",
+      result.c_str());
+}
+
+// Surrogates in wrong order
+TEST_F(DOMStringBindingsTest, ReplaceUT8WrongOrder) {
+  EXPECT_CALL(test_mock(),
+              set_property(std::string("\xEF\xBF\xBD\xEF\xBF\xBD")));
+  std::string result;
+  std::string input("test.property = \"\\uDC00\\uD800\";");
+  EXPECT_TRUE(EvaluateScript(input, &result));
+  EXPECT_STREQ("\xEF\xBF\xBD\xEF\xBF\xBD", result.c_str());
+}
+
 }  // namespace testing
 }  // namespace bindings
 }  // namespace cobalt
diff --git a/src/cobalt/browser/application.cc b/src/cobalt/browser/application.cc
index 03f20f9..91b5874 100644
--- a/src/cobalt/browser/application.cc
+++ b/src/cobalt/browser/application.cc
@@ -445,13 +445,15 @@
 }
 
 std::string GetMinLogLevelString() {
-#if defined(ENABLE_DEBUG_COMMAND_LINE_SWITCHES)
   base::CommandLine* command_line = base::CommandLine::ForCurrentProcess();
   if (command_line->HasSwitch(switches::kMinLogLevel)) {
     return command_line->GetSwitchValueASCII(switches::kMinLogLevel);
   }
-#endif  // ENABLE_DEBUG_COMMAND_LINE_SWITCHES
+#if defined(OFFICIAL_BUILD)
+  return "fatal";
+#else
   return "info";
+#endif
 }
 
 int StringToLogLevel(const std::string& log_level) {
@@ -465,7 +467,11 @@
     return logging::LOG_FATAL;
   } else {
     NOTREACHED() << "Unrecognized logging level: " << log_level;
+#if defined(OFFICIAL_BUILD)
+    return logging::LOG_FATAL;
+#else
     return logging::LOG_INFO;
+#endif
   }
 }
 
@@ -586,9 +592,6 @@
 ssize_t Application::available_memory_ = 0;
 int64 Application::lifetime_in_ms_ = 0;
 
-Application::AppStatus Application::app_status_ =
-    Application::kUninitializedAppStatus;
-
 Application::Application(const base::Closure& quit_closure, bool should_preload)
     : message_loop_(base::MessageLoop::current()),
       quit_closure_(quit_closure)
@@ -834,7 +837,8 @@
   AddCrashHandlerAnnotations();
 
 #if SB_IS(EVERGREEN)
-  if (SbSystemGetExtension(kCobaltExtensionInstallationManagerName)) {
+  if (SbSystemGetExtension(kCobaltExtensionInstallationManagerName) &&
+      !command_line->HasSwitch(switches::kDisableUpdaterModule)) {
     updater_module_.reset(new updater::UpdaterModule(network_module_.get()));
   }
 #endif
@@ -850,8 +854,6 @@
 
   UpdateUserAgent();
 
-  app_status_ = (should_preload ? kConcealedAppStatus : kRunningAppStatus);
-
   // Register event callbacks.
   window_size_change_event_callback_ = base::Bind(
       &Application::OnWindowSizeChangedEvent, base::Unretained(this));
@@ -901,7 +903,7 @@
       base::Bind(&Application::OnWindowOnOfflineEvent, base::Unretained(this));
   event_dispatcher_.AddEventCallback(base::WindowOnOfflineEvent::TypeId(),
                                      on_window_on_offline_event_callback_);
-#if SB_API_VERSION >= SB_EVENT_DATE_TIME_CONFIGURATION_CHANGED_VERSION
+#if SB_API_VERSION >= 13
   on_date_time_configuration_changed_event_callback_ =
       base::Bind(&Application::OnDateTimeConfigurationChangedEvent,
                  base::Unretained(this));
@@ -994,13 +996,11 @@
       base::AccessibilityCaptionSettingsChangedEvent::TypeId(),
       on_caption_settings_changed_event_callback_);
 #endif  // SB_API_VERSION >= 12 || SB_HAS(CAPTIONS)
-#if SB_API_VERSION >= SB_EVENT_DATE_TIME_CONFIGURATION_CHANGED_VERSION
+#if SB_API_VERSION >= 13
   event_dispatcher_.RemoveEventCallback(
       base::DateTimeConfigurationChangedEvent::TypeId(),
       on_date_time_configuration_changed_event_callback_);
 #endif
-
-  app_status_ = kShutDownAppStatus;
 }
 
 void Application::Start() {
@@ -1010,11 +1010,6 @@
     return;
   }
 
-  if (app_status_ != kConcealedAppStatus) {
-    NOTREACHED() << __FUNCTION__ << ": Redundant call.";
-    return;
-  }
-
   OnApplicationEvent(kSbEventTypeStart);
 }
 
@@ -1026,7 +1021,6 @@
   }
 
   quit_closure_.Run();
-  app_status_ = kQuitAppStatus;
 }
 
 void Application::HandleStarboardEvent(const SbEvent* starboard_event) {
@@ -1041,8 +1035,7 @@
 
   // Create a Cobalt event from the Starboard event, if recognized.
   switch (starboard_event->type) {
-#if SB_API_VERSION >= SB_ADD_CONCEALED_STATE_SUPPORT_VERSION || \
-    SB_HAS(CONCEALED_STATE)
+#if SB_API_VERSION >= 13
     case kSbEventTypeBlur:
     case kSbEventTypeFocus:
     case kSbEventTypeConceal:
@@ -1060,8 +1053,7 @@
     case kSbEventTypeLowMemory:
       OnApplicationEvent(starboard_event->type);
       break;
-#endif  // SB_API_VERSION >= SB_ADD_CONCEALED_STATE_SUPPORT_VERSION ||
-        // SB_HAS(CONCEALED_STATE)
+#endif  // SB_API_VERSION >= 13
     case kSbEventTypeWindowSizeChanged:
       DispatchEventInternal(new base::WindowSizeChangedEvent(
           static_cast<SbEventWindowSizeChangedData*>(starboard_event->data)
@@ -1098,11 +1090,11 @@
       DispatchDeepLink(static_cast<const char*>(starboard_event->data));
       break;
     }
-#if SB_API_VERSION >= SB_ACCESSIBILITY_EVENTS_RENAMED_VERSION
+#if SB_API_VERSION >= 13
     case kSbEventTypeAccessibilitySettingsChanged:
 #else
     case kSbEventTypeAccessiblitySettingsChanged:
-#endif  // B_API_VERSION >= SB_ACCESSIBILITY_EVENTS_RENAMED_VERSION
+#endif  // B_API_VERSION >= 13
       DispatchEventInternal(new base::AccessibilitySettingsChangedEvent());
 #if SB_API_VERSION < 12
       // Also dispatch the newer text-to-speech settings changed event since
@@ -1119,16 +1111,16 @@
       break;
 #endif  // SB_API_VERSION >= 12 || SB_HAS(CAPTIONS)
 #if SB_API_VERSION >= 12
-#if SB_API_VERSION >= SB_ACCESSIBILITY_EVENTS_RENAMED_VERSION
+#if SB_API_VERSION >= 13
     case kSbEventTypeAccessibilityTextToSpeechSettingsChanged:
 #else
     case kSbEventTypeAccessiblityTextToSpeechSettingsChanged:
-#endif  // SB_API_VERSION >= SB_ACCESSIBILITY_EVENTS_RENAMED_VERSION
+#endif  // SB_API_VERSION >= 13
       DispatchEventInternal(
           new base::AccessibilityTextToSpeechSettingsChangedEvent());
       break;
 #endif
-#if SB_API_VERSION >= SB_NETWORK_EVENTS_VERSION
+#if SB_API_VERSION >= 13
     case kSbEventTypeOsNetworkDisconnected:
       DispatchEventInternal(new base::WindowOnOfflineEvent());
       break;
@@ -1136,7 +1128,7 @@
       DispatchEventInternal(new base::WindowOnOnlineEvent());
       break;
 #endif
-#if SB_API_VERSION >= SB_EVENT_DATE_TIME_CONFIGURATION_CHANGED_VERSION
+#if SB_API_VERSION >= 13
     case kSbEventDateTimeConfigurationChanged:
       DispatchEventInternal(new base::DateTimeConfigurationChangedEvent());
       break;
@@ -1161,47 +1153,39 @@
   switch (event_type) {
     case kSbEventTypeStop:
       DLOG(INFO) << "Got quit event.";
-      app_status_ = kWillQuitAppStatus;
       Quit();
       DLOG(INFO) << "Finished quitting.";
       break;
     case kSbEventTypeStart:
       DLOG(INFO) << "Got start event.";
-      app_status_ = kRunningAppStatus;
       browser_module_->Reveal();
       browser_module_->Focus();
       DLOG(INFO) << "Finished starting.";
       break;
-#if SB_API_VERSION >= SB_ADD_CONCEALED_STATE_SUPPORT_VERSION || \
-    SB_HAS(CONCEALED_STATE)
+#if SB_API_VERSION >= 13
     case kSbEventTypeBlur:
       DLOG(INFO) << "Got blur event.";
-      app_status_ = kBlurredAppStatus;
       browser_module_->Blur();
       DLOG(INFO) << "Finished blurring.";
       break;
     case kSbEventTypeFocus:
       DLOG(INFO) << "Got focus event.";
-      app_status_ = kRunningAppStatus;
       browser_module_->Focus();
       DLOG(INFO) << "Finished focusing.";
       break;
     case kSbEventTypeConceal:
       DLOG(INFO) << "Got conceal event.";
-      app_status_ = kConcealedAppStatus;
       browser_module_->Conceal();
       DLOG(INFO) << "Finished concealing.";
       break;
     case kSbEventTypeReveal:
       DCHECK(SbSystemSupportsResume());
       DLOG(INFO) << "Got reveal event.";
-      app_status_ = kBlurredAppStatus;
       browser_module_->Reveal();
       DLOG(INFO) << "Finished revealing.";
       break;
     case kSbEventTypeFreeze:
       DLOG(INFO) << "Got freeze event.";
-      app_status_ = kFrozenAppStatus;
       browser_module_->Freeze();
 #if SB_IS(EVERGREEN)
       if (updater_module_) updater_module_->Suspend();
@@ -1210,7 +1194,6 @@
       break;
     case kSbEventTypeUnfreeze:
       DLOG(INFO) << "Got unfreeze event.";
-      app_status_ = kConcealedAppStatus;
       browser_module_->Unfreeze();
 #if SB_IS(EVERGREEN)
       if (updater_module_) updater_module_->Resume();
@@ -1220,21 +1203,17 @@
 #else
     case kSbEventTypePause:
       DLOG(INFO) << "Got pause event.";
-      app_status_ = kBlurredAppStatus;
       browser_module_->Blur();
       DLOG(INFO) << "Finished pausing.";
       break;
     case kSbEventTypeUnpause:
       DLOG(INFO) << "Got unpause event.";
-      app_status_ = kRunningAppStatus;
       browser_module_->Focus();
       DLOG(INFO) << "Finished unpausing.";
       break;
     case kSbEventTypeSuspend:
       DLOG(INFO) << "Got suspend event.";
-      app_status_ = kConcealedAppStatus;
       browser_module_->Conceal();
-      app_status_ = kFrozenAppStatus;
       browser_module_->Freeze();
 #if SB_IS(EVERGREEN)
       if (updater_module_) updater_module_->Suspend();
@@ -1244,17 +1223,14 @@
     case kSbEventTypeResume:
       DCHECK(SbSystemSupportsResume());
       DLOG(INFO) << "Got resume event.";
-      app_status_ = kConcealedAppStatus;
       browser_module_->Unfreeze();
-      app_status_ = kBlurredAppStatus;
       browser_module_->Reveal();
 #if SB_IS(EVERGREEN)
       if (updater_module_) updater_module_->Resume();
 #endif
       DLOG(INFO) << "Finished resuming.";
       break;
-#endif  // SB_API_VERSION >= SB_ADD_CONCEALED_STATE_SUPPORT_VERSION ||
-        // SB_HAS(CONCEALED_STATE)
+#endif  // SB_API_VERSION >= 13
     case kSbEventTypeLowMemory:
       DLOG(INFO) << "Got low memory event.";
       browser_module_->ReduceMemory();
@@ -1267,11 +1243,11 @@
     case kSbEventTypeAccessibilityCaptionSettingsChanged:
 #endif  // SB_API_VERSION >= 12 || SB_HAS(CAPTIONS)
 #if SB_API_VERSION >= 12
-#if SB_API_VERSION >= SB_ACCESSIBILITY_EVENTS_RENAMED_VERSION
+#if SB_API_VERSION >= 13
     case kSbEventTypeAccessibilityTextToSpeechSettingsChanged:
 #else
     case kSbEventTypeAccessiblityTextToSpeechSettingsChanged:
-#endif  // SB_API_VERSION >= SB_ACCESSIBILITY_EVENTS_RENAMED_VERSION
+#endif  // SB_API_VERSION >= 13
 #endif  // SB_API_VERSION >= 12
 #if SB_API_VERSION >= 12 || SB_HAS(ON_SCREEN_KEYBOARD)
     case kSbEventTypeOnScreenKeyboardBlurred:
@@ -1281,21 +1257,21 @@
     case kSbEventTypeOnScreenKeyboardSuggestionsUpdated:
 #endif  // SB_API_VERSION >= 12 ||
         // SB_HAS(ON_SCREEN_KEYBOARD)
-#if SB_API_VERSION >= SB_ACCESSIBILITY_EVENTS_RENAMED_VERSION
+#if SB_API_VERSION >= 13
     case kSbEventTypeAccessibilitySettingsChanged:
 #else
     case kSbEventTypeAccessiblitySettingsChanged:
-#endif  // SB_API_VERSION >= SB_ACCESSIBILITY_EVENTS_RENAMED_VERSION
+#endif  // SB_API_VERSION >= 13
     case kSbEventTypeInput:
     case kSbEventTypeLink:
     case kSbEventTypeScheduled:
     case kSbEventTypeUser:
     case kSbEventTypeVerticalSync:
-#if SB_API_VERSION >= SB_NETWORK_EVENTS_VERSION
+#if SB_API_VERSION >= 13
     case kSbEventTypeOsNetworkDisconnected:
     case kSbEventTypeOsNetworkConnected:
 #endif
-#if SB_API_VERSION >= SB_EVENT_DATE_TIME_CONFIGURATION_CHANGED_VERSION
+#if SB_API_VERSION >= 13
     case kSbEventDateTimeConfigurationChanged:
 #endif
       NOTREACHED() << "Unexpected event type: " << event_type;
@@ -1384,7 +1360,7 @@
       base::polymorphic_downcast<const base::WindowOnOfflineEvent*>(event));
 }
 
-#if SB_API_VERSION >= SB_EVENT_DATE_TIME_CONFIGURATION_CHANGED_VERSION
+#if SB_API_VERSION >= 13
 void Application::OnDateTimeConfigurationChangedEvent(
     const base::Event* event) {
   TRACE_EVENT0("cobalt::browser",
diff --git a/src/cobalt/browser/application.h b/src/cobalt/browser/application.h
index 9570238..94e9edd 100644
--- a/src/cobalt/browser/application.h
+++ b/src/cobalt/browser/application.h
@@ -88,7 +88,7 @@
   void OnWindowOnOnlineEvent(const base::Event* event);
   void OnWindowOnOfflineEvent(const base::Event* event);
 
-#if SB_API_VERSION >= SB_EVENT_DATE_TIME_CONFIGURATION_CHANGED_VERSION
+#if SB_API_VERSION >= 13
   void OnDateTimeConfigurationChangedEvent(const base::Event* event);
 #endif
 
@@ -132,7 +132,7 @@
   base::EventCallback on_window_on_online_event_callback_;
   base::EventCallback on_window_on_offline_event_callback_;
 #endif
-#if SB_API_VERSION >= SB_EVENT_DATE_TIME_CONFIGURATION_CHANGED_VERSION
+#if SB_API_VERSION >= 13
   base::EventCallback on_date_time_configuration_changed_event_callback_;
 #endif
 
@@ -201,8 +201,6 @@
   static ssize_t available_memory_;
   static int64 lifetime_in_ms_;
 
-  static AppStatus app_status_;
-
   CValStats c_val_stats_;
 
   base::RepeatingTimer stats_update_timer_;
diff --git a/src/cobalt/browser/browser_module.cc b/src/cobalt/browser/browser_module.cc
index 50ae7bc..5c5dc7a 100644
--- a/src/cobalt/browser/browser_module.cc
+++ b/src/cobalt/browser/browser_module.cc
@@ -723,7 +723,8 @@
   TRACE_EVENT0("cobalt::browser", "BrowserModule::RequestScreenshotToFile()");
   DCHECK(screen_shot_writer_);
 
-  scoped_refptr<render_tree::Node> render_tree = GetLastSubmissionAnimated();
+  scoped_refptr<render_tree::Node> render_tree =
+      web_module_->DoSynchronousLayoutAndGetRenderTree();
   if (!render_tree) {
     LOG(WARNING) << "Unable to get animated render tree";
     return;
@@ -740,7 +741,8 @@
   TRACE_EVENT0("cobalt::browser", "BrowserModule::RequestScreenshotToMemory()");
   DCHECK(screen_shot_writer_);
 
-  scoped_refptr<render_tree::Node> render_tree = GetLastSubmissionAnimated();
+  scoped_refptr<render_tree::Node> render_tree =
+      web_module_->DoSynchronousLayoutAndGetRenderTree();
   if (!render_tree) {
     LOG(WARNING) << "Unable to get animated render tree";
     return;
@@ -750,25 +752,6 @@
                                                  clip_rect, screenshot_ready);
 }
 
-scoped_refptr<render_tree::Node> BrowserModule::GetLastSubmissionAnimated() {
-  DCHECK(main_web_module_layer_);
-  base::Optional<renderer::Submission> last_submission =
-      main_web_module_layer_->GetCurrentSubmission();
-  if (!last_submission) {
-    LOG(WARNING) << "Unable to find last submission.";
-    return nullptr;
-  }
-  DCHECK(last_submission->render_tree);
-
-  render_tree::animations::AnimateNode* animate_node =
-      base::polymorphic_downcast<render_tree::animations::AnimateNode*>(
-          last_submission->render_tree.get());
-  render_tree::animations::AnimateNode::AnimateResults results =
-      animate_node->Apply(last_submission->time_offset);
-
-  return results.animated->source();
-}
-
 void BrowserModule::ProcessRenderTreeSubmissionQueue() {
   TRACE_EVENT0("cobalt::browser",
                "BrowserModule::ProcessRenderTreeSubmissionQueue()");
@@ -942,13 +925,11 @@
     return;
   }
 #endif
-#if SB_API_VERSION >= SB_ADD_CONCEALED_STATE_SUPPORT_VERSION || \
-    SB_HAS(CONCEALED_STATE)
+#if SB_API_VERSION >= 13
   SbSystemRequestConceal();
 #else
   SbSystemRequestSuspend();
-#endif  // SB_API_VERSION >= SB_ADD_CONCEALED_STATE_SUPPORT_VERSION ||
-        // SB_HAS(CONCEALED_STATE)
+#endif  // SB_API_VERSION >= 13
 }
 
 void BrowserModule::OnWindowSizeChanged(const ViewportSize& viewport_size) {
@@ -1028,7 +1009,7 @@
 }
 #endif  // SB_API_VERSION >= 12 || SB_HAS(CAPTIONS)
 
-#if SB_API_VERSION >= SB_EVENT_DATE_TIME_CONFIGURATION_CHANGED_VERSION
+#if SB_API_VERSION >= 13
 void BrowserModule::OnDateTimeConfigurationChanged(
     const base::DateTimeConfigurationChangedEvent* event) {
   icu::TimeZone::adoptDefault(icu::TimeZone::detectHostTimeZone());
@@ -1361,14 +1342,12 @@
     }
   } else if (event.ctrl_key() && event.key_code() == dom::keycode::kS) {
     if (type == base::Tokens::keydown()) {
-#if SB_API_VERSION >= SB_ADD_CONCEALED_STATE_SUPPORT_VERSION || \
-    SB_HAS(CONCEALED_STATE)
+#if SB_API_VERSION >= 13
       SbSystemRequestConceal();
 #else
       // Ctrl+S suspends Cobalt.
       SbSystemRequestSuspend();
-#endif  // SB_API_VERSION >= SB_ADD_CONCEALED_STATE_SUPPORT_VERSION ||
-        // SB_HAS(CONCEALED_STATE)
+#endif  // SB_API_VERSION >= 13
     }
     return false;
   }
@@ -1646,14 +1625,12 @@
   InstantiateRendererModule();
 
   if (media_module_) {
-#if SB_API_VERSION >= SB_ADD_CONCEALED_STATE_SUPPORT_VERSION || \
-    SB_HAS(CONCEALED_STATE)
+#if SB_API_VERSION >= 13
     media_module_->UpdateSystemWindowAndResourceProvider(system_window_.get(),
                                                          GetResourceProvider());
 #else
     media_module_->Resume(GetResourceProvider());
-#endif  // SB_API_VERSION >= SB_ADD_CONCEALED_STATE_SUPPORT_VERSION ||
-        // SB_HAS(CONCEALED_STATE)
+#endif  // SB_API_VERSION >= 13
   } else {
     options_.media_module_options.allow_resume_after_suspend =
         SbSystemSupportsResume();
@@ -1801,14 +1778,12 @@
   if (media_module_) {
     DCHECK(system_window_);
     window_size_ = system_window_->GetWindowSize();
-#if SB_API_VERSION >= SB_ADD_CONCEALED_STATE_SUPPORT_VERSION || \
-    SB_HAS(CONCEALED_STATE)
+#if SB_API_VERSION >= 13
     input_device_manager_.reset();
     system_window_.reset();
     media_module_->UpdateSystemWindowAndResourceProvider(NULL,
                                                          GetResourceProvider());
-#endif  // SB_API_VERSION >= SB_ADD_CONCEALED_STATE_SUPPORT_VERSION ||
-        // SB_HAS(CONCEALED_STATE)
+#endif  // SB_API_VERSION >= 13
   }
 }
 
@@ -1848,11 +1823,9 @@
   TRACE_EVENT0("cobalt::browser", "BrowserModule::UnfreezeInternal()");
 // Set the Stub resource provider to media module and to web module
 // at Concealed state.
-#if SB_API_VERSION >= SB_ADD_CONCEALED_STATE_SUPPORT_VERSION || \
-    SB_HAS(CONCEALED_STATE)
+#if SB_API_VERSION >= 13
   media_module_->Resume(GetResourceProvider());
-#endif  // SB_API_VERSION >= SB_ADD_CONCEALED_STATE_SUPPORT_VERSION ||
-        // SB_HAS(CONCEALED_STATE)
+#endif  // SB_API_VERSION >= 13
 
   FOR_EACH_OBSERVER(LifecycleObserver, lifecycle_observers_,
                     Unfreeze(GetResourceProvider()));
@@ -1880,11 +1853,9 @@
 #endif  // defined(ENABLE_DEBUGGER)
       web_module_ready_to_freeze &&
       application_state_ == base::kApplicationStateConcealed) {
-#if SB_API_VERSION >= SB_ADD_CONCEALED_STATE_SUPPORT_VERSION || \
-    SB_HAS(CONCEALED_STATE)
+#if SB_API_VERSION >= 13
     SbSystemRequestFreeze();
-#endif  // SB_API_VERSION >= SB_ADD_CONCEALED_STATE_SUPPORT_VERSION ||
-        // SB_HAS(CONCEALED_STATE)
+#endif  // SB_API_VERSION >= 13
   }
 }
 
diff --git a/src/cobalt/browser/browser_module.h b/src/cobalt/browser/browser_module.h
index 37993c3..026e593 100644
--- a/src/cobalt/browser/browser_module.h
+++ b/src/cobalt/browser/browser_module.h
@@ -216,7 +216,7 @@
   void OnWindowOnOnlineEvent(const base::Event* event);
   void OnWindowOnOfflineEvent(const base::Event* event);
 
-#if SB_API_VERSION >= SB_EVENT_DATE_TIME_CONFIGURATION_CHANGED_VERSION
+#if SB_API_VERSION >= 13
   void OnDateTimeConfigurationChanged(
       const base::DateTimeConfigurationChangedEvent* event);
 #endif
@@ -468,10 +468,6 @@
   // Get the SbWindow via |system_window_| or potentially NULL.
   SbWindow GetSbWindow();
 
-  // This returns the render tree of the most recent submission, with animations
-  // applied according to the current time.
-  scoped_refptr<render_tree::Node> GetLastSubmissionAnimated();
-
   // Sets the fallback splash screen url to a topic-specific URL, if applicable.
   // Returns the topic used, or an empty Optional if a topic isn't found.
   base::Optional<std::string> SetSplashScreenTopicFallback(const GURL& url);
diff --git a/src/cobalt/browser/device_authentication.cc b/src/cobalt/browser/device_authentication.cc
index d2a977a..050857e 100644
--- a/src/cobalt/browser/device_authentication.cc
+++ b/src/cobalt/browser/device_authentication.cc
@@ -32,6 +32,7 @@
 
 constexpr size_t kSHA256DigestSize = 32;
 
+#if SB_API_VERSION < 13
 bool ComputeSignatureWithSystemPropertySecret(const std::string& message,
                                               uint8_t* signature) {
   const size_t kBase64EncodedCertificationSecretLength = 1023;
@@ -48,6 +49,7 @@
                                             signature, kSHA256DigestSize);
   return true;
 }
+#endif  // SB_API_VERSION < 13
 
 bool ComputeSignatureFromSignAPI(const std::string& message,
                                  uint8_t* signature) {
@@ -66,8 +68,10 @@
   if (ComputeSignatureFromSignAPI(message, signature)) {
     DLOG(INFO) << "Using certification signature provided by "
                << "SbSystemSignWithCertificationSecretKey().";
+#if SB_API_VERSION < 13
   } else if (ComputeSignatureWithSystemPropertySecret(message, signature)) {
     DLOG(INFO) << "Using certification key from SbSystemGetProperty().";
+#endif  // SB_API_VERSION < 13
   } else {
     return std::string();
   }
diff --git a/src/cobalt/browser/lifecycle_console_commands.cc b/src/cobalt/browser/lifecycle_console_commands.cc
index 1f11cd8..6e8253c 100644
--- a/src/cobalt/browser/lifecycle_console_commands.cc
+++ b/src/cobalt/browser/lifecycle_console_commands.cc
@@ -50,8 +50,7 @@
     "ending the process (peacefully).";
 
 namespace {
-#if SB_API_VERSION >= SB_ADD_CONCEALED_STATE_SUPPORT_VERSION || \
-    SB_HAS(CONCEALED_STATE)
+#if SB_API_VERSION >= 13
 // This is temporary that will be changed in later CLs, for mapping Starboard
 // Concealed state support onto Cobalt without Concealed state support to be
 // able to test the former.
@@ -74,9 +73,8 @@
             << "resume Cobalt using a platform-specific method.";
   SbSystemRequestSuspend();
 }
+#endif  // SB_API_VERSION >= 13
 
-#endif  // SB_API_VERSION >= SB_ADD_CONCEALED_STATE_SUPPORT_VERSION ||
-        // SB_HAS(CONCEALED_STATE)
 void OnQuit(const std::string& /*message*/) { SbSystemRequestStop(0); }
 }  // namespace
 
diff --git a/src/cobalt/browser/main.cc b/src/cobalt/browser/main.cc
index d844312..7464546 100644
--- a/src/cobalt/browser/main.cc
+++ b/src/cobalt/browser/main.cc
@@ -74,8 +74,7 @@
     return;
   }
   LOG(INFO) << "Starting application.";
-#if SB_API_VERSION >= SB_ADD_CONCEALED_STATE_SUPPORT_VERSION || \
-    SB_HAS(CONCEALED_STATE)
+#if SB_API_VERSION >= 13
   DCHECK(!g_application);
   g_application =
       new cobalt::browser::Application(quit_closure, false /*not_preload*/);
@@ -88,8 +87,7 @@
   } else {
     g_application->Start();
   }
-#endif  // SB_API_VERSION >= SB_ADD_CONCEALED_STATE_SUPPORT_VERSION ||
-        // SB_HAS(CONCEALED_STATE)
+#endif  // SB_API_VERSION >= 13
 }
 
 void StopApplication() {
diff --git a/src/cobalt/browser/suspend_fuzzer.cc b/src/cobalt/browser/suspend_fuzzer.cc
index f70b806..4c71c2c 100644
--- a/src/cobalt/browser/suspend_fuzzer.cc
+++ b/src/cobalt/browser/suspend_fuzzer.cc
@@ -31,15 +31,13 @@
 
 }  // namespace
 
-#if SB_API_VERSION >= SB_ADD_CONCEALED_STATE_SUPPORT_VERSION || \
-    SB_HAS(CONCEALED_STATE)
-  SuspendFuzzer::SuspendFuzzer()
+#if SB_API_VERSION >= 13
+SuspendFuzzer::SuspendFuzzer()
     : thread_("suspend_fuzzer"), step_type_(kShouldRequestFreeze) {
 #else
-  SuspendFuzzer::SuspendFuzzer()
+SuspendFuzzer::SuspendFuzzer()
     : thread_("suspend_fuzzer"), step_type_(kShouldRequestSuspend) {
-#endif  // SB_API_VERSION >= SB_ADD_CONCEALED_STATE_SUPPORT_VERSION ||
-        // SB_HAS(CONCEALED_STATE)
+#endif  // SB_API_VERSION >= 13
   thread_.Start();
   thread_.message_loop()->task_runner()->PostDelayedTask(
       FROM_HERE, base::Bind(&SuspendFuzzer::DoStep, base::Unretained(this)),
@@ -50,9 +48,8 @@
 
 void SuspendFuzzer::DoStep() {
   DCHECK(base::MessageLoop::current() == thread_.message_loop());
-  #if SB_API_VERSION >= SB_ADD_CONCEALED_STATE_SUPPORT_VERSION || \
-    SB_HAS(CONCEALED_STATE)
-    if (step_type_ == kShouldRequestFreeze) {
+#if SB_API_VERSION >= 13
+  if (step_type_ == kShouldRequestFreeze) {
     SB_DLOG(INFO) << "suspend_fuzzer: Requesting freeze.";
     SbSystemRequestFreeze();
     step_type_ = kShouldRequestFocus;
@@ -64,7 +61,7 @@
     NOTREACHED();
   }
 #else
-    if (step_type_ == kShouldRequestSuspend) {
+  if (step_type_ == kShouldRequestSuspend) {
     SB_DLOG(INFO) << "suspend_fuzzer: Requesting suspend.";
     SbSystemRequestSuspend();
     step_type_ = kShouldRequestSuspend;
@@ -75,8 +72,7 @@
   } else {
     NOTREACHED();
   }
-#endif  // SB_API_VERSION >= SB_ADD_CONCEALED_STATE_SUPPORT_VERSION ||
-        // SB_HAS(CONCEALED_STATE)
+#endif  // SB_API_VERSION >= 13
 
   base::MessageLoop::current()->task_runner()->PostDelayedTask(
       FROM_HERE, base::Bind(&SuspendFuzzer::DoStep, base::Unretained(this)),
diff --git a/src/cobalt/browser/suspend_fuzzer.h b/src/cobalt/browser/suspend_fuzzer.h
index 3a2dd88..d11ecd9 100644
--- a/src/cobalt/browser/suspend_fuzzer.h
+++ b/src/cobalt/browser/suspend_fuzzer.h
@@ -37,15 +37,13 @@
   base::Thread thread_;
 
   enum StepType {
-#if SB_API_VERSION >= SB_ADD_CONCEALED_STATE_SUPPORT_VERSION || \
-    SB_HAS(CONCEALED_STATE)
+#if SB_API_VERSION >= 13
     kShouldRequestFreeze,
     kShouldRequestFocus,
 #else
     kShouldRequestSuspend,
     kShouldRequestUnpause,
-#endif  // SB_API_VERSION >= SB_ADD_CONCEALED_STATE_SUPPORT_VERSION ||
-        // SB_HAS(CONCEALED_STATE)
+#endif  // SB_API_VERSION >= 13
   } step_type_;
 };
 
diff --git a/src/cobalt/browser/switches.cc b/src/cobalt/browser/switches.cc
index 17a88b4..249e0b3 100644
--- a/src/cobalt/browser/switches.cc
+++ b/src/cobalt/browser/switches.cc
@@ -118,10 +118,6 @@
     "The minimum version of Cobalt that will be checked during compatibility "
     "validations.";
 
-const char kMinLogLevel[] = "min_log_level";
-const char kMinLogLevelHelp[] =
-    "Set the minimum logging level: info|warning|error|fatal.";
-
 const char kNullSavegame[] = "null_savegame";
 const char kNullSavegameHelp[] =
     "Setting NullSavegame will result in no data being read from previous "
@@ -209,6 +205,9 @@
 
 #endif  // ENABLE_DEBUG_COMMAND_LINE_SWITCHES
 
+const char kMinLogLevel[] = "min_log_level";
+const char kMinLogLevelHelp[] =
+    "Set the minimum logging level: info|warning|error|fatal.";
 const char kDisableJavaScriptJit[] = "disable_javascript_jit";
 const char kDisableJavaScriptJitHelp[] =
     "Specifies that javascript jit should be disabled.";
@@ -226,6 +225,12 @@
     "removed and the resolution will be 1us (or larger depending on the "
     "platform.";
 
+const char kDisableUpdaterModule[] = "disable_updater_module";
+const char kDisableUpdaterModuleHelp[] =
+    "Disables the Cobalt Evergreen UpdaterModule which is responsible for "
+    "downloading and installing new Cobalt updates. Passing the flag is "
+    "equivalent to opting out from further updates.";
+
 const char kEncodedImageCacheSizeInBytes[] =
     "encoded_image_cache_size_in_bytes";
 const char kEncodedImageCacheSizeInBytesHelp[] =
@@ -438,7 +443,7 @@
         {kIgnoreCertificateErrors, kIgnoreCertificateErrorsHelp},
         {kInputFuzzer, kInputFuzzerHelp}, {kMemoryTracker, kMemoryTrackerHelp},
         {kMinCompatibilityVersion, kMinCompatibilityVersionHelp},
-        {kMinLogLevel, kMinLogLevelHelp}, {kNullSavegame, kNullSavegameHelp},
+        {kNullSavegame, kNullSavegameHelp},
         {kDisablePartialLayout, kDisablePartialLayoutHelp}, {kProd, kProdHelp},
         {kRequireCSP, kRequireCSPHelp},
         {kRequireHTTPSLocation, kRequireHTTPSLocationHelp},
@@ -454,10 +459,10 @@
 #endif  // SB_API_VERSION >= 12 ||
         // SB_HAS(ON_SCREEN_KEYBOARD)
 #endif  // ENABLE_DEBUG_COMMAND_LINE_SWITCHES
-
         {kDisableJavaScriptJit, kDisableJavaScriptJitHelp},
         {kDisableMapToMesh, kDisableMapToMeshHelp},
         {kDisableTimerResolutionLimit, kDisableTimerResolutionLimitHelp},
+        {kDisableUpdaterModule, kDisableUpdaterModuleHelp},
         {kEncodedImageCacheSizeInBytes, kEncodedImageCacheSizeInBytesHelp},
         {kForceMigrationForStoragePartitioning,
          kForceMigrationForStoragePartitioningHelp},
@@ -469,6 +474,7 @@
         {kLocalStoragePartitionUrl, kLocalStoragePartitionUrlHelp},
         {kMaxCobaltCpuUsage, kMaxCobaltCpuUsageHelp},
         {kMaxCobaltGpuUsage, kMaxCobaltGpuUsageHelp},
+        {kMinLogLevel, kMinLogLevelHelp},
         {kOffscreenTargetCacheSizeInBytes,
          kOffscreenTargetCacheSizeInBytesHelp},
         {kOmitDeviceAuthenticationQueryParameters,
diff --git a/src/cobalt/browser/switches.h b/src/cobalt/browser/switches.h
index 67c03f7..94f052b 100644
--- a/src/cobalt/browser/switches.h
+++ b/src/cobalt/browser/switches.h
@@ -60,8 +60,6 @@
 extern const char kMemoryTrackerHelp[];
 extern const char kMinCompatibilityVersion[];
 extern const char kMinCompatibilityVersionHelp[];
-extern const char kMinLogLevel[];
-extern const char kMinLogLevelHelp[];
 extern const char kNullSavegame[];
 extern const char kNullSavegameHelp[];
 extern const char kDisablePartialLayout[];
@@ -102,6 +100,8 @@
 extern const char kDisableMapToMeshHelp[];
 extern const char kDisableTimerResolutionLimit[];
 extern const char kDisableTimerResolutionLimitHelp[];
+extern const char kDisableUpdaterModule[];
+extern const char kDisableUpdaterModuleHelp[];
 extern const char kEncodedImageCacheSizeInBytes[];
 extern const char kEncodedImageCacheSizeInBytesHelp[];
 extern const char kForceMigrationForStoragePartitioning[];
@@ -123,6 +123,8 @@
 extern const char kMaxCobaltCpuUsageHelp[];
 extern const char kMaxCobaltGpuUsage[];
 extern const char kMaxCobaltGpuUsageHelp[];
+extern const char kMinLogLevel[];
+extern const char kMinLogLevelHelp[];
 extern const char kOffscreenTargetCacheSizeInBytes[];
 extern const char kOffscreenTargetCacheSizeInBytesHelp[];
 extern const char kOmitDeviceAuthenticationQueryParameters[];
diff --git a/src/cobalt/browser/web_module.cc b/src/cobalt/browser/web_module.cc
index a2a5343..1468005 100644
--- a/src/cobalt/browser/web_module.cc
+++ b/src/cobalt/browser/web_module.cc
@@ -254,6 +254,9 @@
         !window_->media_session()->media_session_client()->is_active();
   }
 
+  void DoSynchronousLayoutAndGetRenderTree(
+      scoped_refptr<render_tree::Node>* render_tree);
+
  private:
   class DocumentLoadedObserver;
 
@@ -753,9 +756,8 @@
       new debug::backend::RenderOverlay(render_tree_produced_callback_));
 
   debug_module_.reset(new debug::backend::DebugModule(
-      &debugger_hooks_, global_environment_.get(),
-      debug_overlay_.get(), resource_provider_, window_,
-      data.options.debugger_state));
+      &debugger_hooks_, global_environment_.get(), debug_overlay_.get(),
+      resource_provider_, window_, data.options.debugger_state));
 #endif  // ENABLE_DEBUGGER
 
   is_running_ = true;
@@ -1003,6 +1005,16 @@
   synchronous_loader_interrupt_.Signal();
 }
 
+void WebModule::Impl::DoSynchronousLayoutAndGetRenderTree(
+    scoped_refptr<render_tree::Node>* render_tree) {
+  TRACE_EVENT0("cobalt::browser",
+               "WebModule::Impl::DoSynchronousLayoutAndGetRenderTree()");
+  DCHECK(render_tree);
+  scoped_refptr<render_tree::Node> tree =
+      window_->document()->DoSynchronousLayoutAndGetRenderTree();
+  *render_tree = tree;
+}
+
 void WebModule::Impl::OnCspPolicyChanged() {
   DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
   DCHECK(is_running_);
@@ -1757,5 +1769,23 @@
   return is_ready_to_freeze;
 }
 
+scoped_refptr<render_tree::Node>
+WebModule::DoSynchronousLayoutAndGetRenderTree() {
+  TRACE_EVENT0("cobalt::browser",
+               "WebModule::DoSynchronousLayoutAndGetRenderTree()");
+  DCHECK(message_loop());
+  DCHECK(impl_);
+  scoped_refptr<render_tree::Node> render_tree;
+  if (base::MessageLoop::current() != message_loop()) {
+    message_loop()->task_runner()->PostBlockingTask(
+        FROM_HERE,
+        base::Bind(&WebModule::Impl::DoSynchronousLayoutAndGetRenderTree,
+                   base::Unretained(impl_.get()), &render_tree));
+  } else {
+    impl_->DoSynchronousLayoutAndGetRenderTree(&render_tree);
+  }
+  return render_tree;
+}
+
 }  // namespace browser
 }  // namespace cobalt
diff --git a/src/cobalt/browser/web_module.h b/src/cobalt/browser/web_module.h
index 4657840..af0b166 100644
--- a/src/cobalt/browser/web_module.h
+++ b/src/cobalt/browser/web_module.h
@@ -408,6 +408,8 @@
   // Indicate the web module is ready to freeze.
   bool IsReadyToFreeze();
 
+  scoped_refptr<render_tree::Node> DoSynchronousLayoutAndGetRenderTree();
+
  private:
   // Data required to construct a WebModule, initialized in the constructor and
   // passed to |Initialize|.
diff --git a/src/cobalt/build/build.id b/src/cobalt/build/build.id
index 70b9659..258e9df 100644
--- a/src/cobalt/build/build.id
+++ b/src/cobalt/build/build.id
@@ -1 +1 @@
-301702
\ No newline at end of file
+302142
\ No newline at end of file
diff --git a/src/cobalt/build/cobalt_configuration.gypi b/src/cobalt/build/cobalt_configuration.gypi
index 96a6a3c..3556181 100644
--- a/src/cobalt/build/cobalt_configuration.gypi
+++ b/src/cobalt/build/cobalt_configuration.gypi
@@ -40,8 +40,10 @@
       # is not used by platforms that only uses MSVC for host build.
       'cobalt_compiled_by_msvc%': 0,
       'host_executable_suffix%': '<(EXECUTABLE_SUFFIX)',
+      'disable_v8_pointer_compression%': 0,
     },
     'host_executable_suffix%': '<(EXECUTABLE_SUFFIX)',
+    'disable_v8_pointer_compression%': 0,
 
     # Whether Cobalt is being built.
     'cobalt': 1,
diff --git a/src/cobalt/content/licenses/platform/android/licenses_cobalt.txt b/src/cobalt/content/licenses/platform/android/licenses_cobalt.txt
index e5a570e..4cecddf 100644
--- a/src/cobalt/content/licenses/platform/android/licenses_cobalt.txt
+++ b/src/cobalt/content/licenses/platform/android/licenses_cobalt.txt
@@ -3827,3 +3827,50 @@
   THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
   (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
   OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+  libwebp
+
+  Copyright (c) 2010, Google Inc. All rights reserved.  Redistribution and use
+  in source and binary forms, with or without modification, are permitted
+  provided that the following conditions are met:
+    * Redistributions of source code must retain the above copyright notice,
+      this list of conditions and the following disclaimer.
+    * Redistributions in binary form must reproduce the above copyright notice,
+      this list of conditions and the following disclaimer in the documentation
+      and/or other materials provided with the distribution.
+    * Neither the name of Google nor the names of its contributors may be used
+      to endorse or promote products derived from this software without specific
+      prior written permission.
+  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT
+  HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
+  INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
+  AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+  COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+  INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+  NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+  THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+  Additional IP Rights Grant (Patents) ------------------------------------
+  "These implementations" means the copyrightable works that implement the
+  WebM codecs distributed by Google as part of the WebM Project.  Google
+  hereby grants to you a perpetual, worldwide, non-exclusive, no-charge,
+  royalty-free, irrevocable (except as stated in this section) patent
+  license to make, have made, use, offer to sell, sell, import, transfer,
+  and otherwise run, modify and propagate the contents of these
+  implementations of WebM, where such license applies only to those patent
+  claims, both currently owned by Google and acquired in the future,
+  licensable by Google that are necessarily infringed by these
+  implementations of WebM. This grant does not include claims that would be
+  infringed only as a consequence of further modification of these
+  implementations. If you or your agent or exclusive licensee institute or
+  order or agree to the institution of patent litigation or any other patent
+  enforcement activity against any entity (including a cross-claim or
+  counterclaim in a lawsuit) alleging that any of these implementations of
+  WebM or any code incorporated within any of these implementations of WebM
+  constitute direct or contributory patent infringement, or inducement of
+  patent infringement, then any patent rights granted to you under this
+  License for these implementations of WebM shall terminate as of the date
+  such litigation is filed.
diff --git a/src/cobalt/content/licenses/platform/default/licenses_cobalt.txt b/src/cobalt/content/licenses/platform/default/licenses_cobalt.txt
index bf30a41..d05dccf 100644
--- a/src/cobalt/content/licenses/platform/default/licenses_cobalt.txt
+++ b/src/cobalt/content/licenses/platform/default/licenses_cobalt.txt
@@ -2144,6 +2144,114 @@
       CompuServe Incorporated."
 
 
+  libjpeg-turbo
+
+  libjpeg-turbo Licenses libjpeg-turbo is covered by three compatible BSD-style
+  open source licenses:
+
+  The IJG (Independent JPEG Group) License, which is listed in README.ijg
+
+  This license applies to the libjpeg API library and associated programs (any
+  code inherited from libjpeg, and any modifications to that code.)
+
+  The Modified (3-clause) BSD License, which is listed below
+
+  This license covers the TurboJPEG API library and associated programs, as well
+  as the build system.
+
+  The zlib License
+
+  This license is a subset of the other two, and it covers the libjpeg-turbo
+  SIMD extensions.
+
+  Complying with the libjpeg-turbo Licenses This section provides a roll-up of
+  the libjpeg-turbo licensing terms, to the best of our understanding.
+
+  If you are distributing a modified version of the libjpeg-turbo source, then:
+
+  You cannot alter or remove any existing copyright or license notices from the
+  source.
+
+  Origin
+
+  Clause 1 of the IJG License Clause 1 of the Modified BSD License Clauses 1 and
+  3 of the zlib License You must add your own copyright notice to the header of
+  each source file you modified, so others can tell that you modified that file
+  (if there is not an existing copyright header in that file, then you can
+  simply add a notice stating that you modified the file.)
+
+  Origin
+
+  Clause 1 of the IJG License Clause 2 of the zlib License You must include the
+  IJG README file, and you must not alter any of the copyright or license text
+  in that file.
+
+  Origin
+
+  Clause 1 of the IJG License If you are distributing only libjpeg-turbo
+  binaries without the source, or if you are distributing an application that
+  statically links with libjpeg-turbo, then:
+
+  Your product documentation must include a message stating:
+
+  This software is based in part on the work of the Independent JPEG Group.
+
+  Origin
+
+  Clause 2 of the IJG license If your binary distribution includes or uses the
+  TurboJPEG API, then your product documentation must include the text of the
+  Modified BSD License (see below.)
+
+  Origin
+
+  Clause 2 of the Modified BSD License You cannot use the name of the IJG or The
+  libjpeg-turbo Project or the contributors thereof in advertising, publicity,
+  etc.
+
+  Origin
+
+  IJG License Clause 3 of the Modified BSD License The IJG and The libjpeg-turbo
+  Project do not warrant libjpeg-turbo to be free of defects, nor do we accept
+  any liability for undesirable consequences resulting from your use of the
+  software.
+
+  Origin
+
+  IJG License Modified BSD License zlib License The Modified (3-clause) BSD
+  License Copyright (C)2009-2021 D. R. Commander. All Rights Reserved.
+  Copyright (C)2015 Viktor Szathmáry. All Rights Reserved.
+
+  Redistribution and use in source and binary forms, with or without
+  modification, are permitted provided that the following conditions are met:
+
+  Redistributions of source code must retain the above copyright notice, this
+  list of conditions and the following disclaimer.  Redistributions in binary
+  form must reproduce the above copyright notice, this list of conditions and
+  the following disclaimer in the documentation and/or other materials provided
+  with the distribution.  Neither the name of the libjpeg-turbo Project nor the
+  names of its contributors may be used to endorse or promote products derived
+  from this software without specific prior written permission.  THIS SOFTWARE
+  IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS", AND ANY EXPRESS
+  OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+  OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+  EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+  INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+  BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+  OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+  NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+  EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+  Why Three Licenses?  The zlib License could have been used instead of the
+  Modified (3-clause) BSD License, and since the IJG License effectively
+  subsumes the distribution conditions of the zlib License, this would have
+  effectively placed libjpeg-turbo binary distributions under the IJG License.
+  However, the IJG License specifically refers to the Independent JPEG Group and
+  does not extend attribution and endorsement protections to other entities.
+  Thus, it was desirable to choose a license that granted us the same
+  protections for new code that were granted to the IJG for code derived from
+  their software.
+
 
   libpng
 
@@ -5493,3 +5601,73 @@
   ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
   (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
   SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+  libwebp
+
+  Copyright (c) 2010, Google Inc. All rights reserved.  Redistribution and use
+  in source and binary forms, with or without modification, are permitted
+  provided that the following conditions are met:
+    * Redistributions of source code must retain the above copyright notice,
+      this list of conditions and the following disclaimer.
+    * Redistributions in binary form must reproduce the above copyright notice,
+      this list of conditions and the following disclaimer in the documentation
+      and/or other materials provided with the distribution.
+    * Neither the name of Google nor the names of its contributors may be used
+      to endorse or promote products derived from this software without specific
+      prior written permission.
+  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT
+  HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
+  INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
+  AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+  COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+  INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+  NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+  THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+  Additional IP Rights Grant (Patents) ------------------------------------
+  "These implementations" means the copyrightable works that implement the
+  WebM codecs distributed by Google as part of the WebM Project.  Google
+  hereby grants to you a perpetual, worldwide, non-exclusive, no-charge,
+  royalty-free, irrevocable (except as stated in this section) patent
+  license to make, have made, use, offer to sell, sell, import, transfer,
+  and otherwise run, modify and propagate the contents of these
+  implementations of WebM, where such license applies only to those patent
+  claims, both currently owned by Google and acquired in the future,
+  licensable by Google that are necessarily infringed by these
+  implementations of WebM. This grant does not include claims that would be
+  infringed only as a consequence of further modification of these
+  implementations. If you or your agent or exclusive licensee institute or
+  order or agree to the institution of patent litigation or any other patent
+  enforcement activity against any entity (including a cross-claim or
+  counterclaim in a lawsuit) alleging that any of these implementations of
+  WebM or any code incorporated within any of these implementations of WebM
+  constitute direct or contributory patent infringement, or inducement of
+  patent infringement, then any patent rights granted to you under this
+  License for these implementations of WebM shall terminate as of the date
+  such litigation is filed.
+
+  QR-Code-generator
+
+  Copyright © 2020 Project Nayuki. (MIT License)
+  https://www.nayuki.io/page/qr-code-generator-library
+
+  Permission is hereby granted, free of charge, to any person obtaining a copy
+  of this software and associated documentation files (the "Software"), to deal
+  in the Software without restriction, including without limitation the rights
+  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+  copies of the Software, and to permit persons to whom the Software is
+  furnished to do so, subject to the following conditions:
+
+  The above copyright notice and this permission notice shall be included in all
+  copies or substantial portions of the Software.
+
+  The Software is provided "as is", without warranty of any kind, express or
+  implied, including but not limited to the warranties of merchantability,
+  fitness for a particular purpose and noninfringement. In no event shall the
+  authors or copyright holders be liable for any claim, damages or other
+  liability, whether in an action of contract, tort or otherwise, arising from,
+  out of or in connection with the Software or the use or other dealings in the
+  Software.
diff --git a/src/cobalt/debug/debug.gyp b/src/cobalt/debug/debug.gyp
index ef295ed..a0b5407 100644
--- a/src/cobalt/debug/debug.gyp
+++ b/src/cobalt/debug/debug.gyp
@@ -72,11 +72,11 @@
         '<(DEPTH)/cobalt/script/script.gyp:script',
         '<(DEPTH)/cobalt/speech/speech.gyp:speech',
         '<(DEPTH)/net/net.gyp:http_server',
+        '<(DEPTH)/third_party/devtools/devtools.gyp:devtools',
         'console_command_manager',
         'copy_backend_web_files',
         'copy_console_web_files',
         'copy_remote_web_files',
-        'remote/devtools/devtools.gyp:devtools',
       ],
     },
 
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@types/chai/LICENSE b/src/cobalt/debug/remote/devtools/node_modules/@types/chai/LICENSE
deleted file mode 100644
index 4b1ad51..0000000
--- a/src/cobalt/debug/remote/devtools/node_modules/@types/chai/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-    MIT License

-

-    Copyright (c) Microsoft Corporation. All rights reserved.

-

-    Permission is hereby granted, free of charge, to any person obtaining a copy

-    of this software and associated documentation files (the "Software"), to deal

-    in the Software without restriction, including without limitation the rights

-    to use, copy, modify, merge, publish, distribute, sublicense, and/or sell

-    copies of the Software, and to permit persons to whom the Software is

-    furnished to do so, subject to the following conditions:

-

-    The above copyright notice and this permission notice shall be included in all

-    copies or substantial portions of the Software.

-

-    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR

-    IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,

-    FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE

-    AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER

-    LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,

-    OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE

-    SOFTWARE

diff --git a/src/cobalt/debug/remote/devtools/node_modules/@types/estree/LICENSE b/src/cobalt/debug/remote/devtools/node_modules/@types/estree/LICENSE
deleted file mode 100644
index 4b1ad51..0000000
--- a/src/cobalt/debug/remote/devtools/node_modules/@types/estree/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-    MIT License

-

-    Copyright (c) Microsoft Corporation. All rights reserved.

-

-    Permission is hereby granted, free of charge, to any person obtaining a copy

-    of this software and associated documentation files (the "Software"), to deal

-    in the Software without restriction, including without limitation the rights

-    to use, copy, modify, merge, publish, distribute, sublicense, and/or sell

-    copies of the Software, and to permit persons to whom the Software is

-    furnished to do so, subject to the following conditions:

-

-    The above copyright notice and this permission notice shall be included in all

-    copies or substantial portions of the Software.

-

-    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR

-    IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,

-    FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE

-    AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER

-    LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,

-    OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE

-    SOFTWARE

diff --git a/src/cobalt/debug/remote/devtools/node_modules/@types/mocha/LICENSE b/src/cobalt/debug/remote/devtools/node_modules/@types/mocha/LICENSE
deleted file mode 100644
index 4b1ad51..0000000
--- a/src/cobalt/debug/remote/devtools/node_modules/@types/mocha/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-    MIT License

-

-    Copyright (c) Microsoft Corporation. All rights reserved.

-

-    Permission is hereby granted, free of charge, to any person obtaining a copy

-    of this software and associated documentation files (the "Software"), to deal

-    in the Software without restriction, including without limitation the rights

-    to use, copy, modify, merge, publish, distribute, sublicense, and/or sell

-    copies of the Software, and to permit persons to whom the Software is

-    furnished to do so, subject to the following conditions:

-

-    The above copyright notice and this permission notice shall be included in all

-    copies or substantial portions of the Software.

-

-    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR

-    IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,

-    FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE

-    AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER

-    LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,

-    OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE

-    SOFTWARE

diff --git a/src/cobalt/debug/remote/devtools/node_modules/@types/node/LICENSE b/src/cobalt/debug/remote/devtools/node_modules/@types/node/LICENSE
deleted file mode 100644
index 4b1ad51..0000000
--- a/src/cobalt/debug/remote/devtools/node_modules/@types/node/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-    MIT License

-

-    Copyright (c) Microsoft Corporation. All rights reserved.

-

-    Permission is hereby granted, free of charge, to any person obtaining a copy

-    of this software and associated documentation files (the "Software"), to deal

-    in the Software without restriction, including without limitation the rights

-    to use, copy, modify, merge, publish, distribute, sublicense, and/or sell

-    copies of the Software, and to permit persons to whom the Software is

-    furnished to do so, subject to the following conditions:

-

-    The above copyright notice and this permission notice shall be included in all

-    copies or substantial portions of the Software.

-

-    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR

-    IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,

-    FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE

-    AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER

-    LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,

-    OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE

-    SOFTWARE

diff --git a/src/cobalt/debug/remote/devtools/node_modules/blob/.idea/blob.iml b/src/cobalt/debug/remote/devtools/node_modules/blob/.idea/blob.iml
deleted file mode 100644
index 0b872d8..0000000
--- a/src/cobalt/debug/remote/devtools/node_modules/blob/.idea/blob.iml
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>

-<module type="WEB_MODULE" version="4">

-  <component name="NewModuleRootManager">

-    <content url="file://$MODULE_DIR$">

-      <excludeFolder url="file://$MODULE_DIR$/.tmp" />

-      <excludeFolder url="file://$MODULE_DIR$/temp" />

-      <excludeFolder url="file://$MODULE_DIR$/tmp" />

-    </content>

-    <orderEntry type="inheritedJdk" />

-    <orderEntry type="sourceFolder" forTests="false" />

-  </component>

-</module>
\ No newline at end of file
diff --git a/src/cobalt/debug/remote/devtools/node_modules/blob/.idea/inspectionProfiles/profiles_settings.xml b/src/cobalt/debug/remote/devtools/node_modules/blob/.idea/inspectionProfiles/profiles_settings.xml
deleted file mode 100644
index 0eefe32..0000000
--- a/src/cobalt/debug/remote/devtools/node_modules/blob/.idea/inspectionProfiles/profiles_settings.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-<component name="InspectionProjectProfileManager">
-  <settings>
-    <option name="PROJECT_PROFILE" />
-  </settings>
-</component>
\ No newline at end of file
diff --git a/src/cobalt/debug/remote/devtools/node_modules/blob/.idea/markdown-navigator.xml b/src/cobalt/debug/remote/devtools/node_modules/blob/.idea/markdown-navigator.xml
deleted file mode 100644
index 24281af..0000000
--- a/src/cobalt/debug/remote/devtools/node_modules/blob/.idea/markdown-navigator.xml
+++ /dev/null
@@ -1,78 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>

-<project version="4">

-  <component name="MarkdownProjectSettings" wasCopied="true">

-    <PreviewSettings splitEditorLayout="SPLIT" splitEditorPreview="PREVIEW" useGrayscaleRendering="false" zoomFactor="1.0" maxImageWidth="0" showGitHubPageIfSynced="false" allowBrowsingInPreview="false" synchronizePreviewPosition="true" highlightPreviewType="NONE" highlightFadeOut="5" highlightOnTyping="true" synchronizeSourcePosition="true" verticallyAlignSourceAndPreviewSyncPosition="true" showSearchHighlightsInPreview="false" showSelectionInPreview="true" openRemoteLinks="true" replaceUnicodeEmoji="false" lastLayoutSetsDefault="false">

-      <PanelProvider>

-        <provider providerId="com.vladsch.idea.multimarkdown.editor.swing.html.panel" providerName="Default - Swing" />

-      </PanelProvider>

-    </PreviewSettings>

-    <ParserSettings gitHubSyntaxChange="false" emojiShortcuts="1" emojiImages="0">

-      <PegdownExtensions>

-        <option name="ABBREVIATIONS" value="false" />

-        <option name="ANCHORLINKS" value="true" />

-        <option name="ASIDE" value="false" />

-        <option name="ATXHEADERSPACE" value="true" />

-        <option name="AUTOLINKS" value="true" />

-        <option name="DEFINITIONS" value="false" />

-        <option name="DEFINITION_BREAK_DOUBLE_BLANK_LINE" value="false" />

-        <option name="FENCED_CODE_BLOCKS" value="true" />

-        <option name="FOOTNOTES" value="false" />

-        <option name="HARDWRAPS" value="false" />

-        <option name="HTML_DEEP_PARSER" value="false" />

-        <option name="INSERTED" value="false" />

-        <option name="QUOTES" value="false" />

-        <option name="RELAXEDHRULES" value="true" />

-        <option name="SMARTS" value="false" />

-        <option name="STRIKETHROUGH" value="true" />

-        <option name="SUBSCRIPT" value="false" />

-        <option name="SUPERSCRIPT" value="false" />

-        <option name="SUPPRESS_HTML_BLOCKS" value="false" />

-        <option name="SUPPRESS_INLINE_HTML" value="false" />

-        <option name="TABLES" value="true" />

-        <option name="TASKLISTITEMS" value="true" />

-        <option name="TOC" value="false" />

-        <option name="WIKILINKS" value="true" />

-      </PegdownExtensions>

-      <ParserOptions>

-        <option name="ADMONITION_EXT" value="false" />

-        <option name="ATTRIBUTES_EXT" value="false" />

-        <option name="COMMONMARK_LISTS" value="true" />

-        <option name="DUMMY" value="false" />

-        <option name="EMOJI_SHORTCUTS" value="true" />

-        <option name="ENUMERATED_REFERENCES_EXT" value="false" />

-        <option name="FLEXMARK_FRONT_MATTER" value="false" />

-        <option name="GFM_LOOSE_BLANK_LINE_AFTER_ITEM_PARA" value="false" />

-        <option name="GFM_TABLE_RENDERING" value="true" />

-        <option name="GITBOOK_URL_ENCODING" value="false" />

-        <option name="GITHUB_LISTS" value="false" />

-        <option name="GITHUB_WIKI_LINKS" value="true" />

-        <option name="HEADER_ID_NO_DUPED_DASHES" value="false" />

-        <option name="JEKYLL_FRONT_MATTER" value="false" />

-        <option name="NO_TEXT_ATTRIBUTES" value="false" />

-        <option name="PARSE_HTML_ANCHOR_ID" value="false" />

-        <option name="SIM_TOC_BLANK_LINE_SPACER" value="true" />

-      </ParserOptions>

-    </ParserSettings>

-    <HtmlSettings headerTopEnabled="false" headerBottomEnabled="false" bodyTopEnabled="false" bodyBottomEnabled="false" embedUrlContent="false" addPageHeader="true" embedImages="false" embedHttpImages="false" imageUriSerials="false">

-      <GeneratorProvider>

-        <provider providerId="com.vladsch.idea.multimarkdown.editor.swing.html.generator" providerName="Default Swing HTML Generator" />

-      </GeneratorProvider>

-      <headerTop />

-      <headerBottom />

-      <bodyTop />

-      <bodyBottom />

-    </HtmlSettings>

-    <CssSettings previewScheme="UI_SCHEME" cssUri="" isCssUriEnabled="false" isCssUriSerial="false" isCssTextEnabled="false" isDynamicPageWidth="true">

-      <StylesheetProvider>

-        <provider providerId="com.vladsch.idea.multimarkdown.editor.swing.html.css" providerName="Default Swing Stylesheet" />

-      </StylesheetProvider>

-      <ScriptProviders />

-      <cssText />

-      <cssUriHistory />

-    </CssSettings>

-    <HtmlExportSettings updateOnSave="false" parentDir="" targetDir="" cssDir="" scriptDir="" plainHtml="false" imageDir="" copyLinkedImages="false" imageUniquifyType="0" targetExt="" useTargetExt="false" noCssNoScripts="false" linkToExportedHtml="true" exportOnSettingsChange="true" regenerateOnProjectOpen="false" linkFormatType="HTTP_ABSOLUTE" />

-    <LinkMapSettings>

-      <textMaps />

-    </LinkMapSettings>

-  </component>

-</project>
\ No newline at end of file
diff --git a/src/cobalt/debug/remote/devtools/node_modules/blob/.idea/markdown-navigator/profiles_settings.xml b/src/cobalt/debug/remote/devtools/node_modules/blob/.idea/markdown-navigator/profiles_settings.xml
deleted file mode 100644
index 9c51dfe..0000000
--- a/src/cobalt/debug/remote/devtools/node_modules/blob/.idea/markdown-navigator/profiles_settings.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<component name="MarkdownNavigator.ProfileManager">

-  <settings default="" pdf-export="" />

-</component>
\ No newline at end of file
diff --git a/src/cobalt/debug/remote/devtools/node_modules/blob/.idea/modules.xml b/src/cobalt/debug/remote/devtools/node_modules/blob/.idea/modules.xml
deleted file mode 100644
index a24a2af..0000000
--- a/src/cobalt/debug/remote/devtools/node_modules/blob/.idea/modules.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>

-<project version="4">

-  <component name="ProjectModuleManager">

-    <modules>

-      <module fileurl="file://$PROJECT_DIR$/.idea/blob.iml" filepath="$PROJECT_DIR$/.idea/blob.iml" />

-    </modules>

-  </component>

-</project>
\ No newline at end of file
diff --git a/src/cobalt/debug/remote/devtools/node_modules/blob/.idea/vcs.xml b/src/cobalt/debug/remote/devtools/node_modules/blob/.idea/vcs.xml
deleted file mode 100644
index 9661ac7..0000000
--- a/src/cobalt/debug/remote/devtools/node_modules/blob/.idea/vcs.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>

-<project version="4">

-  <component name="VcsDirectoryMappings">

-    <mapping directory="$PROJECT_DIR$" vcs="Git" />

-  </component>

-</project>
\ No newline at end of file
diff --git a/src/cobalt/debug/remote/devtools/node_modules/blob/.idea/workspace.xml b/src/cobalt/debug/remote/devtools/node_modules/blob/.idea/workspace.xml
deleted file mode 100644
index 31e803b..0000000
--- a/src/cobalt/debug/remote/devtools/node_modules/blob/.idea/workspace.xml
+++ /dev/null
@@ -1,390 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project version="4">
-  <component name="ChangeListManager">
-    <list default="true" id="584fee10-991c-4143-af70-57730369b503" name="Default Changelist" comment="" />
-    <ignored path="$PROJECT_DIR$/.tmp/" />
-    <ignored path="$PROJECT_DIR$/temp/" />
-    <ignored path="$PROJECT_DIR$/tmp/" />
-    <option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
-    <option name="SHOW_DIALOG" value="false" />
-    <option name="HIGHLIGHT_CONFLICTS" value="true" />
-    <option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
-    <option name="LAST_RESOLUTION" value="IGNORE" />
-  </component>
-  <component name="FUSProjectUsageTrigger">
-    <session id="424275792">
-      <usages-collector id="statistics.lifecycle.project">
-        <counts>
-          <entry key="project.open.time.3" value="1" />
-          <entry key="project.opened" value="1" />
-        </counts>
-      </usages-collector>
-      <usages-collector id="statistics.file.extensions.open">
-        <counts>
-          <entry key="Makefile" value="3" />
-          <entry key="gitignore" value="3" />
-          <entry key="js" value="6" />
-          <entry key="json" value="4" />
-          <entry key="md" value="3" />
-        </counts>
-      </usages-collector>
-      <usages-collector id="statistics.file.types.open">
-        <counts>
-          <entry key="Git file" value="3" />
-          <entry key="JSON" value="4" />
-          <entry key="JavaScript" value="6" />
-          <entry key="Markdown" value="3" />
-          <entry key="PLAIN_TEXT" value="3" />
-        </counts>
-      </usages-collector>
-      <usages-collector id="statistics.file.extensions.edit">
-        <counts>
-          <entry key="json" value="9" />
-          <entry key="txt" value="34" />
-        </counts>
-      </usages-collector>
-      <usages-collector id="statistics.file.types.edit">
-        <counts>
-          <entry key="JSON" value="9" />
-          <entry key="PLAIN_TEXT" value="34" />
-        </counts>
-      </usages-collector>
-      <usages-collector id="statistics.vcs.git.usages">
-        <counts>
-          <entry key="git.branch.checkout.local" value="2" />
-          <entry key="git.branch.checkout.remote" value="2" />
-          <entry key="git.branch.delete.local" value="2" />
-          <entry key="git.branch.merge" value="2" />
-          <entry key="git.branch.rebase" value="2" />
-        </counts>
-      </usages-collector>
-    </session>
-  </component>
-  <component name="FileEditorManager">
-    <leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
-      <file pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/index.js">
-          <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="578">
-              <caret line="34" column="3" selection-start-line="34" selection-start-column="3" selection-end-line="34" selection-end-column="3" />
-            </state>
-          </provider>
-        </entry>
-      </file>
-      <file pinned="false" current-in-tab="true">
-        <entry file="file://$PROJECT_DIR$/package.json">
-          <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="137">
-              <caret line="11" column="24" selection-start-line="11" selection-start-column="24" selection-end-line="11" selection-end-column="24" />
-            </state>
-          </provider>
-        </entry>
-      </file>
-      <file pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/.gitignore">
-          <provider selected="true" editor-type-id="text-editor" />
-        </entry>
-      </file>
-      <file pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/Makefile">
-          <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="136">
-              <caret line="8" column="46" selection-start-line="8" selection-start-column="25" selection-end-line="8" selection-end-column="46" />
-            </state>
-          </provider>
-        </entry>
-      </file>
-      <file pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/test/index.js">
-          <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="136">
-              <caret line="8" column="26" selection-start-line="8" selection-start-column="26" selection-end-line="8" selection-end-column="26" />
-            </state>
-          </provider>
-        </entry>
-      </file>
-      <file pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/README.md">
-          <provider selected="true" editor-type-id="split-provider[text-editor;MarkdownPreviewEditor]">
-            <state split_layout="SPLIT">
-              <first_editor relative-caret-position="204">
-                <caret line="12" selection-start-line="12" selection-end-line="12" />
-              </first_editor>
-              <second_editor>
-                <markdownNavigatorState />
-              </second_editor>
-            </state>
-          </provider>
-        </entry>
-      </file>
-    </leaf>
-  </component>
-  <component name="FindInProjectRecents">
-    <findStrings>
-      <find>esprima-six</find>
-    </findStrings>
-  </component>
-  <component name="Git.Settings">
-    <option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
-    <option name="RECENT_BRANCH_BY_REPOSITORY">
-      <map>
-        <entry key="$PROJECT_DIR$" value="patch-1" />
-      </map>
-    </option>
-    <option name="RESET_MODE" value="KEEP" />
-  </component>
-  <component name="IdeDocumentHistory">
-    <option name="CHANGED_PATHS">
-      <list>
-        <option value="$PROJECT_DIR$/package.json" />
-      </list>
-    </option>
-  </component>
-  <component name="JsBuildToolGruntFileManager" detection-done="true" sorting="DEFINITION_ORDER" />
-  <component name="JsBuildToolPackageJson" detection-done="true" sorting="DEFINITION_ORDER">
-    <package-json value="$PROJECT_DIR$/package.json" />
-  </component>
-  <component name="JsGulpfileManager">
-    <detection-done>true</detection-done>
-    <sorting>DEFINITION_ORDER</sorting>
-  </component>
-  <component name="NodeModulesDirectoryManager">
-    <handled-path value="$PROJECT_DIR$/node_modules" />
-  </component>
-  <component name="NodePackageJsonFileManager">
-    <packageJsonPaths>
-      <path value="$PROJECT_DIR$/package.json" />
-    </packageJsonPaths>
-  </component>
-  <component name="ProjectFrameBounds" extendedState="6">
-    <option name="x" value="-9" />
-    <option name="width" value="1935" />
-    <option name="height" value="1029" />
-  </component>
-  <component name="ProjectLevelVcsManager" settingsEditedManually="true" />
-  <component name="ProjectView">
-    <navigator proportions="" version="1">
-      <foldersAlwaysOnTop value="true" />
-    </navigator>
-    <panes>
-      <pane id="ProjectPane">
-        <subPane>
-          <expand>
-            <path>
-              <item name="blob" type="b2602c69:ProjectViewProjectNode" />
-              <item name="blob" type="462c0819:PsiDirectoryNode" />
-            </path>
-            <path>
-              <item name="blob" type="b2602c69:ProjectViewProjectNode" />
-              <item name="blob" type="462c0819:PsiDirectoryNode" />
-              <item name="test" type="462c0819:PsiDirectoryNode" />
-            </path>
-          </expand>
-          <select />
-        </subPane>
-      </pane>
-      <pane id="Scope" />
-    </panes>
-  </component>
-  <component name="PropertiesComponent">
-    <property name="WebServerToolWindowFactoryState" value="false" />
-    <property name="nodejs.mocha.mocha_node_package_dir" value="$PROJECT_DIR$/node_modules/mocha" />
-    <property name="nodejs_interpreter_path.stuck_in_default_project" value="C:/Program Files/nodejs/node" />
-    <property name="nodejs_npm_path_reset_for_default_project" value="true" />
-    <property name="nodejs_package_manager_path" value="npm" />
-  </component>
-  <component name="RunDashboard">
-    <option name="ruleStates">
-      <list>
-        <RuleState>
-          <option name="name" value="ConfigurationTypeDashboardGroupingRule" />
-        </RuleState>
-        <RuleState>
-          <option name="name" value="StatusDashboardGroupingRule" />
-        </RuleState>
-      </list>
-    </option>
-  </component>
-  <component name="RunManager" selected="Mocha.blob">
-    <configuration name="test" type="js.build_tools.npm" factoryName="npm" temporary="true" nameIsGenerated="true">
-      <package-json value="$PROJECT_DIR$/package.json" />
-      <command value="run" />
-      <scripts>
-        <script value="test" />
-      </scripts>
-      <node-interpreter value="project" />
-      <envs />
-      <method v="2" />
-    </configuration>
-    <configuration name="blob" type="mocha-javascript-test-runner" factoryName="Mocha" temporary="true" nameIsGenerated="true">
-      <node-interpreter>project</node-interpreter>
-      <node-options />
-      <working-directory>$PROJECT_DIR$</working-directory>
-      <pass-parent-env>true</pass-parent-env>
-      <ui>bdd</ui>
-      <extra-mocha-options />
-      <test-kind>SUITE</test-kind>
-      <test-file>$PROJECT_DIR$/test/index.js</test-file>
-      <test-names>
-        <name value="blob" />
-      </test-names>
-      <method v="2" />
-    </configuration>
-    <list>
-      <item itemvalue="npm.test" />
-      <item itemvalue="Mocha.blob" />
-    </list>
-    <recent_temporary>
-      <list>
-        <item itemvalue="Mocha.blob" />
-        <item itemvalue="npm.test" />
-        <item itemvalue="Mocha.blob" />
-        <item itemvalue="npm.test" />
-        <item itemvalue="Mocha.blob" />
-      </list>
-    </recent_temporary>
-  </component>
-  <component name="SvnConfiguration">
-    <configuration />
-  </component>
-  <component name="TaskManager">
-    <task active="true" id="Default" summary="Default task">
-      <changelist id="584fee10-991c-4143-af70-57730369b503" name="Default Changelist" comment="" />
-      <created>1541010775450</created>
-      <option name="number" value="Default" />
-      <option name="presentableId" value="Default" />
-      <updated>1541010775450</updated>
-      <workItem from="1541010778407" duration="2946000" />
-    </task>
-    <task id="LOCAL-00001" summary="update browserify and zuul to avoid esprima-six issue">
-      <created>1541013247794</created>
-      <option name="number" value="00001" />
-      <option name="presentableId" value="LOCAL-00001" />
-      <option name="project" value="LOCAL" />
-      <updated>1541013247795</updated>
-    </task>
-    <option name="localTasksCounter" value="2" />
-    <servers />
-  </component>
-  <component name="TestHistory">
-    <history-entry file="blob - 2018.10.31 at 21h 11m 12s.xml">
-      <configuration name="blob" configurationId="mocha-javascript-test-runner" />
-    </history-entry>
-  </component>
-  <component name="TimeTrackingManager">
-    <option name="totallyTimeSpent" value="2946000" />
-  </component>
-  <component name="TodoView">
-    <todo-panel id="selected-file">
-      <is-autoscroll-to-source value="true" />
-    </todo-panel>
-    <todo-panel id="all">
-      <are-packages-shown value="true" />
-      <is-autoscroll-to-source value="true" />
-    </todo-panel>
-  </component>
-  <component name="ToolWindowManager">
-    <frame x="-7" y="-7" width="1550" height="838" extended-state="6" />
-    <layout>
-      <window_info id="npm" side_tool="true" />
-      <window_info id="Favorites" side_tool="true" />
-      <window_info active="true" content_ui="combo" id="Project" order="0" visible="true" weight="0.24983476" />
-      <window_info id="Structure" order="1" side_tool="true" weight="0.25" />
-      <window_info anchor="bottom" id="Docker" show_stripe_button="false" />
-      <window_info anchor="bottom" id="Version Control" visible="true" weight="0.44948757" />
-      <window_info anchor="bottom" id="Terminal" weight="0.55051243" />
-      <window_info anchor="bottom" id="Event Log" side_tool="true" />
-      <window_info anchor="bottom" id="Message" order="0" />
-      <window_info anchor="bottom" id="Find" order="1" />
-      <window_info anchor="bottom" id="Run" order="2" weight="0.47291362" />
-      <window_info anchor="bottom" id="Debug" order="3" weight="0.4" />
-      <window_info anchor="bottom" id="Cvs" order="4" weight="0.25" />
-      <window_info anchor="bottom" id="Inspection" order="5" weight="0.4" />
-      <window_info anchor="bottom" id="TODO" order="6" weight="0.329429" />
-      <window_info anchor="right" id="Commander" order="0" weight="0.4" />
-      <window_info anchor="right" id="Ant Build" order="1" weight="0.25" />
-      <window_info anchor="right" content_ui="combo" id="Hierarchy" order="2" weight="0.25" />
-    </layout>
-  </component>
-  <component name="TypeScriptGeneratedFilesManager">
-    <option name="version" value="1" />
-  </component>
-  <component name="Vcs.Log.Tabs.Properties">
-    <option name="TAB_STATES">
-      <map>
-        <entry key="MAIN">
-          <value>
-            <State>
-              <option name="RECENTLY_FILTERED_USER_GROUPS">
-                <collection />
-              </option>
-              <option name="RECENTLY_FILTERED_BRANCH_GROUPS">
-                <collection />
-              </option>
-              <option name="COLUMN_ORDER">
-                <list>
-                  <option value="0" />
-                  <option value="1" />
-                  <option value="2" />
-                  <option value="3" />
-                </list>
-              </option>
-            </State>
-          </value>
-        </entry>
-      </map>
-    </option>
-  </component>
-  <component name="VcsContentAnnotationSettings">
-    <option name="myLimit" value="2678400000" />
-  </component>
-  <component name="VcsManagerConfiguration">
-    <MESSAGE value="update browserify and zuul to avoid esprima-six issue" />
-    <option name="LAST_COMMIT_MESSAGE" value="update browserify and zuul to avoid esprima-six issue" />
-  </component>
-  <component name="editorHistoryManager">
-    <entry file="file://$PROJECT_DIR$/index.js">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="578">
-          <caret line="34" column="3" selection-start-line="34" selection-start-column="3" selection-end-line="34" selection-end-column="3" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/.gitignore">
-      <provider selected="true" editor-type-id="text-editor" />
-    </entry>
-    <entry file="file://$PROJECT_DIR$/Makefile">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="136">
-          <caret line="8" column="46" selection-start-line="8" selection-start-column="25" selection-end-line="8" selection-end-column="46" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/test/index.js">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="136">
-          <caret line="8" column="26" selection-start-line="8" selection-start-column="26" selection-end-line="8" selection-end-column="26" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/README.md">
-      <provider selected="true" editor-type-id="split-provider[text-editor;MarkdownPreviewEditor]">
-        <state split_layout="SPLIT">
-          <first_editor relative-caret-position="204">
-            <caret line="12" selection-start-line="12" selection-end-line="12" />
-          </first_editor>
-          <second_editor>
-            <markdownNavigatorState />
-          </second_editor>
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/package.json">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="137">
-          <caret line="11" column="24" selection-start-line="11" selection-start-column="24" selection-end-line="11" selection-end-column="24" />
-        </state>
-      </provider>
-    </entry>
-  </component>
-</project>
\ No newline at end of file
diff --git a/src/cobalt/debug/remote/devtools/node_modules/color-name/LICENSE b/src/cobalt/debug/remote/devtools/node_modules/color-name/LICENSE
deleted file mode 100644
index c6b1001..0000000
--- a/src/cobalt/debug/remote/devtools/node_modules/color-name/LICENSE
+++ /dev/null
@@ -1,8 +0,0 @@
-The MIT License (MIT)

-Copyright (c) 2015 Dmitry Ivanov

-

-Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

-

-The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

-

-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
\ No newline at end of file
diff --git a/src/cobalt/debug/remote/devtools/node_modules/color-name/README.md b/src/cobalt/debug/remote/devtools/node_modules/color-name/README.md
deleted file mode 100644
index 932b979..0000000
--- a/src/cobalt/debug/remote/devtools/node_modules/color-name/README.md
+++ /dev/null
@@ -1,11 +0,0 @@
-A JSON with color names and its values. Based on http://dev.w3.org/csswg/css-color/#named-colors.

-

-[![NPM](https://nodei.co/npm/color-name.png?mini=true)](https://nodei.co/npm/color-name/)

-

-

-```js

-var colors = require('color-name');

-colors.red //[255,0,0]

-```

-

-<a href="LICENSE"><img src="https://upload.wikimedia.org/wikipedia/commons/0/0c/MIT_logo.svg" width="120"/></a>

diff --git a/src/cobalt/debug/remote/devtools/node_modules/color-name/index.js b/src/cobalt/debug/remote/devtools/node_modules/color-name/index.js
deleted file mode 100644
index b7c198a..0000000
--- a/src/cobalt/debug/remote/devtools/node_modules/color-name/index.js
+++ /dev/null
@@ -1,152 +0,0 @@
-'use strict'

-

-module.exports = {

-	"aliceblue": [240, 248, 255],

-	"antiquewhite": [250, 235, 215],

-	"aqua": [0, 255, 255],

-	"aquamarine": [127, 255, 212],

-	"azure": [240, 255, 255],

-	"beige": [245, 245, 220],

-	"bisque": [255, 228, 196],

-	"black": [0, 0, 0],

-	"blanchedalmond": [255, 235, 205],

-	"blue": [0, 0, 255],

-	"blueviolet": [138, 43, 226],

-	"brown": [165, 42, 42],

-	"burlywood": [222, 184, 135],

-	"cadetblue": [95, 158, 160],

-	"chartreuse": [127, 255, 0],

-	"chocolate": [210, 105, 30],

-	"coral": [255, 127, 80],

-	"cornflowerblue": [100, 149, 237],

-	"cornsilk": [255, 248, 220],

-	"crimson": [220, 20, 60],

-	"cyan": [0, 255, 255],

-	"darkblue": [0, 0, 139],

-	"darkcyan": [0, 139, 139],

-	"darkgoldenrod": [184, 134, 11],

-	"darkgray": [169, 169, 169],

-	"darkgreen": [0, 100, 0],

-	"darkgrey": [169, 169, 169],

-	"darkkhaki": [189, 183, 107],

-	"darkmagenta": [139, 0, 139],

-	"darkolivegreen": [85, 107, 47],

-	"darkorange": [255, 140, 0],

-	"darkorchid": [153, 50, 204],

-	"darkred": [139, 0, 0],

-	"darksalmon": [233, 150, 122],

-	"darkseagreen": [143, 188, 143],

-	"darkslateblue": [72, 61, 139],

-	"darkslategray": [47, 79, 79],

-	"darkslategrey": [47, 79, 79],

-	"darkturquoise": [0, 206, 209],

-	"darkviolet": [148, 0, 211],

-	"deeppink": [255, 20, 147],

-	"deepskyblue": [0, 191, 255],

-	"dimgray": [105, 105, 105],

-	"dimgrey": [105, 105, 105],

-	"dodgerblue": [30, 144, 255],

-	"firebrick": [178, 34, 34],

-	"floralwhite": [255, 250, 240],

-	"forestgreen": [34, 139, 34],

-	"fuchsia": [255, 0, 255],

-	"gainsboro": [220, 220, 220],

-	"ghostwhite": [248, 248, 255],

-	"gold": [255, 215, 0],

-	"goldenrod": [218, 165, 32],

-	"gray": [128, 128, 128],

-	"green": [0, 128, 0],

-	"greenyellow": [173, 255, 47],

-	"grey": [128, 128, 128],

-	"honeydew": [240, 255, 240],

-	"hotpink": [255, 105, 180],

-	"indianred": [205, 92, 92],

-	"indigo": [75, 0, 130],

-	"ivory": [255, 255, 240],

-	"khaki": [240, 230, 140],

-	"lavender": [230, 230, 250],

-	"lavenderblush": [255, 240, 245],

-	"lawngreen": [124, 252, 0],

-	"lemonchiffon": [255, 250, 205],

-	"lightblue": [173, 216, 230],

-	"lightcoral": [240, 128, 128],

-	"lightcyan": [224, 255, 255],

-	"lightgoldenrodyellow": [250, 250, 210],

-	"lightgray": [211, 211, 211],

-	"lightgreen": [144, 238, 144],

-	"lightgrey": [211, 211, 211],

-	"lightpink": [255, 182, 193],

-	"lightsalmon": [255, 160, 122],

-	"lightseagreen": [32, 178, 170],

-	"lightskyblue": [135, 206, 250],

-	"lightslategray": [119, 136, 153],

-	"lightslategrey": [119, 136, 153],

-	"lightsteelblue": [176, 196, 222],

-	"lightyellow": [255, 255, 224],

-	"lime": [0, 255, 0],

-	"limegreen": [50, 205, 50],

-	"linen": [250, 240, 230],

-	"magenta": [255, 0, 255],

-	"maroon": [128, 0, 0],

-	"mediumaquamarine": [102, 205, 170],

-	"mediumblue": [0, 0, 205],

-	"mediumorchid": [186, 85, 211],

-	"mediumpurple": [147, 112, 219],

-	"mediumseagreen": [60, 179, 113],

-	"mediumslateblue": [123, 104, 238],

-	"mediumspringgreen": [0, 250, 154],

-	"mediumturquoise": [72, 209, 204],

-	"mediumvioletred": [199, 21, 133],

-	"midnightblue": [25, 25, 112],

-	"mintcream": [245, 255, 250],

-	"mistyrose": [255, 228, 225],

-	"moccasin": [255, 228, 181],

-	"navajowhite": [255, 222, 173],

-	"navy": [0, 0, 128],

-	"oldlace": [253, 245, 230],

-	"olive": [128, 128, 0],

-	"olivedrab": [107, 142, 35],

-	"orange": [255, 165, 0],

-	"orangered": [255, 69, 0],

-	"orchid": [218, 112, 214],

-	"palegoldenrod": [238, 232, 170],

-	"palegreen": [152, 251, 152],

-	"paleturquoise": [175, 238, 238],

-	"palevioletred": [219, 112, 147],

-	"papayawhip": [255, 239, 213],

-	"peachpuff": [255, 218, 185],

-	"peru": [205, 133, 63],

-	"pink": [255, 192, 203],

-	"plum": [221, 160, 221],

-	"powderblue": [176, 224, 230],

-	"purple": [128, 0, 128],

-	"rebeccapurple": [102, 51, 153],

-	"red": [255, 0, 0],

-	"rosybrown": [188, 143, 143],

-	"royalblue": [65, 105, 225],

-	"saddlebrown": [139, 69, 19],

-	"salmon": [250, 128, 114],

-	"sandybrown": [244, 164, 96],

-	"seagreen": [46, 139, 87],

-	"seashell": [255, 245, 238],

-	"sienna": [160, 82, 45],

-	"silver": [192, 192, 192],

-	"skyblue": [135, 206, 235],

-	"slateblue": [106, 90, 205],

-	"slategray": [112, 128, 144],

-	"slategrey": [112, 128, 144],

-	"snow": [255, 250, 250],

-	"springgreen": [0, 255, 127],

-	"steelblue": [70, 130, 180],

-	"tan": [210, 180, 140],

-	"teal": [0, 128, 128],

-	"thistle": [216, 191, 216],

-	"tomato": [255, 99, 71],

-	"turquoise": [64, 224, 208],

-	"violet": [238, 130, 238],

-	"wheat": [245, 222, 179],

-	"white": [255, 255, 255],

-	"whitesmoke": [245, 245, 245],

-	"yellow": [255, 255, 0],

-	"yellowgreen": [154, 205, 50]

-};

diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-coverage/CHANGELOG.md b/src/cobalt/debug/remote/devtools/node_modules/karma-coverage/CHANGELOG.md
deleted file mode 100644
index f1a9e0d..0000000
--- a/src/cobalt/debug/remote/devtools/node_modules/karma-coverage/CHANGELOG.md
+++ /dev/null
@@ -1,370 +0,0 @@
-<a name="1.1.2"></a>
-## [1.1.2](https://github.com/karma-runner/karma-coverage/compare/v1.1.1...v1.1.2) (2018-05-03)
-
-
-### Bug Fixes
-
-* **build:** Update to lodash 4 ([d6d21d2](https://github.com/karma-runner/karma-coverage/commit/d6d21d2)), closes [#242](https://github.com/karma-runner/karma-coverage/issues/242)
-* **reporter:** replace colons in the output path ([3b2bffa](https://github.com/karma-runner/karma-coverage/commit/3b2bffa))
-
-
-### BREAKING CHANGES
-
-* **reporter:** the output folder names change, they no longer contain `:`
-
-
-
-<a name="1.1.1"></a>
-## [1.1.1](https://github.com/karma-runner/karma-coverage/compare/v1.1.0...v1.1.1) (2016-07-23)
-
-
-### Bug Fixes
-
-* remove usage of the deprecated helper._ ([dacf9e9](https://github.com/karma-runner/karma-coverage/commit/dacf9e9))
-
-
-
-<a name="1.1.0"></a>
-# [1.1.0](https://github.com/karma-runner/karma-coverage/compare/v0.5.5...v1.1.0) (2016-07-07)
-
-
-### Features
-
-* **reporter:** Add callbacks for "writeReport" and "onExit" methods ([7e20759](https://github.com/karma-runner/karma-coverage/commit/7e20759))
-
-
-
-<a name="1.0.0"></a>
-# [1.0.0](https://github.com/karma-runner/karma-coverage/compare/v0.5.5...v1.0.0) (2016-05-04)
-
-
-
-<a name="0.5.5"></a>
-## [0.5.5](https://github.com/karma-runner/karma-coverage/compare/v0.5.4...v0.5.5) (2016-03-07)
-
-
-### Bug Fixes
-
-* **in-memory-reporter:** Fix bug in new InMemoryReport, now using null-checks ([051cffd](https://github.com/karma-runner/karma-coverage/commit/051cffd))
-
-
-
-<a name="0.5.4"></a>
-## [0.5.4](https://github.com/karma-runner/karma-coverage/compare/v0.5.3...v0.5.4) (2016-03-03)
-
-
-### Bug Fixes
-
-* **preprocessor:** Call done with error message instead of populating instrumentedCode ([c56e4de](https://github.com/karma-runner/karma-coverage/commit/c56e4de))
-* **preprocessor:** Support CoffeeScript when using  RequireJS ([e941e0c](https://github.com/karma-runner/karma-coverage/commit/e941e0c)), closes [#177](https://github.com/karma-runner/karma-coverage/issues/177)
-* **preprocessor:** Use _.includes instead of _.contains ([3c769d5](https://github.com/karma-runner/karma-coverage/commit/3c769d5)), closes [#212](https://github.com/karma-runner/karma-coverage/issues/212)
-
-
-
-<a name="0.5.3"></a>
-## 0.5.3 (2015-10-20)
-
-
-### Bug Fixes
-
-* Update (dev)dependencies, include missing peer dependency and fix linter errors ([bb73158](https://github.com/karma-runner/karma-coverage/commit/bb73158))
-
-
-
-<a name="0.5.2"></a>
-## 0.5.2 (2015-09-08)
-
-
-### Bug Fixes
-
-* **preprocessor:** Reset coverageObjRegex before each use ([ef3f45c](https://github.com/karma-runner/karma-coverage/commit/ef3f45c))
-
-
-
-<a name="0.5.1"></a>
-## 0.5.1 (2015-08-28)
-
-
-### Bug Fixes
-
-* **preprocessor:** Change paths in windows to use backslash ([b0eecbe](https://github.com/karma-runner/karma-coverage/commit/b0eecbe)), closes [#178](https://github.com/karma-runner/karma-coverage/issues/178)
-* **preprocessor:** Resolve all paths properly ([098182f](https://github.com/karma-runner/karma-coverage/commit/098182f)), closes [#65](https://github.com/karma-runner/karma-coverage/issues/65)
-
-
-
-<a name="0.5.0"></a>
-# 0.5.0 (2015-08-06)
-
-
-### Bug Fixes
-
-* **preprocessor:** use absolute paths ([27e0b09](https://github.com/karma-runner/karma-coverage/commit/27e0b09))
-
-
-
-<a name"0.4.2"></a>
-### 0.4.2 (2015-06-12)
-
-
-#### Bug Fixes
-
-* **preprocessor:** Use `_.contains` instead of `_.includes` to avoid braking with `lodash@2` ([411beb1f](https://github.com/karma-runner/karma-coverage/commit/411beb1f))
-
-
-<a name"0.4.1"></a>
-### 0.4.1 (2015-06-09)
-
-#### Features
-
-* **preprocessor:** Add sourcemap support ([de3b738b](https://github.com/karma-runner/karma-coverage/commit/de3b738b), closes [#109](https://github.com/karma-runner/karma-coverage/issues/109))
-* **reporter:** add check coverage thresholds ([bc63b158](https://github.com/karma-runner/karma-coverage/commit/bc63b158), closes [#21](https://github.com/karma-runner/karma-coverage/issues/21))
-
-
-<a name"0.4.0"></a>
-## 0.4.0 (2015-06-09)
-
-
-#### Bug Fixes
-
-* Drop karma from peerDependencies ([eebcc989](https://github.com/karma-runner/karma-coverage/commit/eebcc989))
-* do not dispose collectors before they are written ([9816cd14](https://github.com/karma-runner/karma-coverage/commit/9816cd14))
-* reporter allow using a externally provided source cachere for reporters change ` ([781c126f](https://github.com/karma-runner/karma-coverage/commit/781c126f))
-* watermarks are not passed to reporters ([a9044055](https://github.com/karma-runner/karma-coverage/commit/a9044055), closes [#143](https://github.com/karma-runner/karma-coverage/issues/143), [#144](https://github.com/karma-runner/karma-coverage/issues/144))
-* when using browserify dont create source code caching ([50030df1](https://github.com/karma-runner/karma-coverage/commit/50030df1))
-
-
-#### Breaking Changes
-
-* Karma is no longer a `peerDependency` so it needs to be installed
-manually. Ref https://github.com/karma-runner/integration-tests/issues/5 ([eebcc989](https://github.com/karma-runner/karma-coverage/commit/eebcc989))
-
-
-<a name"0.3.1"></a>
-### 0.3.1 (2015-06-09)
-
-
-#### Bug Fixes
-
-* skip directory creation when reporting to console ([42c9e0a8](https://github.com/karma-runner/karma-coverage/commit/42c9e0a8), closes [#24](https://github.com/karma-runner/karma-coverage/issues/24))
-
-
-#### Features
-
-* adding support for including all sources in coverage data ([18091753](https://github.com/karma-runner/karma-coverage/commit/18091753))
-
-
-<a name"0.3.0"></a>
-## 0.3.0 (2015-06-09)
-
-
-#### Features
-
-* **preprocessor:** free instrumenter ([626e7b0c](https://github.com/karma-runner/karma-coverage/commit/626e7b0c), closes [#101](https://github.com/karma-runner/karma-coverage/issues/101))
-
-
-#### Breaking Changes
-
-* Karma-coverage does not ship with additional instrumenter. You need to explicitly install the instrumenter you need.
-
-Removed **Ibrik** instrumenter that need to be installed explicitly.
-
-Quick list of known community instrumenters :
-- [Ibrik](https://github.com/Constellation/ibrik) (CoffeeScript files instrumenter).
-- [Ismailia](https://github.com/Spote/ismailia) (ES6 files instrumenter using Traceur).
-- [Isparta](https://github.com/douglasduteil/isparta) (ES6 files instrumenter using 6to5).
-
- ([626e7b0c](https://github.com/karma-runner/karma-coverage/commit/626e7b0c))
-
-
-<a name"0.2.7"></a>
-### 0.2.7 (2015-06-09)
-
-
-#### Bug Fixes
-
-* add in-memory source code caching to support detail reports on compiled CoffeeSc ([c1e542a5](https://github.com/karma-runner/karma-coverage/commit/c1e542a5))
-
-
-<a name"0.2.6"></a>
-### 0.2.6 (2015-06-09)
-
-
-#### Bug Fixes
-
-* reporters can be configured individually ([adcb8e69](https://github.com/karma-runner/karma-coverage/commit/adcb8e69))
-
-
-<a name"0.2.5"></a>
-### 0.2.5 (2015-06-09)
-
-
-#### Features
-
-* new `subdir` option ([309dad4e](https://github.com/karma-runner/karma-coverage/commit/309dad4e))
-
-
-<a name"0.2.4"></a>
-### 0.2.4 (2015-06-09)
-
-
-#### Bug Fixes
-
-* optional option no longer trigger an error when omitted ([a2cdf569](https://github.com/karma-runner/karma-coverage/commit/a2cdf569))
-
-
-<a name"0.2.3"></a>
-### 0.2.3 (2015-06-09)
-
-
-#### Features
-
-* **config:** instrumenter override option ([ee3e68e8](https://github.com/karma-runner/karma-coverage/commit/ee3e68e8))
-
-
-<a name"0.2.2"></a>
-### 0.2.2 (2015-06-09)
-
-
-#### Features
-
-* update the dependencies ([77d73e2b](https://github.com/karma-runner/karma-coverage/commit/77d73e2b))
-
-
-<a name"0.2.1"></a>
-### 0.2.1 (2015-06-09)
-
-
-#### Features
-
-* update istanbul to 0.2.3, ibrik to 1.1.1 ([9064ec1e](https://github.com/karma-runner/karma-coverage/commit/9064ec1e))
-
-
-<a name"0.2.0"></a>
-## 0.2.0 (2015-06-09)
-
-
-#### Features
-
-* no longer write json unless configured ([1256fb8b](https://github.com/karma-runner/karma-coverage/commit/1256fb8b))
-
-
-#### Breaking Changes
-
-* No json coverage is generated by default. If you want that, please use `json` reporter:
-
-```js
-coverageReporter: {
-  type: 'json'
-}
-
-// or with multiple reporters
-coverageReporter: {
-  reporters: [
-    {type: 'html', dir: 'coverage'},
-    {type: 'json', dir: 'coverage'},
-  ]
-}
-```
-
- ([1256fb8b](https://github.com/karma-runner/karma-coverage/commit/1256fb8b))
-
-
-<a name"0.1.5"></a>
-### 0.1.5 (2015-06-09)
-
-
-#### Bug Fixes
-
-* use output dir per reporter ([dac46788](https://github.com/karma-runner/karma-coverage/commit/dac46788), closes [#42](https://github.com/karma-runner/karma-coverage/issues/42))
-
-
-#### Features
-
-* revert update istanbul ([5b8937ab](https://github.com/karma-runner/karma-coverage/commit/5b8937ab))
-* update istanbul ([b696c3e3](https://github.com/karma-runner/karma-coverage/commit/b696c3e3))
-
-
-<a name"0.1.4"></a>
-### 0.1.4 (2015-06-09)
-
-
-#### Features
-
-* Update ibrik version to 1.0.1 ([b50f2d53](https://github.com/karma-runner/karma-coverage/commit/b50f2d53), closes [#39](https://github.com/karma-runner/karma-coverage/issues/39))
-
-
-<a name"0.1.3"></a>
-### 0.1.3 (2015-06-09)
-
-
-#### Bug Fixes
-
-* update to work with Karma 0.11 ([89c98177](https://github.com/karma-runner/karma-coverage/commit/89c98177))
-
-
-#### Features
-
-* update instanbul ([24126e72](https://github.com/karma-runner/karma-coverage/commit/24126e72))
-* support coverage for coffee script ([9f802c1c](https://github.com/karma-runner/karma-coverage/commit/9f802c1c))
-* log where the coverage reports are generated ([c9ef5c9f](https://github.com/karma-runner/karma-coverage/commit/c9ef5c9f))
-* add a default config and normalize outputFile path ([027fa4fc](https://github.com/karma-runner/karma-coverage/commit/027fa4fc))
-
-
-<a name"0.1.2"></a>
-### 0.1.2 (2015-06-09)
-
-
-<a name"0.1.1"></a>
-### 0.1.1 (2015-06-09)
-
-
-#### Bug Fixes
-
-* update to work with Karma 0.11 ([b744d6f2](https://github.com/karma-runner/karma-coverage/commit/b744d6f2))
-
-
-<a name"0.1.0"></a>
-## 0.1.0 (2015-06-09)
-
-
-<a name"0.0.5"></a>
-### 0.0.5 (2015-06-09)
-
-
-#### Bug Fixes
-
-* delay collector disposal until all file writing has completed. ([75c4db0e](https://github.com/karma-runner/karma-coverage/commit/75c4db0e))
-
-
-#### Features
-
-* allow multiple report types ([4a9afb62](https://github.com/karma-runner/karma-coverage/commit/4a9afb62))
-
-
-<a name"0.0.4"></a>
-### 0.0.4 (2015-06-09)
-
-
-#### Features
-
-* do not preprocess files if coverage reporter is not used ([277a1ad9](https://github.com/karma-runner/karma-coverage/commit/277a1ad9), closes [#7](https://github.com/karma-runner/karma-coverage/issues/7))
-
-
-<a name"0.0.3"></a>
-### 0.0.3 (2015-06-09)
-
-
-#### Bug Fixes
-
-* handle no result ([5eca4882](https://github.com/karma-runner/karma-coverage/commit/5eca4882))
-
-
-#### Features
-
-* support coverage per spec ([385b6e1f](https://github.com/karma-runner/karma-coverage/commit/385b6e1f))
-
-
-<a name"0.0.2"></a>
-### 0.0.2 (2015-06-09)
-
-* Initial release
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-coverage/LICENSE b/src/cobalt/debug/remote/devtools/node_modules/karma-coverage/LICENSE
deleted file mode 100644
index 4072734..0000000
--- a/src/cobalt/debug/remote/devtools/node_modules/karma-coverage/LICENSE
+++ /dev/null
@@ -1,20 +0,0 @@
-The MIT License
-
-Copyright (C) 2011-2013 Google, Inc.
-
-Permission is hereby granted, free of charge, to any person obtaining a copy of
-this software and associated documentation files (the "Software"), to deal in
-the Software without restriction, including without limitation the rights to
-use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
-of the Software, and to permit persons to whom the Software is furnished to do
-so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
-FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
-COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
-IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
\ No newline at end of file
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-coverage/LICENSE-istanbul b/src/cobalt/debug/remote/devtools/node_modules/karma-coverage/LICENSE-istanbul
deleted file mode 100644
index 45a650b..0000000
--- a/src/cobalt/debug/remote/devtools/node_modules/karma-coverage/LICENSE-istanbul
+++ /dev/null
@@ -1,24 +0,0 @@
-Copyright 2012 Yahoo! Inc.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-    * Redistributions of source code must retain the above copyright
-      notice, this list of conditions and the following disclaimer.
-    * Redistributions in binary form must reproduce the above copyright
-      notice, this list of conditions and the following disclaimer in the
-      documentation and/or other materials provided with the distribution.
-    * Neither the name of the Yahoo! Inc. nor the
-      names of its contributors may be used to endorse or promote products
-      derived from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL YAHOO! INC. BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-coverage/README.md b/src/cobalt/debug/remote/devtools/node_modules/karma-coverage/README.md
deleted file mode 100644
index c260d9b..0000000
--- a/src/cobalt/debug/remote/devtools/node_modules/karma-coverage/README.md
+++ /dev/null
@@ -1,122 +0,0 @@
-# karma-coverage
-
-[![js-standard-style](https://img.shields.io/badge/code%20style-standard-brightgreen.svg?style=flat-square)](https://github.com/karma-runner/karma-coverage)
- [![npm version](https://img.shields.io/npm/v/karma-coverage.svg?style=flat-square)](https://www.npmjs.com/package/karma-coverage) [![npm downloads](https://img.shields.io/npm/dm/karma-coverage.svg?style=flat-square)](https://www.npmjs.com/package/karma-coverage)
-
-[![Build Status](https://img.shields.io/travis/karma-runner/karma-coverage/master.svg?style=flat-square)](https://travis-ci.org/karma-runner/karma-coverage) [![Dependency Status](https://img.shields.io/david/karma-runner/karma-coverage.svg?style=flat-square)](https://david-dm.org/karma-runner/karma-coverage) [![devDependency Status](https://img.shields.io/david/dev/karma-runner/karma-coverage.svg?style=flat-square)](https://david-dm.org/karma-runner/karma-coverage#info=devDependencies)
-
-> Generate code coverage using [Istanbul].
-
-## Installation
-
-The easiest way is to install `karma-coverage` as a `devDependency`,
-by running
-
-```bash
-npm install karma karma-coverage --save-dev
-```
-
-## Configuration
-
-For configuration details see [docs/configuration](docs/configuration.md).
-
-## Examples
-
-### Basic
-
-```javascript
-// karma.conf.js
-module.exports = function(config) {
-  config.set({
-    files: [
-      'src/**/*.js',
-      'test/**/*.js'
-    ],
-
-    // coverage reporter generates the coverage
-    reporters: ['progress', 'coverage'],
-
-    preprocessors: {
-      // source files, that you wanna generate coverage for
-      // do not include tests or libraries
-      // (these files will be instrumented by Istanbul)
-      'src/**/*.js': ['coverage']
-    },
-
-    // optionally, configure the reporter
-    coverageReporter: {
-      type : 'html',
-      dir : 'coverage/'
-    }
-  });
-};
-```
-### CoffeeScript
-
-For an example on how to use with [CoffeeScript](http://coffeescript.org/)
-see [examples/coffee](examples/coffee). For an example of how to use with
-CoffeeScript and the RequireJS module loader, see
-[examples/coffee-requirejs](examples/coffee-requirejs) (and also see
-the `useJSExtensionForCoffeeScript` option in
-[docs/configuration.md](docs/configuration.md)).
-
-### Advanced, multiple reporters
-
-```javascript
-// karma.conf.js
-module.exports = function(config) {
-  config.set({
-    files: [
-      'src/**/*.js',
-      'test/**/*.js'
-    ],
-    reporters: ['progress', 'coverage'],
-    preprocessors: {
-      'src/**/*.js': ['coverage']
-    },
-    coverageReporter: {
-      // specify a common output directory
-      dir: 'build/reports/coverage',
-      reporters: [
-        // reporters not supporting the `file` property
-        { type: 'html', subdir: 'report-html' },
-        { type: 'lcov', subdir: 'report-lcov' },
-        // reporters supporting the `file` property, use `subdir` to directly
-        // output them in the `dir` directory
-        { type: 'cobertura', subdir: '.', file: 'cobertura.txt' },
-        { type: 'lcovonly', subdir: '.', file: 'report-lcovonly.txt' },
-        { type: 'teamcity', subdir: '.', file: 'teamcity.txt' },
-        { type: 'text', subdir: '.', file: 'text.txt' },
-        { type: 'text-summary', subdir: '.', file: 'text-summary.txt' },
-      ]
-    }
-  });
-};
-```
-
-### FAQ
-
-#### Don't minify instrumenter output
-
-When using the istanbul instrumenter (default), you can disable code compaction by adding the following to your configuration.
-
-```javascript
-// karma.conf.js
-module.exports = function(config) {
-  config.set({
-    coverageReporter: {
-      instrumenterOptions: {
-        istanbul: { noCompact: true }
-      }
-    }
-  });
-};
-```
-
-----
-
-For more information on Karma see the [homepage].
-
-
-[homepage]: http://karma-runner.github.com
-[Istanbul]: https://github.com/gotwarlost/istanbul
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-coverage/docs/configuration.md b/src/cobalt/debug/remote/devtools/node_modules/karma-coverage/docs/configuration.md
deleted file mode 100644
index f4ee15d..0000000
--- a/src/cobalt/debug/remote/devtools/node_modules/karma-coverage/docs/configuration.md
+++ /dev/null
@@ -1,272 +0,0 @@
-# Configuration
-
-### `type`
-
-**Type:** String
-
-**Description:** Specify a reporter type.
-
-**Possible Values:**
-  * `html` (default)
-  * `lcov` (lcov and html)
-  * `lcovonly`
-  * `text`
-  * `text-summary`
-  * `cobertura` (xml format supported by Jenkins)
-  * `teamcity` (code coverage System Messages for TeamCity)
-  * `json` (json format supported by [`grunt-istanbul-coverage`](https://github.com/daniellmb/grunt-istanbul-coverage))
-  * `json-summary`
-  * `in-memory` (supported since v0.5.4)
-  * `none` (Does nothing. Use to specify that no reporting is needed)
-
-### `dir`
-
-**Type:** String
-
-**Description:** This will be used to output coverage reports. When
-  you set a relative path, the directory is resolved against the `basePath`.
-
-### `subdir`
-
-**Type:** String
-
-**Description**: This will be used in complement of the `coverageReporter.dir`
-option to generate the full output directory path. By default, the output
-directory is set to `./config.dir/BROWSER_NAME/`, this option allows you to
-custom the second part. You can either pass a `string` or a `function` which will be
-called with the browser name passed as the only argument.
-
-```javascript
-coverageReporter: {
-  dir: 'coverage',
-  subdir: '.'
-  // Would output the results into: .'/coverage/'
-}
-```
-
-```javascript
-coverageReporter: {
-  dir: 'coverage',
-  subdir: 'report'
-  // Would output the results into: .'/coverage/report/'
-}
-```
-
-```javascript
-coverageReporter: {
-  dir: 'coverage',
-  subdir: function(browser) {
-    // normalization process to keep a consistent browser name across different
-    // OS
-    return browser.toLowerCase().split(/[ /-]/)[0];
-  }
-  // Would output the results into: './coverage/firefox/'
-}
-```
-
-### `file`
-
-**Type:** String
-
-**Description:** If you use one of these reporters, `cobertura`, `lcovonly`, `teamcity`, `text` or `text-summary`,you may set the `file` option to specify the output file.
-
-```javascript
-coverageReporter: {
-  type : 'text',
-  dir : 'coverage/',
-  file : 'coverage.txt'
-}
-```
-
-### `check`
-
-**Type:** Object
-
-**Description:** This will be used to configure minimum threshold enforcement for coverage results. If the thresholds are not met, karma will return failure. Thresholds, when specified as a positive number are taken to be the minimum percentage required. When a threshold is specified as a negative number it represents the maximum number of uncovered entities allowed.
-
-For example, `statements: 90` implies minimum statement coverage is 90%. `statements: -10` implies that no more than 10 uncovered statements are allowed.
-
-`global` applies to all files together and `each` on a per-file basis. A list of files or patterns can be excluded from enforcement via the `excludes` property. On a per-file or pattern basis, per-file thresholds can be overridden via the `overrides` property.
-
-```javascript
-coverageReporter: {
-  check: {
-    global: {
-      statements: 50,
-      branches: 50,
-      functions: 50,
-      lines: 50,
-      excludes: [
-        'foo/bar/**/*.js'
-      ]
-    },
-    each: {
-      statements: 50,
-      branches: 50,
-      functions: 50,
-      lines: 50,
-      excludes: [
-        'other/directory/**/*.js'
-      ],
-      overrides: {
-        'baz/component/**/*.js': {
-          statements: 98
-        }
-      }
-    }
-  }
-}
-```
-
-### `watermarks`
-
-**Type:** Object
-
-**Description:** This will be used to set the coverage threshold colors. The first number is the threshold between Red and Yellow. The second number is the threshold between Yellow and Green.
-
-```javascript
-coverageReporter: {
-  watermarks: {
-    statements: [ 50, 75 ],
-    functions: [ 50, 75 ],
-    branches: [ 50, 75 ],
-    lines: [ 50, 75 ]
-  }
-}
-```
-
-### `includeAllSources`
-
-**Type:** Boolean
-
-**Description:** You can opt to include all sources files, as indicated by the coverage preprocessor, in your code coverage data, even if there are no tests covering them. (Default `false`)
-
-```javascript
-coverageReporter: {
-  type : 'text',
-  dir : 'coverage/',
-  file : 'coverage.txt',
-  includeAllSources: true
-}
-```
-
-### `sourceStore`
-
-**Type:** istanbul.Store
-
-**Description:** You can opt to specify a source store allowing for external coverage collectors access to the instrumented code.
-
-```javascript
-coverageReporter: {
-  type : 'text',
-  dir : 'coverage/',
-  file : 'coverage.txt',
-  sourceStore : require('istanbul').Store.create('fslookup')
-}
-```
-
-### `reporters`
-
-**Type:** Array of Objects
-
-**Description:** You can use multiple reporters, by providing array of options.
-
-```javascript
-coverageReporter: {
-  reporters:[
-    {type: 'html', dir:'coverage/'},
-    {type: 'teamcity'},
-    {type: 'text-summary'}
-  ],
-}
-```
-
-### `instrumenter`
-
-**Type:** Object
-
-**Description:** Karma-coverage can infers the instrumenter regarding of the file extension. It is possible to override this behavior and point out an
-instrumenter for the files matching a specific pattern.
-To do so, you need to declare an object under with the keys represents the
-pattern to match, and the instrumenter to apply. The matching will be done
-using [minimatch](https://github.com/isaacs/minimatch).
-If two patterns match, the last one will take the precedence.
-
-For example you can use [Ibrik](https://github.com/Constellation/ibrik) (an
-[Istanbul](https://github.com/gotwarlost/istanbul) analog for
-CoffeeScript files) with:
-
-```javascript
-coverageReporter: {
-  instrumenters: { ibrik : require('ibrik') },
-  instrumenter: {
-    '**/*.coffee': 'ibrik'
-  },
-  // ...
-}
-```
-
-You can pass options additional options to specific instrumenter with:
-
-```javascript
-var to5Options = { experimental: true };
-
-// [...]
-
-coverageReporter: {
-  instrumenters: { isparta : require('isparta') },
-  instrumenter: {
-    '**/*.js': 'isparta'
-  },
-  instrumenterOptions: {
-    isparta: { to5 : to5Options }
-  }
-}
-```
-
-### `useJSExtensionForCoffeeScript`
-
-**Type:** boolean
-
-**Description:** If set to `true`, then CoffeeScript files instrumented
-with [Ibrik](https://github.com/Constellation/ibrik) will use the `.js`
-extension for the transpiled source (without this option, the JavaScript
-files will keep the original `.coffee` extension). This option is required
-if you use a module loader such as [RequireJS](http://requirejs.org/) that
-expects files to use a `.js` extension.
-
-Example of using RequireJS with CoffeeScript:
-
-```coffeescript
-coverageReporter:
-  useJSExtensionForCoffeeScript: true
-  instrumenters:
-    ibrik : require('ibrik')
-  instrumenter:
-    '**/*.coffee': 'ibrik'
-# ...
-```
-
-### `reporter[type='in-memory']`
-
-This is a different kind of reporter. Instead of writing a report physicaly 
-to disk, it raises an event `coverage_complete`. This event can only be caught 
-when using karma via the [public api](http://karma-runner.github.io/0.13/dev/public-api.html)
-
-```javascript
-var Server = require('karma').Server
-var server = new Server({files: [/*...*/], port: 9876, coverageReporter: { type: 'in-memory' }, preprocessors: { '**/*.js': 'coverage' }, reporters: ['coverage'] }, function(exitCode) {
-  console.log('Karma has exited with ' + exitCode)
-  process.exit(exitCode)
-})
-
-server.on('coverage_complete', function (browser, coverageReport) {
-  console.log('Covrage report: ', coverageReport)
-})
-
-server.start();
-
-karma.runner.run({port: 9876});
-```
-
-The coverage report will be a merged result in json format.
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-coverage/examples/coffee-requirejs/calculator.coffee b/src/cobalt/debug/remote/devtools/node_modules/karma-coverage/examples/coffee-requirejs/calculator.coffee
deleted file mode 100644
index d01e1a1..0000000
--- a/src/cobalt/debug/remote/devtools/node_modules/karma-coverage/examples/coffee-requirejs/calculator.coffee
+++ /dev/null
@@ -1,9 +0,0 @@
-define [], ->
-
-  # Some code under test
-  plus: (a, b) ->
-    a + b
-
-  # not covered
-  minus: (a, b) ->
-    a - b
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-coverage/examples/coffee-requirejs/karma.conf.coffee b/src/cobalt/debug/remote/devtools/node_modules/karma-coverage/examples/coffee-requirejs/karma.conf.coffee
deleted file mode 100644
index 3078619..0000000
--- a/src/cobalt/debug/remote/devtools/node_modules/karma-coverage/examples/coffee-requirejs/karma.conf.coffee
+++ /dev/null
@@ -1,53 +0,0 @@
-module.exports = (config) ->
-  config.set
-    frameworks: ['mocha', 'requirejs']
-
-    files: [
-      # We do not want any files to execute automatically
-      {pattern: 'calculator.coffee', included: false}
-      {pattern: 'test.coffee', included: false}
-
-      # Except for this one. This one shall execute.
-      'requirejs.karma.coffee'
-    ]
-
-    browsers: ['Firefox']
-
-    coffeePreprocessor:
-      options:
-        sourceMap: true
-
-    preprocessors:
-      # source files, that you wanna generate coverage for
-      # do not include tests or libraries
-      # (these files will be instrumented by Istanbul via Ibrik unless
-      # specified otherwise in coverageReporter.instrumenter)
-      'calculator.coffee': 'coverage'
-
-      # note: project files will already be converted to
-      # JavaScript via coverage preprocessor.
-      # Thus, you'll have to limit the CoffeeScript preprocessor
-      # to uncovered files.
-      'test.coffee': 'coffee'
-      'requirejs.karma.coffee': 'coffee'
-
-    coverageReporter:
-      type: 'text-summary'
-      useJSExtensionForCoffeeScript: true
-      instrumenters:
-        ibrik : require('ibrik')
-      instrumenter:
-        '**/*.coffee': 'ibrik'
-
-    # coverage reporter generates the coverage
-    reporters: ['dots', 'coverage']
-
-    plugins: [
-      require('../../lib/index')
-      'karma-mocha'
-      'karma-requirejs'
-      'karma-coffee-preprocessor'
-      'karma-firefox-launcher'
-    ]
-
-    singleRun: true
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-coverage/examples/coffee-requirejs/package.json b/src/cobalt/debug/remote/devtools/node_modules/karma-coverage/examples/coffee-requirejs/package.json
deleted file mode 100644
index 6bfe612..0000000
--- a/src/cobalt/debug/remote/devtools/node_modules/karma-coverage/examples/coffee-requirejs/package.json
+++ /dev/null
@@ -1,22 +0,0 @@
-{
-  "author": "Lloyd Smith II <lloyd.smith@gmail.com>", 
-  "dependencies": {}, 
-  "description": "Demonstrate the usage of karma-coverage with CoffeeScript", 
-  "devDependencies": {
-    "coffee-script": "latest", 
-    "ibrik": "^2.0.0", 
-    "karma": "^0.13.9", 
-    "karma-coffee-preprocessor": "latest", 
-    "karma-firefox-launcher": "latest", 
-    "karma-mocha": "latest", 
-    "karma-requirejs": "^0.2.2", 
-    "requirejs": "^2.1.20"
-  }, 
-  "license": "MIT", 
-  "main": "", 
-  "name": "karma-coverage-coffee-example", 
-  "scripts": {
-    "test": "./node_modules/karma/bin/karma start"
-  }, 
-  "version": "1.0.0"
-}
\ No newline at end of file
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-coverage/examples/coffee-requirejs/requirejs.karma.coffee b/src/cobalt/debug/remote/devtools/node_modules/karma-coverage/examples/coffee-requirejs/requirejs.karma.coffee
deleted file mode 100644
index 30e83a9..0000000
--- a/src/cobalt/debug/remote/devtools/node_modules/karma-coverage/examples/coffee-requirejs/requirejs.karma.coffee
+++ /dev/null
@@ -1,6 +0,0 @@
-# A minimal requirejs configuration
-require.config
-  baseUrl: '/base'
-  deps: ['test']
-  callback: ->
-    window.__karma__.start()
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-coverage/examples/coffee-requirejs/test.coffee b/src/cobalt/debug/remote/devtools/node_modules/karma-coverage/examples/coffee-requirejs/test.coffee
deleted file mode 100644
index 95aa125..0000000
--- a/src/cobalt/debug/remote/devtools/node_modules/karma-coverage/examples/coffee-requirejs/test.coffee
+++ /dev/null
@@ -1,9 +0,0 @@
-define ['calculator'], (calculator) ->
-
-  describe 'calculator', ->
-
-    it 'should pass', ->
-      true is true
-
-    it 'should work', ->
-      calculator.plus(1, 2) is 3
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-coverage/examples/coffee/karma.conf.coffee b/src/cobalt/debug/remote/devtools/node_modules/karma-coverage/examples/coffee/karma.conf.coffee
deleted file mode 100644
index 8682625..0000000
--- a/src/cobalt/debug/remote/devtools/node_modules/karma-coverage/examples/coffee/karma.conf.coffee
+++ /dev/null
@@ -1,45 +0,0 @@
-module.exports = (config) ->
-  config.set
-    frameworks: ['mocha']
-
-    files: [
-      '*.coffee'
-    ]
-
-    browsers: ['Firefox']
-
-    coffeePreprocessor:
-      options:
-        sourceMap: true
-
-    preprocessors:
-      # source files, that you wanna generate coverage for
-      # do not include tests or libraries
-      # (these files will be instrumented by Istanbul via Ibrik unless
-      # specified otherwise in coverageReporter.instrumenter)
-      'plus.coffee': 'coverage'
-
-      # note: project files will already be converted to
-      # JavaScript via coverage preprocessor.
-      # Thus, you'll have to limit the CoffeeScript preprocessor
-      # to uncovered files.
-      'test.coffee': 'coffee'
-
-    coverageReporter:
-      type: 'html'
-      instrumenters:
-        ibrik : require('ibrik')
-      instrumenter:
-        '**/*.coffee': 'ibrik'
-
-    # coverage reporter generates the coverage
-    reporters: ['dots', 'coverage']
-
-    plugins: [
-      require('../../lib/index')
-      'karma-mocha'
-      'karma-coffee-preprocessor'
-      'karma-firefox-launcher'
-    ]
-
-    singleRun: true
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-coverage/examples/coffee/package.json b/src/cobalt/debug/remote/devtools/node_modules/karma-coverage/examples/coffee/package.json
deleted file mode 100644
index c4911b3..0000000
--- a/src/cobalt/debug/remote/devtools/node_modules/karma-coverage/examples/coffee/package.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
-  "author": "Friedel Ziegelmayer <dignifiedquire@gmail.com>", 
-  "dependencies": {}, 
-  "description": "Demonstrate the usage of karma-coverage with CoffeeScript", 
-  "devDependencies": {
-    "coffee-script": "latest", 
-    "ibrik": "^2.0.0", 
-    "karma": "latest", 
-    "karma-coffee-preprocessor": "latest", 
-    "karma-firefox-launcher": "latest", 
-    "karma-mocha": "latest"
-  }, 
-  "license": "MIT", 
-  "main": "", 
-  "name": "karma-coverage-coffee-example", 
-  "scripts": {
-    "test": "./node_modules/karma/bin/karma start"
-  }, 
-  "version": "1.0.0"
-}
\ No newline at end of file
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-coverage/examples/coffee/plus.coffee b/src/cobalt/debug/remote/devtools/node_modules/karma-coverage/examples/coffee/plus.coffee
deleted file mode 100644
index 81816e0..0000000
--- a/src/cobalt/debug/remote/devtools/node_modules/karma-coverage/examples/coffee/plus.coffee
+++ /dev/null
@@ -1,7 +0,0 @@
-# Some code under test
-window.plus = (a, b) ->
-  a + b
-
-# this one is not coveraged
-window.minus = (a, b) ->
-  a - b
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-coverage/examples/coffee/test.coffee b/src/cobalt/debug/remote/devtools/node_modules/karma-coverage/examples/coffee/test.coffee
deleted file mode 100644
index c218739..0000000
--- a/src/cobalt/debug/remote/devtools/node_modules/karma-coverage/examples/coffee/test.coffee
+++ /dev/null
@@ -1,7 +0,0 @@
-describe 'plus', ->
-
-  it 'should pass', ->
-    true is true
-
-  it 'should work', ->
-    plus(1, 2) is 3
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-coverage/gruntfile.js b/src/cobalt/debug/remote/devtools/node_modules/karma-coverage/gruntfile.js
deleted file mode 100644
index d14f915..0000000
--- a/src/cobalt/debug/remote/devtools/node_modules/karma-coverage/gruntfile.js
+++ /dev/null
@@ -1,86 +0,0 @@
-module.exports = function (grunt) {
-  grunt.initConfig({
-    pkgFile: 'package.json',
-    simplemocha: {
-      options: {
-        ui: 'bdd',
-        reporter: 'dot'
-      },
-      unit: {
-        src: [
-          'test/mocha-globals.coffee',
-          'test/*.spec.coffee'
-        ]
-      }
-    },
-    'npm-contributors': {
-      options: {
-        commitMessage: 'chore: update contributors'
-      }
-    },
-    conventionalChangelog: {
-      release: {
-        options: {
-          changelogOpts: {
-            preset: 'angular'
-          }
-        },
-        src: 'CHANGELOG.md'
-      }
-    },
-    conventionalGithubReleaser: {
-      release: {
-        options: {
-          auth: {
-            type: 'oauth',
-            token: process.env.GH_TOKEN
-          },
-          changelogOpts: {
-            preset: 'angular'
-          }
-        }
-      }
-    },
-    bump: {
-      options: {
-        commitMessage: 'chore: release v%VERSION%',
-        pushTo: 'upstream',
-        commitFiles: [
-          'package.json',
-          'CHANGELOG.md'
-        ]
-      }
-    },
-    karma: {
-      coffee: {
-        configFile: 'examples/coffee/karma.conf.coffee'
-      },
-      coffeeRequireJS: {
-        configFile: 'examples/coffee-requirejs/karma.conf.coffee'
-      }
-    },
-    eslint: {
-      target: [
-        'lib/*.js',
-        'gruntfile.js',
-        'karma.conf.js'
-      ]
-    }
-  })
-
-  require('load-grunt-tasks')(grunt)
-
-  grunt.registerTask('test', ['simplemocha', 'karma'])
-  grunt.registerTask('default', ['eslint', 'test'])
-
-  grunt.registerTask('release', 'Bump the version and publish to NPM.', function (type) {
-    grunt.task.run([
-      'npm-contributors',
-      'bump:' + (type || 'patch') + ':bump-only',
-      'conventionalChangelog',
-      'bump-commit',
-      'conventionalGithubReleaser',
-      'npm-publish'
-    ])
-  })
-}
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-coverage/lib/coverage-map.js b/src/cobalt/debug/remote/devtools/node_modules/karma-coverage/lib/coverage-map.js
deleted file mode 100644
index 242fe8b..0000000
--- a/src/cobalt/debug/remote/devtools/node_modules/karma-coverage/lib/coverage-map.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Coverage Map
-// ============
-
-var coverageMap = {}
-
-function add (coverageObj) {
-  coverageMap[coverageObj.path] = coverageObj
-}
-
-function get () {
-  return coverageMap
-}
-
-function reset () {
-  coverageMap = {}
-}
-
-module.exports = {
-  add: add,
-  get: get,
-  reset: reset
-}
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-coverage/lib/in-memory-report.js b/src/cobalt/debug/remote/devtools/node_modules/karma-coverage/lib/in-memory-report.js
deleted file mode 100644
index f938c6a..0000000
--- a/src/cobalt/debug/remote/devtools/node_modules/karma-coverage/lib/in-memory-report.js
+++ /dev/null
@@ -1,20 +0,0 @@
-var Report = require('istanbul').Report
-var util = require('util')
-
-function InMemoryReport (opt) {
-  this.opt = opt
-}
-
-util.inherits(InMemoryReport, Report)
-
-InMemoryReport.prototype.writeReport = function (collector, sync) {
-  if (!this.opt.emitter || !this.opt.emitter.emit) {
-    console.error('Could not raise "coverage_complete" event, missing emitter because it was not supplied during initialization of the reporter')
-  } else {
-    this.opt.emitter.emit('coverage_complete', this.opt.browser, collector.getFinalCoverage())
-  }
-}
-
-InMemoryReport.TYPE = 'in-memory'
-
-module.exports = InMemoryReport
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-coverage/lib/index.js b/src/cobalt/debug/remote/devtools/node_modules/karma-coverage/lib/index.js
deleted file mode 100644
index 2f34cc6..0000000
--- a/src/cobalt/debug/remote/devtools/node_modules/karma-coverage/lib/index.js
+++ /dev/null
@@ -1,13 +0,0 @@
-// karma-coverage
-// ==============
-//
-// Main entry point for the karma-coverage module.
-// Exposes the preprocessor and reporter plugins.
-
-// Registering one additional (karma specific) reporter: in-memory
-require('istanbul').Report.register(require('./in-memory-report'))
-
-module.exports = {
-  'preprocessor:coverage': ['factory', require('./preprocessor')],
-  'reporter:coverage': ['type', require('./reporter')]
-}
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-coverage/lib/preprocessor.js b/src/cobalt/debug/remote/devtools/node_modules/karma-coverage/lib/preprocessor.js
deleted file mode 100644
index 995dbb4..0000000
--- a/src/cobalt/debug/remote/devtools/node_modules/karma-coverage/lib/preprocessor.js
+++ /dev/null
@@ -1,161 +0,0 @@
-// Coverage Preprocessor
-// =====================
-//
-// Depends on the the reporter to generate an actual report
-
-// Dependencies
-// ------------
-
-var istanbul = require('istanbul')
-var minimatch = require('minimatch')
-var path = require('path')
-var _ = require('lodash')
-var SourceMapConsumer = require('source-map').SourceMapConsumer
-var SourceMapGenerator = require('source-map').SourceMapGenerator
-var globalSourceCache = require('./source-cache')
-var extend = require('util')._extend
-var coverageMap = require('./coverage-map')
-
-// Regexes
-// -------
-
-var coverageObjRegex = /\{.*"path".*"fnMap".*"statementMap".*"branchMap".*\}/g
-
-// Preprocessor creator function
-function createCoveragePreprocessor (logger, helper, basePath, reporters, coverageReporter) {
-  var log = logger.create('preprocessor.coverage')
-
-  // Options
-  // -------
-
-  var instrumenterOverrides = {}
-  var instrumenters = {istanbul: istanbul}
-  var includeAllSources = false
-  var useJSExtensionForCoffeeScript = false
-
-  if (coverageReporter) {
-    instrumenterOverrides = coverageReporter.instrumenter
-    instrumenters = extend({istanbul: istanbul}, coverageReporter.instrumenters)
-    includeAllSources = coverageReporter.includeAllSources === true
-    useJSExtensionForCoffeeScript = coverageReporter.useJSExtensionForCoffeeScript === true
-  }
-
-  var sourceCache = globalSourceCache.get(basePath)
-
-  var instrumentersOptions = _.reduce(instrumenters, function getInstumenterOptions (memo, instrument, name) {
-    memo[name] = {}
-
-    if (coverageReporter && coverageReporter.instrumenterOptions) {
-      memo[name] = coverageReporter.instrumenterOptions[name]
-    }
-
-    return memo
-  }, {})
-
-  // if coverage reporter is not used, do not preprocess the files
-  if (!_.includes(reporters, 'coverage')) {
-    return function (content, _, done) {
-      done(content)
-    }
-  }
-
-  // check instrumenter override requests
-  function checkInstrumenters () {
-    return _.reduce(instrumenterOverrides, function (acc, literal, pattern) {
-      if (!_.includes(_.keys(instrumenters), String(literal))) {
-        log.error('Unknown instrumenter: %s', literal)
-        return false
-      }
-      return acc
-    }, true)
-  }
-
-  if (!checkInstrumenters()) {
-    return function (content, _, done) {
-      return done(1)
-    }
-  }
-
-  return function (content, file, done) {
-    log.debug('Processing "%s".', file.originalPath)
-
-    var jsPath = path.resolve(file.originalPath)
-    // default instrumenters
-    var instrumenterLiteral = 'istanbul'
-
-    _.forEach(instrumenterOverrides, function (literal, pattern) {
-      if (minimatch(file.originalPath, pattern, {dot: true})) {
-        instrumenterLiteral = String(literal)
-      }
-    })
-
-    var InstrumenterConstructor = instrumenters[instrumenterLiteral].Instrumenter
-    var constructOptions = instrumentersOptions[instrumenterLiteral] || {}
-    var codeGenerationOptions = null
-
-    if (file.sourceMap) {
-      log.debug('Enabling source map generation for "%s".', file.originalPath)
-      codeGenerationOptions = extend({
-        format: {
-          compact: !constructOptions.noCompact
-        },
-        sourceMap: file.sourceMap.file,
-        sourceMapWithCode: true,
-        file: file.path
-      }, constructOptions.codeGenerationOptions || {})
-    }
-
-    var options = extend({}, constructOptions)
-    options = extend(options, {codeGenerationOptions: codeGenerationOptions})
-
-    var instrumenter = new InstrumenterConstructor(options)
-    instrumenter.instrument(content, jsPath, function (err, instrumentedCode) {
-      if (err) {
-        log.error('%s\n  at %s', err.message, file.originalPath)
-        done(err.message)
-      } else {
-        if (file.sourceMap && instrumenter.lastSourceMap()) {
-          log.debug('Adding source map to instrumented file for "%s".', file.originalPath)
-          var generator = SourceMapGenerator.fromSourceMap(new SourceMapConsumer(instrumenter.lastSourceMap().toString()))
-          generator.applySourceMap(new SourceMapConsumer(file.sourceMap))
-          file.sourceMap = JSON.parse(generator.toString())
-          instrumentedCode += '\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,'
-          instrumentedCode += new Buffer(JSON.stringify(file.sourceMap)).toString('base64') + '\n'
-        }
-
-        // remember the actual immediate instrumented JS for given original path
-        sourceCache[jsPath] = content
-
-        if (includeAllSources) {
-          // reset stateful regex
-          coverageObjRegex.lastIndex = 0
-
-          var coverageObjMatch = coverageObjRegex.exec(instrumentedCode)
-
-          if (coverageObjMatch !== null) {
-            var coverageObj = JSON.parse(coverageObjMatch[0])
-
-            coverageMap.add(coverageObj)
-          }
-        }
-
-        // RequireJS expects JavaScript files to end with `.js`
-        if (useJSExtensionForCoffeeScript && instrumenterLiteral === 'ibrik') {
-          file.path = file.path.replace(/\.coffee$/, '.js')
-        }
-
-        done(instrumentedCode)
-      }
-    })
-  }
-}
-
-createCoveragePreprocessor.$inject = [
-  'logger',
-  'helper',
-  'config.basePath',
-  'config.reporters',
-  'config.coverageReporter'
-]
-
-module.exports = createCoveragePreprocessor
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-coverage/lib/reporter.js b/src/cobalt/debug/remote/devtools/node_modules/karma-coverage/lib/reporter.js
deleted file mode 100644
index 13d1c82..0000000
--- a/src/cobalt/debug/remote/devtools/node_modules/karma-coverage/lib/reporter.js
+++ /dev/null
@@ -1,322 +0,0 @@
-// Coverage Reporter
-// Part of this code is based on [1], which is licensed under the New BSD License.
-// For more information see the See the accompanying LICENSE-istanbul file for terms.
-//
-// [1]: https://github.com/gotwarlost/istanbul/blob/master/lib/command/check-coverage.js
-// =====================
-//
-// Generates the report
-
-// Dependencies
-// ------------
-
-var path = require('path')
-var istanbul = require('istanbul')
-var minimatch = require('minimatch')
-var _ = require('lodash')
-
-var globalSourceCache = require('./source-cache')
-var coverageMap = require('./coverage-map')
-var SourceCacheStore = require('./source-cache-store')
-
-function isAbsolute (file) {
-  if (path.isAbsolute) {
-    return path.isAbsolute(file)
-  }
-
-  return path.resolve(file) === path.normalize(file)
-}
-
-// TODO(vojta): inject only what required (config.basePath, config.coverageReporter)
-var CoverageReporter = function (rootConfig, helper, logger, emitter) {
-  var log = logger.create('coverage')
-
-  // Instance variables
-  // ------------------
-
-  this.adapters = []
-
-  // Options
-  // -------
-
-  var config = rootConfig.coverageReporter || {}
-  var basePath = rootConfig.basePath
-  var reporters = config.reporters
-  var sourceCache = globalSourceCache.get(basePath)
-  var includeAllSources = config.includeAllSources === true
-
-  if (config.watermarks) {
-    config.watermarks = helper.merge({}, istanbul.config.defaultConfig().reporting.watermarks, config.watermarks)
-  }
-
-  if (!helper.isDefined(reporters)) {
-    reporters = [config]
-  }
-
-  var collectors
-  var pendingFileWritings = 0
-  var fileWritingFinished = function () {}
-
-  function writeReport (reporter, collector) {
-    try {
-      if (typeof config._onWriteReport === 'function') {
-        var newCollector = config._onWriteReport(collector)
-        if (typeof newCollector === 'object') {
-          collector = newCollector
-        }
-      }
-      reporter.writeReport(collector, true)
-    } catch (e) {
-      log.error(e)
-    }
-
-    --pendingFileWritings
-  }
-
-  function disposeCollectors () {
-    if (pendingFileWritings <= 0) {
-      _.forEach(collectors, function (collector) {
-        collector.dispose()
-      })
-
-      fileWritingFinished()
-    }
-  }
-
-  function normalize (key) {
-    // Exclude keys will always be relative, but covObj keys can be absolute or relative
-    var excludeKey = isAbsolute(key) ? path.relative(basePath, key) : key
-    // Also normalize for files that start with `./`, etc.
-    excludeKey = path.normalize(excludeKey)
-
-    return excludeKey
-  }
-
-  function removeFiles (covObj, patterns) {
-    var obj = {}
-
-    Object.keys(covObj).forEach(function (key) {
-      // Do any patterns match the resolved key
-      var found = patterns.some(function (pattern) {
-        return minimatch(normalize(key), pattern, {dot: true})
-      })
-
-      // if no patterns match, keep the key
-      if (!found) {
-        obj[key] = covObj[key]
-      }
-    })
-
-    return obj
-  }
-
-  function overrideThresholds (key, overrides) {
-    var thresholds = {}
-
-    // First match wins
-    Object.keys(overrides).some(function (pattern) {
-      if (minimatch(normalize(key), pattern, {dot: true})) {
-        thresholds = overrides[pattern]
-        return true
-      }
-    })
-
-    return thresholds
-  }
-
-  function checkCoverage (browser, collector) {
-    var defaultThresholds = {
-      global: {
-        statements: 0,
-        branches: 0,
-        lines: 0,
-        functions: 0,
-        excludes: []
-      },
-      each: {
-        statements: 0,
-        branches: 0,
-        lines: 0,
-        functions: 0,
-        excludes: [],
-        overrides: {}
-      }
-    }
-
-    var thresholds = helper.merge({}, defaultThresholds, config.check)
-
-    var rawCoverage = collector.getFinalCoverage()
-    var globalResults = istanbul.utils.summarizeCoverage(removeFiles(rawCoverage, thresholds.global.excludes))
-    var eachResults = removeFiles(rawCoverage, thresholds.each.excludes)
-
-    // Summarize per-file results and mutate original results.
-    Object.keys(eachResults).forEach(function (key) {
-      eachResults[key] = istanbul.utils.summarizeFileCoverage(eachResults[key])
-    })
-
-    var coverageFailed = false
-
-    function check (name, thresholds, actuals) {
-      var keys = [
-        'statements',
-        'branches',
-        'lines',
-        'functions'
-      ]
-
-      keys.forEach(function (key) {
-        var actual = actuals[key].pct
-        var actualUncovered = actuals[key].total - actuals[key].covered
-        var threshold = thresholds[key]
-
-        if (threshold < 0) {
-          if (threshold * -1 < actualUncovered) {
-            coverageFailed = true
-            log.error(browser.name + ': Uncovered count for ' + key + ' (' + actualUncovered +
-              ') exceeds ' + name + ' threshold (' + -1 * threshold + ')')
-          }
-        } else {
-          if (actual < threshold) {
-            coverageFailed = true
-            log.error(browser.name + ': Coverage for ' + key + ' (' + actual +
-              '%) does not meet ' + name + ' threshold (' + threshold + '%)')
-          }
-        }
-      })
-    }
-
-    check('global', thresholds.global, globalResults)
-
-    Object.keys(eachResults).forEach(function (key) {
-      var keyThreshold = helper.merge(thresholds.each, overrideThresholds(key, thresholds.each.overrides))
-      check('per-file' + ' (' + key + ') ', keyThreshold, eachResults[key])
-    })
-
-    return coverageFailed
-  }
-
-  // Generate the output directory from the `coverageReporter.dir` and
-  // `coverageReporter.subdir` options.
-  function generateOutputDir (browserName, dir, subdir) {
-    dir = dir || 'coverage'
-    subdir = subdir || browserName
-
-    if (_.isFunction(subdir)) {
-      subdir = subdir(browserName)
-    }
-
-    return path.join(dir, subdir)
-  }
-
-  this.onRunStart = function (browsers) {
-    collectors = Object.create(null)
-
-    // TODO(vojta): remove once we don't care about Karma 0.10
-    if (browsers) {
-      browsers.forEach(this.onBrowserStart.bind(this))
-    }
-  }
-
-  this.onBrowserStart = function (browser) {
-    collectors[browser.id] = new istanbul.Collector()
-
-    if (!includeAllSources) return
-
-    collectors[browser.id].add(coverageMap.get())
-  }
-
-  this.onBrowserComplete = function (browser, result) {
-    var collector = collectors[browser.id]
-
-    if (!collector) return
-    if (!result || !result.coverage) return
-
-    collector.add(result.coverage)
-  }
-
-  this.onSpecComplete = function (browser, result) {
-    if (!result.coverage) return
-
-    collectors[browser.id].add(result.coverage)
-  }
-
-  this.onRunComplete = function (browsers, results) {
-    var checkedCoverage = {}
-
-    reporters.forEach(function (reporterConfig) {
-      browsers.forEach(function (browser) {
-        var collector = collectors[browser.id]
-
-        if (!collector) {
-          return
-        }
-
-        // If config.check is defined, check coverage levels for each browser
-        if (config.hasOwnProperty('check') && !checkedCoverage[browser.id]) {
-          checkedCoverage[browser.id] = true
-          var coverageFailed = checkCoverage(browser, collector)
-          if (coverageFailed) {
-            if (results) {
-              results.exitCode = 1
-            }
-          }
-        }
-
-        pendingFileWritings++
-
-        var mainDir = reporterConfig.dir || config.dir
-        var subDir = reporterConfig.subdir || config.subdir
-        var browserName = browser.name.replace(':', '')
-        var simpleOutputDir = generateOutputDir(browserName, mainDir, subDir)
-        var resolvedOutputDir = path.resolve(basePath, simpleOutputDir)
-
-        var outputDir = helper.normalizeWinPath(resolvedOutputDir)
-        var sourceStore = _.isEmpty(sourceCache) ? null : new SourceCacheStore({
-          sourceCache: sourceCache
-        })
-        var options = helper.merge({
-          sourceStore: sourceStore
-        }, config, reporterConfig, {
-          dir: outputDir,
-          browser: browser,
-          emitter: emitter
-        })
-        var reporter = istanbul.Report.create(reporterConfig.type || 'html', options)
-
-         // If reporting to console or in-memory skip directory creation
-        var toDisk = !reporterConfig.type || !reporterConfig.type.match(/^(text|text-summary|in-memory)$/)
-        var hasNoFile = _.isUndefined(reporterConfig.file)
-
-        if (!toDisk && hasNoFile) {
-          writeReport(reporter, collector)
-          return
-        }
-
-        helper.mkdirIfNotExists(outputDir, function () {
-          log.debug('Writing coverage to %s', outputDir)
-          writeReport(reporter, collector)
-          disposeCollectors()
-        })
-      })
-    })
-
-    disposeCollectors()
-  }
-
-  this.onExit = function (done) {
-    if (pendingFileWritings) {
-      fileWritingFinished = (
-        typeof config._onExit === 'function'
-        ? (function (done) { return function () { config._onExit(done) } }(done))
-        : done
-      )
-    } else {
-      (typeof config._onExit === 'function' ? config._onExit(done) : done())
-    }
-  }
-}
-
-CoverageReporter.$inject = ['config', 'helper', 'logger', 'emitter']
-
-// PUBLISH
-module.exports = CoverageReporter
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-coverage/lib/source-cache-store.js b/src/cobalt/debug/remote/devtools/node_modules/karma-coverage/lib/source-cache-store.js
deleted file mode 100644
index 5149b45..0000000
--- a/src/cobalt/debug/remote/devtools/node_modules/karma-coverage/lib/source-cache-store.js
+++ /dev/null
@@ -1,40 +0,0 @@
-// Source Cache Store
-// ==================
-//
-// Used by lib/reporter
-
-// Dependencies
-// ------------
-
-var util = require('util')
-var Store = require('istanbul').Store
-
-// Constructor
-var SourceCacheStore = module.exports = function (opts) {
-  Store.call(this, opts)
-  opts = opts || {}
-  this.sourceCache = opts.sourceCache
-}
-
-// Class Constants
-// ---------------
-SourceCacheStore.TYPE = 'sourceCacheLookup'
-
-// Inherits from an Istanbul.Store
-util.inherits(SourceCacheStore, Store)
-
-// Implement needed methods
-Store.mix(SourceCacheStore, {
-  keys: function () {
-    throw new Error('Not implemented')
-  },
-  get: function (key) {
-    return this.sourceCache[key]
-  },
-  hasKey: function (key) {
-    return this.sourceCache.hasOwnProperty(key)
-  },
-  set: function (key, contents) {
-    throw new Error('Not applicable')
-  }
-})
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-coverage/lib/source-cache.js b/src/cobalt/debug/remote/devtools/node_modules/karma-coverage/lib/source-cache.js
deleted file mode 100644
index 2de3e81..0000000
--- a/src/cobalt/debug/remote/devtools/node_modules/karma-coverage/lib/source-cache.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Source Cache
-// ============
-
-var cache = {}
-
-function get (basePath) {
-  if (!cache[basePath]) {
-    cache[basePath] = {}
-  }
-
-  return cache[basePath]
-}
-
-module.exports = {
-  get: get
-}
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-coverage/node_modules/source-map/CHANGELOG.md b/src/cobalt/debug/remote/devtools/node_modules/karma-coverage/node_modules/source-map/CHANGELOG.md
deleted file mode 100644
index 3a8c066..0000000
--- a/src/cobalt/debug/remote/devtools/node_modules/karma-coverage/node_modules/source-map/CHANGELOG.md
+++ /dev/null
@@ -1,301 +0,0 @@
-# Change Log
-
-## 0.5.6
-
-* Fix for regression when people were using numbers as names in source maps. See
-  #236.
-
-## 0.5.5
-
-* Fix "regression" of unsupported, implementation behavior that half the world
-  happens to have come to depend on. See #235.
-
-* Fix regression involving function hoisting in SpiderMonkey. See #233.
-
-## 0.5.4
-
-* Large performance improvements to source-map serialization. See #228 and #229.
-
-## 0.5.3
-
-* Do not include unnecessary distribution files. See
-  commit ef7006f8d1647e0a83fdc60f04f5a7ca54886f86.
-
-## 0.5.2
-
-* Include browser distributions of the library in package.json's `files`. See
-  issue #212.
-
-## 0.5.1
-
-* Fix latent bugs in IndexedSourceMapConsumer.prototype._parseMappings. See
-  ff05274becc9e6e1295ed60f3ea090d31d843379.
-
-## 0.5.0
-
-* Node 0.8 is no longer supported.
-
-* Use webpack instead of dryice for bundling.
-
-* Big speedups serializing source maps. See pull request #203.
-
-* Fix a bug with `SourceMapConsumer.prototype.sourceContentFor` and sources that
-  explicitly start with the source root. See issue #199.
-
-## 0.4.4
-
-* Fix an issue where using a `SourceMapGenerator` after having created a
-  `SourceMapConsumer` from it via `SourceMapConsumer.fromSourceMap` failed. See
-  issue #191.
-
-* Fix an issue with where `SourceMapGenerator` would mistakenly consider
-  different mappings as duplicates of each other and avoid generating them. See
-  issue #192.
-
-## 0.4.3
-
-* A very large number of performance improvements, particularly when parsing
-  source maps. Collectively about 75% of time shaved off of the source map
-  parsing benchmark!
-
-* Fix a bug in `SourceMapConsumer.prototype.allGeneratedPositionsFor` and fuzzy
-  searching in the presence of a column option. See issue #177.
-
-* Fix a bug with joining a source and its source root when the source is above
-  the root. See issue #182.
-
-* Add the `SourceMapConsumer.prototype.hasContentsOfAllSources` method to
-  determine when all sources' contents are inlined into the source map. See
-  issue #190.
-
-## 0.4.2
-
-* Add an `.npmignore` file so that the benchmarks aren't pulled down by
-  dependent projects. Issue #169.
-
-* Add an optional `column` argument to
-  `SourceMapConsumer.prototype.allGeneratedPositionsFor` and better handle lines
-  with no mappings. Issues #172 and #173.
-
-## 0.4.1
-
-* Fix accidentally defining a global variable. #170.
-
-## 0.4.0
-
-* The default direction for fuzzy searching was changed back to its original
-  direction. See #164.
-
-* There is now a `bias` option you can supply to `SourceMapConsumer` to control
-  the fuzzy searching direction. See #167.
-
-* About an 8% speed up in parsing source maps. See #159.
-
-* Added a benchmark for parsing and generating source maps.
-
-## 0.3.0
-
-* Change the default direction that searching for positions fuzzes when there is
-  not an exact match. See #154.
-
-* Support for environments using json2.js for JSON serialization. See #156.
-
-## 0.2.0
-
-* Support for consuming "indexed" source maps which do not have any remote
-  sections. See pull request #127. This introduces a minor backwards
-  incompatibility if you are monkey patching `SourceMapConsumer.prototype`
-  methods.
-
-## 0.1.43
-
-* Performance improvements for `SourceMapGenerator` and `SourceNode`. See issue
-  #148 for some discussion and issues #150, #151, and #152 for implementations.
-
-## 0.1.42
-
-* Fix an issue where `SourceNode`s from different versions of the source-map
-  library couldn't be used in conjunction with each other. See issue #142.
-
-## 0.1.41
-
-* Fix a bug with getting the source content of relative sources with a "./"
-  prefix. See issue #145 and [Bug 1090768](bugzil.la/1090768).
-
-* Add the `SourceMapConsumer.prototype.computeColumnSpans` method to compute the
-  column span of each mapping.
-
-* Add the `SourceMapConsumer.prototype.allGeneratedPositionsFor` method to find
-  all generated positions associated with a given original source and line.
-
-## 0.1.40
-
-* Performance improvements for parsing source maps in SourceMapConsumer.
-
-## 0.1.39
-
-* Fix a bug where setting a source's contents to null before any source content
-  had been set before threw a TypeError. See issue #131.
-
-## 0.1.38
-
-* Fix a bug where finding relative paths from an empty path were creating
-  absolute paths. See issue #129.
-
-## 0.1.37
-
-* Fix a bug where if the source root was an empty string, relative source paths
-  would turn into absolute source paths. Issue #124.
-
-## 0.1.36
-
-* Allow the `names` mapping property to be an empty string. Issue #121.
-
-## 0.1.35
-
-* A third optional parameter was added to `SourceNode.fromStringWithSourceMap`
-  to specify a path that relative sources in the second parameter should be
-  relative to. Issue #105.
-
-* If no file property is given to a `SourceMapGenerator`, then the resulting
-  source map will no longer have a `null` file property. The property will
-  simply not exist. Issue #104.
-
-* Fixed a bug where consecutive newlines were ignored in `SourceNode`s.
-  Issue #116.
-
-## 0.1.34
-
-* Make `SourceNode` work with windows style ("\r\n") newlines. Issue #103.
-
-* Fix bug involving source contents and the
-  `SourceMapGenerator.prototype.applySourceMap`. Issue #100.
-
-## 0.1.33
-
-* Fix some edge cases surrounding path joining and URL resolution.
-
-* Add a third parameter for relative path to
-  `SourceMapGenerator.prototype.applySourceMap`.
-
-* Fix issues with mappings and EOLs.
-
-## 0.1.32
-
-* Fixed a bug where SourceMapConsumer couldn't handle negative relative columns
-  (issue 92).
-
-* Fixed test runner to actually report number of failed tests as its process
-  exit code.
-
-* Fixed a typo when reporting bad mappings (issue 87).
-
-## 0.1.31
-
-* Delay parsing the mappings in SourceMapConsumer until queried for a source
-  location.
-
-* Support Sass source maps (which at the time of writing deviate from the spec
-  in small ways) in SourceMapConsumer.
-
-## 0.1.30
-
-* Do not join source root with a source, when the source is a data URI.
-
-* Extend the test runner to allow running single specific test files at a time.
-
-* Performance improvements in `SourceNode.prototype.walk` and
-  `SourceMapConsumer.prototype.eachMapping`.
-
-* Source map browser builds will now work inside Workers.
-
-* Better error messages when attempting to add an invalid mapping to a
-  `SourceMapGenerator`.
-
-## 0.1.29
-
-* Allow duplicate entries in the `names` and `sources` arrays of source maps
-  (usually from TypeScript) we are parsing. Fixes github issue 72.
-
-## 0.1.28
-
-* Skip duplicate mappings when creating source maps from SourceNode; github
-  issue 75.
-
-## 0.1.27
-
-* Don't throw an error when the `file` property is missing in SourceMapConsumer,
-  we don't use it anyway.
-
-## 0.1.26
-
-* Fix SourceNode.fromStringWithSourceMap for empty maps. Fixes github issue 70.
-
-## 0.1.25
-
-* Make compatible with browserify
-
-## 0.1.24
-
-* Fix issue with absolute paths and `file://` URIs. See
-  https://bugzilla.mozilla.org/show_bug.cgi?id=885597
-
-## 0.1.23
-
-* Fix issue with absolute paths and sourcesContent, github issue 64.
-
-## 0.1.22
-
-* Ignore duplicate mappings in SourceMapGenerator. Fixes github issue 21.
-
-## 0.1.21
-
-* Fixed handling of sources that start with a slash so that they are relative to
-  the source root's host.
-
-## 0.1.20
-
-* Fixed github issue #43: absolute URLs aren't joined with the source root
-  anymore.
-
-## 0.1.19
-
-* Using Travis CI to run tests.
-
-## 0.1.18
-
-* Fixed a bug in the handling of sourceRoot.
-
-## 0.1.17
-
-* Added SourceNode.fromStringWithSourceMap.
-
-## 0.1.16
-
-* Added missing documentation.
-
-* Fixed the generating of empty mappings in SourceNode.
-
-## 0.1.15
-
-* Added SourceMapGenerator.applySourceMap.
-
-## 0.1.14
-
-* The sourceRoot is now handled consistently.
-
-## 0.1.13
-
-* Added SourceMapGenerator.fromSourceMap.
-
-## 0.1.12
-
-* SourceNode now generates empty mappings too.
-
-## 0.1.11
-
-* Added name support to SourceNode.
-
-## 0.1.10
-
-* Added sourcesContent support to the customer and generator.
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-coverage/node_modules/source-map/LICENSE b/src/cobalt/debug/remote/devtools/node_modules/karma-coverage/node_modules/source-map/LICENSE
deleted file mode 100644
index ed1b7cf..0000000
--- a/src/cobalt/debug/remote/devtools/node_modules/karma-coverage/node_modules/source-map/LICENSE
+++ /dev/null
@@ -1,28 +0,0 @@
-
-Copyright (c) 2009-2011, Mozilla Foundation and contributors
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
-* Redistributions of source code must retain the above copyright notice, this
-  list of conditions and the following disclaimer.
-
-* Redistributions in binary form must reproduce the above copyright notice,
-  this list of conditions and the following disclaimer in the documentation
-  and/or other materials provided with the distribution.
-
-* Neither the names of the Mozilla Foundation nor the names of project
-  contributors may be used to endorse or promote products derived from this
-  software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-coverage/node_modules/source-map/README.md b/src/cobalt/debug/remote/devtools/node_modules/karma-coverage/node_modules/source-map/README.md
deleted file mode 100644
index 3281339..0000000
--- a/src/cobalt/debug/remote/devtools/node_modules/karma-coverage/node_modules/source-map/README.md
+++ /dev/null
@@ -1,729 +0,0 @@
-# Source Map
-
-[![Build Status](https://travis-ci.org/mozilla/source-map.png?branch=master)](https://travis-ci.org/mozilla/source-map)
-
-[![NPM](https://nodei.co/npm/source-map.png?downloads=true&downloadRank=true)](https://www.npmjs.com/package/source-map)
-
-This is a library to generate and consume the source map format
-[described here][format].
-
-[format]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit
-
-## Use with Node
-
-    $ npm install source-map
-
-## Use on the Web
-
-    <script src="https://raw.githubusercontent.com/mozilla/source-map/master/dist/source-map.min.js" defer></script>
-
---------------------------------------------------------------------------------
-
-<!-- `npm run toc` to regenerate the Table of Contents -->
-
-<!-- START doctoc generated TOC please keep comment here to allow auto update -->
-<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
-## Table of Contents
-
-- [Examples](#examples)
-  - [Consuming a source map](#consuming-a-source-map)
-  - [Generating a source map](#generating-a-source-map)
-    - [With SourceNode (high level API)](#with-sourcenode-high-level-api)
-    - [With SourceMapGenerator (low level API)](#with-sourcemapgenerator-low-level-api)
-- [API](#api)
-  - [SourceMapConsumer](#sourcemapconsumer)
-    - [new SourceMapConsumer(rawSourceMap)](#new-sourcemapconsumerrawsourcemap)
-    - [SourceMapConsumer.prototype.computeColumnSpans()](#sourcemapconsumerprototypecomputecolumnspans)
-    - [SourceMapConsumer.prototype.originalPositionFor(generatedPosition)](#sourcemapconsumerprototypeoriginalpositionforgeneratedposition)
-    - [SourceMapConsumer.prototype.generatedPositionFor(originalPosition)](#sourcemapconsumerprototypegeneratedpositionfororiginalposition)
-    - [SourceMapConsumer.prototype.allGeneratedPositionsFor(originalPosition)](#sourcemapconsumerprototypeallgeneratedpositionsfororiginalposition)
-    - [SourceMapConsumer.prototype.hasContentsOfAllSources()](#sourcemapconsumerprototypehascontentsofallsources)
-    - [SourceMapConsumer.prototype.sourceContentFor(source[, returnNullOnMissing])](#sourcemapconsumerprototypesourcecontentforsource-returnnullonmissing)
-    - [SourceMapConsumer.prototype.eachMapping(callback, context, order)](#sourcemapconsumerprototypeeachmappingcallback-context-order)
-  - [SourceMapGenerator](#sourcemapgenerator)
-    - [new SourceMapGenerator([startOfSourceMap])](#new-sourcemapgeneratorstartofsourcemap)
-    - [SourceMapGenerator.fromSourceMap(sourceMapConsumer)](#sourcemapgeneratorfromsourcemapsourcemapconsumer)
-    - [SourceMapGenerator.prototype.addMapping(mapping)](#sourcemapgeneratorprototypeaddmappingmapping)
-    - [SourceMapGenerator.prototype.setSourceContent(sourceFile, sourceContent)](#sourcemapgeneratorprototypesetsourcecontentsourcefile-sourcecontent)
-    - [SourceMapGenerator.prototype.applySourceMap(sourceMapConsumer[, sourceFile[, sourceMapPath]])](#sourcemapgeneratorprototypeapplysourcemapsourcemapconsumer-sourcefile-sourcemappath)
-    - [SourceMapGenerator.prototype.toString()](#sourcemapgeneratorprototypetostring)
-  - [SourceNode](#sourcenode)
-    - [new SourceNode([line, column, source[, chunk[, name]]])](#new-sourcenodeline-column-source-chunk-name)
-    - [SourceNode.fromStringWithSourceMap(code, sourceMapConsumer[, relativePath])](#sourcenodefromstringwithsourcemapcode-sourcemapconsumer-relativepath)
-    - [SourceNode.prototype.add(chunk)](#sourcenodeprototypeaddchunk)
-    - [SourceNode.prototype.prepend(chunk)](#sourcenodeprototypeprependchunk)
-    - [SourceNode.prototype.setSourceContent(sourceFile, sourceContent)](#sourcenodeprototypesetsourcecontentsourcefile-sourcecontent)
-    - [SourceNode.prototype.walk(fn)](#sourcenodeprototypewalkfn)
-    - [SourceNode.prototype.walkSourceContents(fn)](#sourcenodeprototypewalksourcecontentsfn)
-    - [SourceNode.prototype.join(sep)](#sourcenodeprototypejoinsep)
-    - [SourceNode.prototype.replaceRight(pattern, replacement)](#sourcenodeprototypereplacerightpattern-replacement)
-    - [SourceNode.prototype.toString()](#sourcenodeprototypetostring)
-    - [SourceNode.prototype.toStringWithSourceMap([startOfSourceMap])](#sourcenodeprototypetostringwithsourcemapstartofsourcemap)
-
-<!-- END doctoc generated TOC please keep comment here to allow auto update -->
-
-## Examples
-
-### Consuming a source map
-
-```js
-var rawSourceMap = {
-  version: 3,
-  file: 'min.js',
-  names: ['bar', 'baz', 'n'],
-  sources: ['one.js', 'two.js'],
-  sourceRoot: 'http://example.com/www/js/',
-  mappings: 'CAAC,IAAI,IAAM,SAAUA,GAClB,OAAOC,IAAID;CCDb,IAAI,IAAM,SAAUE,GAClB,OAAOA'
-};
-
-var smc = new SourceMapConsumer(rawSourceMap);
-
-console.log(smc.sources);
-// [ 'http://example.com/www/js/one.js',
-//   'http://example.com/www/js/two.js' ]
-
-console.log(smc.originalPositionFor({
-  line: 2,
-  column: 28
-}));
-// { source: 'http://example.com/www/js/two.js',
-//   line: 2,
-//   column: 10,
-//   name: 'n' }
-
-console.log(smc.generatedPositionFor({
-  source: 'http://example.com/www/js/two.js',
-  line: 2,
-  column: 10
-}));
-// { line: 2, column: 28 }
-
-smc.eachMapping(function (m) {
-  // ...
-});
-```
-
-### Generating a source map
-
-In depth guide:
-[**Compiling to JavaScript, and Debugging with Source Maps**](https://hacks.mozilla.org/2013/05/compiling-to-javascript-and-debugging-with-source-maps/)
-
-#### With SourceNode (high level API)
-
-```js
-function compile(ast) {
-  switch (ast.type) {
-  case 'BinaryExpression':
-    return new SourceNode(
-      ast.location.line,
-      ast.location.column,
-      ast.location.source,
-      [compile(ast.left), " + ", compile(ast.right)]
-    );
-  case 'Literal':
-    return new SourceNode(
-      ast.location.line,
-      ast.location.column,
-      ast.location.source,
-      String(ast.value)
-    );
-  // ...
-  default:
-    throw new Error("Bad AST");
-  }
-}
-
-var ast = parse("40 + 2", "add.js");
-console.log(compile(ast).toStringWithSourceMap({
-  file: 'add.js'
-}));
-// { code: '40 + 2',
-//   map: [object SourceMapGenerator] }
-```
-
-#### With SourceMapGenerator (low level API)
-
-```js
-var map = new SourceMapGenerator({
-  file: "source-mapped.js"
-});
-
-map.addMapping({
-  generated: {
-    line: 10,
-    column: 35
-  },
-  source: "foo.js",
-  original: {
-    line: 33,
-    column: 2
-  },
-  name: "christopher"
-});
-
-console.log(map.toString());
-// '{"version":3,"file":"source-mapped.js","sources":["foo.js"],"names":["christopher"],"mappings":";;;;;;;;;mCAgCEA"}'
-```
-
-## API
-
-Get a reference to the module:
-
-```js
-// Node.js
-var sourceMap = require('source-map');
-
-// Browser builds
-var sourceMap = window.sourceMap;
-
-// Inside Firefox
-const sourceMap = require("devtools/toolkit/sourcemap/source-map.js");
-```
-
-### SourceMapConsumer
-
-A SourceMapConsumer instance represents a parsed source map which we can query
-for information about the original file positions by giving it a file position
-in the generated source.
-
-#### new SourceMapConsumer(rawSourceMap)
-
-The only parameter is the raw source map (either as a string which can be
-`JSON.parse`'d, or an object). According to the spec, source maps have the
-following attributes:
-
-* `version`: Which version of the source map spec this map is following.
-
-* `sources`: An array of URLs to the original source files.
-
-* `names`: An array of identifiers which can be referenced by individual
-  mappings.
-
-* `sourceRoot`: Optional. The URL root from which all sources are relative.
-
-* `sourcesContent`: Optional. An array of contents of the original source files.
-
-* `mappings`: A string of base64 VLQs which contain the actual mappings.
-
-* `file`: Optional. The generated filename this source map is associated with.
-
-```js
-var consumer = new sourceMap.SourceMapConsumer(rawSourceMapJsonData);
-```
-
-#### SourceMapConsumer.prototype.computeColumnSpans()
-
-Compute the last column for each generated mapping. The last column is
-inclusive.
-
-```js
-// Before:
-consumer.allGeneratedPositionsFor({ line: 2, source: "foo.coffee" })
-// [ { line: 2,
-//     column: 1 },
-//   { line: 2,
-//     column: 10 },
-//   { line: 2,
-//     column: 20 } ]
-
-consumer.computeColumnSpans();
-
-// After:
-consumer.allGeneratedPositionsFor({ line: 2, source: "foo.coffee" })
-// [ { line: 2,
-//     column: 1,
-//     lastColumn: 9 },
-//   { line: 2,
-//     column: 10,
-//     lastColumn: 19 },
-//   { line: 2,
-//     column: 20,
-//     lastColumn: Infinity } ]
-
-```
-
-#### SourceMapConsumer.prototype.originalPositionFor(generatedPosition)
-
-Returns the original source, line, and column information for the generated
-source's line and column positions provided. The only argument is an object with
-the following properties:
-
-* `line`: The line number in the generated source.
-
-* `column`: The column number in the generated source.
-
-* `bias`: Either `SourceMapConsumer.GREATEST_LOWER_BOUND` or
-  `SourceMapConsumer.LEAST_UPPER_BOUND`. Specifies whether to return the closest
-  element that is smaller than or greater than the one we are searching for,
-  respectively, if the exact element cannot be found.  Defaults to
-  `SourceMapConsumer.GREATEST_LOWER_BOUND`.
-
-and an object is returned with the following properties:
-
-* `source`: The original source file, or null if this information is not
-  available.
-
-* `line`: The line number in the original source, or null if this information is
-  not available.
-
-* `column`: The column number in the original source, or null if this
-  information is not available.
-
-* `name`: The original identifier, or null if this information is not available.
-
-```js
-consumer.originalPositionFor({ line: 2, column: 10 })
-// { source: 'foo.coffee',
-//   line: 2,
-//   column: 2,
-//   name: null }
-
-consumer.originalPositionFor({ line: 99999999999999999, column: 999999999999999 })
-// { source: null,
-//   line: null,
-//   column: null,
-//   name: null }
-```
-
-#### SourceMapConsumer.prototype.generatedPositionFor(originalPosition)
-
-Returns the generated line and column information for the original source,
-line, and column positions provided. The only argument is an object with
-the following properties:
-
-* `source`: The filename of the original source.
-
-* `line`: The line number in the original source.
-
-* `column`: The column number in the original source.
-
-and an object is returned with the following properties:
-
-* `line`: The line number in the generated source, or null.
-
-* `column`: The column number in the generated source, or null.
-
-```js
-consumer.generatedPositionFor({ source: "example.js", line: 2, column: 10 })
-// { line: 1,
-//   column: 56 }
-```
-
-#### SourceMapConsumer.prototype.allGeneratedPositionsFor(originalPosition)
-
-Returns all generated line and column information for the original source, line,
-and column provided. If no column is provided, returns all mappings
-corresponding to a either the line we are searching for or the next closest line
-that has any mappings. Otherwise, returns all mappings corresponding to the
-given line and either the column we are searching for or the next closest column
-that has any offsets.
-
-The only argument is an object with the following properties:
-
-* `source`: The filename of the original source.
-
-* `line`: The line number in the original source.
-
-* `column`: Optional. The column number in the original source.
-
-and an array of objects is returned, each with the following properties:
-
-* `line`: The line number in the generated source, or null.
-
-* `column`: The column number in the generated source, or null.
-
-```js
-consumer.allGeneratedpositionsfor({ line: 2, source: "foo.coffee" })
-// [ { line: 2,
-//     column: 1 },
-//   { line: 2,
-//     column: 10 },
-//   { line: 2,
-//     column: 20 } ]
-```
-
-#### SourceMapConsumer.prototype.hasContentsOfAllSources()
-
-Return true if we have the embedded source content for every source listed in
-the source map, false otherwise.
-
-In other words, if this method returns `true`, then
-`consumer.sourceContentFor(s)` will succeed for every source `s` in
-`consumer.sources`.
-
-```js
-// ...
-if (consumer.hasContentsOfAllSources()) {
-  consumerReadyCallback(consumer);
-} else {
-  fetchSources(consumer, consumerReadyCallback);
-}
-// ...
-```
-
-#### SourceMapConsumer.prototype.sourceContentFor(source[, returnNullOnMissing])
-
-Returns the original source content for the source provided. The only
-argument is the URL of the original source file.
-
-If the source content for the given source is not found, then an error is
-thrown. Optionally, pass `true` as the second param to have `null` returned
-instead.
-
-```js
-consumer.sources
-// [ "my-cool-lib.clj" ]
-
-consumer.sourceContentFor("my-cool-lib.clj")
-// "..."
-
-consumer.sourceContentFor("this is not in the source map");
-// Error: "this is not in the source map" is not in the source map
-
-consumer.sourceContentFor("this is not in the source map", true);
-// null
-```
-
-#### SourceMapConsumer.prototype.eachMapping(callback, context, order)
-
-Iterate over each mapping between an original source/line/column and a
-generated line/column in this source map.
-
-* `callback`: The function that is called with each mapping. Mappings have the
-  form `{ source, generatedLine, generatedColumn, originalLine, originalColumn,
-  name }`
-
-* `context`: Optional. If specified, this object will be the value of `this`
-  every time that `callback` is called.
-
-* `order`: Either `SourceMapConsumer.GENERATED_ORDER` or
-  `SourceMapConsumer.ORIGINAL_ORDER`. Specifies whether you want to iterate over
-  the mappings sorted by the generated file's line/column order or the
-  original's source/line/column order, respectively. Defaults to
-  `SourceMapConsumer.GENERATED_ORDER`.
-
-```js
-consumer.eachMapping(function (m) { console.log(m); })
-// ...
-// { source: 'illmatic.js',
-//   generatedLine: 1,
-//   generatedColumn: 0,
-//   originalLine: 1,
-//   originalColumn: 0,
-//   name: null }
-// { source: 'illmatic.js',
-//   generatedLine: 2,
-//   generatedColumn: 0,
-//   originalLine: 2,
-//   originalColumn: 0,
-//   name: null }
-// ...
-```
-### SourceMapGenerator
-
-An instance of the SourceMapGenerator represents a source map which is being
-built incrementally.
-
-#### new SourceMapGenerator([startOfSourceMap])
-
-You may pass an object with the following properties:
-
-* `file`: The filename of the generated source that this source map is
-  associated with.
-
-* `sourceRoot`: A root for all relative URLs in this source map.
-
-* `skipValidation`: Optional. When `true`, disables validation of mappings as
-  they are added. This can improve performance but should be used with
-  discretion, as a last resort. Even then, one should avoid using this flag when
-  running tests, if possible.
-
-```js
-var generator = new sourceMap.SourceMapGenerator({
-  file: "my-generated-javascript-file.js",
-  sourceRoot: "http://example.com/app/js/"
-});
-```
-
-#### SourceMapGenerator.fromSourceMap(sourceMapConsumer)
-
-Creates a new `SourceMapGenerator` from an existing `SourceMapConsumer` instance.
-
-* `sourceMapConsumer` The SourceMap.
-
-```js
-var generator = sourceMap.SourceMapGenerator.fromSourceMap(consumer);
-```
-
-#### SourceMapGenerator.prototype.addMapping(mapping)
-
-Add a single mapping from original source line and column to the generated
-source's line and column for this source map being created. The mapping object
-should have the following properties:
-
-* `generated`: An object with the generated line and column positions.
-
-* `original`: An object with the original line and column positions.
-
-* `source`: The original source file (relative to the sourceRoot).
-
-* `name`: An optional original token name for this mapping.
-
-```js
-generator.addMapping({
-  source: "module-one.scm",
-  original: { line: 128, column: 0 },
-  generated: { line: 3, column: 456 }
-})
-```
-
-#### SourceMapGenerator.prototype.setSourceContent(sourceFile, sourceContent)
-
-Set the source content for an original source file.
-
-* `sourceFile` the URL of the original source file.
-
-* `sourceContent` the content of the source file.
-
-```js
-generator.setSourceContent("module-one.scm",
-                           fs.readFileSync("path/to/module-one.scm"))
-```
-
-#### SourceMapGenerator.prototype.applySourceMap(sourceMapConsumer[, sourceFile[, sourceMapPath]])
-
-Applies a SourceMap for a source file to the SourceMap.
-Each mapping to the supplied source file is rewritten using the
-supplied SourceMap. Note: The resolution for the resulting mappings
-is the minimum of this map and the supplied map.
-
-* `sourceMapConsumer`: The SourceMap to be applied.
-
-* `sourceFile`: Optional. The filename of the source file.
-  If omitted, sourceMapConsumer.file will be used, if it exists.
-  Otherwise an error will be thrown.
-
-* `sourceMapPath`: Optional. The dirname of the path to the SourceMap
-  to be applied. If relative, it is relative to the SourceMap.
-
-  This parameter is needed when the two SourceMaps aren't in the same
-  directory, and the SourceMap to be applied contains relative source
-  paths. If so, those relative source paths need to be rewritten
-  relative to the SourceMap.
-
-  If omitted, it is assumed that both SourceMaps are in the same directory,
-  thus not needing any rewriting. (Supplying `'.'` has the same effect.)
-
-#### SourceMapGenerator.prototype.toString()
-
-Renders the source map being generated to a string.
-
-```js
-generator.toString()
-// '{"version":3,"sources":["module-one.scm"],"names":[],"mappings":"...snip...","file":"my-generated-javascript-file.js","sourceRoot":"http://example.com/app/js/"}'
-```
-
-### SourceNode
-
-SourceNodes provide a way to abstract over interpolating and/or concatenating
-snippets of generated JavaScript source code, while maintaining the line and
-column information associated between those snippets and the original source
-code. This is useful as the final intermediate representation a compiler might
-use before outputting the generated JS and source map.
-
-#### new SourceNode([line, column, source[, chunk[, name]]])
-
-* `line`: The original line number associated with this source node, or null if
-  it isn't associated with an original line.
-
-* `column`: The original column number associated with this source node, or null
-  if it isn't associated with an original column.
-
-* `source`: The original source's filename; null if no filename is provided.
-
-* `chunk`: Optional. Is immediately passed to `SourceNode.prototype.add`, see
-  below.
-
-* `name`: Optional. The original identifier.
-
-```js
-var node = new SourceNode(1, 2, "a.cpp", [
-  new SourceNode(3, 4, "b.cpp", "extern int status;\n"),
-  new SourceNode(5, 6, "c.cpp", "std::string* make_string(size_t n);\n"),
-  new SourceNode(7, 8, "d.cpp", "int main(int argc, char** argv) {}\n"),
-]);
-```
-
-#### SourceNode.fromStringWithSourceMap(code, sourceMapConsumer[, relativePath])
-
-Creates a SourceNode from generated code and a SourceMapConsumer.
-
-* `code`: The generated code
-
-* `sourceMapConsumer` The SourceMap for the generated code
-
-* `relativePath` The optional path that relative sources in `sourceMapConsumer`
-  should be relative to.
-
-```js
-var consumer = new SourceMapConsumer(fs.readFileSync("path/to/my-file.js.map", "utf8"));
-var node = SourceNode.fromStringWithSourceMap(fs.readFileSync("path/to/my-file.js"),
-                                              consumer);
-```
-
-#### SourceNode.prototype.add(chunk)
-
-Add a chunk of generated JS to this source node.
-
-* `chunk`: A string snippet of generated JS code, another instance of
-   `SourceNode`, or an array where each member is one of those things.
-
-```js
-node.add(" + ");
-node.add(otherNode);
-node.add([leftHandOperandNode, " + ", rightHandOperandNode]);
-```
-
-#### SourceNode.prototype.prepend(chunk)
-
-Prepend a chunk of generated JS to this source node.
-
-* `chunk`: A string snippet of generated JS code, another instance of
-   `SourceNode`, or an array where each member is one of those things.
-
-```js
-node.prepend("/** Build Id: f783haef86324gf **/\n\n");
-```
-
-#### SourceNode.prototype.setSourceContent(sourceFile, sourceContent)
-
-Set the source content for a source file. This will be added to the
-`SourceMap` in the `sourcesContent` field.
-
-* `sourceFile`: The filename of the source file
-
-* `sourceContent`: The content of the source file
-
-```js
-node.setSourceContent("module-one.scm",
-                      fs.readFileSync("path/to/module-one.scm"))
-```
-
-#### SourceNode.prototype.walk(fn)
-
-Walk over the tree of JS snippets in this node and its children. The walking
-function is called once for each snippet of JS and is passed that snippet and
-the its original associated source's line/column location.
-
-* `fn`: The traversal function.
-
-```js
-var node = new SourceNode(1, 2, "a.js", [
-  new SourceNode(3, 4, "b.js", "uno"),
-  "dos",
-  [
-    "tres",
-    new SourceNode(5, 6, "c.js", "quatro")
-  ]
-]);
-
-node.walk(function (code, loc) { console.log("WALK:", code, loc); })
-// WALK: uno { source: 'b.js', line: 3, column: 4, name: null }
-// WALK: dos { source: 'a.js', line: 1, column: 2, name: null }
-// WALK: tres { source: 'a.js', line: 1, column: 2, name: null }
-// WALK: quatro { source: 'c.js', line: 5, column: 6, name: null }
-```
-
-#### SourceNode.prototype.walkSourceContents(fn)
-
-Walk over the tree of SourceNodes. The walking function is called for each
-source file content and is passed the filename and source content.
-
-* `fn`: The traversal function.
-
-```js
-var a = new SourceNode(1, 2, "a.js", "generated from a");
-a.setSourceContent("a.js", "original a");
-var b = new SourceNode(1, 2, "b.js", "generated from b");
-b.setSourceContent("b.js", "original b");
-var c = new SourceNode(1, 2, "c.js", "generated from c");
-c.setSourceContent("c.js", "original c");
-
-var node = new SourceNode(null, null, null, [a, b, c]);
-node.walkSourceContents(function (source, contents) { console.log("WALK:", source, ":", contents); })
-// WALK: a.js : original a
-// WALK: b.js : original b
-// WALK: c.js : original c
-```
-
-#### SourceNode.prototype.join(sep)
-
-Like `Array.prototype.join` except for SourceNodes. Inserts the separator
-between each of this source node's children.
-
-* `sep`: The separator.
-
-```js
-var lhs = new SourceNode(1, 2, "a.rs", "my_copy");
-var operand = new SourceNode(3, 4, "a.rs", "=");
-var rhs = new SourceNode(5, 6, "a.rs", "orig.clone()");
-
-var node = new SourceNode(null, null, null, [ lhs, operand, rhs ]);
-var joinedNode = node.join(" ");
-```
-
-#### SourceNode.prototype.replaceRight(pattern, replacement)
-
-Call `String.prototype.replace` on the very right-most source snippet. Useful
-for trimming white space from the end of a source node, etc.
-
-* `pattern`: The pattern to replace.
-
-* `replacement`: The thing to replace the pattern with.
-
-```js
-// Trim trailing white space.
-node.replaceRight(/\s*$/, "");
-```
-
-#### SourceNode.prototype.toString()
-
-Return the string representation of this source node. Walks over the tree and
-concatenates all the various snippets together to one string.
-
-```js
-var node = new SourceNode(1, 2, "a.js", [
-  new SourceNode(3, 4, "b.js", "uno"),
-  "dos",
-  [
-    "tres",
-    new SourceNode(5, 6, "c.js", "quatro")
-  ]
-]);
-
-node.toString()
-// 'unodostresquatro'
-```
-
-#### SourceNode.prototype.toStringWithSourceMap([startOfSourceMap])
-
-Returns the string representation of this tree of source nodes, plus a
-SourceMapGenerator which contains all the mappings between the generated and
-original sources.
-
-The arguments are the same as those to `new SourceMapGenerator`.
-
-```js
-var node = new SourceNode(1, 2, "a.js", [
-  new SourceNode(3, 4, "b.js", "uno"),
-  "dos",
-  [
-    "tres",
-    new SourceNode(5, 6, "c.js", "quatro")
-  ]
-]);
-
-node.toStringWithSourceMap({ file: "my-output-file.js" })
-// { code: 'unodostresquatro',
-//   map: [object SourceMapGenerator] }
-```
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-coverage/node_modules/source-map/dist/source-map.debug.js b/src/cobalt/debug/remote/devtools/node_modules/karma-coverage/node_modules/source-map/dist/source-map.debug.js
deleted file mode 100644
index b5ab638..0000000
--- a/src/cobalt/debug/remote/devtools/node_modules/karma-coverage/node_modules/source-map/dist/source-map.debug.js
+++ /dev/null
@@ -1,3091 +0,0 @@
-(function webpackUniversalModuleDefinition(root, factory) {
-	if(typeof exports === 'object' && typeof module === 'object')
-		module.exports = factory();
-	else if(typeof define === 'function' && define.amd)
-		define([], factory);
-	else if(typeof exports === 'object')
-		exports["sourceMap"] = factory();
-	else
-		root["sourceMap"] = factory();
-})(this, function() {
-return /******/ (function(modules) { // webpackBootstrap
-/******/ 	// The module cache
-/******/ 	var installedModules = {};
-/******/
-/******/ 	// The require function
-/******/ 	function __webpack_require__(moduleId) {
-/******/
-/******/ 		// Check if module is in cache
-/******/ 		if(installedModules[moduleId])
-/******/ 			return installedModules[moduleId].exports;
-/******/
-/******/ 		// Create a new module (and put it into the cache)
-/******/ 		var module = installedModules[moduleId] = {
-/******/ 			exports: {},
-/******/ 			id: moduleId,
-/******/ 			loaded: false
-/******/ 		};
-/******/
-/******/ 		// Execute the module function
-/******/ 		modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
-/******/
-/******/ 		// Flag the module as loaded
-/******/ 		module.loaded = true;
-/******/
-/******/ 		// Return the exports of the module
-/******/ 		return module.exports;
-/******/ 	}
-/******/
-/******/
-/******/ 	// expose the modules object (__webpack_modules__)
-/******/ 	__webpack_require__.m = modules;
-/******/
-/******/ 	// expose the module cache
-/******/ 	__webpack_require__.c = installedModules;
-/******/
-/******/ 	// __webpack_public_path__
-/******/ 	__webpack_require__.p = "";
-/******/
-/******/ 	// Load entry module and return exports
-/******/ 	return __webpack_require__(0);
-/******/ })
-/************************************************************************/
-/******/ ([
-/* 0 */
-/***/ (function(module, exports, __webpack_require__) {
-
-	/*
-	 * Copyright 2009-2011 Mozilla Foundation and contributors
-	 * Licensed under the New BSD license. See LICENSE.txt or:
-	 * http://opensource.org/licenses/BSD-3-Clause
-	 */
-	exports.SourceMapGenerator = __webpack_require__(1).SourceMapGenerator;
-	exports.SourceMapConsumer = __webpack_require__(7).SourceMapConsumer;
-	exports.SourceNode = __webpack_require__(10).SourceNode;
-
-
-/***/ }),
-/* 1 */
-/***/ (function(module, exports, __webpack_require__) {
-
-	/* -*- Mode: js; js-indent-level: 2; -*- */
-	/*
-	 * Copyright 2011 Mozilla Foundation and contributors
-	 * Licensed under the New BSD license. See LICENSE or:
-	 * http://opensource.org/licenses/BSD-3-Clause
-	 */
-	
-	var base64VLQ = __webpack_require__(2);
-	var util = __webpack_require__(4);
-	var ArraySet = __webpack_require__(5).ArraySet;
-	var MappingList = __webpack_require__(6).MappingList;
-	
-	/**
-	 * An instance of the SourceMapGenerator represents a source map which is
-	 * being built incrementally. You may pass an object with the following
-	 * properties:
-	 *
-	 *   - file: The filename of the generated source.
-	 *   - sourceRoot: A root for all relative URLs in this source map.
-	 */
-	function SourceMapGenerator(aArgs) {
-	  if (!aArgs) {
-	    aArgs = {};
-	  }
-	  this._file = util.getArg(aArgs, 'file', null);
-	  this._sourceRoot = util.getArg(aArgs, 'sourceRoot', null);
-	  this._skipValidation = util.getArg(aArgs, 'skipValidation', false);
-	  this._sources = new ArraySet();
-	  this._names = new ArraySet();
-	  this._mappings = new MappingList();
-	  this._sourcesContents = null;
-	}
-	
-	SourceMapGenerator.prototype._version = 3;
-	
-	/**
-	 * Creates a new SourceMapGenerator based on a SourceMapConsumer
-	 *
-	 * @param aSourceMapConsumer The SourceMap.
-	 */
-	SourceMapGenerator.fromSourceMap =
-	  function SourceMapGenerator_fromSourceMap(aSourceMapConsumer) {
-	    var sourceRoot = aSourceMapConsumer.sourceRoot;
-	    var generator = new SourceMapGenerator({
-	      file: aSourceMapConsumer.file,
-	      sourceRoot: sourceRoot
-	    });
-	    aSourceMapConsumer.eachMapping(function (mapping) {
-	      var newMapping = {
-	        generated: {
-	          line: mapping.generatedLine,
-	          column: mapping.generatedColumn
-	        }
-	      };
-	
-	      if (mapping.source != null) {
-	        newMapping.source = mapping.source;
-	        if (sourceRoot != null) {
-	          newMapping.source = util.relative(sourceRoot, newMapping.source);
-	        }
-	
-	        newMapping.original = {
-	          line: mapping.originalLine,
-	          column: mapping.originalColumn
-	        };
-	
-	        if (mapping.name != null) {
-	          newMapping.name = mapping.name;
-	        }
-	      }
-	
-	      generator.addMapping(newMapping);
-	    });
-	    aSourceMapConsumer.sources.forEach(function (sourceFile) {
-	      var content = aSourceMapConsumer.sourceContentFor(sourceFile);
-	      if (content != null) {
-	        generator.setSourceContent(sourceFile, content);
-	      }
-	    });
-	    return generator;
-	  };
-	
-	/**
-	 * Add a single mapping from original source line and column to the generated
-	 * source's line and column for this source map being created. The mapping
-	 * object should have the following properties:
-	 *
-	 *   - generated: An object with the generated line and column positions.
-	 *   - original: An object with the original line and column positions.
-	 *   - source: The original source file (relative to the sourceRoot).
-	 *   - name: An optional original token name for this mapping.
-	 */
-	SourceMapGenerator.prototype.addMapping =
-	  function SourceMapGenerator_addMapping(aArgs) {
-	    var generated = util.getArg(aArgs, 'generated');
-	    var original = util.getArg(aArgs, 'original', null);
-	    var source = util.getArg(aArgs, 'source', null);
-	    var name = util.getArg(aArgs, 'name', null);
-	
-	    if (!this._skipValidation) {
-	      this._validateMapping(generated, original, source, name);
-	    }
-	
-	    if (source != null) {
-	      source = String(source);
-	      if (!this._sources.has(source)) {
-	        this._sources.add(source);
-	      }
-	    }
-	
-	    if (name != null) {
-	      name = String(name);
-	      if (!this._names.has(name)) {
-	        this._names.add(name);
-	      }
-	    }
-	
-	    this._mappings.add({
-	      generatedLine: generated.line,
-	      generatedColumn: generated.column,
-	      originalLine: original != null && original.line,
-	      originalColumn: original != null && original.column,
-	      source: source,
-	      name: name
-	    });
-	  };
-	
-	/**
-	 * Set the source content for a source file.
-	 */
-	SourceMapGenerator.prototype.setSourceContent =
-	  function SourceMapGenerator_setSourceContent(aSourceFile, aSourceContent) {
-	    var source = aSourceFile;
-	    if (this._sourceRoot != null) {
-	      source = util.relative(this._sourceRoot, source);
-	    }
-	
-	    if (aSourceContent != null) {
-	      // Add the source content to the _sourcesContents map.
-	      // Create a new _sourcesContents map if the property is null.
-	      if (!this._sourcesContents) {
-	        this._sourcesContents = Object.create(null);
-	      }
-	      this._sourcesContents[util.toSetString(source)] = aSourceContent;
-	    } else if (this._sourcesContents) {
-	      // Remove the source file from the _sourcesContents map.
-	      // If the _sourcesContents map is empty, set the property to null.
-	      delete this._sourcesContents[util.toSetString(source)];
-	      if (Object.keys(this._sourcesContents).length === 0) {
-	        this._sourcesContents = null;
-	      }
-	    }
-	  };
-	
-	/**
-	 * Applies the mappings of a sub-source-map for a specific source file to the
-	 * source map being generated. Each mapping to the supplied source file is
-	 * rewritten using the supplied source map. Note: The resolution for the
-	 * resulting mappings is the minimium of this map and the supplied map.
-	 *
-	 * @param aSourceMapConsumer The source map to be applied.
-	 * @param aSourceFile Optional. The filename of the source file.
-	 *        If omitted, SourceMapConsumer's file property will be used.
-	 * @param aSourceMapPath Optional. The dirname of the path to the source map
-	 *        to be applied. If relative, it is relative to the SourceMapConsumer.
-	 *        This parameter is needed when the two source maps aren't in the same
-	 *        directory, and the source map to be applied contains relative source
-	 *        paths. If so, those relative source paths need to be rewritten
-	 *        relative to the SourceMapGenerator.
-	 */
-	SourceMapGenerator.prototype.applySourceMap =
-	  function SourceMapGenerator_applySourceMap(aSourceMapConsumer, aSourceFile, aSourceMapPath) {
-	    var sourceFile = aSourceFile;
-	    // If aSourceFile is omitted, we will use the file property of the SourceMap
-	    if (aSourceFile == null) {
-	      if (aSourceMapConsumer.file == null) {
-	        throw new Error(
-	          'SourceMapGenerator.prototype.applySourceMap requires either an explicit source file, ' +
-	          'or the source map\'s "file" property. Both were omitted.'
-	        );
-	      }
-	      sourceFile = aSourceMapConsumer.file;
-	    }
-	    var sourceRoot = this._sourceRoot;
-	    // Make "sourceFile" relative if an absolute Url is passed.
-	    if (sourceRoot != null) {
-	      sourceFile = util.relative(sourceRoot, sourceFile);
-	    }
-	    // Applying the SourceMap can add and remove items from the sources and
-	    // the names array.
-	    var newSources = new ArraySet();
-	    var newNames = new ArraySet();
-	
-	    // Find mappings for the "sourceFile"
-	    this._mappings.unsortedForEach(function (mapping) {
-	      if (mapping.source === sourceFile && mapping.originalLine != null) {
-	        // Check if it can be mapped by the source map, then update the mapping.
-	        var original = aSourceMapConsumer.originalPositionFor({
-	          line: mapping.originalLine,
-	          column: mapping.originalColumn
-	        });
-	        if (original.source != null) {
-	          // Copy mapping
-	          mapping.source = original.source;
-	          if (aSourceMapPath != null) {
-	            mapping.source = util.join(aSourceMapPath, mapping.source)
-	          }
-	          if (sourceRoot != null) {
-	            mapping.source = util.relative(sourceRoot, mapping.source);
-	          }
-	          mapping.originalLine = original.line;
-	          mapping.originalColumn = original.column;
-	          if (original.name != null) {
-	            mapping.name = original.name;
-	          }
-	        }
-	      }
-	
-	      var source = mapping.source;
-	      if (source != null && !newSources.has(source)) {
-	        newSources.add(source);
-	      }
-	
-	      var name = mapping.name;
-	      if (name != null && !newNames.has(name)) {
-	        newNames.add(name);
-	      }
-	
-	    }, this);
-	    this._sources = newSources;
-	    this._names = newNames;
-	
-	    // Copy sourcesContents of applied map.
-	    aSourceMapConsumer.sources.forEach(function (sourceFile) {
-	      var content = aSourceMapConsumer.sourceContentFor(sourceFile);
-	      if (content != null) {
-	        if (aSourceMapPath != null) {
-	          sourceFile = util.join(aSourceMapPath, sourceFile);
-	        }
-	        if (sourceRoot != null) {
-	          sourceFile = util.relative(sourceRoot, sourceFile);
-	        }
-	        this.setSourceContent(sourceFile, content);
-	      }
-	    }, this);
-	  };
-	
-	/**
-	 * A mapping can have one of the three levels of data:
-	 *
-	 *   1. Just the generated position.
-	 *   2. The Generated position, original position, and original source.
-	 *   3. Generated and original position, original source, as well as a name
-	 *      token.
-	 *
-	 * To maintain consistency, we validate that any new mapping being added falls
-	 * in to one of these categories.
-	 */
-	SourceMapGenerator.prototype._validateMapping =
-	  function SourceMapGenerator_validateMapping(aGenerated, aOriginal, aSource,
-	                                              aName) {
-	    // When aOriginal is truthy but has empty values for .line and .column,
-	    // it is most likely a programmer error. In this case we throw a very
-	    // specific error message to try to guide them the right way.
-	    // For example: https://github.com/Polymer/polymer-bundler/pull/519
-	    if (aOriginal && typeof aOriginal.line !== 'number' && typeof aOriginal.column !== 'number') {
-	        throw new Error(
-	            'original.line and original.column are not numbers -- you probably meant to omit ' +
-	            'the original mapping entirely and only map the generated position. If so, pass ' +
-	            'null for the original mapping instead of an object with empty or null values.'
-	        );
-	    }
-	
-	    if (aGenerated && 'line' in aGenerated && 'column' in aGenerated
-	        && aGenerated.line > 0 && aGenerated.column >= 0
-	        && !aOriginal && !aSource && !aName) {
-	      // Case 1.
-	      return;
-	    }
-	    else if (aGenerated && 'line' in aGenerated && 'column' in aGenerated
-	             && aOriginal && 'line' in aOriginal && 'column' in aOriginal
-	             && aGenerated.line > 0 && aGenerated.column >= 0
-	             && aOriginal.line > 0 && aOriginal.column >= 0
-	             && aSource) {
-	      // Cases 2 and 3.
-	      return;
-	    }
-	    else {
-	      throw new Error('Invalid mapping: ' + JSON.stringify({
-	        generated: aGenerated,
-	        source: aSource,
-	        original: aOriginal,
-	        name: aName
-	      }));
-	    }
-	  };
-	
-	/**
-	 * Serialize the accumulated mappings in to the stream of base 64 VLQs
-	 * specified by the source map format.
-	 */
-	SourceMapGenerator.prototype._serializeMappings =
-	  function SourceMapGenerator_serializeMappings() {
-	    var previousGeneratedColumn = 0;
-	    var previousGeneratedLine = 1;
-	    var previousOriginalColumn = 0;
-	    var previousOriginalLine = 0;
-	    var previousName = 0;
-	    var previousSource = 0;
-	    var result = '';
-	    var next;
-	    var mapping;
-	    var nameIdx;
-	    var sourceIdx;
-	
-	    var mappings = this._mappings.toArray();
-	    for (var i = 0, len = mappings.length; i < len; i++) {
-	      mapping = mappings[i];
-	      next = ''
-	
-	      if (mapping.generatedLine !== previousGeneratedLine) {
-	        previousGeneratedColumn = 0;
-	        while (mapping.generatedLine !== previousGeneratedLine) {
-	          next += ';';
-	          previousGeneratedLine++;
-	        }
-	      }
-	      else {
-	        if (i > 0) {
-	          if (!util.compareByGeneratedPositionsInflated(mapping, mappings[i - 1])) {
-	            continue;
-	          }
-	          next += ',';
-	        }
-	      }
-	
-	      next += base64VLQ.encode(mapping.generatedColumn
-	                                 - previousGeneratedColumn);
-	      previousGeneratedColumn = mapping.generatedColumn;
-	
-	      if (mapping.source != null) {
-	        sourceIdx = this._sources.indexOf(mapping.source);
-	        next += base64VLQ.encode(sourceIdx - previousSource);
-	        previousSource = sourceIdx;
-	
-	        // lines are stored 0-based in SourceMap spec version 3
-	        next += base64VLQ.encode(mapping.originalLine - 1
-	                                   - previousOriginalLine);
-	        previousOriginalLine = mapping.originalLine - 1;
-	
-	        next += base64VLQ.encode(mapping.originalColumn
-	                                   - previousOriginalColumn);
-	        previousOriginalColumn = mapping.originalColumn;
-	
-	        if (mapping.name != null) {
-	          nameIdx = this._names.indexOf(mapping.name);
-	          next += base64VLQ.encode(nameIdx - previousName);
-	          previousName = nameIdx;
-	        }
-	      }
-	
-	      result += next;
-	    }
-	
-	    return result;
-	  };
-	
-	SourceMapGenerator.prototype._generateSourcesContent =
-	  function SourceMapGenerator_generateSourcesContent(aSources, aSourceRoot) {
-	    return aSources.map(function (source) {
-	      if (!this._sourcesContents) {
-	        return null;
-	      }
-	      if (aSourceRoot != null) {
-	        source = util.relative(aSourceRoot, source);
-	      }
-	      var key = util.toSetString(source);
-	      return Object.prototype.hasOwnProperty.call(this._sourcesContents, key)
-	        ? this._sourcesContents[key]
-	        : null;
-	    }, this);
-	  };
-	
-	/**
-	 * Externalize the source map.
-	 */
-	SourceMapGenerator.prototype.toJSON =
-	  function SourceMapGenerator_toJSON() {
-	    var map = {
-	      version: this._version,
-	      sources: this._sources.toArray(),
-	      names: this._names.toArray(),
-	      mappings: this._serializeMappings()
-	    };
-	    if (this._file != null) {
-	      map.file = this._file;
-	    }
-	    if (this._sourceRoot != null) {
-	      map.sourceRoot = this._sourceRoot;
-	    }
-	    if (this._sourcesContents) {
-	      map.sourcesContent = this._generateSourcesContent(map.sources, map.sourceRoot);
-	    }
-	
-	    return map;
-	  };
-	
-	/**
-	 * Render the source map being generated to a string.
-	 */
-	SourceMapGenerator.prototype.toString =
-	  function SourceMapGenerator_toString() {
-	    return JSON.stringify(this.toJSON());
-	  };
-	
-	exports.SourceMapGenerator = SourceMapGenerator;
-
-
-/***/ }),
-/* 2 */
-/***/ (function(module, exports, __webpack_require__) {
-
-	/* -*- Mode: js; js-indent-level: 2; -*- */
-	/*
-	 * Copyright 2011 Mozilla Foundation and contributors
-	 * Licensed under the New BSD license. See LICENSE or:
-	 * http://opensource.org/licenses/BSD-3-Clause
-	 *
-	 * Based on the Base 64 VLQ implementation in Closure Compiler:
-	 * https://code.google.com/p/closure-compiler/source/browse/trunk/src/com/google/debugging/sourcemap/Base64VLQ.java
-	 *
-	 * Copyright 2011 The Closure Compiler Authors. All rights reserved.
-	 * Redistribution and use in source and binary forms, with or without
-	 * modification, are permitted provided that the following conditions are
-	 * met:
-	 *
-	 *  * Redistributions of source code must retain the above copyright
-	 *    notice, this list of conditions and the following disclaimer.
-	 *  * Redistributions in binary form must reproduce the above
-	 *    copyright notice, this list of conditions and the following
-	 *    disclaimer in the documentation and/or other materials provided
-	 *    with the distribution.
-	 *  * Neither the name of Google Inc. nor the names of its
-	 *    contributors may be used to endorse or promote products derived
-	 *    from this software without specific prior written permission.
-	 *
-	 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-	 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-	 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-	 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-	 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-	 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-	 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-	 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-	 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-	 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-	 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-	 */
-	
-	var base64 = __webpack_require__(3);
-	
-	// A single base 64 digit can contain 6 bits of data. For the base 64 variable
-	// length quantities we use in the source map spec, the first bit is the sign,
-	// the next four bits are the actual value, and the 6th bit is the
-	// continuation bit. The continuation bit tells us whether there are more
-	// digits in this value following this digit.
-	//
-	//   Continuation
-	//   |    Sign
-	//   |    |
-	//   V    V
-	//   101011
-	
-	var VLQ_BASE_SHIFT = 5;
-	
-	// binary: 100000
-	var VLQ_BASE = 1 << VLQ_BASE_SHIFT;
-	
-	// binary: 011111
-	var VLQ_BASE_MASK = VLQ_BASE - 1;
-	
-	// binary: 100000
-	var VLQ_CONTINUATION_BIT = VLQ_BASE;
-	
-	/**
-	 * Converts from a two-complement value to a value where the sign bit is
-	 * placed in the least significant bit.  For example, as decimals:
-	 *   1 becomes 2 (10 binary), -1 becomes 3 (11 binary)
-	 *   2 becomes 4 (100 binary), -2 becomes 5 (101 binary)
-	 */
-	function toVLQSigned(aValue) {
-	  return aValue < 0
-	    ? ((-aValue) << 1) + 1
-	    : (aValue << 1) + 0;
-	}
-	
-	/**
-	 * Converts to a two-complement value from a value where the sign bit is
-	 * placed in the least significant bit.  For example, as decimals:
-	 *   2 (10 binary) becomes 1, 3 (11 binary) becomes -1
-	 *   4 (100 binary) becomes 2, 5 (101 binary) becomes -2
-	 */
-	function fromVLQSigned(aValue) {
-	  var isNegative = (aValue & 1) === 1;
-	  var shifted = aValue >> 1;
-	  return isNegative
-	    ? -shifted
-	    : shifted;
-	}
-	
-	/**
-	 * Returns the base 64 VLQ encoded value.
-	 */
-	exports.encode = function base64VLQ_encode(aValue) {
-	  var encoded = "";
-	  var digit;
-	
-	  var vlq = toVLQSigned(aValue);
-	
-	  do {
-	    digit = vlq & VLQ_BASE_MASK;
-	    vlq >>>= VLQ_BASE_SHIFT;
-	    if (vlq > 0) {
-	      // There are still more digits in this value, so we must make sure the
-	      // continuation bit is marked.
-	      digit |= VLQ_CONTINUATION_BIT;
-	    }
-	    encoded += base64.encode(digit);
-	  } while (vlq > 0);
-	
-	  return encoded;
-	};
-	
-	/**
-	 * Decodes the next base 64 VLQ value from the given string and returns the
-	 * value and the rest of the string via the out parameter.
-	 */
-	exports.decode = function base64VLQ_decode(aStr, aIndex, aOutParam) {
-	  var strLen = aStr.length;
-	  var result = 0;
-	  var shift = 0;
-	  var continuation, digit;
-	
-	  do {
-	    if (aIndex >= strLen) {
-	      throw new Error("Expected more digits in base 64 VLQ value.");
-	    }
-	
-	    digit = base64.decode(aStr.charCodeAt(aIndex++));
-	    if (digit === -1) {
-	      throw new Error("Invalid base64 digit: " + aStr.charAt(aIndex - 1));
-	    }
-	
-	    continuation = !!(digit & VLQ_CONTINUATION_BIT);
-	    digit &= VLQ_BASE_MASK;
-	    result = result + (digit << shift);
-	    shift += VLQ_BASE_SHIFT;
-	  } while (continuation);
-	
-	  aOutParam.value = fromVLQSigned(result);
-	  aOutParam.rest = aIndex;
-	};
-
-
-/***/ }),
-/* 3 */
-/***/ (function(module, exports) {
-
-	/* -*- Mode: js; js-indent-level: 2; -*- */
-	/*
-	 * Copyright 2011 Mozilla Foundation and contributors
-	 * Licensed under the New BSD license. See LICENSE or:
-	 * http://opensource.org/licenses/BSD-3-Clause
-	 */
-	
-	var intToCharMap = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'.split('');
-	
-	/**
-	 * Encode an integer in the range of 0 to 63 to a single base 64 digit.
-	 */
-	exports.encode = function (number) {
-	  if (0 <= number && number < intToCharMap.length) {
-	    return intToCharMap[number];
-	  }
-	  throw new TypeError("Must be between 0 and 63: " + number);
-	};
-	
-	/**
-	 * Decode a single base 64 character code digit to an integer. Returns -1 on
-	 * failure.
-	 */
-	exports.decode = function (charCode) {
-	  var bigA = 65;     // 'A'
-	  var bigZ = 90;     // 'Z'
-	
-	  var littleA = 97;  // 'a'
-	  var littleZ = 122; // 'z'
-	
-	  var zero = 48;     // '0'
-	  var nine = 57;     // '9'
-	
-	  var plus = 43;     // '+'
-	  var slash = 47;    // '/'
-	
-	  var littleOffset = 26;
-	  var numberOffset = 52;
-	
-	  // 0 - 25: ABCDEFGHIJKLMNOPQRSTUVWXYZ
-	  if (bigA <= charCode && charCode <= bigZ) {
-	    return (charCode - bigA);
-	  }
-	
-	  // 26 - 51: abcdefghijklmnopqrstuvwxyz
-	  if (littleA <= charCode && charCode <= littleZ) {
-	    return (charCode - littleA + littleOffset);
-	  }
-	
-	  // 52 - 61: 0123456789
-	  if (zero <= charCode && charCode <= nine) {
-	    return (charCode - zero + numberOffset);
-	  }
-	
-	  // 62: +
-	  if (charCode == plus) {
-	    return 62;
-	  }
-	
-	  // 63: /
-	  if (charCode == slash) {
-	    return 63;
-	  }
-	
-	  // Invalid base64 digit.
-	  return -1;
-	};
-
-
-/***/ }),
-/* 4 */
-/***/ (function(module, exports) {
-
-	/* -*- Mode: js; js-indent-level: 2; -*- */
-	/*
-	 * Copyright 2011 Mozilla Foundation and contributors
-	 * Licensed under the New BSD license. See LICENSE or:
-	 * http://opensource.org/licenses/BSD-3-Clause
-	 */
-	
-	/**
-	 * This is a helper function for getting values from parameter/options
-	 * objects.
-	 *
-	 * @param args The object we are extracting values from
-	 * @param name The name of the property we are getting.
-	 * @param defaultValue An optional value to return if the property is missing
-	 * from the object. If this is not specified and the property is missing, an
-	 * error will be thrown.
-	 */
-	function getArg(aArgs, aName, aDefaultValue) {
-	  if (aName in aArgs) {
-	    return aArgs[aName];
-	  } else if (arguments.length === 3) {
-	    return aDefaultValue;
-	  } else {
-	    throw new Error('"' + aName + '" is a required argument.');
-	  }
-	}
-	exports.getArg = getArg;
-	
-	var urlRegexp = /^(?:([\w+\-.]+):)?\/\/(?:(\w+:\w+)@)?([\w.]*)(?::(\d+))?(\S*)$/;
-	var dataUrlRegexp = /^data:.+\,.+$/;
-	
-	function urlParse(aUrl) {
-	  var match = aUrl.match(urlRegexp);
-	  if (!match) {
-	    return null;
-	  }
-	  return {
-	    scheme: match[1],
-	    auth: match[2],
-	    host: match[3],
-	    port: match[4],
-	    path: match[5]
-	  };
-	}
-	exports.urlParse = urlParse;
-	
-	function urlGenerate(aParsedUrl) {
-	  var url = '';
-	  if (aParsedUrl.scheme) {
-	    url += aParsedUrl.scheme + ':';
-	  }
-	  url += '//';
-	  if (aParsedUrl.auth) {
-	    url += aParsedUrl.auth + '@';
-	  }
-	  if (aParsedUrl.host) {
-	    url += aParsedUrl.host;
-	  }
-	  if (aParsedUrl.port) {
-	    url += ":" + aParsedUrl.port
-	  }
-	  if (aParsedUrl.path) {
-	    url += aParsedUrl.path;
-	  }
-	  return url;
-	}
-	exports.urlGenerate = urlGenerate;
-	
-	/**
-	 * Normalizes a path, or the path portion of a URL:
-	 *
-	 * - Replaces consecutive slashes with one slash.
-	 * - Removes unnecessary '.' parts.
-	 * - Removes unnecessary '<dir>/..' parts.
-	 *
-	 * Based on code in the Node.js 'path' core module.
-	 *
-	 * @param aPath The path or url to normalize.
-	 */
-	function normalize(aPath) {
-	  var path = aPath;
-	  var url = urlParse(aPath);
-	  if (url) {
-	    if (!url.path) {
-	      return aPath;
-	    }
-	    path = url.path;
-	  }
-	  var isAbsolute = exports.isAbsolute(path);
-	
-	  var parts = path.split(/\/+/);
-	  for (var part, up = 0, i = parts.length - 1; i >= 0; i--) {
-	    part = parts[i];
-	    if (part === '.') {
-	      parts.splice(i, 1);
-	    } else if (part === '..') {
-	      up++;
-	    } else if (up > 0) {
-	      if (part === '') {
-	        // The first part is blank if the path is absolute. Trying to go
-	        // above the root is a no-op. Therefore we can remove all '..' parts
-	        // directly after the root.
-	        parts.splice(i + 1, up);
-	        up = 0;
-	      } else {
-	        parts.splice(i, 2);
-	        up--;
-	      }
-	    }
-	  }
-	  path = parts.join('/');
-	
-	  if (path === '') {
-	    path = isAbsolute ? '/' : '.';
-	  }
-	
-	  if (url) {
-	    url.path = path;
-	    return urlGenerate(url);
-	  }
-	  return path;
-	}
-	exports.normalize = normalize;
-	
-	/**
-	 * Joins two paths/URLs.
-	 *
-	 * @param aRoot The root path or URL.
-	 * @param aPath The path or URL to be joined with the root.
-	 *
-	 * - If aPath is a URL or a data URI, aPath is returned, unless aPath is a
-	 *   scheme-relative URL: Then the scheme of aRoot, if any, is prepended
-	 *   first.
-	 * - Otherwise aPath is a path. If aRoot is a URL, then its path portion
-	 *   is updated with the result and aRoot is returned. Otherwise the result
-	 *   is returned.
-	 *   - If aPath is absolute, the result is aPath.
-	 *   - Otherwise the two paths are joined with a slash.
-	 * - Joining for example 'http://' and 'www.example.com' is also supported.
-	 */
-	function join(aRoot, aPath) {
-	  if (aRoot === "") {
-	    aRoot = ".";
-	  }
-	  if (aPath === "") {
-	    aPath = ".";
-	  }
-	  var aPathUrl = urlParse(aPath);
-	  var aRootUrl = urlParse(aRoot);
-	  if (aRootUrl) {
-	    aRoot = aRootUrl.path || '/';
-	  }
-	
-	  // `join(foo, '//www.example.org')`
-	  if (aPathUrl && !aPathUrl.scheme) {
-	    if (aRootUrl) {
-	      aPathUrl.scheme = aRootUrl.scheme;
-	    }
-	    return urlGenerate(aPathUrl);
-	  }
-	
-	  if (aPathUrl || aPath.match(dataUrlRegexp)) {
-	    return aPath;
-	  }
-	
-	  // `join('http://', 'www.example.com')`
-	  if (aRootUrl && !aRootUrl.host && !aRootUrl.path) {
-	    aRootUrl.host = aPath;
-	    return urlGenerate(aRootUrl);
-	  }
-	
-	  var joined = aPath.charAt(0) === '/'
-	    ? aPath
-	    : normalize(aRoot.replace(/\/+$/, '') + '/' + aPath);
-	
-	  if (aRootUrl) {
-	    aRootUrl.path = joined;
-	    return urlGenerate(aRootUrl);
-	  }
-	  return joined;
-	}
-	exports.join = join;
-	
-	exports.isAbsolute = function (aPath) {
-	  return aPath.charAt(0) === '/' || !!aPath.match(urlRegexp);
-	};
-	
-	/**
-	 * Make a path relative to a URL or another path.
-	 *
-	 * @param aRoot The root path or URL.
-	 * @param aPath The path or URL to be made relative to aRoot.
-	 */
-	function relative(aRoot, aPath) {
-	  if (aRoot === "") {
-	    aRoot = ".";
-	  }
-	
-	  aRoot = aRoot.replace(/\/$/, '');
-	
-	  // It is possible for the path to be above the root. In this case, simply
-	  // checking whether the root is a prefix of the path won't work. Instead, we
-	  // need to remove components from the root one by one, until either we find
-	  // a prefix that fits, or we run out of components to remove.
-	  var level = 0;
-	  while (aPath.indexOf(aRoot + '/') !== 0) {
-	    var index = aRoot.lastIndexOf("/");
-	    if (index < 0) {
-	      return aPath;
-	    }
-	
-	    // If the only part of the root that is left is the scheme (i.e. http://,
-	    // file:///, etc.), one or more slashes (/), or simply nothing at all, we
-	    // have exhausted all components, so the path is not relative to the root.
-	    aRoot = aRoot.slice(0, index);
-	    if (aRoot.match(/^([^\/]+:\/)?\/*$/)) {
-	      return aPath;
-	    }
-	
-	    ++level;
-	  }
-	
-	  // Make sure we add a "../" for each component we removed from the root.
-	  return Array(level + 1).join("../") + aPath.substr(aRoot.length + 1);
-	}
-	exports.relative = relative;
-	
-	var supportsNullProto = (function () {
-	  var obj = Object.create(null);
-	  return !('__proto__' in obj);
-	}());
-	
-	function identity (s) {
-	  return s;
-	}
-	
-	/**
-	 * Because behavior goes wacky when you set `__proto__` on objects, we
-	 * have to prefix all the strings in our set with an arbitrary character.
-	 *
-	 * See https://github.com/mozilla/source-map/pull/31 and
-	 * https://github.com/mozilla/source-map/issues/30
-	 *
-	 * @param String aStr
-	 */
-	function toSetString(aStr) {
-	  if (isProtoString(aStr)) {
-	    return '$' + aStr;
-	  }
-	
-	  return aStr;
-	}
-	exports.toSetString = supportsNullProto ? identity : toSetString;
-	
-	function fromSetString(aStr) {
-	  if (isProtoString(aStr)) {
-	    return aStr.slice(1);
-	  }
-	
-	  return aStr;
-	}
-	exports.fromSetString = supportsNullProto ? identity : fromSetString;
-	
-	function isProtoString(s) {
-	  if (!s) {
-	    return false;
-	  }
-	
-	  var length = s.length;
-	
-	  if (length < 9 /* "__proto__".length */) {
-	    return false;
-	  }
-	
-	  if (s.charCodeAt(length - 1) !== 95  /* '_' */ ||
-	      s.charCodeAt(length - 2) !== 95  /* '_' */ ||
-	      s.charCodeAt(length - 3) !== 111 /* 'o' */ ||
-	      s.charCodeAt(length - 4) !== 116 /* 't' */ ||
-	      s.charCodeAt(length - 5) !== 111 /* 'o' */ ||
-	      s.charCodeAt(length - 6) !== 114 /* 'r' */ ||
-	      s.charCodeAt(length - 7) !== 112 /* 'p' */ ||
-	      s.charCodeAt(length - 8) !== 95  /* '_' */ ||
-	      s.charCodeAt(length - 9) !== 95  /* '_' */) {
-	    return false;
-	  }
-	
-	  for (var i = length - 10; i >= 0; i--) {
-	    if (s.charCodeAt(i) !== 36 /* '$' */) {
-	      return false;
-	    }
-	  }
-	
-	  return true;
-	}
-	
-	/**
-	 * Comparator between two mappings where the original positions are compared.
-	 *
-	 * Optionally pass in `true` as `onlyCompareGenerated` to consider two
-	 * mappings with the same original source/line/column, but different generated
-	 * line and column the same. Useful when searching for a mapping with a
-	 * stubbed out mapping.
-	 */
-	function compareByOriginalPositions(mappingA, mappingB, onlyCompareOriginal) {
-	  var cmp = mappingA.source - mappingB.source;
-	  if (cmp !== 0) {
-	    return cmp;
-	  }
-	
-	  cmp = mappingA.originalLine - mappingB.originalLine;
-	  if (cmp !== 0) {
-	    return cmp;
-	  }
-	
-	  cmp = mappingA.originalColumn - mappingB.originalColumn;
-	  if (cmp !== 0 || onlyCompareOriginal) {
-	    return cmp;
-	  }
-	
-	  cmp = mappingA.generatedColumn - mappingB.generatedColumn;
-	  if (cmp !== 0) {
-	    return cmp;
-	  }
-	
-	  cmp = mappingA.generatedLine - mappingB.generatedLine;
-	  if (cmp !== 0) {
-	    return cmp;
-	  }
-	
-	  return mappingA.name - mappingB.name;
-	}
-	exports.compareByOriginalPositions = compareByOriginalPositions;
-	
-	/**
-	 * Comparator between two mappings with deflated source and name indices where
-	 * the generated positions are compared.
-	 *
-	 * Optionally pass in `true` as `onlyCompareGenerated` to consider two
-	 * mappings with the same generated line and column, but different
-	 * source/name/original line and column the same. Useful when searching for a
-	 * mapping with a stubbed out mapping.
-	 */
-	function compareByGeneratedPositionsDeflated(mappingA, mappingB, onlyCompareGenerated) {
-	  var cmp = mappingA.generatedLine - mappingB.generatedLine;
-	  if (cmp !== 0) {
-	    return cmp;
-	  }
-	
-	  cmp = mappingA.generatedColumn - mappingB.generatedColumn;
-	  if (cmp !== 0 || onlyCompareGenerated) {
-	    return cmp;
-	  }
-	
-	  cmp = mappingA.source - mappingB.source;
-	  if (cmp !== 0) {
-	    return cmp;
-	  }
-	
-	  cmp = mappingA.originalLine - mappingB.originalLine;
-	  if (cmp !== 0) {
-	    return cmp;
-	  }
-	
-	  cmp = mappingA.originalColumn - mappingB.originalColumn;
-	  if (cmp !== 0) {
-	    return cmp;
-	  }
-	
-	  return mappingA.name - mappingB.name;
-	}
-	exports.compareByGeneratedPositionsDeflated = compareByGeneratedPositionsDeflated;
-	
-	function strcmp(aStr1, aStr2) {
-	  if (aStr1 === aStr2) {
-	    return 0;
-	  }
-	
-	  if (aStr1 > aStr2) {
-	    return 1;
-	  }
-	
-	  return -1;
-	}
-	
-	/**
-	 * Comparator between two mappings with inflated source and name strings where
-	 * the generated positions are compared.
-	 */
-	function compareByGeneratedPositionsInflated(mappingA, mappingB) {
-	  var cmp = mappingA.generatedLine - mappingB.generatedLine;
-	  if (cmp !== 0) {
-	    return cmp;
-	  }
-	
-	  cmp = mappingA.generatedColumn - mappingB.generatedColumn;
-	  if (cmp !== 0) {
-	    return cmp;
-	  }
-	
-	  cmp = strcmp(mappingA.source, mappingB.source);
-	  if (cmp !== 0) {
-	    return cmp;
-	  }
-	
-	  cmp = mappingA.originalLine - mappingB.originalLine;
-	  if (cmp !== 0) {
-	    return cmp;
-	  }
-	
-	  cmp = mappingA.originalColumn - mappingB.originalColumn;
-	  if (cmp !== 0) {
-	    return cmp;
-	  }
-	
-	  return strcmp(mappingA.name, mappingB.name);
-	}
-	exports.compareByGeneratedPositionsInflated = compareByGeneratedPositionsInflated;
-
-
-/***/ }),
-/* 5 */
-/***/ (function(module, exports, __webpack_require__) {
-
-	/* -*- Mode: js; js-indent-level: 2; -*- */
-	/*
-	 * Copyright 2011 Mozilla Foundation and contributors
-	 * Licensed under the New BSD license. See LICENSE or:
-	 * http://opensource.org/licenses/BSD-3-Clause
-	 */
-	
-	var util = __webpack_require__(4);
-	var has = Object.prototype.hasOwnProperty;
-	var hasNativeMap = typeof Map !== "undefined";
-	
-	/**
-	 * A data structure which is a combination of an array and a set. Adding a new
-	 * member is O(1), testing for membership is O(1), and finding the index of an
-	 * element is O(1). Removing elements from the set is not supported. Only
-	 * strings are supported for membership.
-	 */
-	function ArraySet() {
-	  this._array = [];
-	  this._set = hasNativeMap ? new Map() : Object.create(null);
-	}
-	
-	/**
-	 * Static method for creating ArraySet instances from an existing array.
-	 */
-	ArraySet.fromArray = function ArraySet_fromArray(aArray, aAllowDuplicates) {
-	  var set = new ArraySet();
-	  for (var i = 0, len = aArray.length; i < len; i++) {
-	    set.add(aArray[i], aAllowDuplicates);
-	  }
-	  return set;
-	};
-	
-	/**
-	 * Return how many unique items are in this ArraySet. If duplicates have been
-	 * added, than those do not count towards the size.
-	 *
-	 * @returns Number
-	 */
-	ArraySet.prototype.size = function ArraySet_size() {
-	  return hasNativeMap ? this._set.size : Object.getOwnPropertyNames(this._set).length;
-	};
-	
-	/**
-	 * Add the given string to this set.
-	 *
-	 * @param String aStr
-	 */
-	ArraySet.prototype.add = function ArraySet_add(aStr, aAllowDuplicates) {
-	  var sStr = hasNativeMap ? aStr : util.toSetString(aStr);
-	  var isDuplicate = hasNativeMap ? this.has(aStr) : has.call(this._set, sStr);
-	  var idx = this._array.length;
-	  if (!isDuplicate || aAllowDuplicates) {
-	    this._array.push(aStr);
-	  }
-	  if (!isDuplicate) {
-	    if (hasNativeMap) {
-	      this._set.set(aStr, idx);
-	    } else {
-	      this._set[sStr] = idx;
-	    }
-	  }
-	};
-	
-	/**
-	 * Is the given string a member of this set?
-	 *
-	 * @param String aStr
-	 */
-	ArraySet.prototype.has = function ArraySet_has(aStr) {
-	  if (hasNativeMap) {
-	    return this._set.has(aStr);
-	  } else {
-	    var sStr = util.toSetString(aStr);
-	    return has.call(this._set, sStr);
-	  }
-	};
-	
-	/**
-	 * What is the index of the given string in the array?
-	 *
-	 * @param String aStr
-	 */
-	ArraySet.prototype.indexOf = function ArraySet_indexOf(aStr) {
-	  if (hasNativeMap) {
-	    var idx = this._set.get(aStr);
-	    if (idx >= 0) {
-	        return idx;
-	    }
-	  } else {
-	    var sStr = util.toSetString(aStr);
-	    if (has.call(this._set, sStr)) {
-	      return this._set[sStr];
-	    }
-	  }
-	
-	  throw new Error('"' + aStr + '" is not in the set.');
-	};
-	
-	/**
-	 * What is the element at the given index?
-	 *
-	 * @param Number aIdx
-	 */
-	ArraySet.prototype.at = function ArraySet_at(aIdx) {
-	  if (aIdx >= 0 && aIdx < this._array.length) {
-	    return this._array[aIdx];
-	  }
-	  throw new Error('No element indexed by ' + aIdx);
-	};
-	
-	/**
-	 * Returns the array representation of this set (which has the proper indices
-	 * indicated by indexOf). Note that this is a copy of the internal array used
-	 * for storing the members so that no one can mess with internal state.
-	 */
-	ArraySet.prototype.toArray = function ArraySet_toArray() {
-	  return this._array.slice();
-	};
-	
-	exports.ArraySet = ArraySet;
-
-
-/***/ }),
-/* 6 */
-/***/ (function(module, exports, __webpack_require__) {
-
-	/* -*- Mode: js; js-indent-level: 2; -*- */
-	/*
-	 * Copyright 2014 Mozilla Foundation and contributors
-	 * Licensed under the New BSD license. See LICENSE or:
-	 * http://opensource.org/licenses/BSD-3-Clause
-	 */
-	
-	var util = __webpack_require__(4);
-	
-	/**
-	 * Determine whether mappingB is after mappingA with respect to generated
-	 * position.
-	 */
-	function generatedPositionAfter(mappingA, mappingB) {
-	  // Optimized for most common case
-	  var lineA = mappingA.generatedLine;
-	  var lineB = mappingB.generatedLine;
-	  var columnA = mappingA.generatedColumn;
-	  var columnB = mappingB.generatedColumn;
-	  return lineB > lineA || lineB == lineA && columnB >= columnA ||
-	         util.compareByGeneratedPositionsInflated(mappingA, mappingB) <= 0;
-	}
-	
-	/**
-	 * A data structure to provide a sorted view of accumulated mappings in a
-	 * performance conscious manner. It trades a neglibable overhead in general
-	 * case for a large speedup in case of mappings being added in order.
-	 */
-	function MappingList() {
-	  this._array = [];
-	  this._sorted = true;
-	  // Serves as infimum
-	  this._last = {generatedLine: -1, generatedColumn: 0};
-	}
-	
-	/**
-	 * Iterate through internal items. This method takes the same arguments that
-	 * `Array.prototype.forEach` takes.
-	 *
-	 * NOTE: The order of the mappings is NOT guaranteed.
-	 */
-	MappingList.prototype.unsortedForEach =
-	  function MappingList_forEach(aCallback, aThisArg) {
-	    this._array.forEach(aCallback, aThisArg);
-	  };
-	
-	/**
-	 * Add the given source mapping.
-	 *
-	 * @param Object aMapping
-	 */
-	MappingList.prototype.add = function MappingList_add(aMapping) {
-	  if (generatedPositionAfter(this._last, aMapping)) {
-	    this._last = aMapping;
-	    this._array.push(aMapping);
-	  } else {
-	    this._sorted = false;
-	    this._array.push(aMapping);
-	  }
-	};
-	
-	/**
-	 * Returns the flat, sorted array of mappings. The mappings are sorted by
-	 * generated position.
-	 *
-	 * WARNING: This method returns internal data without copying, for
-	 * performance. The return value must NOT be mutated, and should be treated as
-	 * an immutable borrow. If you want to take ownership, you must make your own
-	 * copy.
-	 */
-	MappingList.prototype.toArray = function MappingList_toArray() {
-	  if (!this._sorted) {
-	    this._array.sort(util.compareByGeneratedPositionsInflated);
-	    this._sorted = true;
-	  }
-	  return this._array;
-	};
-	
-	exports.MappingList = MappingList;
-
-
-/***/ }),
-/* 7 */
-/***/ (function(module, exports, __webpack_require__) {
-
-	/* -*- Mode: js; js-indent-level: 2; -*- */
-	/*
-	 * Copyright 2011 Mozilla Foundation and contributors
-	 * Licensed under the New BSD license. See LICENSE or:
-	 * http://opensource.org/licenses/BSD-3-Clause
-	 */
-	
-	var util = __webpack_require__(4);
-	var binarySearch = __webpack_require__(8);
-	var ArraySet = __webpack_require__(5).ArraySet;
-	var base64VLQ = __webpack_require__(2);
-	var quickSort = __webpack_require__(9).quickSort;
-	
-	function SourceMapConsumer(aSourceMap) {
-	  var sourceMap = aSourceMap;
-	  if (typeof aSourceMap === 'string') {
-	    sourceMap = JSON.parse(aSourceMap.replace(/^\)\]\}'/, ''));
-	  }
-	
-	  return sourceMap.sections != null
-	    ? new IndexedSourceMapConsumer(sourceMap)
-	    : new BasicSourceMapConsumer(sourceMap);
-	}
-	
-	SourceMapConsumer.fromSourceMap = function(aSourceMap) {
-	  return BasicSourceMapConsumer.fromSourceMap(aSourceMap);
-	}
-	
-	/**
-	 * The version of the source mapping spec that we are consuming.
-	 */
-	SourceMapConsumer.prototype._version = 3;
-	
-	// `__generatedMappings` and `__originalMappings` are arrays that hold the
-	// parsed mapping coordinates from the source map's "mappings" attribute. They
-	// are lazily instantiated, accessed via the `_generatedMappings` and
-	// `_originalMappings` getters respectively, and we only parse the mappings
-	// and create these arrays once queried for a source location. We jump through
-	// these hoops because there can be many thousands of mappings, and parsing
-	// them is expensive, so we only want to do it if we must.
-	//
-	// Each object in the arrays is of the form:
-	//
-	//     {
-	//       generatedLine: The line number in the generated code,
-	//       generatedColumn: The column number in the generated code,
-	//       source: The path to the original source file that generated this
-	//               chunk of code,
-	//       originalLine: The line number in the original source that
-	//                     corresponds to this chunk of generated code,
-	//       originalColumn: The column number in the original source that
-	//                       corresponds to this chunk of generated code,
-	//       name: The name of the original symbol which generated this chunk of
-	//             code.
-	//     }
-	//
-	// All properties except for `generatedLine` and `generatedColumn` can be
-	// `null`.
-	//
-	// `_generatedMappings` is ordered by the generated positions.
-	//
-	// `_originalMappings` is ordered by the original positions.
-	
-	SourceMapConsumer.prototype.__generatedMappings = null;
-	Object.defineProperty(SourceMapConsumer.prototype, '_generatedMappings', {
-	  get: function () {
-	    if (!this.__generatedMappings) {
-	      this._parseMappings(this._mappings, this.sourceRoot);
-	    }
-	
-	    return this.__generatedMappings;
-	  }
-	});
-	
-	SourceMapConsumer.prototype.__originalMappings = null;
-	Object.defineProperty(SourceMapConsumer.prototype, '_originalMappings', {
-	  get: function () {
-	    if (!this.__originalMappings) {
-	      this._parseMappings(this._mappings, this.sourceRoot);
-	    }
-	
-	    return this.__originalMappings;
-	  }
-	});
-	
-	SourceMapConsumer.prototype._charIsMappingSeparator =
-	  function SourceMapConsumer_charIsMappingSeparator(aStr, index) {
-	    var c = aStr.charAt(index);
-	    return c === ";" || c === ",";
-	  };
-	
-	/**
-	 * Parse the mappings in a string in to a data structure which we can easily
-	 * query (the ordered arrays in the `this.__generatedMappings` and
-	 * `this.__originalMappings` properties).
-	 */
-	SourceMapConsumer.prototype._parseMappings =
-	  function SourceMapConsumer_parseMappings(aStr, aSourceRoot) {
-	    throw new Error("Subclasses must implement _parseMappings");
-	  };
-	
-	SourceMapConsumer.GENERATED_ORDER = 1;
-	SourceMapConsumer.ORIGINAL_ORDER = 2;
-	
-	SourceMapConsumer.GREATEST_LOWER_BOUND = 1;
-	SourceMapConsumer.LEAST_UPPER_BOUND = 2;
-	
-	/**
-	 * Iterate over each mapping between an original source/line/column and a
-	 * generated line/column in this source map.
-	 *
-	 * @param Function aCallback
-	 *        The function that is called with each mapping.
-	 * @param Object aContext
-	 *        Optional. If specified, this object will be the value of `this` every
-	 *        time that `aCallback` is called.
-	 * @param aOrder
-	 *        Either `SourceMapConsumer.GENERATED_ORDER` or
-	 *        `SourceMapConsumer.ORIGINAL_ORDER`. Specifies whether you want to
-	 *        iterate over the mappings sorted by the generated file's line/column
-	 *        order or the original's source/line/column order, respectively. Defaults to
-	 *        `SourceMapConsumer.GENERATED_ORDER`.
-	 */
-	SourceMapConsumer.prototype.eachMapping =
-	  function SourceMapConsumer_eachMapping(aCallback, aContext, aOrder) {
-	    var context = aContext || null;
-	    var order = aOrder || SourceMapConsumer.GENERATED_ORDER;
-	
-	    var mappings;
-	    switch (order) {
-	    case SourceMapConsumer.GENERATED_ORDER:
-	      mappings = this._generatedMappings;
-	      break;
-	    case SourceMapConsumer.ORIGINAL_ORDER:
-	      mappings = this._originalMappings;
-	      break;
-	    default:
-	      throw new Error("Unknown order of iteration.");
-	    }
-	
-	    var sourceRoot = this.sourceRoot;
-	    mappings.map(function (mapping) {
-	      var source = mapping.source === null ? null : this._sources.at(mapping.source);
-	      if (source != null && sourceRoot != null) {
-	        source = util.join(sourceRoot, source);
-	      }
-	      return {
-	        source: source,
-	        generatedLine: mapping.generatedLine,
-	        generatedColumn: mapping.generatedColumn,
-	        originalLine: mapping.originalLine,
-	        originalColumn: mapping.originalColumn,
-	        name: mapping.name === null ? null : this._names.at(mapping.name)
-	      };
-	    }, this).forEach(aCallback, context);
-	  };
-	
-	/**
-	 * Returns all generated line and column information for the original source,
-	 * line, and column provided. If no column is provided, returns all mappings
-	 * corresponding to a either the line we are searching for or the next
-	 * closest line that has any mappings. Otherwise, returns all mappings
-	 * corresponding to the given line and either the column we are searching for
-	 * or the next closest column that has any offsets.
-	 *
-	 * The only argument is an object with the following properties:
-	 *
-	 *   - source: The filename of the original source.
-	 *   - line: The line number in the original source.
-	 *   - column: Optional. the column number in the original source.
-	 *
-	 * and an array of objects is returned, each with the following properties:
-	 *
-	 *   - line: The line number in the generated source, or null.
-	 *   - column: The column number in the generated source, or null.
-	 */
-	SourceMapConsumer.prototype.allGeneratedPositionsFor =
-	  function SourceMapConsumer_allGeneratedPositionsFor(aArgs) {
-	    var line = util.getArg(aArgs, 'line');
-	
-	    // When there is no exact match, BasicSourceMapConsumer.prototype._findMapping
-	    // returns the index of the closest mapping less than the needle. By
-	    // setting needle.originalColumn to 0, we thus find the last mapping for
-	    // the given line, provided such a mapping exists.
-	    var needle = {
-	      source: util.getArg(aArgs, 'source'),
-	      originalLine: line,
-	      originalColumn: util.getArg(aArgs, 'column', 0)
-	    };
-	
-	    if (this.sourceRoot != null) {
-	      needle.source = util.relative(this.sourceRoot, needle.source);
-	    }
-	    if (!this._sources.has(needle.source)) {
-	      return [];
-	    }
-	    needle.source = this._sources.indexOf(needle.source);
-	
-	    var mappings = [];
-	
-	    var index = this._findMapping(needle,
-	                                  this._originalMappings,
-	                                  "originalLine",
-	                                  "originalColumn",
-	                                  util.compareByOriginalPositions,
-	                                  binarySearch.LEAST_UPPER_BOUND);
-	    if (index >= 0) {
-	      var mapping = this._originalMappings[index];
-	
-	      if (aArgs.column === undefined) {
-	        var originalLine = mapping.originalLine;
-	
-	        // Iterate until either we run out of mappings, or we run into
-	        // a mapping for a different line than the one we found. Since
-	        // mappings are sorted, this is guaranteed to find all mappings for
-	        // the line we found.
-	        while (mapping && mapping.originalLine === originalLine) {
-	          mappings.push({
-	            line: util.getArg(mapping, 'generatedLine', null),
-	            column: util.getArg(mapping, 'generatedColumn', null),
-	            lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null)
-	          });
-	
-	          mapping = this._originalMappings[++index];
-	        }
-	      } else {
-	        var originalColumn = mapping.originalColumn;
-	
-	        // Iterate until either we run out of mappings, or we run into
-	        // a mapping for a different line than the one we were searching for.
-	        // Since mappings are sorted, this is guaranteed to find all mappings for
-	        // the line we are searching for.
-	        while (mapping &&
-	               mapping.originalLine === line &&
-	               mapping.originalColumn == originalColumn) {
-	          mappings.push({
-	            line: util.getArg(mapping, 'generatedLine', null),
-	            column: util.getArg(mapping, 'generatedColumn', null),
-	            lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null)
-	          });
-	
-	          mapping = this._originalMappings[++index];
-	        }
-	      }
-	    }
-	
-	    return mappings;
-	  };
-	
-	exports.SourceMapConsumer = SourceMapConsumer;
-	
-	/**
-	 * A BasicSourceMapConsumer instance represents a parsed source map which we can
-	 * query for information about the original file positions by giving it a file
-	 * position in the generated source.
-	 *
-	 * The only parameter is the raw source map (either as a JSON string, or
-	 * already parsed to an object). According to the spec, source maps have the
-	 * following attributes:
-	 *
-	 *   - version: Which version of the source map spec this map is following.
-	 *   - sources: An array of URLs to the original source files.
-	 *   - names: An array of identifiers which can be referrenced by individual mappings.
-	 *   - sourceRoot: Optional. The URL root from which all sources are relative.
-	 *   - sourcesContent: Optional. An array of contents of the original source files.
-	 *   - mappings: A string of base64 VLQs which contain the actual mappings.
-	 *   - file: Optional. The generated file this source map is associated with.
-	 *
-	 * Here is an example source map, taken from the source map spec[0]:
-	 *
-	 *     {
-	 *       version : 3,
-	 *       file: "out.js",
-	 *       sourceRoot : "",
-	 *       sources: ["foo.js", "bar.js"],
-	 *       names: ["src", "maps", "are", "fun"],
-	 *       mappings: "AA,AB;;ABCDE;"
-	 *     }
-	 *
-	 * [0]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit?pli=1#
-	 */
-	function BasicSourceMapConsumer(aSourceMap) {
-	  var sourceMap = aSourceMap;
-	  if (typeof aSourceMap === 'string') {
-	    sourceMap = JSON.parse(aSourceMap.replace(/^\)\]\}'/, ''));
-	  }
-	
-	  var version = util.getArg(sourceMap, 'version');
-	  var sources = util.getArg(sourceMap, 'sources');
-	  // Sass 3.3 leaves out the 'names' array, so we deviate from the spec (which
-	  // requires the array) to play nice here.
-	  var names = util.getArg(sourceMap, 'names', []);
-	  var sourceRoot = util.getArg(sourceMap, 'sourceRoot', null);
-	  var sourcesContent = util.getArg(sourceMap, 'sourcesContent', null);
-	  var mappings = util.getArg(sourceMap, 'mappings');
-	  var file = util.getArg(sourceMap, 'file', null);
-	
-	  // Once again, Sass deviates from the spec and supplies the version as a
-	  // string rather than a number, so we use loose equality checking here.
-	  if (version != this._version) {
-	    throw new Error('Unsupported version: ' + version);
-	  }
-	
-	  sources = sources
-	    .map(String)
-	    // Some source maps produce relative source paths like "./foo.js" instead of
-	    // "foo.js".  Normalize these first so that future comparisons will succeed.
-	    // See bugzil.la/1090768.
-	    .map(util.normalize)
-	    // Always ensure that absolute sources are internally stored relative to
-	    // the source root, if the source root is absolute. Not doing this would
-	    // be particularly problematic when the source root is a prefix of the
-	    // source (valid, but why??). See github issue #199 and bugzil.la/1188982.
-	    .map(function (source) {
-	      return sourceRoot && util.isAbsolute(sourceRoot) && util.isAbsolute(source)
-	        ? util.relative(sourceRoot, source)
-	        : source;
-	    });
-	
-	  // Pass `true` below to allow duplicate names and sources. While source maps
-	  // are intended to be compressed and deduplicated, the TypeScript compiler
-	  // sometimes generates source maps with duplicates in them. See Github issue
-	  // #72 and bugzil.la/889492.
-	  this._names = ArraySet.fromArray(names.map(String), true);
-	  this._sources = ArraySet.fromArray(sources, true);
-	
-	  this.sourceRoot = sourceRoot;
-	  this.sourcesContent = sourcesContent;
-	  this._mappings = mappings;
-	  this.file = file;
-	}
-	
-	BasicSourceMapConsumer.prototype = Object.create(SourceMapConsumer.prototype);
-	BasicSourceMapConsumer.prototype.consumer = SourceMapConsumer;
-	
-	/**
-	 * Create a BasicSourceMapConsumer from a SourceMapGenerator.
-	 *
-	 * @param SourceMapGenerator aSourceMap
-	 *        The source map that will be consumed.
-	 * @returns BasicSourceMapConsumer
-	 */
-	BasicSourceMapConsumer.fromSourceMap =
-	  function SourceMapConsumer_fromSourceMap(aSourceMap) {
-	    var smc = Object.create(BasicSourceMapConsumer.prototype);
-	
-	    var names = smc._names = ArraySet.fromArray(aSourceMap._names.toArray(), true);
-	    var sources = smc._sources = ArraySet.fromArray(aSourceMap._sources.toArray(), true);
-	    smc.sourceRoot = aSourceMap._sourceRoot;
-	    smc.sourcesContent = aSourceMap._generateSourcesContent(smc._sources.toArray(),
-	                                                            smc.sourceRoot);
-	    smc.file = aSourceMap._file;
-	
-	    // Because we are modifying the entries (by converting string sources and
-	    // names to indices into the sources and names ArraySets), we have to make
-	    // a copy of the entry or else bad things happen. Shared mutable state
-	    // strikes again! See github issue #191.
-	
-	    var generatedMappings = aSourceMap._mappings.toArray().slice();
-	    var destGeneratedMappings = smc.__generatedMappings = [];
-	    var destOriginalMappings = smc.__originalMappings = [];
-	
-	    for (var i = 0, length = generatedMappings.length; i < length; i++) {
-	      var srcMapping = generatedMappings[i];
-	      var destMapping = new Mapping;
-	      destMapping.generatedLine = srcMapping.generatedLine;
-	      destMapping.generatedColumn = srcMapping.generatedColumn;
-	
-	      if (srcMapping.source) {
-	        destMapping.source = sources.indexOf(srcMapping.source);
-	        destMapping.originalLine = srcMapping.originalLine;
-	        destMapping.originalColumn = srcMapping.originalColumn;
-	
-	        if (srcMapping.name) {
-	          destMapping.name = names.indexOf(srcMapping.name);
-	        }
-	
-	        destOriginalMappings.push(destMapping);
-	      }
-	
-	      destGeneratedMappings.push(destMapping);
-	    }
-	
-	    quickSort(smc.__originalMappings, util.compareByOriginalPositions);
-	
-	    return smc;
-	  };
-	
-	/**
-	 * The version of the source mapping spec that we are consuming.
-	 */
-	BasicSourceMapConsumer.prototype._version = 3;
-	
-	/**
-	 * The list of original sources.
-	 */
-	Object.defineProperty(BasicSourceMapConsumer.prototype, 'sources', {
-	  get: function () {
-	    return this._sources.toArray().map(function (s) {
-	      return this.sourceRoot != null ? util.join(this.sourceRoot, s) : s;
-	    }, this);
-	  }
-	});
-	
-	/**
-	 * Provide the JIT with a nice shape / hidden class.
-	 */
-	function Mapping() {
-	  this.generatedLine = 0;
-	  this.generatedColumn = 0;
-	  this.source = null;
-	  this.originalLine = null;
-	  this.originalColumn = null;
-	  this.name = null;
-	}
-	
-	/**
-	 * Parse the mappings in a string in to a data structure which we can easily
-	 * query (the ordered arrays in the `this.__generatedMappings` and
-	 * `this.__originalMappings` properties).
-	 */
-	BasicSourceMapConsumer.prototype._parseMappings =
-	  function SourceMapConsumer_parseMappings(aStr, aSourceRoot) {
-	    var generatedLine = 1;
-	    var previousGeneratedColumn = 0;
-	    var previousOriginalLine = 0;
-	    var previousOriginalColumn = 0;
-	    var previousSource = 0;
-	    var previousName = 0;
-	    var length = aStr.length;
-	    var index = 0;
-	    var cachedSegments = {};
-	    var temp = {};
-	    var originalMappings = [];
-	    var generatedMappings = [];
-	    var mapping, str, segment, end, value;
-	
-	    while (index < length) {
-	      if (aStr.charAt(index) === ';') {
-	        generatedLine++;
-	        index++;
-	        previousGeneratedColumn = 0;
-	      }
-	      else if (aStr.charAt(index) === ',') {
-	        index++;
-	      }
-	      else {
-	        mapping = new Mapping();
-	        mapping.generatedLine = generatedLine;
-	
-	        // Because each offset is encoded relative to the previous one,
-	        // many segments often have the same encoding. We can exploit this
-	        // fact by caching the parsed variable length fields of each segment,
-	        // allowing us to avoid a second parse if we encounter the same
-	        // segment again.
-	        for (end = index; end < length; end++) {
-	          if (this._charIsMappingSeparator(aStr, end)) {
-	            break;
-	          }
-	        }
-	        str = aStr.slice(index, end);
-	
-	        segment = cachedSegments[str];
-	        if (segment) {
-	          index += str.length;
-	        } else {
-	          segment = [];
-	          while (index < end) {
-	            base64VLQ.decode(aStr, index, temp);
-	            value = temp.value;
-	            index = temp.rest;
-	            segment.push(value);
-	          }
-	
-	          if (segment.length === 2) {
-	            throw new Error('Found a source, but no line and column');
-	          }
-	
-	          if (segment.length === 3) {
-	            throw new Error('Found a source and line, but no column');
-	          }
-	
-	          cachedSegments[str] = segment;
-	        }
-	
-	        // Generated column.
-	        mapping.generatedColumn = previousGeneratedColumn + segment[0];
-	        previousGeneratedColumn = mapping.generatedColumn;
-	
-	        if (segment.length > 1) {
-	          // Original source.
-	          mapping.source = previousSource + segment[1];
-	          previousSource += segment[1];
-	
-	          // Original line.
-	          mapping.originalLine = previousOriginalLine + segment[2];
-	          previousOriginalLine = mapping.originalLine;
-	          // Lines are stored 0-based
-	          mapping.originalLine += 1;
-	
-	          // Original column.
-	          mapping.originalColumn = previousOriginalColumn + segment[3];
-	          previousOriginalColumn = mapping.originalColumn;
-	
-	          if (segment.length > 4) {
-	            // Original name.
-	            mapping.name = previousName + segment[4];
-	            previousName += segment[4];
-	          }
-	        }
-	
-	        generatedMappings.push(mapping);
-	        if (typeof mapping.originalLine === 'number') {
-	          originalMappings.push(mapping);
-	        }
-	      }
-	    }
-	
-	    quickSort(generatedMappings, util.compareByGeneratedPositionsDeflated);
-	    this.__generatedMappings = generatedMappings;
-	
-	    quickSort(originalMappings, util.compareByOriginalPositions);
-	    this.__originalMappings = originalMappings;
-	  };
-	
-	/**
-	 * Find the mapping that best matches the hypothetical "needle" mapping that
-	 * we are searching for in the given "haystack" of mappings.
-	 */
-	BasicSourceMapConsumer.prototype._findMapping =
-	  function SourceMapConsumer_findMapping(aNeedle, aMappings, aLineName,
-	                                         aColumnName, aComparator, aBias) {
-	    // To return the position we are searching for, we must first find the
-	    // mapping for the given position and then return the opposite position it
-	    // points to. Because the mappings are sorted, we can use binary search to
-	    // find the best mapping.
-	
-	    if (aNeedle[aLineName] <= 0) {
-	      throw new TypeError('Line must be greater than or equal to 1, got '
-	                          + aNeedle[aLineName]);
-	    }
-	    if (aNeedle[aColumnName] < 0) {
-	      throw new TypeError('Column must be greater than or equal to 0, got '
-	                          + aNeedle[aColumnName]);
-	    }
-	
-	    return binarySearch.search(aNeedle, aMappings, aComparator, aBias);
-	  };
-	
-	/**
-	 * Compute the last column for each generated mapping. The last column is
-	 * inclusive.
-	 */
-	BasicSourceMapConsumer.prototype.computeColumnSpans =
-	  function SourceMapConsumer_computeColumnSpans() {
-	    for (var index = 0; index < this._generatedMappings.length; ++index) {
-	      var mapping = this._generatedMappings[index];
-	
-	      // Mappings do not contain a field for the last generated columnt. We
-	      // can come up with an optimistic estimate, however, by assuming that
-	      // mappings are contiguous (i.e. given two consecutive mappings, the
-	      // first mapping ends where the second one starts).
-	      if (index + 1 < this._generatedMappings.length) {
-	        var nextMapping = this._generatedMappings[index + 1];
-	
-	        if (mapping.generatedLine === nextMapping.generatedLine) {
-	          mapping.lastGeneratedColumn = nextMapping.generatedColumn - 1;
-	          continue;
-	        }
-	      }
-	
-	      // The last mapping for each line spans the entire line.
-	      mapping.lastGeneratedColumn = Infinity;
-	    }
-	  };
-	
-	/**
-	 * Returns the original source, line, and column information for the generated
-	 * source's line and column positions provided. The only argument is an object
-	 * with the following properties:
-	 *
-	 *   - line: The line number in the generated source.
-	 *   - column: The column number in the generated source.
-	 *   - bias: Either 'SourceMapConsumer.GREATEST_LOWER_BOUND' or
-	 *     'SourceMapConsumer.LEAST_UPPER_BOUND'. Specifies whether to return the
-	 *     closest element that is smaller than or greater than the one we are
-	 *     searching for, respectively, if the exact element cannot be found.
-	 *     Defaults to 'SourceMapConsumer.GREATEST_LOWER_BOUND'.
-	 *
-	 * and an object is returned with the following properties:
-	 *
-	 *   - source: The original source file, or null.
-	 *   - line: The line number in the original source, or null.
-	 *   - column: The column number in the original source, or null.
-	 *   - name: The original identifier, or null.
-	 */
-	BasicSourceMapConsumer.prototype.originalPositionFor =
-	  function SourceMapConsumer_originalPositionFor(aArgs) {
-	    var needle = {
-	      generatedLine: util.getArg(aArgs, 'line'),
-	      generatedColumn: util.getArg(aArgs, 'column')
-	    };
-	
-	    var index = this._findMapping(
-	      needle,
-	      this._generatedMappings,
-	      "generatedLine",
-	      "generatedColumn",
-	      util.compareByGeneratedPositionsDeflated,
-	      util.getArg(aArgs, 'bias', SourceMapConsumer.GREATEST_LOWER_BOUND)
-	    );
-	
-	    if (index >= 0) {
-	      var mapping = this._generatedMappings[index];
-	
-	      if (mapping.generatedLine === needle.generatedLine) {
-	        var source = util.getArg(mapping, 'source', null);
-	        if (source !== null) {
-	          source = this._sources.at(source);
-	          if (this.sourceRoot != null) {
-	            source = util.join(this.sourceRoot, source);
-	          }
-	        }
-	        var name = util.getArg(mapping, 'name', null);
-	        if (name !== null) {
-	          name = this._names.at(name);
-	        }
-	        return {
-	          source: source,
-	          line: util.getArg(mapping, 'originalLine', null),
-	          column: util.getArg(mapping, 'originalColumn', null),
-	          name: name
-	        };
-	      }
-	    }
-	
-	    return {
-	      source: null,
-	      line: null,
-	      column: null,
-	      name: null
-	    };
-	  };
-	
-	/**
-	 * Return true if we have the source content for every source in the source
-	 * map, false otherwise.
-	 */
-	BasicSourceMapConsumer.prototype.hasContentsOfAllSources =
-	  function BasicSourceMapConsumer_hasContentsOfAllSources() {
-	    if (!this.sourcesContent) {
-	      return false;
-	    }
-	    return this.sourcesContent.length >= this._sources.size() &&
-	      !this.sourcesContent.some(function (sc) { return sc == null; });
-	  };
-	
-	/**
-	 * Returns the original source content. The only argument is the url of the
-	 * original source file. Returns null if no original source content is
-	 * available.
-	 */
-	BasicSourceMapConsumer.prototype.sourceContentFor =
-	  function SourceMapConsumer_sourceContentFor(aSource, nullOnMissing) {
-	    if (!this.sourcesContent) {
-	      return null;
-	    }
-	
-	    if (this.sourceRoot != null) {
-	      aSource = util.relative(this.sourceRoot, aSource);
-	    }
-	
-	    if (this._sources.has(aSource)) {
-	      return this.sourcesContent[this._sources.indexOf(aSource)];
-	    }
-	
-	    var url;
-	    if (this.sourceRoot != null
-	        && (url = util.urlParse(this.sourceRoot))) {
-	      // XXX: file:// URIs and absolute paths lead to unexpected behavior for
-	      // many users. We can help them out when they expect file:// URIs to
-	      // behave like it would if they were running a local HTTP server. See
-	      // https://bugzilla.mozilla.org/show_bug.cgi?id=885597.
-	      var fileUriAbsPath = aSource.replace(/^file:\/\//, "");
-	      if (url.scheme == "file"
-	          && this._sources.has(fileUriAbsPath)) {
-	        return this.sourcesContent[this._sources.indexOf(fileUriAbsPath)]
-	      }
-	
-	      if ((!url.path || url.path == "/")
-	          && this._sources.has("/" + aSource)) {
-	        return this.sourcesContent[this._sources.indexOf("/" + aSource)];
-	      }
-	    }
-	
-	    // This function is used recursively from
-	    // IndexedSourceMapConsumer.prototype.sourceContentFor. In that case, we
-	    // don't want to throw if we can't find the source - we just want to
-	    // return null, so we provide a flag to exit gracefully.
-	    if (nullOnMissing) {
-	      return null;
-	    }
-	    else {
-	      throw new Error('"' + aSource + '" is not in the SourceMap.');
-	    }
-	  };
-	
-	/**
-	 * Returns the generated line and column information for the original source,
-	 * line, and column positions provided. The only argument is an object with
-	 * the following properties:
-	 *
-	 *   - source: The filename of the original source.
-	 *   - line: The line number in the original source.
-	 *   - column: The column number in the original source.
-	 *   - bias: Either 'SourceMapConsumer.GREATEST_LOWER_BOUND' or
-	 *     'SourceMapConsumer.LEAST_UPPER_BOUND'. Specifies whether to return the
-	 *     closest element that is smaller than or greater than the one we are
-	 *     searching for, respectively, if the exact element cannot be found.
-	 *     Defaults to 'SourceMapConsumer.GREATEST_LOWER_BOUND'.
-	 *
-	 * and an object is returned with the following properties:
-	 *
-	 *   - line: The line number in the generated source, or null.
-	 *   - column: The column number in the generated source, or null.
-	 */
-	BasicSourceMapConsumer.prototype.generatedPositionFor =
-	  function SourceMapConsumer_generatedPositionFor(aArgs) {
-	    var source = util.getArg(aArgs, 'source');
-	    if (this.sourceRoot != null) {
-	      source = util.relative(this.sourceRoot, source);
-	    }
-	    if (!this._sources.has(source)) {
-	      return {
-	        line: null,
-	        column: null,
-	        lastColumn: null
-	      };
-	    }
-	    source = this._sources.indexOf(source);
-	
-	    var needle = {
-	      source: source,
-	      originalLine: util.getArg(aArgs, 'line'),
-	      originalColumn: util.getArg(aArgs, 'column')
-	    };
-	
-	    var index = this._findMapping(
-	      needle,
-	      this._originalMappings,
-	      "originalLine",
-	      "originalColumn",
-	      util.compareByOriginalPositions,
-	      util.getArg(aArgs, 'bias', SourceMapConsumer.GREATEST_LOWER_BOUND)
-	    );
-	
-	    if (index >= 0) {
-	      var mapping = this._originalMappings[index];
-	
-	      if (mapping.source === needle.source) {
-	        return {
-	          line: util.getArg(mapping, 'generatedLine', null),
-	          column: util.getArg(mapping, 'generatedColumn', null),
-	          lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null)
-	        };
-	      }
-	    }
-	
-	    return {
-	      line: null,
-	      column: null,
-	      lastColumn: null
-	    };
-	  };
-	
-	exports.BasicSourceMapConsumer = BasicSourceMapConsumer;
-	
-	/**
-	 * An IndexedSourceMapConsumer instance represents a parsed source map which
-	 * we can query for information. It differs from BasicSourceMapConsumer in
-	 * that it takes "indexed" source maps (i.e. ones with a "sections" field) as
-	 * input.
-	 *
-	 * The only parameter is a raw source map (either as a JSON string, or already
-	 * parsed to an object). According to the spec for indexed source maps, they
-	 * have the following attributes:
-	 *
-	 *   - version: Which version of the source map spec this map is following.
-	 *   - file: Optional. The generated file this source map is associated with.
-	 *   - sections: A list of section definitions.
-	 *
-	 * Each value under the "sections" field has two fields:
-	 *   - offset: The offset into the original specified at which this section
-	 *       begins to apply, defined as an object with a "line" and "column"
-	 *       field.
-	 *   - map: A source map definition. This source map could also be indexed,
-	 *       but doesn't have to be.
-	 *
-	 * Instead of the "map" field, it's also possible to have a "url" field
-	 * specifying a URL to retrieve a source map from, but that's currently
-	 * unsupported.
-	 *
-	 * Here's an example source map, taken from the source map spec[0], but
-	 * modified to omit a section which uses the "url" field.
-	 *
-	 *  {
-	 *    version : 3,
-	 *    file: "app.js",
-	 *    sections: [{
-	 *      offset: {line:100, column:10},
-	 *      map: {
-	 *        version : 3,
-	 *        file: "section.js",
-	 *        sources: ["foo.js", "bar.js"],
-	 *        names: ["src", "maps", "are", "fun"],
-	 *        mappings: "AAAA,E;;ABCDE;"
-	 *      }
-	 *    }],
-	 *  }
-	 *
-	 * [0]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit#heading=h.535es3xeprgt
-	 */
-	function IndexedSourceMapConsumer(aSourceMap) {
-	  var sourceMap = aSourceMap;
-	  if (typeof aSourceMap === 'string') {
-	    sourceMap = JSON.parse(aSourceMap.replace(/^\)\]\}'/, ''));
-	  }
-	
-	  var version = util.getArg(sourceMap, 'version');
-	  var sections = util.getArg(sourceMap, 'sections');
-	
-	  if (version != this._version) {
-	    throw new Error('Unsupported version: ' + version);
-	  }
-	
-	  this._sources = new ArraySet();
-	  this._names = new ArraySet();
-	
-	  var lastOffset = {
-	    line: -1,
-	    column: 0
-	  };
-	  this._sections = sections.map(function (s) {
-	    if (s.url) {
-	      // The url field will require support for asynchronicity.
-	      // See https://github.com/mozilla/source-map/issues/16
-	      throw new Error('Support for url field in sections not implemented.');
-	    }
-	    var offset = util.getArg(s, 'offset');
-	    var offsetLine = util.getArg(offset, 'line');
-	    var offsetColumn = util.getArg(offset, 'column');
-	
-	    if (offsetLine < lastOffset.line ||
-	        (offsetLine === lastOffset.line && offsetColumn < lastOffset.column)) {
-	      throw new Error('Section offsets must be ordered and non-overlapping.');
-	    }
-	    lastOffset = offset;
-	
-	    return {
-	      generatedOffset: {
-	        // The offset fields are 0-based, but we use 1-based indices when
-	        // encoding/decoding from VLQ.
-	        generatedLine: offsetLine + 1,
-	        generatedColumn: offsetColumn + 1
-	      },
-	      consumer: new SourceMapConsumer(util.getArg(s, 'map'))
-	    }
-	  });
-	}
-	
-	IndexedSourceMapConsumer.prototype = Object.create(SourceMapConsumer.prototype);
-	IndexedSourceMapConsumer.prototype.constructor = SourceMapConsumer;
-	
-	/**
-	 * The version of the source mapping spec that we are consuming.
-	 */
-	IndexedSourceMapConsumer.prototype._version = 3;
-	
-	/**
-	 * The list of original sources.
-	 */
-	Object.defineProperty(IndexedSourceMapConsumer.prototype, 'sources', {
-	  get: function () {
-	    var sources = [];
-	    for (var i = 0; i < this._sections.length; i++) {
-	      for (var j = 0; j < this._sections[i].consumer.sources.length; j++) {
-	        sources.push(this._sections[i].consumer.sources[j]);
-	      }
-	    }
-	    return sources;
-	  }
-	});
-	
-	/**
-	 * Returns the original source, line, and column information for the generated
-	 * source's line and column positions provided. The only argument is an object
-	 * with the following properties:
-	 *
-	 *   - line: The line number in the generated source.
-	 *   - column: The column number in the generated source.
-	 *
-	 * and an object is returned with the following properties:
-	 *
-	 *   - source: The original source file, or null.
-	 *   - line: The line number in the original source, or null.
-	 *   - column: The column number in the original source, or null.
-	 *   - name: The original identifier, or null.
-	 */
-	IndexedSourceMapConsumer.prototype.originalPositionFor =
-	  function IndexedSourceMapConsumer_originalPositionFor(aArgs) {
-	    var needle = {
-	      generatedLine: util.getArg(aArgs, 'line'),
-	      generatedColumn: util.getArg(aArgs, 'column')
-	    };
-	
-	    // Find the section containing the generated position we're trying to map
-	    // to an original position.
-	    var sectionIndex = binarySearch.search(needle, this._sections,
-	      function(needle, section) {
-	        var cmp = needle.generatedLine - section.generatedOffset.generatedLine;
-	        if (cmp) {
-	          return cmp;
-	        }
-	
-	        return (needle.generatedColumn -
-	                section.generatedOffset.generatedColumn);
-	      });
-	    var section = this._sections[sectionIndex];
-	
-	    if (!section) {
-	      return {
-	        source: null,
-	        line: null,
-	        column: null,
-	        name: null
-	      };
-	    }
-	
-	    return section.consumer.originalPositionFor({
-	      line: needle.generatedLine -
-	        (section.generatedOffset.generatedLine - 1),
-	      column: needle.generatedColumn -
-	        (section.generatedOffset.generatedLine === needle.generatedLine
-	         ? section.generatedOffset.generatedColumn - 1
-	         : 0),
-	      bias: aArgs.bias
-	    });
-	  };
-	
-	/**
-	 * Return true if we have the source content for every source in the source
-	 * map, false otherwise.
-	 */
-	IndexedSourceMapConsumer.prototype.hasContentsOfAllSources =
-	  function IndexedSourceMapConsumer_hasContentsOfAllSources() {
-	    return this._sections.every(function (s) {
-	      return s.consumer.hasContentsOfAllSources();
-	    });
-	  };
-	
-	/**
-	 * Returns the original source content. The only argument is the url of the
-	 * original source file. Returns null if no original source content is
-	 * available.
-	 */
-	IndexedSourceMapConsumer.prototype.sourceContentFor =
-	  function IndexedSourceMapConsumer_sourceContentFor(aSource, nullOnMissing) {
-	    for (var i = 0; i < this._sections.length; i++) {
-	      var section = this._sections[i];
-	
-	      var content = section.consumer.sourceContentFor(aSource, true);
-	      if (content) {
-	        return content;
-	      }
-	    }
-	    if (nullOnMissing) {
-	      return null;
-	    }
-	    else {
-	      throw new Error('"' + aSource + '" is not in the SourceMap.');
-	    }
-	  };
-	
-	/**
-	 * Returns the generated line and column information for the original source,
-	 * line, and column positions provided. The only argument is an object with
-	 * the following properties:
-	 *
-	 *   - source: The filename of the original source.
-	 *   - line: The line number in the original source.
-	 *   - column: The column number in the original source.
-	 *
-	 * and an object is returned with the following properties:
-	 *
-	 *   - line: The line number in the generated source, or null.
-	 *   - column: The column number in the generated source, or null.
-	 */
-	IndexedSourceMapConsumer.prototype.generatedPositionFor =
-	  function IndexedSourceMapConsumer_generatedPositionFor(aArgs) {
-	    for (var i = 0; i < this._sections.length; i++) {
-	      var section = this._sections[i];
-	
-	      // Only consider this section if the requested source is in the list of
-	      // sources of the consumer.
-	      if (section.consumer.sources.indexOf(util.getArg(aArgs, 'source')) === -1) {
-	        continue;
-	      }
-	      var generatedPosition = section.consumer.generatedPositionFor(aArgs);
-	      if (generatedPosition) {
-	        var ret = {
-	          line: generatedPosition.line +
-	            (section.generatedOffset.generatedLine - 1),
-	          column: generatedPosition.column +
-	            (section.generatedOffset.generatedLine === generatedPosition.line
-	             ? section.generatedOffset.generatedColumn - 1
-	             : 0)
-	        };
-	        return ret;
-	      }
-	    }
-	
-	    return {
-	      line: null,
-	      column: null
-	    };
-	  };
-	
-	/**
-	 * Parse the mappings in a string in to a data structure which we can easily
-	 * query (the ordered arrays in the `this.__generatedMappings` and
-	 * `this.__originalMappings` properties).
-	 */
-	IndexedSourceMapConsumer.prototype._parseMappings =
-	  function IndexedSourceMapConsumer_parseMappings(aStr, aSourceRoot) {
-	    this.__generatedMappings = [];
-	    this.__originalMappings = [];
-	    for (var i = 0; i < this._sections.length; i++) {
-	      var section = this._sections[i];
-	      var sectionMappings = section.consumer._generatedMappings;
-	      for (var j = 0; j < sectionMappings.length; j++) {
-	        var mapping = sectionMappings[j];
-	
-	        var source = section.consumer._sources.at(mapping.source);
-	        if (section.consumer.sourceRoot !== null) {
-	          source = util.join(section.consumer.sourceRoot, source);
-	        }
-	        this._sources.add(source);
-	        source = this._sources.indexOf(source);
-	
-	        var name = section.consumer._names.at(mapping.name);
-	        this._names.add(name);
-	        name = this._names.indexOf(name);
-	
-	        // The mappings coming from the consumer for the section have
-	        // generated positions relative to the start of the section, so we
-	        // need to offset them to be relative to the start of the concatenated
-	        // generated file.
-	        var adjustedMapping = {
-	          source: source,
-	          generatedLine: mapping.generatedLine +
-	            (section.generatedOffset.generatedLine - 1),
-	          generatedColumn: mapping.generatedColumn +
-	            (section.generatedOffset.generatedLine === mapping.generatedLine
-	            ? section.generatedOffset.generatedColumn - 1
-	            : 0),
-	          originalLine: mapping.originalLine,
-	          originalColumn: mapping.originalColumn,
-	          name: name
-	        };
-	
-	        this.__generatedMappings.push(adjustedMapping);
-	        if (typeof adjustedMapping.originalLine === 'number') {
-	          this.__originalMappings.push(adjustedMapping);
-	        }
-	      }
-	    }
-	
-	    quickSort(this.__generatedMappings, util.compareByGeneratedPositionsDeflated);
-	    quickSort(this.__originalMappings, util.compareByOriginalPositions);
-	  };
-	
-	exports.IndexedSourceMapConsumer = IndexedSourceMapConsumer;
-
-
-/***/ }),
-/* 8 */
-/***/ (function(module, exports) {
-
-	/* -*- Mode: js; js-indent-level: 2; -*- */
-	/*
-	 * Copyright 2011 Mozilla Foundation and contributors
-	 * Licensed under the New BSD license. See LICENSE or:
-	 * http://opensource.org/licenses/BSD-3-Clause
-	 */
-	
-	exports.GREATEST_LOWER_BOUND = 1;
-	exports.LEAST_UPPER_BOUND = 2;
-	
-	/**
-	 * Recursive implementation of binary search.
-	 *
-	 * @param aLow Indices here and lower do not contain the needle.
-	 * @param aHigh Indices here and higher do not contain the needle.
-	 * @param aNeedle The element being searched for.
-	 * @param aHaystack The non-empty array being searched.
-	 * @param aCompare Function which takes two elements and returns -1, 0, or 1.
-	 * @param aBias Either 'binarySearch.GREATEST_LOWER_BOUND' or
-	 *     'binarySearch.LEAST_UPPER_BOUND'. Specifies whether to return the
-	 *     closest element that is smaller than or greater than the one we are
-	 *     searching for, respectively, if the exact element cannot be found.
-	 */
-	function recursiveSearch(aLow, aHigh, aNeedle, aHaystack, aCompare, aBias) {
-	  // This function terminates when one of the following is true:
-	  //
-	  //   1. We find the exact element we are looking for.
-	  //
-	  //   2. We did not find the exact element, but we can return the index of
-	  //      the next-closest element.
-	  //
-	  //   3. We did not find the exact element, and there is no next-closest
-	  //      element than the one we are searching for, so we return -1.
-	  var mid = Math.floor((aHigh - aLow) / 2) + aLow;
-	  var cmp = aCompare(aNeedle, aHaystack[mid], true);
-	  if (cmp === 0) {
-	    // Found the element we are looking for.
-	    return mid;
-	  }
-	  else if (cmp > 0) {
-	    // Our needle is greater than aHaystack[mid].
-	    if (aHigh - mid > 1) {
-	      // The element is in the upper half.
-	      return recursiveSearch(mid, aHigh, aNeedle, aHaystack, aCompare, aBias);
-	    }
-	
-	    // The exact needle element was not found in this haystack. Determine if
-	    // we are in termination case (3) or (2) and return the appropriate thing.
-	    if (aBias == exports.LEAST_UPPER_BOUND) {
-	      return aHigh < aHaystack.length ? aHigh : -1;
-	    } else {
-	      return mid;
-	    }
-	  }
-	  else {
-	    // Our needle is less than aHaystack[mid].
-	    if (mid - aLow > 1) {
-	      // The element is in the lower half.
-	      return recursiveSearch(aLow, mid, aNeedle, aHaystack, aCompare, aBias);
-	    }
-	
-	    // we are in termination case (3) or (2) and return the appropriate thing.
-	    if (aBias == exports.LEAST_UPPER_BOUND) {
-	      return mid;
-	    } else {
-	      return aLow < 0 ? -1 : aLow;
-	    }
-	  }
-	}
-	
-	/**
-	 * This is an implementation of binary search which will always try and return
-	 * the index of the closest element if there is no exact hit. This is because
-	 * mappings between original and generated line/col pairs are single points,
-	 * and there is an implicit region between each of them, so a miss just means
-	 * that you aren't on the very start of a region.
-	 *
-	 * @param aNeedle The element you are looking for.
-	 * @param aHaystack The array that is being searched.
-	 * @param aCompare A function which takes the needle and an element in the
-	 *     array and returns -1, 0, or 1 depending on whether the needle is less
-	 *     than, equal to, or greater than the element, respectively.
-	 * @param aBias Either 'binarySearch.GREATEST_LOWER_BOUND' or
-	 *     'binarySearch.LEAST_UPPER_BOUND'. Specifies whether to return the
-	 *     closest element that is smaller than or greater than the one we are
-	 *     searching for, respectively, if the exact element cannot be found.
-	 *     Defaults to 'binarySearch.GREATEST_LOWER_BOUND'.
-	 */
-	exports.search = function search(aNeedle, aHaystack, aCompare, aBias) {
-	  if (aHaystack.length === 0) {
-	    return -1;
-	  }
-	
-	  var index = recursiveSearch(-1, aHaystack.length, aNeedle, aHaystack,
-	                              aCompare, aBias || exports.GREATEST_LOWER_BOUND);
-	  if (index < 0) {
-	    return -1;
-	  }
-	
-	  // We have found either the exact element, or the next-closest element than
-	  // the one we are searching for. However, there may be more than one such
-	  // element. Make sure we always return the smallest of these.
-	  while (index - 1 >= 0) {
-	    if (aCompare(aHaystack[index], aHaystack[index - 1], true) !== 0) {
-	      break;
-	    }
-	    --index;
-	  }
-	
-	  return index;
-	};
-
-
-/***/ }),
-/* 9 */
-/***/ (function(module, exports) {
-
-	/* -*- Mode: js; js-indent-level: 2; -*- */
-	/*
-	 * Copyright 2011 Mozilla Foundation and contributors
-	 * Licensed under the New BSD license. See LICENSE or:
-	 * http://opensource.org/licenses/BSD-3-Clause
-	 */
-	
-	// It turns out that some (most?) JavaScript engines don't self-host
-	// `Array.prototype.sort`. This makes sense because C++ will likely remain
-	// faster than JS when doing raw CPU-intensive sorting. However, when using a
-	// custom comparator function, calling back and forth between the VM's C++ and
-	// JIT'd JS is rather slow *and* loses JIT type information, resulting in
-	// worse generated code for the comparator function than would be optimal. In
-	// fact, when sorting with a comparator, these costs outweigh the benefits of
-	// sorting in C++. By using our own JS-implemented Quick Sort (below), we get
-	// a ~3500ms mean speed-up in `bench/bench.html`.
-	
-	/**
-	 * Swap the elements indexed by `x` and `y` in the array `ary`.
-	 *
-	 * @param {Array} ary
-	 *        The array.
-	 * @param {Number} x
-	 *        The index of the first item.
-	 * @param {Number} y
-	 *        The index of the second item.
-	 */
-	function swap(ary, x, y) {
-	  var temp = ary[x];
-	  ary[x] = ary[y];
-	  ary[y] = temp;
-	}
-	
-	/**
-	 * Returns a random integer within the range `low .. high` inclusive.
-	 *
-	 * @param {Number} low
-	 *        The lower bound on the range.
-	 * @param {Number} high
-	 *        The upper bound on the range.
-	 */
-	function randomIntInRange(low, high) {
-	  return Math.round(low + (Math.random() * (high - low)));
-	}
-	
-	/**
-	 * The Quick Sort algorithm.
-	 *
-	 * @param {Array} ary
-	 *        An array to sort.
-	 * @param {function} comparator
-	 *        Function to use to compare two items.
-	 * @param {Number} p
-	 *        Start index of the array
-	 * @param {Number} r
-	 *        End index of the array
-	 */
-	function doQuickSort(ary, comparator, p, r) {
-	  // If our lower bound is less than our upper bound, we (1) partition the
-	  // array into two pieces and (2) recurse on each half. If it is not, this is
-	  // the empty array and our base case.
-	
-	  if (p < r) {
-	    // (1) Partitioning.
-	    //
-	    // The partitioning chooses a pivot between `p` and `r` and moves all
-	    // elements that are less than or equal to the pivot to the before it, and
-	    // all the elements that are greater than it after it. The effect is that
-	    // once partition is done, the pivot is in the exact place it will be when
-	    // the array is put in sorted order, and it will not need to be moved
-	    // again. This runs in O(n) time.
-	
-	    // Always choose a random pivot so that an input array which is reverse
-	    // sorted does not cause O(n^2) running time.
-	    var pivotIndex = randomIntInRange(p, r);
-	    var i = p - 1;
-	
-	    swap(ary, pivotIndex, r);
-	    var pivot = ary[r];
-	
-	    // Immediately after `j` is incremented in this loop, the following hold
-	    // true:
-	    //
-	    //   * Every element in `ary[p .. i]` is less than or equal to the pivot.
-	    //
-	    //   * Every element in `ary[i+1 .. j-1]` is greater than the pivot.
-	    for (var j = p; j < r; j++) {
-	      if (comparator(ary[j], pivot) <= 0) {
-	        i += 1;
-	        swap(ary, i, j);
-	      }
-	    }
-	
-	    swap(ary, i + 1, j);
-	    var q = i + 1;
-	
-	    // (2) Recurse on each half.
-	
-	    doQuickSort(ary, comparator, p, q - 1);
-	    doQuickSort(ary, comparator, q + 1, r);
-	  }
-	}
-	
-	/**
-	 * Sort the given array in-place with the given comparator function.
-	 *
-	 * @param {Array} ary
-	 *        An array to sort.
-	 * @param {function} comparator
-	 *        Function to use to compare two items.
-	 */
-	exports.quickSort = function (ary, comparator) {
-	  doQuickSort(ary, comparator, 0, ary.length - 1);
-	};
-
-
-/***/ }),
-/* 10 */
-/***/ (function(module, exports, __webpack_require__) {
-
-	/* -*- Mode: js; js-indent-level: 2; -*- */
-	/*
-	 * Copyright 2011 Mozilla Foundation and contributors
-	 * Licensed under the New BSD license. See LICENSE or:
-	 * http://opensource.org/licenses/BSD-3-Clause
-	 */
-	
-	var SourceMapGenerator = __webpack_require__(1).SourceMapGenerator;
-	var util = __webpack_require__(4);
-	
-	// Matches a Windows-style `\r\n` newline or a `\n` newline used by all other
-	// operating systems these days (capturing the result).
-	var REGEX_NEWLINE = /(\r?\n)/;
-	
-	// Newline character code for charCodeAt() comparisons
-	var NEWLINE_CODE = 10;
-	
-	// Private symbol for identifying `SourceNode`s when multiple versions of
-	// the source-map library are loaded. This MUST NOT CHANGE across
-	// versions!
-	var isSourceNode = "$$$isSourceNode$$$";
-	
-	/**
-	 * SourceNodes provide a way to abstract over interpolating/concatenating
-	 * snippets of generated JavaScript source code while maintaining the line and
-	 * column information associated with the original source code.
-	 *
-	 * @param aLine The original line number.
-	 * @param aColumn The original column number.
-	 * @param aSource The original source's filename.
-	 * @param aChunks Optional. An array of strings which are snippets of
-	 *        generated JS, or other SourceNodes.
-	 * @param aName The original identifier.
-	 */
-	function SourceNode(aLine, aColumn, aSource, aChunks, aName) {
-	  this.children = [];
-	  this.sourceContents = {};
-	  this.line = aLine == null ? null : aLine;
-	  this.column = aColumn == null ? null : aColumn;
-	  this.source = aSource == null ? null : aSource;
-	  this.name = aName == null ? null : aName;
-	  this[isSourceNode] = true;
-	  if (aChunks != null) this.add(aChunks);
-	}
-	
-	/**
-	 * Creates a SourceNode from generated code and a SourceMapConsumer.
-	 *
-	 * @param aGeneratedCode The generated code
-	 * @param aSourceMapConsumer The SourceMap for the generated code
-	 * @param aRelativePath Optional. The path that relative sources in the
-	 *        SourceMapConsumer should be relative to.
-	 */
-	SourceNode.fromStringWithSourceMap =
-	  function SourceNode_fromStringWithSourceMap(aGeneratedCode, aSourceMapConsumer, aRelativePath) {
-	    // The SourceNode we want to fill with the generated code
-	    // and the SourceMap
-	    var node = new SourceNode();
-	
-	    // All even indices of this array are one line of the generated code,
-	    // while all odd indices are the newlines between two adjacent lines
-	    // (since `REGEX_NEWLINE` captures its match).
-	    // Processed fragments are accessed by calling `shiftNextLine`.
-	    var remainingLines = aGeneratedCode.split(REGEX_NEWLINE);
-	    var remainingLinesIndex = 0;
-	    var shiftNextLine = function() {
-	      var lineContents = getNextLine();
-	      // The last line of a file might not have a newline.
-	      var newLine = getNextLine() || "";
-	      return lineContents + newLine;
-	
-	      function getNextLine() {
-	        return remainingLinesIndex < remainingLines.length ?
-	            remainingLines[remainingLinesIndex++] : undefined;
-	      }
-	    };
-	
-	    // We need to remember the position of "remainingLines"
-	    var lastGeneratedLine = 1, lastGeneratedColumn = 0;
-	
-	    // The generate SourceNodes we need a code range.
-	    // To extract it current and last mapping is used.
-	    // Here we store the last mapping.
-	    var lastMapping = null;
-	
-	    aSourceMapConsumer.eachMapping(function (mapping) {
-	      if (lastMapping !== null) {
-	        // We add the code from "lastMapping" to "mapping":
-	        // First check if there is a new line in between.
-	        if (lastGeneratedLine < mapping.generatedLine) {
-	          // Associate first line with "lastMapping"
-	          addMappingWithCode(lastMapping, shiftNextLine());
-	          lastGeneratedLine++;
-	          lastGeneratedColumn = 0;
-	          // The remaining code is added without mapping
-	        } else {
-	          // There is no new line in between.
-	          // Associate the code between "lastGeneratedColumn" and
-	          // "mapping.generatedColumn" with "lastMapping"
-	          var nextLine = remainingLines[remainingLinesIndex];
-	          var code = nextLine.substr(0, mapping.generatedColumn -
-	                                        lastGeneratedColumn);
-	          remainingLines[remainingLinesIndex] = nextLine.substr(mapping.generatedColumn -
-	                                              lastGeneratedColumn);
-	          lastGeneratedColumn = mapping.generatedColumn;
-	          addMappingWithCode(lastMapping, code);
-	          // No more remaining code, continue
-	          lastMapping = mapping;
-	          return;
-	        }
-	      }
-	      // We add the generated code until the first mapping
-	      // to the SourceNode without any mapping.
-	      // Each line is added as separate string.
-	      while (lastGeneratedLine < mapping.generatedLine) {
-	        node.add(shiftNextLine());
-	        lastGeneratedLine++;
-	      }
-	      if (lastGeneratedColumn < mapping.generatedColumn) {
-	        var nextLine = remainingLines[remainingLinesIndex];
-	        node.add(nextLine.substr(0, mapping.generatedColumn));
-	        remainingLines[remainingLinesIndex] = nextLine.substr(mapping.generatedColumn);
-	        lastGeneratedColumn = mapping.generatedColumn;
-	      }
-	      lastMapping = mapping;
-	    }, this);
-	    // We have processed all mappings.
-	    if (remainingLinesIndex < remainingLines.length) {
-	      if (lastMapping) {
-	        // Associate the remaining code in the current line with "lastMapping"
-	        addMappingWithCode(lastMapping, shiftNextLine());
-	      }
-	      // and add the remaining lines without any mapping
-	      node.add(remainingLines.splice(remainingLinesIndex).join(""));
-	    }
-	
-	    // Copy sourcesContent into SourceNode
-	    aSourceMapConsumer.sources.forEach(function (sourceFile) {
-	      var content = aSourceMapConsumer.sourceContentFor(sourceFile);
-	      if (content != null) {
-	        if (aRelativePath != null) {
-	          sourceFile = util.join(aRelativePath, sourceFile);
-	        }
-	        node.setSourceContent(sourceFile, content);
-	      }
-	    });
-	
-	    return node;
-	
-	    function addMappingWithCode(mapping, code) {
-	      if (mapping === null || mapping.source === undefined) {
-	        node.add(code);
-	      } else {
-	        var source = aRelativePath
-	          ? util.join(aRelativePath, mapping.source)
-	          : mapping.source;
-	        node.add(new SourceNode(mapping.originalLine,
-	                                mapping.originalColumn,
-	                                source,
-	                                code,
-	                                mapping.name));
-	      }
-	    }
-	  };
-	
-	/**
-	 * Add a chunk of generated JS to this source node.
-	 *
-	 * @param aChunk A string snippet of generated JS code, another instance of
-	 *        SourceNode, or an array where each member is one of those things.
-	 */
-	SourceNode.prototype.add = function SourceNode_add(aChunk) {
-	  if (Array.isArray(aChunk)) {
-	    aChunk.forEach(function (chunk) {
-	      this.add(chunk);
-	    }, this);
-	  }
-	  else if (aChunk[isSourceNode] || typeof aChunk === "string") {
-	    if (aChunk) {
-	      this.children.push(aChunk);
-	    }
-	  }
-	  else {
-	    throw new TypeError(
-	      "Expected a SourceNode, string, or an array of SourceNodes and strings. Got " + aChunk
-	    );
-	  }
-	  return this;
-	};
-	
-	/**
-	 * Add a chunk of generated JS to the beginning of this source node.
-	 *
-	 * @param aChunk A string snippet of generated JS code, another instance of
-	 *        SourceNode, or an array where each member is one of those things.
-	 */
-	SourceNode.prototype.prepend = function SourceNode_prepend(aChunk) {
-	  if (Array.isArray(aChunk)) {
-	    for (var i = aChunk.length-1; i >= 0; i--) {
-	      this.prepend(aChunk[i]);
-	    }
-	  }
-	  else if (aChunk[isSourceNode] || typeof aChunk === "string") {
-	    this.children.unshift(aChunk);
-	  }
-	  else {
-	    throw new TypeError(
-	      "Expected a SourceNode, string, or an array of SourceNodes and strings. Got " + aChunk
-	    );
-	  }
-	  return this;
-	};
-	
-	/**
-	 * Walk over the tree of JS snippets in this node and its children. The
-	 * walking function is called once for each snippet of JS and is passed that
-	 * snippet and the its original associated source's line/column location.
-	 *
-	 * @param aFn The traversal function.
-	 */
-	SourceNode.prototype.walk = function SourceNode_walk(aFn) {
-	  var chunk;
-	  for (var i = 0, len = this.children.length; i < len; i++) {
-	    chunk = this.children[i];
-	    if (chunk[isSourceNode]) {
-	      chunk.walk(aFn);
-	    }
-	    else {
-	      if (chunk !== '') {
-	        aFn(chunk, { source: this.source,
-	                     line: this.line,
-	                     column: this.column,
-	                     name: this.name });
-	      }
-	    }
-	  }
-	};
-	
-	/**
-	 * Like `String.prototype.join` except for SourceNodes. Inserts `aStr` between
-	 * each of `this.children`.
-	 *
-	 * @param aSep The separator.
-	 */
-	SourceNode.prototype.join = function SourceNode_join(aSep) {
-	  var newChildren;
-	  var i;
-	  var len = this.children.length;
-	  if (len > 0) {
-	    newChildren = [];
-	    for (i = 0; i < len-1; i++) {
-	      newChildren.push(this.children[i]);
-	      newChildren.push(aSep);
-	    }
-	    newChildren.push(this.children[i]);
-	    this.children = newChildren;
-	  }
-	  return this;
-	};
-	
-	/**
-	 * Call String.prototype.replace on the very right-most source snippet. Useful
-	 * for trimming whitespace from the end of a source node, etc.
-	 *
-	 * @param aPattern The pattern to replace.
-	 * @param aReplacement The thing to replace the pattern with.
-	 */
-	SourceNode.prototype.replaceRight = function SourceNode_replaceRight(aPattern, aReplacement) {
-	  var lastChild = this.children[this.children.length - 1];
-	  if (lastChild[isSourceNode]) {
-	    lastChild.replaceRight(aPattern, aReplacement);
-	  }
-	  else if (typeof lastChild === 'string') {
-	    this.children[this.children.length - 1] = lastChild.replace(aPattern, aReplacement);
-	  }
-	  else {
-	    this.children.push(''.replace(aPattern, aReplacement));
-	  }
-	  return this;
-	};
-	
-	/**
-	 * Set the source content for a source file. This will be added to the SourceMapGenerator
-	 * in the sourcesContent field.
-	 *
-	 * @param aSourceFile The filename of the source file
-	 * @param aSourceContent The content of the source file
-	 */
-	SourceNode.prototype.setSourceContent =
-	  function SourceNode_setSourceContent(aSourceFile, aSourceContent) {
-	    this.sourceContents[util.toSetString(aSourceFile)] = aSourceContent;
-	  };
-	
-	/**
-	 * Walk over the tree of SourceNodes. The walking function is called for each
-	 * source file content and is passed the filename and source content.
-	 *
-	 * @param aFn The traversal function.
-	 */
-	SourceNode.prototype.walkSourceContents =
-	  function SourceNode_walkSourceContents(aFn) {
-	    for (var i = 0, len = this.children.length; i < len; i++) {
-	      if (this.children[i][isSourceNode]) {
-	        this.children[i].walkSourceContents(aFn);
-	      }
-	    }
-	
-	    var sources = Object.keys(this.sourceContents);
-	    for (var i = 0, len = sources.length; i < len; i++) {
-	      aFn(util.fromSetString(sources[i]), this.sourceContents[sources[i]]);
-	    }
-	  };
-	
-	/**
-	 * Return the string representation of this source node. Walks over the tree
-	 * and concatenates all the various snippets together to one string.
-	 */
-	SourceNode.prototype.toString = function SourceNode_toString() {
-	  var str = "";
-	  this.walk(function (chunk) {
-	    str += chunk;
-	  });
-	  return str;
-	};
-	
-	/**
-	 * Returns the string representation of this source node along with a source
-	 * map.
-	 */
-	SourceNode.prototype.toStringWithSourceMap = function SourceNode_toStringWithSourceMap(aArgs) {
-	  var generated = {
-	    code: "",
-	    line: 1,
-	    column: 0
-	  };
-	  var map = new SourceMapGenerator(aArgs);
-	  var sourceMappingActive = false;
-	  var lastOriginalSource = null;
-	  var lastOriginalLine = null;
-	  var lastOriginalColumn = null;
-	  var lastOriginalName = null;
-	  this.walk(function (chunk, original) {
-	    generated.code += chunk;
-	    if (original.source !== null
-	        && original.line !== null
-	        && original.column !== null) {
-	      if(lastOriginalSource !== original.source
-	         || lastOriginalLine !== original.line
-	         || lastOriginalColumn !== original.column
-	         || lastOriginalName !== original.name) {
-	        map.addMapping({
-	          source: original.source,
-	          original: {
-	            line: original.line,
-	            column: original.column
-	          },
-	          generated: {
-	            line: generated.line,
-	            column: generated.column
-	          },
-	          name: original.name
-	        });
-	      }
-	      lastOriginalSource = original.source;
-	      lastOriginalLine = original.line;
-	      lastOriginalColumn = original.column;
-	      lastOriginalName = original.name;
-	      sourceMappingActive = true;
-	    } else if (sourceMappingActive) {
-	      map.addMapping({
-	        generated: {
-	          line: generated.line,
-	          column: generated.column
-	        }
-	      });
-	      lastOriginalSource = null;
-	      sourceMappingActive = false;
-	    }
-	    for (var idx = 0, length = chunk.length; idx < length; idx++) {
-	      if (chunk.charCodeAt(idx) === NEWLINE_CODE) {
-	        generated.line++;
-	        generated.column = 0;
-	        // Mappings end at eol
-	        if (idx + 1 === length) {
-	          lastOriginalSource = null;
-	          sourceMappingActive = false;
-	        } else if (sourceMappingActive) {
-	          map.addMapping({
-	            source: original.source,
-	            original: {
-	              line: original.line,
-	              column: original.column
-	            },
-	            generated: {
-	              line: generated.line,
-	              column: generated.column
-	            },
-	            name: original.name
-	          });
-	        }
-	      } else {
-	        generated.column++;
-	      }
-	    }
-	  });
-	  this.walkSourceContents(function (sourceFile, sourceContent) {
-	    map.setSourceContent(sourceFile, sourceContent);
-	  });
-	
-	  return { code: generated.code, map: map };
-	};
-	
-	exports.SourceNode = SourceNode;
-
-
-/***/ })
-/******/ ])
-});
-;
-//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vd2VicGFjay91bml2ZXJzYWxNb2R1bGVEZWZpbml0aW9uIiwid2VicGFjazovLy93ZWJwYWNrL2Jvb3RzdHJhcCBlNDczOGZjNzJhN2IyMzAzOTg4OSIsIndlYnBhY2s6Ly8vLi9zb3VyY2UtbWFwLmpzIiwid2VicGFjazovLy8uL2xpYi9zb3VyY2UtbWFwLWdlbmVyYXRvci5qcyIsIndlYnBhY2s6Ly8vLi9saWIvYmFzZTY0LXZscS5qcyIsIndlYnBhY2s6Ly8vLi9saWIvYmFzZTY0LmpzIiwid2VicGFjazovLy8uL2xpYi91dGlsLmpzIiwid2VicGFjazovLy8uL2xpYi9hcnJheS1zZXQuanMiLCJ3ZWJwYWNrOi8vLy4vbGliL21hcHBpbmctbGlzdC5qcyIsIndlYnBhY2s6Ly8vLi9saWIvc291cmNlLW1hcC1jb25zdW1lci5qcyIsIndlYnBhY2s6Ly8vLi9saWIvYmluYXJ5LXNlYXJjaC5qcyIsIndlYnBhY2s6Ly8vLi9saWIvcXVpY2stc29ydC5qcyIsIndlYnBhY2s6Ly8vLi9saWIvc291cmNlLW5vZGUuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNELE87QUNWQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSx1QkFBZTtBQUNmO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOzs7QUFHQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOzs7Ozs7O0FDdENBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7Ozs7QUNQQSxpQkFBZ0Isb0JBQW9CO0FBQ3BDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxNQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQUs7QUFDTDtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBSztBQUNMOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsTUFBSztBQUNMO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBSztBQUNMOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFPO0FBQ1A7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsMkNBQTBDLFNBQVM7QUFDbkQ7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxxQkFBb0I7QUFDcEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFLO0FBQ0w7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOzs7Ozs7O0FDL1pBLGlCQUFnQixvQkFBb0I7QUFDcEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDREQUEyRDtBQUMzRCxxQkFBb0I7QUFDcEI7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFHOztBQUVIO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBRzs7QUFFSDtBQUNBO0FBQ0E7Ozs7Ozs7QUMzSUEsaUJBQWdCLG9CQUFvQjtBQUNwQztBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWdCO0FBQ2hCLGlCQUFnQjs7QUFFaEIsb0JBQW1CO0FBQ25CLHFCQUFvQjs7QUFFcEIsaUJBQWdCO0FBQ2hCLGlCQUFnQjs7QUFFaEIsaUJBQWdCO0FBQ2hCLGtCQUFpQjs7QUFFakI7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7Ozs7Ozs7QUNsRUEsaUJBQWdCLG9CQUFvQjtBQUNwQztBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBRztBQUNIO0FBQ0EsSUFBRztBQUNIO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsK0NBQThDLFFBQVE7QUFDdEQ7QUFDQTtBQUNBO0FBQ0EsTUFBSztBQUNMO0FBQ0EsTUFBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxFQUFDOztBQUVEO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLDRCQUEyQixRQUFRO0FBQ25DO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7Ozs7Ozs7QUNoYUEsaUJBQWdCLG9CQUFvQjtBQUNwQztBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsdUNBQXNDLFNBQVM7QUFDL0M7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBRztBQUNIO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7Ozs7OztBQ3hIQSxpQkFBZ0Isb0JBQW9CO0FBQ3BDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWdCO0FBQ2hCOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7Ozs7OztBQzlFQSxpQkFBZ0Isb0JBQW9CO0FBQ3BDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSx1REFBc0Q7QUFDdEQ7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxFQUFDOztBQUVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsRUFBQzs7QUFFRDtBQUNBO0FBQ0E7QUFDQSxvQkFBbUI7QUFDbkI7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQUs7QUFDTDs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVc7O0FBRVg7QUFDQTtBQUNBLFFBQU87QUFDUDs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBVzs7QUFFWDtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNEJBQTJCLE1BQU07QUFDakM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx1REFBc0Q7QUFDdEQ7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQUs7O0FBRUw7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBLHVEQUFzRCxZQUFZO0FBQ2xFO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQUs7QUFDTDtBQUNBLEVBQUM7O0FBRUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0Esb0NBQW1DO0FBQ25DO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwwQkFBeUIsY0FBYztBQUN2QztBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFVBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0JBQXVCLHdDQUF3QztBQUMvRDs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0RBQStDLG1CQUFtQixFQUFFO0FBQ3BFOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGtCQUFpQixvQkFBb0I7QUFDckM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDhCQUE2QixNQUFNO0FBQ25DO0FBQ0EsUUFBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsdURBQXNEO0FBQ3REOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFPO0FBQ1A7QUFDQTtBQUNBLElBQUc7QUFDSDs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFtQiwyQkFBMkI7QUFDOUMsc0JBQXFCLCtDQUErQztBQUNwRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsRUFBQzs7QUFFRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsUUFBTztBQUNQOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQUs7QUFDTDs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBSztBQUNMOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0JBQW1CLDJCQUEyQjtBQUM5Qzs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQkFBbUIsMkJBQTJCO0FBQzlDOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFtQiwyQkFBMkI7QUFDOUM7QUFDQTtBQUNBLHNCQUFxQiw0QkFBNEI7QUFDakQ7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBOzs7Ozs7O0FDempDQSxpQkFBZ0Isb0JBQW9CO0FBQ3BDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxNQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7Ozs7OztBQzlHQSxpQkFBZ0Isb0JBQW9CO0FBQ3BDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFlBQVcsTUFBTTtBQUNqQjtBQUNBLFlBQVcsT0FBTztBQUNsQjtBQUNBLFlBQVcsT0FBTztBQUNsQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxZQUFXLE9BQU87QUFDbEI7QUFDQSxZQUFXLE9BQU87QUFDbEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxZQUFXLE1BQU07QUFDakI7QUFDQSxZQUFXLFNBQVM7QUFDcEI7QUFDQSxZQUFXLE9BQU87QUFDbEI7QUFDQSxZQUFXLE9BQU87QUFDbEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFtQixPQUFPO0FBQzFCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxZQUFXLE1BQU07QUFDakI7QUFDQSxZQUFXLFNBQVM7QUFDcEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7OztBQ2pIQSxpQkFBZ0Isb0JBQW9CO0FBQ3BDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFLOztBQUVMOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFFBQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQ0FBaUMsUUFBUTtBQUN6QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw4Q0FBNkMsU0FBUztBQUN0RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxQkFBb0I7QUFDcEI7QUFDQTtBQUNBLHVDQUFzQztBQUN0QztBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZSxXQUFXO0FBQzFCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnREFBK0MsU0FBUztBQUN4RDtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLDBDQUF5QyxTQUFTO0FBQ2xEO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBRztBQUNIO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBVztBQUNYO0FBQ0E7QUFDQTtBQUNBLFlBQVc7QUFDWDtBQUNBLFVBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQU87QUFDUDtBQUNBO0FBQ0E7QUFDQSw2Q0FBNEMsY0FBYztBQUMxRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBLGNBQWE7QUFDYjtBQUNBLFlBQVc7QUFDWDtBQUNBLFFBQU87QUFDUDtBQUNBO0FBQ0E7QUFDQSxJQUFHO0FBQ0g7QUFDQTtBQUNBLElBQUc7O0FBRUgsV0FBVTtBQUNWOztBQUVBIiwiZmlsZSI6InNvdXJjZS1tYXAuZGVidWcuanMiLCJzb3VyY2VzQ29udGVudCI6WyIoZnVuY3Rpb24gd2VicGFja1VuaXZlcnNhbE1vZHVsZURlZmluaXRpb24ocm9vdCwgZmFjdG9yeSkge1xuXHRpZih0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSA9PT0gJ29iamVjdCcpXG5cdFx0bW9kdWxlLmV4cG9ydHMgPSBmYWN0b3J5KCk7XG5cdGVsc2UgaWYodHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kKVxuXHRcdGRlZmluZShbXSwgZmFjdG9yeSk7XG5cdGVsc2UgaWYodHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnKVxuXHRcdGV4cG9ydHNbXCJzb3VyY2VNYXBcIl0gPSBmYWN0b3J5KCk7XG5cdGVsc2Vcblx0XHRyb290W1wic291cmNlTWFwXCJdID0gZmFjdG9yeSgpO1xufSkodGhpcywgZnVuY3Rpb24oKSB7XG5yZXR1cm4gXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIHdlYnBhY2svdW5pdmVyc2FsTW9kdWxlRGVmaW5pdGlvbiIsIiBcdC8vIFRoZSBtb2R1bGUgY2FjaGVcbiBcdHZhciBpbnN0YWxsZWRNb2R1bGVzID0ge307XG5cbiBcdC8vIFRoZSByZXF1aXJlIGZ1bmN0aW9uXG4gXHRmdW5jdGlvbiBfX3dlYnBhY2tfcmVxdWlyZV9fKG1vZHVsZUlkKSB7XG5cbiBcdFx0Ly8gQ2hlY2sgaWYgbW9kdWxlIGlzIGluIGNhY2hlXG4gXHRcdGlmKGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdKVxuIFx0XHRcdHJldHVybiBpbnN0YWxsZWRNb2R1bGVzW21vZHVsZUlkXS5leHBvcnRzO1xuXG4gXHRcdC8vIENyZWF0ZSBhIG5ldyBtb2R1bGUgKGFuZCBwdXQgaXQgaW50byB0aGUgY2FjaGUpXG4gXHRcdHZhciBtb2R1bGUgPSBpbnN0YWxsZWRNb2R1bGVzW21vZHVsZUlkXSA9IHtcbiBcdFx0XHRleHBvcnRzOiB7fSxcbiBcdFx0XHRpZDogbW9kdWxlSWQsXG4gXHRcdFx0bG9hZGVkOiBmYWxzZVxuIFx0XHR9O1xuXG4gXHRcdC8vIEV4ZWN1dGUgdGhlIG1vZHVsZSBmdW5jdGlvblxuIFx0XHRtb2R1bGVzW21vZHVsZUlkXS5jYWxsKG1vZHVsZS5leHBvcnRzLCBtb2R1bGUsIG1vZHVsZS5leHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKTtcblxuIFx0XHQvLyBGbGFnIHRoZSBtb2R1bGUgYXMgbG9hZGVkXG4gXHRcdG1vZHVsZS5sb2FkZWQgPSB0cnVlO1xuXG4gXHRcdC8vIFJldHVybiB0aGUgZXhwb3J0cyBvZiB0aGUgbW9kdWxlXG4gXHRcdHJldHVybiBtb2R1bGUuZXhwb3J0cztcbiBcdH1cblxuXG4gXHQvLyBleHBvc2UgdGhlIG1vZHVsZXMgb2JqZWN0IChfX3dlYnBhY2tfbW9kdWxlc19fKVxuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5tID0gbW9kdWxlcztcblxuIFx0Ly8gZXhwb3NlIHRoZSBtb2R1bGUgY2FjaGVcbiBcdF9fd2VicGFja19yZXF1aXJlX18uYyA9IGluc3RhbGxlZE1vZHVsZXM7XG5cbiBcdC8vIF9fd2VicGFja19wdWJsaWNfcGF0aF9fXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLnAgPSBcIlwiO1xuXG4gXHQvLyBMb2FkIGVudHJ5IG1vZHVsZSBhbmQgcmV0dXJuIGV4cG9ydHNcbiBcdHJldHVybiBfX3dlYnBhY2tfcmVxdWlyZV9fKDApO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIHdlYnBhY2svYm9vdHN0cmFwIGU0NzM4ZmM3MmE3YjIzMDM5ODg5IiwiLypcbiAqIENvcHlyaWdodCAyMDA5LTIwMTEgTW96aWxsYSBGb3VuZGF0aW9uIGFuZCBjb250cmlidXRvcnNcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBOZXcgQlNEIGxpY2Vuc2UuIFNlZSBMSUNFTlNFLnR4dCBvcjpcbiAqIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9CU0QtMy1DbGF1c2VcbiAqL1xuZXhwb3J0cy5Tb3VyY2VNYXBHZW5lcmF0b3IgPSByZXF1aXJlKCcuL2xpYi9zb3VyY2UtbWFwLWdlbmVyYXRvcicpLlNvdXJjZU1hcEdlbmVyYXRvcjtcbmV4cG9ydHMuU291cmNlTWFwQ29uc3VtZXIgPSByZXF1aXJlKCcuL2xpYi9zb3VyY2UtbWFwLWNvbnN1bWVyJykuU291cmNlTWFwQ29uc3VtZXI7XG5leHBvcnRzLlNvdXJjZU5vZGUgPSByZXF1aXJlKCcuL2xpYi9zb3VyY2Utbm9kZScpLlNvdXJjZU5vZGU7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL3NvdXJjZS1tYXAuanNcbi8vIG1vZHVsZSBpZCA9IDBcbi8vIG1vZHVsZSBjaHVua3MgPSAwIiwiLyogLSotIE1vZGU6IGpzOyBqcy1pbmRlbnQtbGV2ZWw6IDI7IC0qLSAqL1xuLypcbiAqIENvcHlyaWdodCAyMDExIE1vemlsbGEgRm91bmRhdGlvbiBhbmQgY29udHJpYnV0b3JzXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgTmV3IEJTRCBsaWNlbnNlLiBTZWUgTElDRU5TRSBvcjpcbiAqIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9CU0QtMy1DbGF1c2VcbiAqL1xuXG52YXIgYmFzZTY0VkxRID0gcmVxdWlyZSgnLi9iYXNlNjQtdmxxJyk7XG52YXIgdXRpbCA9IHJlcXVpcmUoJy4vdXRpbCcpO1xudmFyIEFycmF5U2V0ID0gcmVxdWlyZSgnLi9hcnJheS1zZXQnKS5BcnJheVNldDtcbnZhciBNYXBwaW5nTGlzdCA9IHJlcXVpcmUoJy4vbWFwcGluZy1saXN0JykuTWFwcGluZ0xpc3Q7XG5cbi8qKlxuICogQW4gaW5zdGFuY2Ugb2YgdGhlIFNvdXJjZU1hcEdlbmVyYXRvciByZXByZXNlbnRzIGEgc291cmNlIG1hcCB3aGljaCBpc1xuICogYmVpbmcgYnVpbHQgaW5jcmVtZW50YWxseS4gWW91IG1heSBwYXNzIGFuIG9iamVjdCB3aXRoIHRoZSBmb2xsb3dpbmdcbiAqIHByb3BlcnRpZXM6XG4gKlxuICogICAtIGZpbGU6IFRoZSBmaWxlbmFtZSBvZiB0aGUgZ2VuZXJhdGVkIHNvdXJjZS5cbiAqICAgLSBzb3VyY2VSb290OiBBIHJvb3QgZm9yIGFsbCByZWxhdGl2ZSBVUkxzIGluIHRoaXMgc291cmNlIG1hcC5cbiAqL1xuZnVuY3Rpb24gU291cmNlTWFwR2VuZXJhdG9yKGFBcmdzKSB7XG4gIGlmICghYUFyZ3MpIHtcbiAgICBhQXJncyA9IHt9O1xuICB9XG4gIHRoaXMuX2ZpbGUgPSB1dGlsLmdldEFyZyhhQXJncywgJ2ZpbGUnLCBudWxsKTtcbiAgdGhpcy5fc291cmNlUm9vdCA9IHV0aWwuZ2V0QXJnKGFBcmdzLCAnc291cmNlUm9vdCcsIG51bGwpO1xuICB0aGlzLl9za2lwVmFsaWRhdGlvbiA9IHV0aWwuZ2V0QXJnKGFBcmdzLCAnc2tpcFZhbGlkYXRpb24nLCBmYWxzZSk7XG4gIHRoaXMuX3NvdXJjZXMgPSBuZXcgQXJyYXlTZXQoKTtcbiAgdGhpcy5fbmFtZXMgPSBuZXcgQXJyYXlTZXQoKTtcbiAgdGhpcy5fbWFwcGluZ3MgPSBuZXcgTWFwcGluZ0xpc3QoKTtcbiAgdGhpcy5fc291cmNlc0NvbnRlbnRzID0gbnVsbDtcbn1cblxuU291cmNlTWFwR2VuZXJhdG9yLnByb3RvdHlwZS5fdmVyc2lvbiA9IDM7XG5cbi8qKlxuICogQ3JlYXRlcyBhIG5ldyBTb3VyY2VNYXBHZW5lcmF0b3IgYmFzZWQgb24gYSBTb3VyY2VNYXBDb25zdW1lclxuICpcbiAqIEBwYXJhbSBhU291cmNlTWFwQ29uc3VtZXIgVGhlIFNvdXJjZU1hcC5cbiAqL1xuU291cmNlTWFwR2VuZXJhdG9yLmZyb21Tb3VyY2VNYXAgPVxuICBmdW5jdGlvbiBTb3VyY2VNYXBHZW5lcmF0b3JfZnJvbVNvdXJjZU1hcChhU291cmNlTWFwQ29uc3VtZXIpIHtcbiAgICB2YXIgc291cmNlUm9vdCA9IGFTb3VyY2VNYXBDb25zdW1lci5zb3VyY2VSb290O1xuICAgIHZhciBnZW5lcmF0b3IgPSBuZXcgU291cmNlTWFwR2VuZXJhdG9yKHtcbiAgICAgIGZpbGU6IGFTb3VyY2VNYXBDb25zdW1lci5maWxlLFxuICAgICAgc291cmNlUm9vdDogc291cmNlUm9vdFxuICAgIH0pO1xuICAgIGFTb3VyY2VNYXBDb25zdW1lci5lYWNoTWFwcGluZyhmdW5jdGlvbiAobWFwcGluZykge1xuICAgICAgdmFyIG5ld01hcHBpbmcgPSB7XG4gICAgICAgIGdlbmVyYXRlZDoge1xuICAgICAgICAgIGxpbmU6IG1hcHBpbmcuZ2VuZXJhdGVkTGluZSxcbiAgICAgICAgICBjb2x1bW46IG1hcHBpbmcuZ2VuZXJhdGVkQ29sdW1uXG4gICAgICAgIH1cbiAgICAgIH07XG5cbiAgICAgIGlmIChtYXBwaW5nLnNvdXJjZSAhPSBudWxsKSB7XG4gICAgICAgIG5ld01hcHBpbmcuc291cmNlID0gbWFwcGluZy5zb3VyY2U7XG4gICAgICAgIGlmIChzb3VyY2VSb290ICE9IG51bGwpIHtcbiAgICAgICAgICBuZXdNYXBwaW5nLnNvdXJjZSA9IHV0aWwucmVsYXRpdmUoc291cmNlUm9vdCwgbmV3TWFwcGluZy5zb3VyY2UpO1xuICAgICAgICB9XG5cbiAgICAgICAgbmV3TWFwcGluZy5vcmlnaW5hbCA9IHtcbiAgICAgICAgICBsaW5lOiBtYXBwaW5nLm9yaWdpbmFsTGluZSxcbiAgICAgICAgICBjb2x1bW46IG1hcHBpbmcub3JpZ2luYWxDb2x1bW5cbiAgICAgICAgfTtcblxuICAgICAgICBpZiAobWFwcGluZy5uYW1lICE9IG51bGwpIHtcbiAgICAgICAgICBuZXdNYXBwaW5nLm5hbWUgPSBtYXBwaW5nLm5hbWU7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgZ2VuZXJhdG9yLmFkZE1hcHBpbmcobmV3TWFwcGluZyk7XG4gICAgfSk7XG4gICAgYVNvdXJjZU1hcENvbnN1bWVyLnNvdXJjZXMuZm9yRWFjaChmdW5jdGlvbiAoc291cmNlRmlsZSkge1xuICAgICAgdmFyIGNvbnRlbnQgPSBhU291cmNlTWFwQ29uc3VtZXIuc291cmNlQ29udGVudEZvcihzb3VyY2VGaWxlKTtcbiAgICAgIGlmIChjb250ZW50ICE9IG51bGwpIHtcbiAgICAgICAgZ2VuZXJhdG9yLnNldFNvdXJjZUNvbnRlbnQoc291cmNlRmlsZSwgY29udGVudCk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIGdlbmVyYXRvcjtcbiAgfTtcblxuLyoqXG4gKiBBZGQgYSBzaW5nbGUgbWFwcGluZyBmcm9tIG9yaWdpbmFsIHNvdXJjZSBsaW5lIGFuZCBjb2x1bW4gdG8gdGhlIGdlbmVyYXRlZFxuICogc291cmNlJ3MgbGluZSBhbmQgY29sdW1uIGZvciB0aGlzIHNvdXJjZSBtYXAgYmVpbmcgY3JlYXRlZC4gVGhlIG1hcHBpbmdcbiAqIG9iamVjdCBzaG91bGQgaGF2ZSB0aGUgZm9sbG93aW5nIHByb3BlcnRpZXM6XG4gKlxuICogICAtIGdlbmVyYXRlZDogQW4gb2JqZWN0IHdpdGggdGhlIGdlbmVyYXRlZCBsaW5lIGFuZCBjb2x1bW4gcG9zaXRpb25zLlxuICogICAtIG9yaWdpbmFsOiBBbiBvYmplY3Qgd2l0aCB0aGUgb3JpZ2luYWwgbGluZSBhbmQgY29sdW1uIHBvc2l0aW9ucy5cbiAqICAgLSBzb3VyY2U6IFRoZSBvcmlnaW5hbCBzb3VyY2UgZmlsZSAocmVsYXRpdmUgdG8gdGhlIHNvdXJjZVJvb3QpLlxuICogICAtIG5hbWU6IEFuIG9wdGlvbmFsIG9yaWdpbmFsIHRva2VuIG5hbWUgZm9yIHRoaXMgbWFwcGluZy5cbiAqL1xuU291cmNlTWFwR2VuZXJhdG9yLnByb3RvdHlwZS5hZGRNYXBwaW5nID1cbiAgZnVuY3Rpb24gU291cmNlTWFwR2VuZXJhdG9yX2FkZE1hcHBpbmcoYUFyZ3MpIHtcbiAgICB2YXIgZ2VuZXJhdGVkID0gdXRpbC5nZXRBcmcoYUFyZ3MsICdnZW5lcmF0ZWQnKTtcbiAgICB2YXIgb3JpZ2luYWwgPSB1dGlsLmdldEFyZyhhQXJncywgJ29yaWdpbmFsJywgbnVsbCk7XG4gICAgdmFyIHNvdXJjZSA9IHV0aWwuZ2V0QXJnKGFBcmdzLCAnc291cmNlJywgbnVsbCk7XG4gICAgdmFyIG5hbWUgPSB1dGlsLmdldEFyZyhhQXJncywgJ25hbWUnLCBudWxsKTtcblxuICAgIGlmICghdGhpcy5fc2tpcFZhbGlkYXRpb24pIHtcbiAgICAgIHRoaXMuX3ZhbGlkYXRlTWFwcGluZyhnZW5lcmF0ZWQsIG9yaWdpbmFsLCBzb3VyY2UsIG5hbWUpO1xuICAgIH1cblxuICAgIGlmIChzb3VyY2UgIT0gbnVsbCkge1xuICAgICAgc291cmNlID0gU3RyaW5nKHNvdXJjZSk7XG4gICAgICBpZiAoIXRoaXMuX3NvdXJjZXMuaGFzKHNvdXJjZSkpIHtcbiAgICAgICAgdGhpcy5fc291cmNlcy5hZGQoc291cmNlKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAobmFtZSAhPSBudWxsKSB7XG4gICAgICBuYW1lID0gU3RyaW5nKG5hbWUpO1xuICAgICAgaWYgKCF0aGlzLl9uYW1lcy5oYXMobmFtZSkpIHtcbiAgICAgICAgdGhpcy5fbmFtZXMuYWRkKG5hbWUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMuX21hcHBpbmdzLmFkZCh7XG4gICAgICBnZW5lcmF0ZWRMaW5lOiBnZW5lcmF0ZWQubGluZSxcbiAgICAgIGdlbmVyYXRlZENvbHVtbjogZ2VuZXJhdGVkLmNvbHVtbixcbiAgICAgIG9yaWdpbmFsTGluZTogb3JpZ2luYWwgIT0gbnVsbCAmJiBvcmlnaW5hbC5saW5lLFxuICAgICAgb3JpZ2luYWxDb2x1bW46IG9yaWdpbmFsICE9IG51bGwgJiYgb3JpZ2luYWwuY29sdW1uLFxuICAgICAgc291cmNlOiBzb3VyY2UsXG4gICAgICBuYW1lOiBuYW1lXG4gICAgfSk7XG4gIH07XG5cbi8qKlxuICogU2V0IHRoZSBzb3VyY2UgY29udGVudCBmb3IgYSBzb3VyY2UgZmlsZS5cbiAqL1xuU291cmNlTWFwR2VuZXJhdG9yLnByb3RvdHlwZS5zZXRTb3VyY2VDb250ZW50ID1cbiAgZnVuY3Rpb24gU291cmNlTWFwR2VuZXJhdG9yX3NldFNvdXJjZUNvbnRlbnQoYVNvdXJjZUZpbGUsIGFTb3VyY2VDb250ZW50KSB7XG4gICAgdmFyIHNvdXJjZSA9IGFTb3VyY2VGaWxlO1xuICAgIGlmICh0aGlzLl9zb3VyY2VSb290ICE9IG51bGwpIHtcbiAgICAgIHNvdXJjZSA9IHV0aWwucmVsYXRpdmUodGhpcy5fc291cmNlUm9vdCwgc291cmNlKTtcbiAgICB9XG5cbiAgICBpZiAoYVNvdXJjZUNvbnRlbnQgIT0gbnVsbCkge1xuICAgICAgLy8gQWRkIHRoZSBzb3VyY2UgY29udGVudCB0byB0aGUgX3NvdXJjZXNDb250ZW50cyBtYXAuXG4gICAgICAvLyBDcmVhdGUgYSBuZXcgX3NvdXJjZXNDb250ZW50cyBtYXAgaWYgdGhlIHByb3BlcnR5IGlzIG51bGwuXG4gICAgICBpZiAoIXRoaXMuX3NvdXJjZXNDb250ZW50cykge1xuICAgICAgICB0aGlzLl9zb3VyY2VzQ29udGVudHMgPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuICAgICAgfVxuICAgICAgdGhpcy5fc291cmNlc0NvbnRlbnRzW3V0aWwudG9TZXRTdHJpbmcoc291cmNlKV0gPSBhU291cmNlQ29udGVudDtcbiAgICB9IGVsc2UgaWYgKHRoaXMuX3NvdXJjZXNDb250ZW50cykge1xuICAgICAgLy8gUmVtb3ZlIHRoZSBzb3VyY2UgZmlsZSBmcm9tIHRoZSBfc291cmNlc0NvbnRlbnRzIG1hcC5cbiAgICAgIC8vIElmIHRoZSBfc291cmNlc0NvbnRlbnRzIG1hcCBpcyBlbXB0eSwgc2V0IHRoZSBwcm9wZXJ0eSB0byBudWxsLlxuICAgICAgZGVsZXRlIHRoaXMuX3NvdXJjZXNDb250ZW50c1t1dGlsLnRvU2V0U3RyaW5nKHNvdXJjZSldO1xuICAgICAgaWYgKE9iamVjdC5rZXlzKHRoaXMuX3NvdXJjZXNDb250ZW50cykubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHRoaXMuX3NvdXJjZXNDb250ZW50cyA9IG51bGw7XG4gICAgICB9XG4gICAgfVxuICB9O1xuXG4vKipcbiAqIEFwcGxpZXMgdGhlIG1hcHBpbmdzIG9mIGEgc3ViLXNvdXJjZS1tYXAgZm9yIGEgc3BlY2lmaWMgc291cmNlIGZpbGUgdG8gdGhlXG4gKiBzb3VyY2UgbWFwIGJlaW5nIGdlbmVyYXRlZC4gRWFjaCBtYXBwaW5nIHRvIHRoZSBzdXBwbGllZCBzb3VyY2UgZmlsZSBpc1xuICogcmV3cml0dGVuIHVzaW5nIHRoZSBzdXBwbGllZCBzb3VyY2UgbWFwLiBOb3RlOiBUaGUgcmVzb2x1dGlvbiBmb3IgdGhlXG4gKiByZXN1bHRpbmcgbWFwcGluZ3MgaXMgdGhlIG1pbmltaXVtIG9mIHRoaXMgbWFwIGFuZCB0aGUgc3VwcGxpZWQgbWFwLlxuICpcbiAqIEBwYXJhbSBhU291cmNlTWFwQ29uc3VtZXIgVGhlIHNvdXJjZSBtYXAgdG8gYmUgYXBwbGllZC5cbiAqIEBwYXJhbSBhU291cmNlRmlsZSBPcHRpb25hbC4gVGhlIGZpbGVuYW1lIG9mIHRoZSBzb3VyY2UgZmlsZS5cbiAqICAgICAgICBJZiBvbWl0dGVkLCBTb3VyY2VNYXBDb25zdW1lcidzIGZpbGUgcHJvcGVydHkgd2lsbCBiZSB1c2VkLlxuICogQHBhcmFtIGFTb3VyY2VNYXBQYXRoIE9wdGlvbmFsLiBUaGUgZGlybmFtZSBvZiB0aGUgcGF0aCB0byB0aGUgc291cmNlIG1hcFxuICogICAgICAgIHRvIGJlIGFwcGxpZWQuIElmIHJlbGF0aXZlLCBpdCBpcyByZWxhdGl2ZSB0byB0aGUgU291cmNlTWFwQ29uc3VtZXIuXG4gKiAgICAgICAgVGhpcyBwYXJhbWV0ZXIgaXMgbmVlZGVkIHdoZW4gdGhlIHR3byBzb3VyY2UgbWFwcyBhcmVuJ3QgaW4gdGhlIHNhbWVcbiAqICAgICAgICBkaXJlY3RvcnksIGFuZCB0aGUgc291cmNlIG1hcCB0byBiZSBhcHBsaWVkIGNvbnRhaW5zIHJlbGF0aXZlIHNvdXJjZVxuICogICAgICAgIHBhdGhzLiBJZiBzbywgdGhvc2UgcmVsYXRpdmUgc291cmNlIHBhdGhzIG5lZWQgdG8gYmUgcmV3cml0dGVuXG4gKiAgICAgICAgcmVsYXRpdmUgdG8gdGhlIFNvdXJjZU1hcEdlbmVyYXRvci5cbiAqL1xuU291cmNlTWFwR2VuZXJhdG9yLnByb3RvdHlwZS5hcHBseVNvdXJjZU1hcCA9XG4gIGZ1bmN0aW9uIFNvdXJjZU1hcEdlbmVyYXRvcl9hcHBseVNvdXJjZU1hcChhU291cmNlTWFwQ29uc3VtZXIsIGFTb3VyY2VGaWxlLCBhU291cmNlTWFwUGF0aCkge1xuICAgIHZhciBzb3VyY2VGaWxlID0gYVNvdXJjZUZpbGU7XG4gICAgLy8gSWYgYVNvdXJjZUZpbGUgaXMgb21pdHRlZCwgd2Ugd2lsbCB1c2UgdGhlIGZpbGUgcHJvcGVydHkgb2YgdGhlIFNvdXJjZU1hcFxuICAgIGlmIChhU291cmNlRmlsZSA9PSBudWxsKSB7XG4gICAgICBpZiAoYVNvdXJjZU1hcENvbnN1bWVyLmZpbGUgPT0gbnVsbCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgJ1NvdXJjZU1hcEdlbmVyYXRvci5wcm90b3R5cGUuYXBwbHlTb3VyY2VNYXAgcmVxdWlyZXMgZWl0aGVyIGFuIGV4cGxpY2l0IHNvdXJjZSBmaWxlLCAnICtcbiAgICAgICAgICAnb3IgdGhlIHNvdXJjZSBtYXBcXCdzIFwiZmlsZVwiIHByb3BlcnR5LiBCb3RoIHdlcmUgb21pdHRlZC4nXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICBzb3VyY2VGaWxlID0gYVNvdXJjZU1hcENvbnN1bWVyLmZpbGU7XG4gICAgfVxuICAgIHZhciBzb3VyY2VSb290ID0gdGhpcy5fc291cmNlUm9vdDtcbiAgICAvLyBNYWtlIFwic291cmNlRmlsZVwiIHJlbGF0aXZlIGlmIGFuIGFic29sdXRlIFVybCBpcyBwYXNzZWQuXG4gICAgaWYgKHNvdXJjZVJvb3QgIT0gbnVsbCkge1xuICAgICAgc291cmNlRmlsZSA9IHV0aWwucmVsYXRpdmUoc291cmNlUm9vdCwgc291cmNlRmlsZSk7XG4gICAgfVxuICAgIC8vIEFwcGx5aW5nIHRoZSBTb3VyY2VNYXAgY2FuIGFkZCBhbmQgcmVtb3ZlIGl0ZW1zIGZyb20gdGhlIHNvdXJjZXMgYW5kXG4gICAgLy8gdGhlIG5hbWVzIGFycmF5LlxuICAgIHZhciBuZXdTb3VyY2VzID0gbmV3IEFycmF5U2V0KCk7XG4gICAgdmFyIG5ld05hbWVzID0gbmV3IEFycmF5U2V0KCk7XG5cbiAgICAvLyBGaW5kIG1hcHBpbmdzIGZvciB0aGUgXCJzb3VyY2VGaWxlXCJcbiAgICB0aGlzLl9tYXBwaW5ncy51bnNvcnRlZEZvckVhY2goZnVuY3Rpb24gKG1hcHBpbmcpIHtcbiAgICAgIGlmIChtYXBwaW5nLnNvdXJjZSA9PT0gc291cmNlRmlsZSAmJiBtYXBwaW5nLm9yaWdpbmFsTGluZSAhPSBudWxsKSB7XG4gICAgICAgIC8vIENoZWNrIGlmIGl0IGNhbiBiZSBtYXBwZWQgYnkgdGhlIHNvdXJjZSBtYXAsIHRoZW4gdXBkYXRlIHRoZSBtYXBwaW5nLlxuICAgICAgICB2YXIgb3JpZ2luYWwgPSBhU291cmNlTWFwQ29uc3VtZXIub3JpZ2luYWxQb3NpdGlvbkZvcih7XG4gICAgICAgICAgbGluZTogbWFwcGluZy5vcmlnaW5hbExpbmUsXG4gICAgICAgICAgY29sdW1uOiBtYXBwaW5nLm9yaWdpbmFsQ29sdW1uXG4gICAgICAgIH0pO1xuICAgICAgICBpZiAob3JpZ2luYWwuc291cmNlICE9IG51bGwpIHtcbiAgICAgICAgICAvLyBDb3B5IG1hcHBpbmdcbiAgICAgICAgICBtYXBwaW5nLnNvdXJjZSA9IG9yaWdpbmFsLnNvdXJjZTtcbiAgICAgICAgICBpZiAoYVNvdXJjZU1hcFBhdGggIT0gbnVsbCkge1xuICAgICAgICAgICAgbWFwcGluZy5zb3VyY2UgPSB1dGlsLmpvaW4oYVNvdXJjZU1hcFBhdGgsIG1hcHBpbmcuc291cmNlKVxuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoc291cmNlUm9vdCAhPSBudWxsKSB7XG4gICAgICAgICAgICBtYXBwaW5nLnNvdXJjZSA9IHV0aWwucmVsYXRpdmUoc291cmNlUm9vdCwgbWFwcGluZy5zb3VyY2UpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBtYXBwaW5nLm9yaWdpbmFsTGluZSA9IG9yaWdpbmFsLmxpbmU7XG4gICAgICAgICAgbWFwcGluZy5vcmlnaW5hbENvbHVtbiA9IG9yaWdpbmFsLmNvbHVtbjtcbiAgICAgICAgICBpZiAob3JpZ2luYWwubmFtZSAhPSBudWxsKSB7XG4gICAgICAgICAgICBtYXBwaW5nLm5hbWUgPSBvcmlnaW5hbC5uYW1lO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICB2YXIgc291cmNlID0gbWFwcGluZy5zb3VyY2U7XG4gICAgICBpZiAoc291cmNlICE9IG51bGwgJiYgIW5ld1NvdXJjZXMuaGFzKHNvdXJjZSkpIHtcbiAgICAgICAgbmV3U291cmNlcy5hZGQoc291cmNlKTtcbiAgICAgIH1cblxuICAgICAgdmFyIG5hbWUgPSBtYXBwaW5nLm5hbWU7XG4gICAgICBpZiAobmFtZSAhPSBudWxsICYmICFuZXdOYW1lcy5oYXMobmFtZSkpIHtcbiAgICAgICAgbmV3TmFtZXMuYWRkKG5hbWUpO1xuICAgICAgfVxuXG4gICAgfSwgdGhpcyk7XG4gICAgdGhpcy5fc291cmNlcyA9IG5ld1NvdXJjZXM7XG4gICAgdGhpcy5fbmFtZXMgPSBuZXdOYW1lcztcblxuICAgIC8vIENvcHkgc291cmNlc0NvbnRlbnRzIG9mIGFwcGxpZWQgbWFwLlxuICAgIGFTb3VyY2VNYXBDb25zdW1lci5zb3VyY2VzLmZvckVhY2goZnVuY3Rpb24gKHNvdXJjZUZpbGUpIHtcbiAgICAgIHZhciBjb250ZW50ID0gYVNvdXJjZU1hcENvbnN1bWVyLnNvdXJjZUNvbnRlbnRGb3Ioc291cmNlRmlsZSk7XG4gICAgICBpZiAoY29udGVudCAhPSBudWxsKSB7XG4gICAgICAgIGlmIChhU291cmNlTWFwUGF0aCAhPSBudWxsKSB7XG4gICAgICAgICAgc291cmNlRmlsZSA9IHV0aWwuam9pbihhU291cmNlTWFwUGF0aCwgc291cmNlRmlsZSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHNvdXJjZVJvb3QgIT0gbnVsbCkge1xuICAgICAgICAgIHNvdXJjZUZpbGUgPSB1dGlsLnJlbGF0aXZlKHNvdXJjZVJvb3QsIHNvdXJjZUZpbGUpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc2V0U291cmNlQ29udGVudChzb3VyY2VGaWxlLCBjb250ZW50KTtcbiAgICAgIH1cbiAgICB9LCB0aGlzKTtcbiAgfTtcblxuLyoqXG4gKiBBIG1hcHBpbmcgY2FuIGhhdmUgb25lIG9mIHRoZSB0aHJlZSBsZXZlbHMgb2YgZGF0YTpcbiAqXG4gKiAgIDEuIEp1c3QgdGhlIGdlbmVyYXRlZCBwb3NpdGlvbi5cbiAqICAgMi4gVGhlIEdlbmVyYXRlZCBwb3NpdGlvbiwgb3JpZ2luYWwgcG9zaXRpb24sIGFuZCBvcmlnaW5hbCBzb3VyY2UuXG4gKiAgIDMuIEdlbmVyYXRlZCBhbmQgb3JpZ2luYWwgcG9zaXRpb24sIG9yaWdpbmFsIHNvdXJjZSwgYXMgd2VsbCBhcyBhIG5hbWVcbiAqICAgICAgdG9rZW4uXG4gKlxuICogVG8gbWFpbnRhaW4gY29uc2lzdGVuY3ksIHdlIHZhbGlkYXRlIHRoYXQgYW55IG5ldyBtYXBwaW5nIGJlaW5nIGFkZGVkIGZhbGxzXG4gKiBpbiB0byBvbmUgb2YgdGhlc2UgY2F0ZWdvcmllcy5cbiAqL1xuU291cmNlTWFwR2VuZXJhdG9yLnByb3RvdHlwZS5fdmFsaWRhdGVNYXBwaW5nID1cbiAgZnVuY3Rpb24gU291cmNlTWFwR2VuZXJhdG9yX3ZhbGlkYXRlTWFwcGluZyhhR2VuZXJhdGVkLCBhT3JpZ2luYWwsIGFTb3VyY2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYU5hbWUpIHtcbiAgICAvLyBXaGVuIGFPcmlnaW5hbCBpcyB0cnV0aHkgYnV0IGhhcyBlbXB0eSB2YWx1ZXMgZm9yIC5saW5lIGFuZCAuY29sdW1uLFxuICAgIC8vIGl0IGlzIG1vc3QgbGlrZWx5IGEgcHJvZ3JhbW1lciBlcnJvci4gSW4gdGhpcyBjYXNlIHdlIHRocm93IGEgdmVyeVxuICAgIC8vIHNwZWNpZmljIGVycm9yIG1lc3NhZ2UgdG8gdHJ5IHRvIGd1aWRlIHRoZW0gdGhlIHJpZ2h0IHdheS5cbiAgICAvLyBGb3IgZXhhbXBsZTogaHR0cHM6Ly9naXRodWIuY29tL1BvbHltZXIvcG9seW1lci1idW5kbGVyL3B1bGwvNTE5XG4gICAgaWYgKGFPcmlnaW5hbCAmJiB0eXBlb2YgYU9yaWdpbmFsLmxpbmUgIT09ICdudW1iZXInICYmIHR5cGVvZiBhT3JpZ2luYWwuY29sdW1uICE9PSAnbnVtYmVyJykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgICAnb3JpZ2luYWwubGluZSBhbmQgb3JpZ2luYWwuY29sdW1uIGFyZSBub3QgbnVtYmVycyAtLSB5b3UgcHJvYmFibHkgbWVhbnQgdG8gb21pdCAnICtcbiAgICAgICAgICAgICd0aGUgb3JpZ2luYWwgbWFwcGluZyBlbnRpcmVseSBhbmQgb25seSBtYXAgdGhlIGdlbmVyYXRlZCBwb3NpdGlvbi4gSWYgc28sIHBhc3MgJyArXG4gICAgICAgICAgICAnbnVsbCBmb3IgdGhlIG9yaWdpbmFsIG1hcHBpbmcgaW5zdGVhZCBvZiBhbiBvYmplY3Qgd2l0aCBlbXB0eSBvciBudWxsIHZhbHVlcy4nXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKGFHZW5lcmF0ZWQgJiYgJ2xpbmUnIGluIGFHZW5lcmF0ZWQgJiYgJ2NvbHVtbicgaW4gYUdlbmVyYXRlZFxuICAgICAgICAmJiBhR2VuZXJhdGVkLmxpbmUgPiAwICYmIGFHZW5lcmF0ZWQuY29sdW1uID49IDBcbiAgICAgICAgJiYgIWFPcmlnaW5hbCAmJiAhYVNvdXJjZSAmJiAhYU5hbWUpIHtcbiAgICAgIC8vIENhc2UgMS5cbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgZWxzZSBpZiAoYUdlbmVyYXRlZCAmJiAnbGluZScgaW4gYUdlbmVyYXRlZCAmJiAnY29sdW1uJyBpbiBhR2VuZXJhdGVkXG4gICAgICAgICAgICAgJiYgYU9yaWdpbmFsICYmICdsaW5lJyBpbiBhT3JpZ2luYWwgJiYgJ2NvbHVtbicgaW4gYU9yaWdpbmFsXG4gICAgICAgICAgICAgJiYgYUdlbmVyYXRlZC5saW5lID4gMCAmJiBhR2VuZXJhdGVkLmNvbHVtbiA+PSAwXG4gICAgICAgICAgICAgJiYgYU9yaWdpbmFsLmxpbmUgPiAwICYmIGFPcmlnaW5hbC5jb2x1bW4gPj0gMFxuICAgICAgICAgICAgICYmIGFTb3VyY2UpIHtcbiAgICAgIC8vIENhc2VzIDIgYW5kIDMuXG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIG1hcHBpbmc6ICcgKyBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgIGdlbmVyYXRlZDogYUdlbmVyYXRlZCxcbiAgICAgICAgc291cmNlOiBhU291cmNlLFxuICAgICAgICBvcmlnaW5hbDogYU9yaWdpbmFsLFxuICAgICAgICBuYW1lOiBhTmFtZVxuICAgICAgfSkpO1xuICAgIH1cbiAgfTtcblxuLyoqXG4gKiBTZXJpYWxpemUgdGhlIGFjY3VtdWxhdGVkIG1hcHBpbmdzIGluIHRvIHRoZSBzdHJlYW0gb2YgYmFzZSA2NCBWTFFzXG4gKiBzcGVjaWZpZWQgYnkgdGhlIHNvdXJjZSBtYXAgZm9ybWF0LlxuICovXG5Tb3VyY2VNYXBHZW5lcmF0b3IucHJvdG90eXBlLl9zZXJpYWxpemVNYXBwaW5ncyA9XG4gIGZ1bmN0aW9uIFNvdXJjZU1hcEdlbmVyYXRvcl9zZXJpYWxpemVNYXBwaW5ncygpIHtcbiAgICB2YXIgcHJldmlvdXNHZW5lcmF0ZWRDb2x1bW4gPSAwO1xuICAgIHZhciBwcmV2aW91c0dlbmVyYXRlZExpbmUgPSAxO1xuICAgIHZhciBwcmV2aW91c09yaWdpbmFsQ29sdW1uID0gMDtcbiAgICB2YXIgcHJldmlvdXNPcmlnaW5hbExpbmUgPSAwO1xuICAgIHZhciBwcmV2aW91c05hbWUgPSAwO1xuICAgIHZhciBwcmV2aW91c1NvdXJjZSA9IDA7XG4gICAgdmFyIHJlc3VsdCA9ICcnO1xuICAgIHZhciBuZXh0O1xuICAgIHZhciBtYXBwaW5nO1xuICAgIHZhciBuYW1lSWR4O1xuICAgIHZhciBzb3VyY2VJZHg7XG5cbiAgICB2YXIgbWFwcGluZ3MgPSB0aGlzLl9tYXBwaW5ncy50b0FycmF5KCk7XG4gICAgZm9yICh2YXIgaSA9IDAsIGxlbiA9IG1hcHBpbmdzLmxlbmd0aDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgICBtYXBwaW5nID0gbWFwcGluZ3NbaV07XG4gICAgICBuZXh0ID0gJydcblxuICAgICAgaWYgKG1hcHBpbmcuZ2VuZXJhdGVkTGluZSAhPT0gcHJldmlvdXNHZW5lcmF0ZWRMaW5lKSB7XG4gICAgICAgIHByZXZpb3VzR2VuZXJhdGVkQ29sdW1uID0gMDtcbiAgICAgICAgd2hpbGUgKG1hcHBpbmcuZ2VuZXJhdGVkTGluZSAhPT0gcHJldmlvdXNHZW5lcmF0ZWRMaW5lKSB7XG4gICAgICAgICAgbmV4dCArPSAnOyc7XG4gICAgICAgICAgcHJldmlvdXNHZW5lcmF0ZWRMaW5lKys7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGVsc2Uge1xuICAgICAgICBpZiAoaSA+IDApIHtcbiAgICAgICAgICBpZiAoIXV0aWwuY29tcGFyZUJ5R2VuZXJhdGVkUG9zaXRpb25zSW5mbGF0ZWQobWFwcGluZywgbWFwcGluZ3NbaSAtIDFdKSkge1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgfVxuICAgICAgICAgIG5leHQgKz0gJywnO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIG5leHQgKz0gYmFzZTY0VkxRLmVuY29kZShtYXBwaW5nLmdlbmVyYXRlZENvbHVtblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLSBwcmV2aW91c0dlbmVyYXRlZENvbHVtbik7XG4gICAgICBwcmV2aW91c0dlbmVyYXRlZENvbHVtbiA9IG1hcHBpbmcuZ2VuZXJhdGVkQ29sdW1uO1xuXG4gICAgICBpZiAobWFwcGluZy5zb3VyY2UgIT0gbnVsbCkge1xuICAgICAgICBzb3VyY2VJZHggPSB0aGlzLl9zb3VyY2VzLmluZGV4T2YobWFwcGluZy5zb3VyY2UpO1xuICAgICAgICBuZXh0ICs9IGJhc2U2NFZMUS5lbmNvZGUoc291cmNlSWR4IC0gcHJldmlvdXNTb3VyY2UpO1xuICAgICAgICBwcmV2aW91c1NvdXJjZSA9IHNvdXJjZUlkeDtcblxuICAgICAgICAvLyBsaW5lcyBhcmUgc3RvcmVkIDAtYmFzZWQgaW4gU291cmNlTWFwIHNwZWMgdmVyc2lvbiAzXG4gICAgICAgIG5leHQgKz0gYmFzZTY0VkxRLmVuY29kZShtYXBwaW5nLm9yaWdpbmFsTGluZSAtIDFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLSBwcmV2aW91c09yaWdpbmFsTGluZSk7XG4gICAgICAgIHByZXZpb3VzT3JpZ2luYWxMaW5lID0gbWFwcGluZy5vcmlnaW5hbExpbmUgLSAxO1xuXG4gICAgICAgIG5leHQgKz0gYmFzZTY0VkxRLmVuY29kZShtYXBwaW5nLm9yaWdpbmFsQ29sdW1uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0gcHJldmlvdXNPcmlnaW5hbENvbHVtbik7XG4gICAgICAgIHByZXZpb3VzT3JpZ2luYWxDb2x1bW4gPSBtYXBwaW5nLm9yaWdpbmFsQ29sdW1uO1xuXG4gICAgICAgIGlmIChtYXBwaW5nLm5hbWUgIT0gbnVsbCkge1xuICAgICAgICAgIG5hbWVJZHggPSB0aGlzLl9uYW1lcy5pbmRleE9mKG1hcHBpbmcubmFtZSk7XG4gICAgICAgICAgbmV4dCArPSBiYXNlNjRWTFEuZW5jb2RlKG5hbWVJZHggLSBwcmV2aW91c05hbWUpO1xuICAgICAgICAgIHByZXZpb3VzTmFtZSA9IG5hbWVJZHg7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgcmVzdWx0ICs9IG5leHQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfTtcblxuU291cmNlTWFwR2VuZXJhdG9yLnByb3RvdHlwZS5fZ2VuZXJhdGVTb3VyY2VzQ29udGVudCA9XG4gIGZ1bmN0aW9uIFNvdXJjZU1hcEdlbmVyYXRvcl9nZW5lcmF0ZVNvdXJjZXNDb250ZW50KGFTb3VyY2VzLCBhU291cmNlUm9vdCkge1xuICAgIHJldHVybiBhU291cmNlcy5tYXAoZnVuY3Rpb24gKHNvdXJjZSkge1xuICAgICAgaWYgKCF0aGlzLl9zb3VyY2VzQ29udGVudHMpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG4gICAgICBpZiAoYVNvdXJjZVJvb3QgIT0gbnVsbCkge1xuICAgICAgICBzb3VyY2UgPSB1dGlsLnJlbGF0aXZlKGFTb3VyY2VSb290LCBzb3VyY2UpO1xuICAgICAgfVxuICAgICAgdmFyIGtleSA9IHV0aWwudG9TZXRTdHJpbmcoc291cmNlKTtcbiAgICAgIHJldHVybiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodGhpcy5fc291cmNlc0NvbnRlbnRzLCBrZXkpXG4gICAgICAgID8gdGhpcy5fc291cmNlc0NvbnRlbnRzW2tleV1cbiAgICAgICAgOiBudWxsO1xuICAgIH0sIHRoaXMpO1xuICB9O1xuXG4vKipcbiAqIEV4dGVybmFsaXplIHRoZSBzb3VyY2UgbWFwLlxuICovXG5Tb3VyY2VNYXBHZW5lcmF0b3IucHJvdG90eXBlLnRvSlNPTiA9XG4gIGZ1bmN0aW9uIFNvdXJjZU1hcEdlbmVyYXRvcl90b0pTT04oKSB7XG4gICAgdmFyIG1hcCA9IHtcbiAgICAgIHZlcnNpb246IHRoaXMuX3ZlcnNpb24sXG4gICAgICBzb3VyY2VzOiB0aGlzLl9zb3VyY2VzLnRvQXJyYXkoKSxcbiAgICAgIG5hbWVzOiB0aGlzLl9uYW1lcy50b0FycmF5KCksXG4gICAgICBtYXBwaW5nczogdGhpcy5fc2VyaWFsaXplTWFwcGluZ3MoKVxuICAgIH07XG4gICAgaWYgKHRoaXMuX2ZpbGUgIT0gbnVsbCkge1xuICAgICAgbWFwLmZpbGUgPSB0aGlzLl9maWxlO1xuICAgIH1cbiAgICBpZiAodGhpcy5fc291cmNlUm9vdCAhPSBudWxsKSB7XG4gICAgICBtYXAuc291cmNlUm9vdCA9IHRoaXMuX3NvdXJjZVJvb3Q7XG4gICAgfVxuICAgIGlmICh0aGlzLl9zb3VyY2VzQ29udGVudHMpIHtcbiAgICAgIG1hcC5zb3VyY2VzQ29udGVudCA9IHRoaXMuX2dlbmVyYXRlU291cmNlc0NvbnRlbnQobWFwLnNvdXJjZXMsIG1hcC5zb3VyY2VSb290KTtcbiAgICB9XG5cbiAgICByZXR1cm4gbWFwO1xuICB9O1xuXG4vKipcbiAqIFJlbmRlciB0aGUgc291cmNlIG1hcCBiZWluZyBnZW5lcmF0ZWQgdG8gYSBzdHJpbmcuXG4gKi9cblNvdXJjZU1hcEdlbmVyYXRvci5wcm90b3R5cGUudG9TdHJpbmcgPVxuICBmdW5jdGlvbiBTb3VyY2VNYXBHZW5lcmF0b3JfdG9TdHJpbmcoKSB7XG4gICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHRoaXMudG9KU09OKCkpO1xuICB9O1xuXG5leHBvcnRzLlNvdXJjZU1hcEdlbmVyYXRvciA9IFNvdXJjZU1hcEdlbmVyYXRvcjtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbGliL3NvdXJjZS1tYXAtZ2VuZXJhdG9yLmpzXG4vLyBtb2R1bGUgaWQgPSAxXG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsIi8qIC0qLSBNb2RlOiBqczsganMtaW5kZW50LWxldmVsOiAyOyAtKi0gKi9cbi8qXG4gKiBDb3B5cmlnaHQgMjAxMSBNb3ppbGxhIEZvdW5kYXRpb24gYW5kIGNvbnRyaWJ1dG9yc1xuICogTGljZW5zZWQgdW5kZXIgdGhlIE5ldyBCU0QgbGljZW5zZS4gU2VlIExJQ0VOU0Ugb3I6XG4gKiBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvQlNELTMtQ2xhdXNlXG4gKlxuICogQmFzZWQgb24gdGhlIEJhc2UgNjQgVkxRIGltcGxlbWVudGF0aW9uIGluIENsb3N1cmUgQ29tcGlsZXI6XG4gKiBodHRwczovL2NvZGUuZ29vZ2xlLmNvbS9wL2Nsb3N1cmUtY29tcGlsZXIvc291cmNlL2Jyb3dzZS90cnVuay9zcmMvY29tL2dvb2dsZS9kZWJ1Z2dpbmcvc291cmNlbWFwL0Jhc2U2NFZMUS5qYXZhXG4gKlxuICogQ29weXJpZ2h0IDIwMTEgVGhlIENsb3N1cmUgQ29tcGlsZXIgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dFxuICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZVxuICogbWV0OlxuICpcbiAqICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0XG4gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuXG4gKiAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlXG4gKiAgICBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZ1xuICogICAgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkXG4gKiAgICB3aXRoIHRoZSBkaXN0cmlidXRpb24uXG4gKiAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzXG4gKiAgICBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWRcbiAqICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi5cbiAqXG4gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTXG4gKiBcIkFTIElTXCIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UXG4gKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1JcbiAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUXG4gKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCxcbiAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1RcbiAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLFxuICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZXG4gKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUXG4gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0VcbiAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuXG4gKi9cblxudmFyIGJhc2U2NCA9IHJlcXVpcmUoJy4vYmFzZTY0Jyk7XG5cbi8vIEEgc2luZ2xlIGJhc2UgNjQgZGlnaXQgY2FuIGNvbnRhaW4gNiBiaXRzIG9mIGRhdGEuIEZvciB0aGUgYmFzZSA2NCB2YXJpYWJsZVxuLy8gbGVuZ3RoIHF1YW50aXRpZXMgd2UgdXNlIGluIHRoZSBzb3VyY2UgbWFwIHNwZWMsIHRoZSBmaXJzdCBiaXQgaXMgdGhlIHNpZ24sXG4vLyB0aGUgbmV4dCBmb3VyIGJpdHMgYXJlIHRoZSBhY3R1YWwgdmFsdWUsIGFuZCB0aGUgNnRoIGJpdCBpcyB0aGVcbi8vIGNvbnRpbnVhdGlvbiBiaXQuIFRoZSBjb250aW51YXRpb24gYml0IHRlbGxzIHVzIHdoZXRoZXIgdGhlcmUgYXJlIG1vcmVcbi8vIGRpZ2l0cyBpbiB0aGlzIHZhbHVlIGZvbGxvd2luZyB0aGlzIGRpZ2l0LlxuLy9cbi8vICAgQ29udGludWF0aW9uXG4vLyAgIHwgICAgU2lnblxuLy8gICB8ICAgIHxcbi8vICAgViAgICBWXG4vLyAgIDEwMTAxMVxuXG52YXIgVkxRX0JBU0VfU0hJRlQgPSA1O1xuXG4vLyBiaW5hcnk6IDEwMDAwMFxudmFyIFZMUV9CQVNFID0gMSA8PCBWTFFfQkFTRV9TSElGVDtcblxuLy8gYmluYXJ5OiAwMTExMTFcbnZhciBWTFFfQkFTRV9NQVNLID0gVkxRX0JBU0UgLSAxO1xuXG4vLyBiaW5hcnk6IDEwMDAwMFxudmFyIFZMUV9DT05USU5VQVRJT05fQklUID0gVkxRX0JBU0U7XG5cbi8qKlxuICogQ29udmVydHMgZnJvbSBhIHR3by1jb21wbGVtZW50IHZhbHVlIHRvIGEgdmFsdWUgd2hlcmUgdGhlIHNpZ24gYml0IGlzXG4gKiBwbGFjZWQgaW4gdGhlIGxlYXN0IHNpZ25pZmljYW50IGJpdC4gIEZvciBleGFtcGxlLCBhcyBkZWNpbWFsczpcbiAqICAgMSBiZWNvbWVzIDIgKDEwIGJpbmFyeSksIC0xIGJlY29tZXMgMyAoMTEgYmluYXJ5KVxuICogICAyIGJlY29tZXMgNCAoMTAwIGJpbmFyeSksIC0yIGJlY29tZXMgNSAoMTAxIGJpbmFyeSlcbiAqL1xuZnVuY3Rpb24gdG9WTFFTaWduZWQoYVZhbHVlKSB7XG4gIHJldHVybiBhVmFsdWUgPCAwXG4gICAgPyAoKC1hVmFsdWUpIDw8IDEpICsgMVxuICAgIDogKGFWYWx1ZSA8PCAxKSArIDA7XG59XG5cbi8qKlxuICogQ29udmVydHMgdG8gYSB0d28tY29tcGxlbWVudCB2YWx1ZSBmcm9tIGEgdmFsdWUgd2hlcmUgdGhlIHNpZ24gYml0IGlzXG4gKiBwbGFjZWQgaW4gdGhlIGxlYXN0IHNpZ25pZmljYW50IGJpdC4gIEZvciBleGFtcGxlLCBhcyBkZWNpbWFsczpcbiAqICAgMiAoMTAgYmluYXJ5KSBiZWNvbWVzIDEsIDMgKDExIGJpbmFyeSkgYmVjb21lcyAtMVxuICogICA0ICgxMDAgYmluYXJ5KSBiZWNvbWVzIDIsIDUgKDEwMSBiaW5hcnkpIGJlY29tZXMgLTJcbiAqL1xuZnVuY3Rpb24gZnJvbVZMUVNpZ25lZChhVmFsdWUpIHtcbiAgdmFyIGlzTmVnYXRpdmUgPSAoYVZhbHVlICYgMSkgPT09IDE7XG4gIHZhciBzaGlmdGVkID0gYVZhbHVlID4+IDE7XG4gIHJldHVybiBpc05lZ2F0aXZlXG4gICAgPyAtc2hpZnRlZFxuICAgIDogc2hpZnRlZDtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIHRoZSBiYXNlIDY0IFZMUSBlbmNvZGVkIHZhbHVlLlxuICovXG5leHBvcnRzLmVuY29kZSA9IGZ1bmN0aW9uIGJhc2U2NFZMUV9lbmNvZGUoYVZhbHVlKSB7XG4gIHZhciBlbmNvZGVkID0gXCJcIjtcbiAgdmFyIGRpZ2l0O1xuXG4gIHZhciB2bHEgPSB0b1ZMUVNpZ25lZChhVmFsdWUpO1xuXG4gIGRvIHtcbiAgICBkaWdpdCA9IHZscSAmIFZMUV9CQVNFX01BU0s7XG4gICAgdmxxID4+Pj0gVkxRX0JBU0VfU0hJRlQ7XG4gICAgaWYgKHZscSA+IDApIHtcbiAgICAgIC8vIFRoZXJlIGFyZSBzdGlsbCBtb3JlIGRpZ2l0cyBpbiB0aGlzIHZhbHVlLCBzbyB3ZSBtdXN0IG1ha2Ugc3VyZSB0aGVcbiAgICAgIC8vIGNvbnRpbnVhdGlvbiBiaXQgaXMgbWFya2VkLlxuICAgICAgZGlnaXQgfD0gVkxRX0NPTlRJTlVBVElPTl9CSVQ7XG4gICAgfVxuICAgIGVuY29kZWQgKz0gYmFzZTY0LmVuY29kZShkaWdpdCk7XG4gIH0gd2hpbGUgKHZscSA+IDApO1xuXG4gIHJldHVybiBlbmNvZGVkO1xufTtcblxuLyoqXG4gKiBEZWNvZGVzIHRoZSBuZXh0IGJhc2UgNjQgVkxRIHZhbHVlIGZyb20gdGhlIGdpdmVuIHN0cmluZyBhbmQgcmV0dXJucyB0aGVcbiAqIHZhbHVlIGFuZCB0aGUgcmVzdCBvZiB0aGUgc3RyaW5nIHZpYSB0aGUgb3V0IHBhcmFtZXRlci5cbiAqL1xuZXhwb3J0cy5kZWNvZGUgPSBmdW5jdGlvbiBiYXNlNjRWTFFfZGVjb2RlKGFTdHIsIGFJbmRleCwgYU91dFBhcmFtKSB7XG4gIHZhciBzdHJMZW4gPSBhU3RyLmxlbmd0aDtcbiAgdmFyIHJlc3VsdCA9IDA7XG4gIHZhciBzaGlmdCA9IDA7XG4gIHZhciBjb250aW51YXRpb24sIGRpZ2l0O1xuXG4gIGRvIHtcbiAgICBpZiAoYUluZGV4ID49IHN0ckxlbikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiRXhwZWN0ZWQgbW9yZSBkaWdpdHMgaW4gYmFzZSA2NCBWTFEgdmFsdWUuXCIpO1xuICAgIH1cblxuICAgIGRpZ2l0ID0gYmFzZTY0LmRlY29kZShhU3RyLmNoYXJDb2RlQXQoYUluZGV4KyspKTtcbiAgICBpZiAoZGlnaXQgPT09IC0xKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJJbnZhbGlkIGJhc2U2NCBkaWdpdDogXCIgKyBhU3RyLmNoYXJBdChhSW5kZXggLSAxKSk7XG4gICAgfVxuXG4gICAgY29udGludWF0aW9uID0gISEoZGlnaXQgJiBWTFFfQ09OVElOVUFUSU9OX0JJVCk7XG4gICAgZGlnaXQgJj0gVkxRX0JBU0VfTUFTSztcbiAgICByZXN1bHQgPSByZXN1bHQgKyAoZGlnaXQgPDwgc2hpZnQpO1xuICAgIHNoaWZ0ICs9IFZMUV9CQVNFX1NISUZUO1xuICB9IHdoaWxlIChjb250aW51YXRpb24pO1xuXG4gIGFPdXRQYXJhbS52YWx1ZSA9IGZyb21WTFFTaWduZWQocmVzdWx0KTtcbiAgYU91dFBhcmFtLnJlc3QgPSBhSW5kZXg7XG59O1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9saWIvYmFzZTY0LXZscS5qc1xuLy8gbW9kdWxlIGlkID0gMlxuLy8gbW9kdWxlIGNodW5rcyA9IDAiLCIvKiAtKi0gTW9kZToganM7IGpzLWluZGVudC1sZXZlbDogMjsgLSotICovXG4vKlxuICogQ29weXJpZ2h0IDIwMTEgTW96aWxsYSBGb3VuZGF0aW9uIGFuZCBjb250cmlidXRvcnNcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBOZXcgQlNEIGxpY2Vuc2UuIFNlZSBMSUNFTlNFIG9yOlxuICogaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL0JTRC0zLUNsYXVzZVxuICovXG5cbnZhciBpbnRUb0NoYXJNYXAgPSAnQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrLycuc3BsaXQoJycpO1xuXG4vKipcbiAqIEVuY29kZSBhbiBpbnRlZ2VyIGluIHRoZSByYW5nZSBvZiAwIHRvIDYzIHRvIGEgc2luZ2xlIGJhc2UgNjQgZGlnaXQuXG4gKi9cbmV4cG9ydHMuZW5jb2RlID0gZnVuY3Rpb24gKG51bWJlcikge1xuICBpZiAoMCA8PSBudW1iZXIgJiYgbnVtYmVyIDwgaW50VG9DaGFyTWFwLmxlbmd0aCkge1xuICAgIHJldHVybiBpbnRUb0NoYXJNYXBbbnVtYmVyXTtcbiAgfVxuICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiTXVzdCBiZSBiZXR3ZWVuIDAgYW5kIDYzOiBcIiArIG51bWJlcik7XG59O1xuXG4vKipcbiAqIERlY29kZSBhIHNpbmdsZSBiYXNlIDY0IGNoYXJhY3RlciBjb2RlIGRpZ2l0IHRvIGFuIGludGVnZXIuIFJldHVybnMgLTEgb25cbiAqIGZhaWx1cmUuXG4gKi9cbmV4cG9ydHMuZGVjb2RlID0gZnVuY3Rpb24gKGNoYXJDb2RlKSB7XG4gIHZhciBiaWdBID0gNjU7ICAgICAvLyAnQSdcbiAgdmFyIGJpZ1ogPSA5MDsgICAgIC8vICdaJ1xuXG4gIHZhciBsaXR0bGVBID0gOTc7ICAvLyAnYSdcbiAgdmFyIGxpdHRsZVogPSAxMjI7IC8vICd6J1xuXG4gIHZhciB6ZXJvID0gNDg7ICAgICAvLyAnMCdcbiAgdmFyIG5pbmUgPSA1NzsgICAgIC8vICc5J1xuXG4gIHZhciBwbHVzID0gNDM7ICAgICAvLyAnKydcbiAgdmFyIHNsYXNoID0gNDc7ICAgIC8vICcvJ1xuXG4gIHZhciBsaXR0bGVPZmZzZXQgPSAyNjtcbiAgdmFyIG51bWJlck9mZnNldCA9IDUyO1xuXG4gIC8vIDAgLSAyNTogQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpcbiAgaWYgKGJpZ0EgPD0gY2hhckNvZGUgJiYgY2hhckNvZGUgPD0gYmlnWikge1xuICAgIHJldHVybiAoY2hhckNvZGUgLSBiaWdBKTtcbiAgfVxuXG4gIC8vIDI2IC0gNTE6IGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6XG4gIGlmIChsaXR0bGVBIDw9IGNoYXJDb2RlICYmIGNoYXJDb2RlIDw9IGxpdHRsZVopIHtcbiAgICByZXR1cm4gKGNoYXJDb2RlIC0gbGl0dGxlQSArIGxpdHRsZU9mZnNldCk7XG4gIH1cblxuICAvLyA1MiAtIDYxOiAwMTIzNDU2Nzg5XG4gIGlmICh6ZXJvIDw9IGNoYXJDb2RlICYmIGNoYXJDb2RlIDw9IG5pbmUpIHtcbiAgICByZXR1cm4gKGNoYXJDb2RlIC0gemVybyArIG51bWJlck9mZnNldCk7XG4gIH1cblxuICAvLyA2MjogK1xuICBpZiAoY2hhckNvZGUgPT0gcGx1cykge1xuICAgIHJldHVybiA2MjtcbiAgfVxuXG4gIC8vIDYzOiAvXG4gIGlmIChjaGFyQ29kZSA9PSBzbGFzaCkge1xuICAgIHJldHVybiA2MztcbiAgfVxuXG4gIC8vIEludmFsaWQgYmFzZTY0IGRpZ2l0LlxuICByZXR1cm4gLTE7XG59O1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9saWIvYmFzZTY0LmpzXG4vLyBtb2R1bGUgaWQgPSAzXG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsIi8qIC0qLSBNb2RlOiBqczsganMtaW5kZW50LWxldmVsOiAyOyAtKi0gKi9cbi8qXG4gKiBDb3B5cmlnaHQgMjAxMSBNb3ppbGxhIEZvdW5kYXRpb24gYW5kIGNvbnRyaWJ1dG9yc1xuICogTGljZW5zZWQgdW5kZXIgdGhlIE5ldyBCU0QgbGljZW5zZS4gU2VlIExJQ0VOU0Ugb3I6XG4gKiBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvQlNELTMtQ2xhdXNlXG4gKi9cblxuLyoqXG4gKiBUaGlzIGlzIGEgaGVscGVyIGZ1bmN0aW9uIGZvciBnZXR0aW5nIHZhbHVlcyBmcm9tIHBhcmFtZXRlci9vcHRpb25zXG4gKiBvYmplY3RzLlxuICpcbiAqIEBwYXJhbSBhcmdzIFRoZSBvYmplY3Qgd2UgYXJlIGV4dHJhY3RpbmcgdmFsdWVzIGZyb21cbiAqIEBwYXJhbSBuYW1lIFRoZSBuYW1lIG9mIHRoZSBwcm9wZXJ0eSB3ZSBhcmUgZ2V0dGluZy5cbiAqIEBwYXJhbSBkZWZhdWx0VmFsdWUgQW4gb3B0aW9uYWwgdmFsdWUgdG8gcmV0dXJuIGlmIHRoZSBwcm9wZXJ0eSBpcyBtaXNzaW5nXG4gKiBmcm9tIHRoZSBvYmplY3QuIElmIHRoaXMgaXMgbm90IHNwZWNpZmllZCBhbmQgdGhlIHByb3BlcnR5IGlzIG1pc3NpbmcsIGFuXG4gKiBlcnJvciB3aWxsIGJlIHRocm93bi5cbiAqL1xuZnVuY3Rpb24gZ2V0QXJnKGFBcmdzLCBhTmFtZSwgYURlZmF1bHRWYWx1ZSkge1xuICBpZiAoYU5hbWUgaW4gYUFyZ3MpIHtcbiAgICByZXR1cm4gYUFyZ3NbYU5hbWVdO1xuICB9IGVsc2UgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDMpIHtcbiAgICByZXR1cm4gYURlZmF1bHRWYWx1ZTtcbiAgfSBlbHNlIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ1wiJyArIGFOYW1lICsgJ1wiIGlzIGEgcmVxdWlyZWQgYXJndW1lbnQuJyk7XG4gIH1cbn1cbmV4cG9ydHMuZ2V0QXJnID0gZ2V0QXJnO1xuXG52YXIgdXJsUmVnZXhwID0gL14oPzooW1xcdytcXC0uXSspOik/XFwvXFwvKD86KFxcdys6XFx3KylAKT8oW1xcdy5dKikoPzo6KFxcZCspKT8oXFxTKikkLztcbnZhciBkYXRhVXJsUmVnZXhwID0gL15kYXRhOi4rXFwsLiskLztcblxuZnVuY3Rpb24gdXJsUGFyc2UoYVVybCkge1xuICB2YXIgbWF0Y2ggPSBhVXJsLm1hdGNoKHVybFJlZ2V4cCk7XG4gIGlmICghbWF0Y2gpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuICByZXR1cm4ge1xuICAgIHNjaGVtZTogbWF0Y2hbMV0sXG4gICAgYXV0aDogbWF0Y2hbMl0sXG4gICAgaG9zdDogbWF0Y2hbM10sXG4gICAgcG9ydDogbWF0Y2hbNF0sXG4gICAgcGF0aDogbWF0Y2hbNV1cbiAgfTtcbn1cbmV4cG9ydHMudXJsUGFyc2UgPSB1cmxQYXJzZTtcblxuZnVuY3Rpb24gdXJsR2VuZXJhdGUoYVBhcnNlZFVybCkge1xuICB2YXIgdXJsID0gJyc7XG4gIGlmIChhUGFyc2VkVXJsLnNjaGVtZSkge1xuICAgIHVybCArPSBhUGFyc2VkVXJsLnNjaGVtZSArICc6JztcbiAgfVxuICB1cmwgKz0gJy8vJztcbiAgaWYgKGFQYXJzZWRVcmwuYXV0aCkge1xuICAgIHVybCArPSBhUGFyc2VkVXJsLmF1dGggKyAnQCc7XG4gIH1cbiAgaWYgKGFQYXJzZWRVcmwuaG9zdCkge1xuICAgIHVybCArPSBhUGFyc2VkVXJsLmhvc3Q7XG4gIH1cbiAgaWYgKGFQYXJzZWRVcmwucG9ydCkge1xuICAgIHVybCArPSBcIjpcIiArIGFQYXJzZWRVcmwucG9ydFxuICB9XG4gIGlmIChhUGFyc2VkVXJsLnBhdGgpIHtcbiAgICB1cmwgKz0gYVBhcnNlZFVybC5wYXRoO1xuICB9XG4gIHJldHVybiB1cmw7XG59XG5leHBvcnRzLnVybEdlbmVyYXRlID0gdXJsR2VuZXJhdGU7XG5cbi8qKlxuICogTm9ybWFsaXplcyBhIHBhdGgsIG9yIHRoZSBwYXRoIHBvcnRpb24gb2YgYSBVUkw6XG4gKlxuICogLSBSZXBsYWNlcyBjb25zZWN1dGl2ZSBzbGFzaGVzIHdpdGggb25lIHNsYXNoLlxuICogLSBSZW1vdmVzIHVubmVjZXNzYXJ5ICcuJyBwYXJ0cy5cbiAqIC0gUmVtb3ZlcyB1bm5lY2Vzc2FyeSAnPGRpcj4vLi4nIHBhcnRzLlxuICpcbiAqIEJhc2VkIG9uIGNvZGUgaW4gdGhlIE5vZGUuanMgJ3BhdGgnIGNvcmUgbW9kdWxlLlxuICpcbiAqIEBwYXJhbSBhUGF0aCBUaGUgcGF0aCBvciB1cmwgdG8gbm9ybWFsaXplLlxuICovXG5mdW5jdGlvbiBub3JtYWxpemUoYVBhdGgpIHtcbiAgdmFyIHBhdGggPSBhUGF0aDtcbiAgdmFyIHVybCA9IHVybFBhcnNlKGFQYXRoKTtcbiAgaWYgKHVybCkge1xuICAgIGlmICghdXJsLnBhdGgpIHtcbiAgICAgIHJldHVybiBhUGF0aDtcbiAgICB9XG4gICAgcGF0aCA9IHVybC5wYXRoO1xuICB9XG4gIHZhciBpc0Fic29sdXRlID0gZXhwb3J0cy5pc0Fic29sdXRlKHBhdGgpO1xuXG4gIHZhciBwYXJ0cyA9IHBhdGguc3BsaXQoL1xcLysvKTtcbiAgZm9yICh2YXIgcGFydCwgdXAgPSAwLCBpID0gcGFydHMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHtcbiAgICBwYXJ0ID0gcGFydHNbaV07XG4gICAgaWYgKHBhcnQgPT09ICcuJykge1xuICAgICAgcGFydHMuc3BsaWNlKGksIDEpO1xuICAgIH0gZWxzZSBpZiAocGFydCA9PT0gJy4uJykge1xuICAgICAgdXArKztcbiAgICB9IGVsc2UgaWYgKHVwID4gMCkge1xuICAgICAgaWYgKHBhcnQgPT09ICcnKSB7XG4gICAgICAgIC8vIFRoZSBmaXJzdCBwYXJ0IGlzIGJsYW5rIGlmIHRoZSBwYXRoIGlzIGFic29sdXRlLiBUcnlpbmcgdG8gZ29cbiAgICAgICAgLy8gYWJvdmUgdGhlIHJvb3QgaXMgYSBuby1vcC4gVGhlcmVmb3JlIHdlIGNhbiByZW1vdmUgYWxsICcuLicgcGFydHNcbiAgICAgICAgLy8gZGlyZWN0bHkgYWZ0ZXIgdGhlIHJvb3QuXG4gICAgICAgIHBhcnRzLnNwbGljZShpICsgMSwgdXApO1xuICAgICAgICB1cCA9IDA7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBwYXJ0cy5zcGxpY2UoaSwgMik7XG4gICAgICAgIHVwLS07XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHBhdGggPSBwYXJ0cy5qb2luKCcvJyk7XG5cbiAgaWYgKHBhdGggPT09ICcnKSB7XG4gICAgcGF0aCA9IGlzQWJzb2x1dGUgPyAnLycgOiAnLic7XG4gIH1cblxuICBpZiAodXJsKSB7XG4gICAgdXJsLnBhdGggPSBwYXRoO1xuICAgIHJldHVybiB1cmxHZW5lcmF0ZSh1cmwpO1xuICB9XG4gIHJldHVybiBwYXRoO1xufVxuZXhwb3J0cy5ub3JtYWxpemUgPSBub3JtYWxpemU7XG5cbi8qKlxuICogSm9pbnMgdHdvIHBhdGhzL1VSTHMuXG4gKlxuICogQHBhcmFtIGFSb290IFRoZSByb290IHBhdGggb3IgVVJMLlxuICogQHBhcmFtIGFQYXRoIFRoZSBwYXRoIG9yIFVSTCB0byBiZSBqb2luZWQgd2l0aCB0aGUgcm9vdC5cbiAqXG4gKiAtIElmIGFQYXRoIGlzIGEgVVJMIG9yIGEgZGF0YSBVUkksIGFQYXRoIGlzIHJldHVybmVkLCB1bmxlc3MgYVBhdGggaXMgYVxuICogICBzY2hlbWUtcmVsYXRpdmUgVVJMOiBUaGVuIHRoZSBzY2hlbWUgb2YgYVJvb3QsIGlmIGFueSwgaXMgcHJlcGVuZGVkXG4gKiAgIGZpcnN0LlxuICogLSBPdGhlcndpc2UgYVBhdGggaXMgYSBwYXRoLiBJZiBhUm9vdCBpcyBhIFVSTCwgdGhlbiBpdHMgcGF0aCBwb3J0aW9uXG4gKiAgIGlzIHVwZGF0ZWQgd2l0aCB0aGUgcmVzdWx0IGFuZCBhUm9vdCBpcyByZXR1cm5lZC4gT3RoZXJ3aXNlIHRoZSByZXN1bHRcbiAqICAgaXMgcmV0dXJuZWQuXG4gKiAgIC0gSWYgYVBhdGggaXMgYWJzb2x1dGUsIHRoZSByZXN1bHQgaXMgYVBhdGguXG4gKiAgIC0gT3RoZXJ3aXNlIHRoZSB0d28gcGF0aHMgYXJlIGpvaW5lZCB3aXRoIGEgc2xhc2guXG4gKiAtIEpvaW5pbmcgZm9yIGV4YW1wbGUgJ2h0dHA6Ly8nIGFuZCAnd3d3LmV4YW1wbGUuY29tJyBpcyBhbHNvIHN1cHBvcnRlZC5cbiAqL1xuZnVuY3Rpb24gam9pbihhUm9vdCwgYVBhdGgpIHtcbiAgaWYgKGFSb290ID09PSBcIlwiKSB7XG4gICAgYVJvb3QgPSBcIi5cIjtcbiAgfVxuICBpZiAoYVBhdGggPT09IFwiXCIpIHtcbiAgICBhUGF0aCA9IFwiLlwiO1xuICB9XG4gIHZhciBhUGF0aFVybCA9IHVybFBhcnNlKGFQYXRoKTtcbiAgdmFyIGFSb290VXJsID0gdXJsUGFyc2UoYVJvb3QpO1xuICBpZiAoYVJvb3RVcmwpIHtcbiAgICBhUm9vdCA9IGFSb290VXJsLnBhdGggfHwgJy8nO1xuICB9XG5cbiAgLy8gYGpvaW4oZm9vLCAnLy93d3cuZXhhbXBsZS5vcmcnKWBcbiAgaWYgKGFQYXRoVXJsICYmICFhUGF0aFVybC5zY2hlbWUpIHtcbiAgICBpZiAoYVJvb3RVcmwpIHtcbiAgICAgIGFQYXRoVXJsLnNjaGVtZSA9IGFSb290VXJsLnNjaGVtZTtcbiAgICB9XG4gICAgcmV0dXJuIHVybEdlbmVyYXRlKGFQYXRoVXJsKTtcbiAgfVxuXG4gIGlmIChhUGF0aFVybCB8fCBhUGF0aC5tYXRjaChkYXRhVXJsUmVnZXhwKSkge1xuICAgIHJldHVybiBhUGF0aDtcbiAgfVxuXG4gIC8vIGBqb2luKCdodHRwOi8vJywgJ3d3dy5leGFtcGxlLmNvbScpYFxuICBpZiAoYVJvb3RVcmwgJiYgIWFSb290VXJsLmhvc3QgJiYgIWFSb290VXJsLnBhdGgpIHtcbiAgICBhUm9vdFVybC5ob3N0ID0gYVBhdGg7XG4gICAgcmV0dXJuIHVybEdlbmVyYXRlKGFSb290VXJsKTtcbiAgfVxuXG4gIHZhciBqb2luZWQgPSBhUGF0aC5jaGFyQXQoMCkgPT09ICcvJ1xuICAgID8gYVBhdGhcbiAgICA6IG5vcm1hbGl6ZShhUm9vdC5yZXBsYWNlKC9cXC8rJC8sICcnKSArICcvJyArIGFQYXRoKTtcblxuICBpZiAoYVJvb3RVcmwpIHtcbiAgICBhUm9vdFVybC5wYXRoID0gam9pbmVkO1xuICAgIHJldHVybiB1cmxHZW5lcmF0ZShhUm9vdFVybCk7XG4gIH1cbiAgcmV0dXJuIGpvaW5lZDtcbn1cbmV4cG9ydHMuam9pbiA9IGpvaW47XG5cbmV4cG9ydHMuaXNBYnNvbHV0ZSA9IGZ1bmN0aW9uIChhUGF0aCkge1xuICByZXR1cm4gYVBhdGguY2hhckF0KDApID09PSAnLycgfHwgISFhUGF0aC5tYXRjaCh1cmxSZWdleHApO1xufTtcblxuLyoqXG4gKiBNYWtlIGEgcGF0aCByZWxhdGl2ZSB0byBhIFVSTCBvciBhbm90aGVyIHBhdGguXG4gKlxuICogQHBhcmFtIGFSb290IFRoZSByb290IHBhdGggb3IgVVJMLlxuICogQHBhcmFtIGFQYXRoIFRoZSBwYXRoIG9yIFVSTCB0byBiZSBtYWRlIHJlbGF0aXZlIHRvIGFSb290LlxuICovXG5mdW5jdGlvbiByZWxhdGl2ZShhUm9vdCwgYVBhdGgpIHtcbiAgaWYgKGFSb290ID09PSBcIlwiKSB7XG4gICAgYVJvb3QgPSBcIi5cIjtcbiAgfVxuXG4gIGFSb290ID0gYVJvb3QucmVwbGFjZSgvXFwvJC8sICcnKTtcblxuICAvLyBJdCBpcyBwb3NzaWJsZSBmb3IgdGhlIHBhdGggdG8gYmUgYWJvdmUgdGhlIHJvb3QuIEluIHRoaXMgY2FzZSwgc2ltcGx5XG4gIC8vIGNoZWNraW5nIHdoZXRoZXIgdGhlIHJvb3QgaXMgYSBwcmVmaXggb2YgdGhlIHBhdGggd29uJ3Qgd29yay4gSW5zdGVhZCwgd2VcbiAgLy8gbmVlZCB0byByZW1vdmUgY29tcG9uZW50cyBmcm9tIHRoZSByb290IG9uZSBieSBvbmUsIHVudGlsIGVpdGhlciB3ZSBmaW5kXG4gIC8vIGEgcHJlZml4IHRoYXQgZml0cywgb3Igd2UgcnVuIG91dCBvZiBjb21wb25lbnRzIHRvIHJlbW92ZS5cbiAgdmFyIGxldmVsID0gMDtcbiAgd2hpbGUgKGFQYXRoLmluZGV4T2YoYVJvb3QgKyAnLycpICE9PSAwKSB7XG4gICAgdmFyIGluZGV4ID0gYVJvb3QubGFzdEluZGV4T2YoXCIvXCIpO1xuICAgIGlmIChpbmRleCA8IDApIHtcbiAgICAgIHJldHVybiBhUGF0aDtcbiAgICB9XG5cbiAgICAvLyBJZiB0aGUgb25seSBwYXJ0IG9mIHRoZSByb290IHRoYXQgaXMgbGVmdCBpcyB0aGUgc2NoZW1lIChpLmUuIGh0dHA6Ly8sXG4gICAgLy8gZmlsZTovLy8sIGV0Yy4pLCBvbmUgb3IgbW9yZSBzbGFzaGVzICgvKSwgb3Igc2ltcGx5IG5vdGhpbmcgYXQgYWxsLCB3ZVxuICAgIC8vIGhhdmUgZXhoYXVzdGVkIGFsbCBjb21wb25lbnRzLCBzbyB0aGUgcGF0aCBpcyBub3QgcmVsYXRpdmUgdG8gdGhlIHJvb3QuXG4gICAgYVJvb3QgPSBhUm9vdC5zbGljZSgwLCBpbmRleCk7XG4gICAgaWYgKGFSb290Lm1hdGNoKC9eKFteXFwvXSs6XFwvKT9cXC8qJC8pKSB7XG4gICAgICByZXR1cm4gYVBhdGg7XG4gICAgfVxuXG4gICAgKytsZXZlbDtcbiAgfVxuXG4gIC8vIE1ha2Ugc3VyZSB3ZSBhZGQgYSBcIi4uL1wiIGZvciBlYWNoIGNvbXBvbmVudCB3ZSByZW1vdmVkIGZyb20gdGhlIHJvb3QuXG4gIHJldHVybiBBcnJheShsZXZlbCArIDEpLmpvaW4oXCIuLi9cIikgKyBhUGF0aC5zdWJzdHIoYVJvb3QubGVuZ3RoICsgMSk7XG59XG5leHBvcnRzLnJlbGF0aXZlID0gcmVsYXRpdmU7XG5cbnZhciBzdXBwb3J0c051bGxQcm90byA9IChmdW5jdGlvbiAoKSB7XG4gIHZhciBvYmogPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuICByZXR1cm4gISgnX19wcm90b19fJyBpbiBvYmopO1xufSgpKTtcblxuZnVuY3Rpb24gaWRlbnRpdHkgKHMpIHtcbiAgcmV0dXJuIHM7XG59XG5cbi8qKlxuICogQmVjYXVzZSBiZWhhdmlvciBnb2VzIHdhY2t5IHdoZW4geW91IHNldCBgX19wcm90b19fYCBvbiBvYmplY3RzLCB3ZVxuICogaGF2ZSB0byBwcmVmaXggYWxsIHRoZSBzdHJpbmdzIGluIG91ciBzZXQgd2l0aCBhbiBhcmJpdHJhcnkgY2hhcmFjdGVyLlxuICpcbiAqIFNlZSBodHRwczovL2dpdGh1Yi5jb20vbW96aWxsYS9zb3VyY2UtbWFwL3B1bGwvMzEgYW5kXG4gKiBodHRwczovL2dpdGh1Yi5jb20vbW96aWxsYS9zb3VyY2UtbWFwL2lzc3Vlcy8zMFxuICpcbiAqIEBwYXJhbSBTdHJpbmcgYVN0clxuICovXG5mdW5jdGlvbiB0b1NldFN0cmluZyhhU3RyKSB7XG4gIGlmIChpc1Byb3RvU3RyaW5nKGFTdHIpKSB7XG4gICAgcmV0dXJuICckJyArIGFTdHI7XG4gIH1cblxuICByZXR1cm4gYVN0cjtcbn1cbmV4cG9ydHMudG9TZXRTdHJpbmcgPSBzdXBwb3J0c051bGxQcm90byA/IGlkZW50aXR5IDogdG9TZXRTdHJpbmc7XG5cbmZ1bmN0aW9uIGZyb21TZXRTdHJpbmcoYVN0cikge1xuICBpZiAoaXNQcm90b1N0cmluZyhhU3RyKSkge1xuICAgIHJldHVybiBhU3RyLnNsaWNlKDEpO1xuICB9XG5cbiAgcmV0dXJuIGFTdHI7XG59XG5leHBvcnRzLmZyb21TZXRTdHJpbmcgPSBzdXBwb3J0c051bGxQcm90byA/IGlkZW50aXR5IDogZnJvbVNldFN0cmluZztcblxuZnVuY3Rpb24gaXNQcm90b1N0cmluZyhzKSB7XG4gIGlmICghcykge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHZhciBsZW5ndGggPSBzLmxlbmd0aDtcblxuICBpZiAobGVuZ3RoIDwgOSAvKiBcIl9fcHJvdG9fX1wiLmxlbmd0aCAqLykge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGlmIChzLmNoYXJDb2RlQXQobGVuZ3RoIC0gMSkgIT09IDk1ICAvKiAnXycgKi8gfHxcbiAgICAgIHMuY2hhckNvZGVBdChsZW5ndGggLSAyKSAhPT0gOTUgIC8qICdfJyAqLyB8fFxuICAgICAgcy5jaGFyQ29kZUF0KGxlbmd0aCAtIDMpICE9PSAxMTEgLyogJ28nICovIHx8XG4gICAgICBzLmNoYXJDb2RlQXQobGVuZ3RoIC0gNCkgIT09IDExNiAvKiAndCcgKi8gfHxcbiAgICAgIHMuY2hhckNvZGVBdChsZW5ndGggLSA1KSAhPT0gMTExIC8qICdvJyAqLyB8fFxuICAgICAgcy5jaGFyQ29kZUF0KGxlbmd0aCAtIDYpICE9PSAxMTQgLyogJ3InICovIHx8XG4gICAgICBzLmNoYXJDb2RlQXQobGVuZ3RoIC0gNykgIT09IDExMiAvKiAncCcgKi8gfHxcbiAgICAgIHMuY2hhckNvZGVBdChsZW5ndGggLSA4KSAhPT0gOTUgIC8qICdfJyAqLyB8fFxuICAgICAgcy5jaGFyQ29kZUF0KGxlbmd0aCAtIDkpICE9PSA5NSAgLyogJ18nICovKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgZm9yICh2YXIgaSA9IGxlbmd0aCAtIDEwOyBpID49IDA7IGktLSkge1xuICAgIGlmIChzLmNoYXJDb2RlQXQoaSkgIT09IDM2IC8qICckJyAqLykge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB0cnVlO1xufVxuXG4vKipcbiAqIENvbXBhcmF0b3IgYmV0d2VlbiB0d28gbWFwcGluZ3Mgd2hlcmUgdGhlIG9yaWdpbmFsIHBvc2l0aW9ucyBhcmUgY29tcGFyZWQuXG4gKlxuICogT3B0aW9uYWxseSBwYXNzIGluIGB0cnVlYCBhcyBgb25seUNvbXBhcmVHZW5lcmF0ZWRgIHRvIGNvbnNpZGVyIHR3b1xuICogbWFwcGluZ3Mgd2l0aCB0aGUgc2FtZSBvcmlnaW5hbCBzb3VyY2UvbGluZS9jb2x1bW4sIGJ1dCBkaWZmZXJlbnQgZ2VuZXJhdGVkXG4gKiBsaW5lIGFuZCBjb2x1bW4gdGhlIHNhbWUuIFVzZWZ1bCB3aGVuIHNlYXJjaGluZyBmb3IgYSBtYXBwaW5nIHdpdGggYVxuICogc3R1YmJlZCBvdXQgbWFwcGluZy5cbiAqL1xuZnVuY3Rpb24gY29tcGFyZUJ5T3JpZ2luYWxQb3NpdGlvbnMobWFwcGluZ0EsIG1hcHBpbmdCLCBvbmx5Q29tcGFyZU9yaWdpbmFsKSB7XG4gIHZhciBjbXAgPSBtYXBwaW5nQS5zb3VyY2UgLSBtYXBwaW5nQi5zb3VyY2U7XG4gIGlmIChjbXAgIT09IDApIHtcbiAgICByZXR1cm4gY21wO1xuICB9XG5cbiAgY21wID0gbWFwcGluZ0Eub3JpZ2luYWxMaW5lIC0gbWFwcGluZ0Iub3JpZ2luYWxMaW5lO1xuICBpZiAoY21wICE9PSAwKSB7XG4gICAgcmV0dXJuIGNtcDtcbiAgfVxuXG4gIGNtcCA9IG1hcHBpbmdBLm9yaWdpbmFsQ29sdW1uIC0gbWFwcGluZ0Iub3JpZ2luYWxDb2x1bW47XG4gIGlmIChjbXAgIT09IDAgfHwgb25seUNvbXBhcmVPcmlnaW5hbCkge1xuICAgIHJldHVybiBjbXA7XG4gIH1cblxuICBjbXAgPSBtYXBwaW5nQS5nZW5lcmF0ZWRDb2x1bW4gLSBtYXBwaW5nQi5nZW5lcmF0ZWRDb2x1bW47XG4gIGlmIChjbXAgIT09IDApIHtcbiAgICByZXR1cm4gY21wO1xuICB9XG5cbiAgY21wID0gbWFwcGluZ0EuZ2VuZXJhdGVkTGluZSAtIG1hcHBpbmdCLmdlbmVyYXRlZExpbmU7XG4gIGlmIChjbXAgIT09IDApIHtcbiAgICByZXR1cm4gY21wO1xuICB9XG5cbiAgcmV0dXJuIG1hcHBpbmdBLm5hbWUgLSBtYXBwaW5nQi5uYW1lO1xufVxuZXhwb3J0cy5jb21wYXJlQnlPcmlnaW5hbFBvc2l0aW9ucyA9IGNvbXBhcmVCeU9yaWdpbmFsUG9zaXRpb25zO1xuXG4vKipcbiAqIENvbXBhcmF0b3IgYmV0d2VlbiB0d28gbWFwcGluZ3Mgd2l0aCBkZWZsYXRlZCBzb3VyY2UgYW5kIG5hbWUgaW5kaWNlcyB3aGVyZVxuICogdGhlIGdlbmVyYXRlZCBwb3NpdGlvbnMgYXJlIGNvbXBhcmVkLlxuICpcbiAqIE9wdGlvbmFsbHkgcGFzcyBpbiBgdHJ1ZWAgYXMgYG9ubHlDb21wYXJlR2VuZXJhdGVkYCB0byBjb25zaWRlciB0d29cbiAqIG1hcHBpbmdzIHdpdGggdGhlIHNhbWUgZ2VuZXJhdGVkIGxpbmUgYW5kIGNvbHVtbiwgYnV0IGRpZmZlcmVudFxuICogc291cmNlL25hbWUvb3JpZ2luYWwgbGluZSBhbmQgY29sdW1uIHRoZSBzYW1lLiBVc2VmdWwgd2hlbiBzZWFyY2hpbmcgZm9yIGFcbiAqIG1hcHBpbmcgd2l0aCBhIHN0dWJiZWQgb3V0IG1hcHBpbmcuXG4gKi9cbmZ1bmN0aW9uIGNvbXBhcmVCeUdlbmVyYXRlZFBvc2l0aW9uc0RlZmxhdGVkKG1hcHBpbmdBLCBtYXBwaW5nQiwgb25seUNvbXBhcmVHZW5lcmF0ZWQpIHtcbiAgdmFyIGNtcCA9IG1hcHBpbmdBLmdlbmVyYXRlZExpbmUgLSBtYXBwaW5nQi5nZW5lcmF0ZWRMaW5lO1xuICBpZiAoY21wICE9PSAwKSB7XG4gICAgcmV0dXJuIGNtcDtcbiAgfVxuXG4gIGNtcCA9IG1hcHBpbmdBLmdlbmVyYXRlZENvbHVtbiAtIG1hcHBpbmdCLmdlbmVyYXRlZENvbHVtbjtcbiAgaWYgKGNtcCAhPT0gMCB8fCBvbmx5Q29tcGFyZUdlbmVyYXRlZCkge1xuICAgIHJldHVybiBjbXA7XG4gIH1cblxuICBjbXAgPSBtYXBwaW5nQS5zb3VyY2UgLSBtYXBwaW5nQi5zb3VyY2U7XG4gIGlmIChjbXAgIT09IDApIHtcbiAgICByZXR1cm4gY21wO1xuICB9XG5cbiAgY21wID0gbWFwcGluZ0Eub3JpZ2luYWxMaW5lIC0gbWFwcGluZ0Iub3JpZ2luYWxMaW5lO1xuICBpZiAoY21wICE9PSAwKSB7XG4gICAgcmV0dXJuIGNtcDtcbiAgfVxuXG4gIGNtcCA9IG1hcHBpbmdBLm9yaWdpbmFsQ29sdW1uIC0gbWFwcGluZ0Iub3JpZ2luYWxDb2x1bW47XG4gIGlmIChjbXAgIT09IDApIHtcbiAgICByZXR1cm4gY21wO1xuICB9XG5cbiAgcmV0dXJuIG1hcHBpbmdBLm5hbWUgLSBtYXBwaW5nQi5uYW1lO1xufVxuZXhwb3J0cy5jb21wYXJlQnlHZW5lcmF0ZWRQb3NpdGlvbnNEZWZsYXRlZCA9IGNvbXBhcmVCeUdlbmVyYXRlZFBvc2l0aW9uc0RlZmxhdGVkO1xuXG5mdW5jdGlvbiBzdHJjbXAoYVN0cjEsIGFTdHIyKSB7XG4gIGlmIChhU3RyMSA9PT0gYVN0cjIpIHtcbiAgICByZXR1cm4gMDtcbiAgfVxuXG4gIGlmIChhU3RyMSA+IGFTdHIyKSB7XG4gICAgcmV0dXJuIDE7XG4gIH1cblxuICByZXR1cm4gLTE7XG59XG5cbi8qKlxuICogQ29tcGFyYXRvciBiZXR3ZWVuIHR3byBtYXBwaW5ncyB3aXRoIGluZmxhdGVkIHNvdXJjZSBhbmQgbmFtZSBzdHJpbmdzIHdoZXJlXG4gKiB0aGUgZ2VuZXJhdGVkIHBvc2l0aW9ucyBhcmUgY29tcGFyZWQuXG4gKi9cbmZ1bmN0aW9uIGNvbXBhcmVCeUdlbmVyYXRlZFBvc2l0aW9uc0luZmxhdGVkKG1hcHBpbmdBLCBtYXBwaW5nQikge1xuICB2YXIgY21wID0gbWFwcGluZ0EuZ2VuZXJhdGVkTGluZSAtIG1hcHBpbmdCLmdlbmVyYXRlZExpbmU7XG4gIGlmIChjbXAgIT09IDApIHtcbiAgICByZXR1cm4gY21wO1xuICB9XG5cbiAgY21wID0gbWFwcGluZ0EuZ2VuZXJhdGVkQ29sdW1uIC0gbWFwcGluZ0IuZ2VuZXJhdGVkQ29sdW1uO1xuICBpZiAoY21wICE9PSAwKSB7XG4gICAgcmV0dXJuIGNtcDtcbiAgfVxuXG4gIGNtcCA9IHN0cmNtcChtYXBwaW5nQS5zb3VyY2UsIG1hcHBpbmdCLnNvdXJjZSk7XG4gIGlmIChjbXAgIT09IDApIHtcbiAgICByZXR1cm4gY21wO1xuICB9XG5cbiAgY21wID0gbWFwcGluZ0Eub3JpZ2luYWxMaW5lIC0gbWFwcGluZ0Iub3JpZ2luYWxMaW5lO1xuICBpZiAoY21wICE9PSAwKSB7XG4gICAgcmV0dXJuIGNtcDtcbiAgfVxuXG4gIGNtcCA9IG1hcHBpbmdBLm9yaWdpbmFsQ29sdW1uIC0gbWFwcGluZ0Iub3JpZ2luYWxDb2x1bW47XG4gIGlmIChjbXAgIT09IDApIHtcbiAgICByZXR1cm4gY21wO1xuICB9XG5cbiAgcmV0dXJuIHN0cmNtcChtYXBwaW5nQS5uYW1lLCBtYXBwaW5nQi5uYW1lKTtcbn1cbmV4cG9ydHMuY29tcGFyZUJ5R2VuZXJhdGVkUG9zaXRpb25zSW5mbGF0ZWQgPSBjb21wYXJlQnlHZW5lcmF0ZWRQb3NpdGlvbnNJbmZsYXRlZDtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbGliL3V0aWwuanNcbi8vIG1vZHVsZSBpZCA9IDRcbi8vIG1vZHVsZSBjaHVua3MgPSAwIiwiLyogLSotIE1vZGU6IGpzOyBqcy1pbmRlbnQtbGV2ZWw6IDI7IC0qLSAqL1xuLypcbiAqIENvcHlyaWdodCAyMDExIE1vemlsbGEgRm91bmRhdGlvbiBhbmQgY29udHJpYnV0b3JzXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgTmV3IEJTRCBsaWNlbnNlLiBTZWUgTElDRU5TRSBvcjpcbiAqIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9CU0QtMy1DbGF1c2VcbiAqL1xuXG52YXIgdXRpbCA9IHJlcXVpcmUoJy4vdXRpbCcpO1xudmFyIGhhcyA9IE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7XG52YXIgaGFzTmF0aXZlTWFwID0gdHlwZW9mIE1hcCAhPT0gXCJ1bmRlZmluZWRcIjtcblxuLyoqXG4gKiBBIGRhdGEgc3RydWN0dXJlIHdoaWNoIGlzIGEgY29tYmluYXRpb24gb2YgYW4gYXJyYXkgYW5kIGEgc2V0LiBBZGRpbmcgYSBuZXdcbiAqIG1lbWJlciBpcyBPKDEpLCB0ZXN0aW5nIGZvciBtZW1iZXJzaGlwIGlzIE8oMSksIGFuZCBmaW5kaW5nIHRoZSBpbmRleCBvZiBhblxuICogZWxlbWVudCBpcyBPKDEpLiBSZW1vdmluZyBlbGVtZW50cyBmcm9tIHRoZSBzZXQgaXMgbm90IHN1cHBvcnRlZC4gT25seVxuICogc3RyaW5ncyBhcmUgc3VwcG9ydGVkIGZvciBtZW1iZXJzaGlwLlxuICovXG5mdW5jdGlvbiBBcnJheVNldCgpIHtcbiAgdGhpcy5fYXJyYXkgPSBbXTtcbiAgdGhpcy5fc2V0ID0gaGFzTmF0aXZlTWFwID8gbmV3IE1hcCgpIDogT2JqZWN0LmNyZWF0ZShudWxsKTtcbn1cblxuLyoqXG4gKiBTdGF0aWMgbWV0aG9kIGZvciBjcmVhdGluZyBBcnJheVNldCBpbnN0YW5jZXMgZnJvbSBhbiBleGlzdGluZyBhcnJheS5cbiAqL1xuQXJyYXlTZXQuZnJvbUFycmF5ID0gZnVuY3Rpb24gQXJyYXlTZXRfZnJvbUFycmF5KGFBcnJheSwgYUFsbG93RHVwbGljYXRlcykge1xuICB2YXIgc2V0ID0gbmV3IEFycmF5U2V0KCk7XG4gIGZvciAodmFyIGkgPSAwLCBsZW4gPSBhQXJyYXkubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHtcbiAgICBzZXQuYWRkKGFBcnJheVtpXSwgYUFsbG93RHVwbGljYXRlcyk7XG4gIH1cbiAgcmV0dXJuIHNldDtcbn07XG5cbi8qKlxuICogUmV0dXJuIGhvdyBtYW55IHVuaXF1ZSBpdGVtcyBhcmUgaW4gdGhpcyBBcnJheVNldC4gSWYgZHVwbGljYXRlcyBoYXZlIGJlZW5cbiAqIGFkZGVkLCB0aGFuIHRob3NlIGRvIG5vdCBjb3VudCB0b3dhcmRzIHRoZSBzaXplLlxuICpcbiAqIEByZXR1cm5zIE51bWJlclxuICovXG5BcnJheVNldC5wcm90b3R5cGUuc2l6ZSA9IGZ1bmN0aW9uIEFycmF5U2V0X3NpemUoKSB7XG4gIHJldHVybiBoYXNOYXRpdmVNYXAgPyB0aGlzLl9zZXQuc2l6ZSA6IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHRoaXMuX3NldCkubGVuZ3RoO1xufTtcblxuLyoqXG4gKiBBZGQgdGhlIGdpdmVuIHN0cmluZyB0byB0aGlzIHNldC5cbiAqXG4gKiBAcGFyYW0gU3RyaW5nIGFTdHJcbiAqL1xuQXJyYXlTZXQucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uIEFycmF5U2V0X2FkZChhU3RyLCBhQWxsb3dEdXBsaWNhdGVzKSB7XG4gIHZhciBzU3RyID0gaGFzTmF0aXZlTWFwID8gYVN0ciA6IHV0aWwudG9TZXRTdHJpbmcoYVN0cik7XG4gIHZhciBpc0R1cGxpY2F0ZSA9IGhhc05hdGl2ZU1hcCA/IHRoaXMuaGFzKGFTdHIpIDogaGFzLmNhbGwodGhpcy5fc2V0LCBzU3RyKTtcbiAgdmFyIGlkeCA9IHRoaXMuX2FycmF5Lmxlbmd0aDtcbiAgaWYgKCFpc0R1cGxpY2F0ZSB8fCBhQWxsb3dEdXBsaWNhdGVzKSB7XG4gICAgdGhpcy5fYXJyYXkucHVzaChhU3RyKTtcbiAgfVxuICBpZiAoIWlzRHVwbGljYXRlKSB7XG4gICAgaWYgKGhhc05hdGl2ZU1hcCkge1xuICAgICAgdGhpcy5fc2V0LnNldChhU3RyLCBpZHgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9zZXRbc1N0cl0gPSBpZHg7XG4gICAgfVxuICB9XG59O1xuXG4vKipcbiAqIElzIHRoZSBnaXZlbiBzdHJpbmcgYSBtZW1iZXIgb2YgdGhpcyBzZXQ/XG4gKlxuICogQHBhcmFtIFN0cmluZyBhU3RyXG4gKi9cbkFycmF5U2V0LnByb3RvdHlwZS5oYXMgPSBmdW5jdGlvbiBBcnJheVNldF9oYXMoYVN0cikge1xuICBpZiAoaGFzTmF0aXZlTWFwKSB7XG4gICAgcmV0dXJuIHRoaXMuX3NldC5oYXMoYVN0cik7XG4gIH0gZWxzZSB7XG4gICAgdmFyIHNTdHIgPSB1dGlsLnRvU2V0U3RyaW5nKGFTdHIpO1xuICAgIHJldHVybiBoYXMuY2FsbCh0aGlzLl9zZXQsIHNTdHIpO1xuICB9XG59O1xuXG4vKipcbiAqIFdoYXQgaXMgdGhlIGluZGV4IG9mIHRoZSBnaXZlbiBzdHJpbmcgaW4gdGhlIGFycmF5P1xuICpcbiAqIEBwYXJhbSBTdHJpbmcgYVN0clxuICovXG5BcnJheVNldC5wcm90b3R5cGUuaW5kZXhPZiA9IGZ1bmN0aW9uIEFycmF5U2V0X2luZGV4T2YoYVN0cikge1xuICBpZiAoaGFzTmF0aXZlTWFwKSB7XG4gICAgdmFyIGlkeCA9IHRoaXMuX3NldC5nZXQoYVN0cik7XG4gICAgaWYgKGlkeCA+PSAwKSB7XG4gICAgICAgIHJldHVybiBpZHg7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIHZhciBzU3RyID0gdXRpbC50b1NldFN0cmluZyhhU3RyKTtcbiAgICBpZiAoaGFzLmNhbGwodGhpcy5fc2V0LCBzU3RyKSkge1xuICAgICAgcmV0dXJuIHRoaXMuX3NldFtzU3RyXTtcbiAgICB9XG4gIH1cblxuICB0aHJvdyBuZXcgRXJyb3IoJ1wiJyArIGFTdHIgKyAnXCIgaXMgbm90IGluIHRoZSBzZXQuJyk7XG59O1xuXG4vKipcbiAqIFdoYXQgaXMgdGhlIGVsZW1lbnQgYXQgdGhlIGdpdmVuIGluZGV4P1xuICpcbiAqIEBwYXJhbSBOdW1iZXIgYUlkeFxuICovXG5BcnJheVNldC5wcm90b3R5cGUuYXQgPSBmdW5jdGlvbiBBcnJheVNldF9hdChhSWR4KSB7XG4gIGlmIChhSWR4ID49IDAgJiYgYUlkeCA8IHRoaXMuX2FycmF5Lmxlbmd0aCkge1xuICAgIHJldHVybiB0aGlzLl9hcnJheVthSWR4XTtcbiAgfVxuICB0aHJvdyBuZXcgRXJyb3IoJ05vIGVsZW1lbnQgaW5kZXhlZCBieSAnICsgYUlkeCk7XG59O1xuXG4vKipcbiAqIFJldHVybnMgdGhlIGFycmF5IHJlcHJlc2VudGF0aW9uIG9mIHRoaXMgc2V0ICh3aGljaCBoYXMgdGhlIHByb3BlciBpbmRpY2VzXG4gKiBpbmRpY2F0ZWQgYnkgaW5kZXhPZikuIE5vdGUgdGhhdCB0aGlzIGlzIGEgY29weSBvZiB0aGUgaW50ZXJuYWwgYXJyYXkgdXNlZFxuICogZm9yIHN0b3JpbmcgdGhlIG1lbWJlcnMgc28gdGhhdCBubyBvbmUgY2FuIG1lc3Mgd2l0aCBpbnRlcm5hbCBzdGF0ZS5cbiAqL1xuQXJyYXlTZXQucHJvdG90eXBlLnRvQXJyYXkgPSBmdW5jdGlvbiBBcnJheVNldF90b0FycmF5KCkge1xuICByZXR1cm4gdGhpcy5fYXJyYXkuc2xpY2UoKTtcbn07XG5cbmV4cG9ydHMuQXJyYXlTZXQgPSBBcnJheVNldDtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbGliL2FycmF5LXNldC5qc1xuLy8gbW9kdWxlIGlkID0gNVxuLy8gbW9kdWxlIGNodW5rcyA9IDAiLCIvKiAtKi0gTW9kZToganM7IGpzLWluZGVudC1sZXZlbDogMjsgLSotICovXG4vKlxuICogQ29weXJpZ2h0IDIwMTQgTW96aWxsYSBGb3VuZGF0aW9uIGFuZCBjb250cmlidXRvcnNcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBOZXcgQlNEIGxpY2Vuc2UuIFNlZSBMSUNFTlNFIG9yOlxuICogaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL0JTRC0zLUNsYXVzZVxuICovXG5cbnZhciB1dGlsID0gcmVxdWlyZSgnLi91dGlsJyk7XG5cbi8qKlxuICogRGV0ZXJtaW5lIHdoZXRoZXIgbWFwcGluZ0IgaXMgYWZ0ZXIgbWFwcGluZ0Egd2l0aCByZXNwZWN0IHRvIGdlbmVyYXRlZFxuICogcG9zaXRpb24uXG4gKi9cbmZ1bmN0aW9uIGdlbmVyYXRlZFBvc2l0aW9uQWZ0ZXIobWFwcGluZ0EsIG1hcHBpbmdCKSB7XG4gIC8vIE9wdGltaXplZCBmb3IgbW9zdCBjb21tb24gY2FzZVxuICB2YXIgbGluZUEgPSBtYXBwaW5nQS5nZW5lcmF0ZWRMaW5lO1xuICB2YXIgbGluZUIgPSBtYXBwaW5nQi5nZW5lcmF0ZWRMaW5lO1xuICB2YXIgY29sdW1uQSA9IG1hcHBpbmdBLmdlbmVyYXRlZENvbHVtbjtcbiAgdmFyIGNvbHVtbkIgPSBtYXBwaW5nQi5nZW5lcmF0ZWRDb2x1bW47XG4gIHJldHVybiBsaW5lQiA+IGxpbmVBIHx8IGxpbmVCID09IGxpbmVBICYmIGNvbHVtbkIgPj0gY29sdW1uQSB8fFxuICAgICAgICAgdXRpbC5jb21wYXJlQnlHZW5lcmF0ZWRQb3NpdGlvbnNJbmZsYXRlZChtYXBwaW5nQSwgbWFwcGluZ0IpIDw9IDA7XG59XG5cbi8qKlxuICogQSBkYXRhIHN0cnVjdHVyZSB0byBwcm92aWRlIGEgc29ydGVkIHZpZXcgb2YgYWNjdW11bGF0ZWQgbWFwcGluZ3MgaW4gYVxuICogcGVyZm9ybWFuY2UgY29uc2Npb3VzIG1hbm5lci4gSXQgdHJhZGVzIGEgbmVnbGliYWJsZSBvdmVyaGVhZCBpbiBnZW5lcmFsXG4gKiBjYXNlIGZvciBhIGxhcmdlIHNwZWVkdXAgaW4gY2FzZSBvZiBtYXBwaW5ncyBiZWluZyBhZGRlZCBpbiBvcmRlci5cbiAqL1xuZnVuY3Rpb24gTWFwcGluZ0xpc3QoKSB7XG4gIHRoaXMuX2FycmF5ID0gW107XG4gIHRoaXMuX3NvcnRlZCA9IHRydWU7XG4gIC8vIFNlcnZlcyBhcyBpbmZpbXVtXG4gIHRoaXMuX2xhc3QgPSB7Z2VuZXJhdGVkTGluZTogLTEsIGdlbmVyYXRlZENvbHVtbjogMH07XG59XG5cbi8qKlxuICogSXRlcmF0ZSB0aHJvdWdoIGludGVybmFsIGl0ZW1zLiBUaGlzIG1ldGhvZCB0YWtlcyB0aGUgc2FtZSBhcmd1bWVudHMgdGhhdFxuICogYEFycmF5LnByb3RvdHlwZS5mb3JFYWNoYCB0YWtlcy5cbiAqXG4gKiBOT1RFOiBUaGUgb3JkZXIgb2YgdGhlIG1hcHBpbmdzIGlzIE5PVCBndWFyYW50ZWVkLlxuICovXG5NYXBwaW5nTGlzdC5wcm90b3R5cGUudW5zb3J0ZWRGb3JFYWNoID1cbiAgZnVuY3Rpb24gTWFwcGluZ0xpc3RfZm9yRWFjaChhQ2FsbGJhY2ssIGFUaGlzQXJnKSB7XG4gICAgdGhpcy5fYXJyYXkuZm9yRWFjaChhQ2FsbGJhY2ssIGFUaGlzQXJnKTtcbiAgfTtcblxuLyoqXG4gKiBBZGQgdGhlIGdpdmVuIHNvdXJjZSBtYXBwaW5nLlxuICpcbiAqIEBwYXJhbSBPYmplY3QgYU1hcHBpbmdcbiAqL1xuTWFwcGluZ0xpc3QucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uIE1hcHBpbmdMaXN0X2FkZChhTWFwcGluZykge1xuICBpZiAoZ2VuZXJhdGVkUG9zaXRpb25BZnRlcih0aGlzLl9sYXN0LCBhTWFwcGluZykpIHtcbiAgICB0aGlzLl9sYXN0ID0gYU1hcHBpbmc7XG4gICAgdGhpcy5fYXJyYXkucHVzaChhTWFwcGluZyk7XG4gIH0gZWxzZSB7XG4gICAgdGhpcy5fc29ydGVkID0gZmFsc2U7XG4gICAgdGhpcy5fYXJyYXkucHVzaChhTWFwcGluZyk7XG4gIH1cbn07XG5cbi8qKlxuICogUmV0dXJucyB0aGUgZmxhdCwgc29ydGVkIGFycmF5IG9mIG1hcHBpbmdzLiBUaGUgbWFwcGluZ3MgYXJlIHNvcnRlZCBieVxuICogZ2VuZXJhdGVkIHBvc2l0aW9uLlxuICpcbiAqIFdBUk5JTkc6IFRoaXMgbWV0aG9kIHJldHVybnMgaW50ZXJuYWwgZGF0YSB3aXRob3V0IGNvcHlpbmcsIGZvclxuICogcGVyZm9ybWFuY2UuIFRoZSByZXR1cm4gdmFsdWUgbXVzdCBOT1QgYmUgbXV0YXRlZCwgYW5kIHNob3VsZCBiZSB0cmVhdGVkIGFzXG4gKiBhbiBpbW11dGFibGUgYm9ycm93LiBJZiB5b3Ugd2FudCB0byB0YWtlIG93bmVyc2hpcCwgeW91IG11c3QgbWFrZSB5b3VyIG93blxuICogY29weS5cbiAqL1xuTWFwcGluZ0xpc3QucHJvdG90eXBlLnRvQXJyYXkgPSBmdW5jdGlvbiBNYXBwaW5nTGlzdF90b0FycmF5KCkge1xuICBpZiAoIXRoaXMuX3NvcnRlZCkge1xuICAgIHRoaXMuX2FycmF5LnNvcnQodXRpbC5jb21wYXJlQnlHZW5lcmF0ZWRQb3NpdGlvbnNJbmZsYXRlZCk7XG4gICAgdGhpcy5fc29ydGVkID0gdHJ1ZTtcbiAgfVxuICByZXR1cm4gdGhpcy5fYXJyYXk7XG59O1xuXG5leHBvcnRzLk1hcHBpbmdMaXN0ID0gTWFwcGluZ0xpc3Q7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL2xpYi9tYXBwaW5nLWxpc3QuanNcbi8vIG1vZHVsZSBpZCA9IDZcbi8vIG1vZHVsZSBjaHVua3MgPSAwIiwiLyogLSotIE1vZGU6IGpzOyBqcy1pbmRlbnQtbGV2ZWw6IDI7IC0qLSAqL1xuLypcbiAqIENvcHlyaWdodCAyMDExIE1vemlsbGEgRm91bmRhdGlvbiBhbmQgY29udHJpYnV0b3JzXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgTmV3IEJTRCBsaWNlbnNlLiBTZWUgTElDRU5TRSBvcjpcbiAqIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9CU0QtMy1DbGF1c2VcbiAqL1xuXG52YXIgdXRpbCA9IHJlcXVpcmUoJy4vdXRpbCcpO1xudmFyIGJpbmFyeVNlYXJjaCA9IHJlcXVpcmUoJy4vYmluYXJ5LXNlYXJjaCcpO1xudmFyIEFycmF5U2V0ID0gcmVxdWlyZSgnLi9hcnJheS1zZXQnKS5BcnJheVNldDtcbnZhciBiYXNlNjRWTFEgPSByZXF1aXJlKCcuL2Jhc2U2NC12bHEnKTtcbnZhciBxdWlja1NvcnQgPSByZXF1aXJlKCcuL3F1aWNrLXNvcnQnKS5xdWlja1NvcnQ7XG5cbmZ1bmN0aW9uIFNvdXJjZU1hcENvbnN1bWVyKGFTb3VyY2VNYXApIHtcbiAgdmFyIHNvdXJjZU1hcCA9IGFTb3VyY2VNYXA7XG4gIGlmICh0eXBlb2YgYVNvdXJjZU1hcCA9PT0gJ3N0cmluZycpIHtcbiAgICBzb3VyY2VNYXAgPSBKU09OLnBhcnNlKGFTb3VyY2VNYXAucmVwbGFjZSgvXlxcKVxcXVxcfScvLCAnJykpO1xuICB9XG5cbiAgcmV0dXJuIHNvdXJjZU1hcC5zZWN0aW9ucyAhPSBudWxsXG4gICAgPyBuZXcgSW5kZXhlZFNvdXJjZU1hcENvbnN1bWVyKHNvdXJjZU1hcClcbiAgICA6IG5ldyBCYXNpY1NvdXJjZU1hcENvbnN1bWVyKHNvdXJjZU1hcCk7XG59XG5cblNvdXJjZU1hcENvbnN1bWVyLmZyb21Tb3VyY2VNYXAgPSBmdW5jdGlvbihhU291cmNlTWFwKSB7XG4gIHJldHVybiBCYXNpY1NvdXJjZU1hcENvbnN1bWVyLmZyb21Tb3VyY2VNYXAoYVNvdXJjZU1hcCk7XG59XG5cbi8qKlxuICogVGhlIHZlcnNpb24gb2YgdGhlIHNvdXJjZSBtYXBwaW5nIHNwZWMgdGhhdCB3ZSBhcmUgY29uc3VtaW5nLlxuICovXG5Tb3VyY2VNYXBDb25zdW1lci5wcm90b3R5cGUuX3ZlcnNpb24gPSAzO1xuXG4vLyBgX19nZW5lcmF0ZWRNYXBwaW5nc2AgYW5kIGBfX29yaWdpbmFsTWFwcGluZ3NgIGFyZSBhcnJheXMgdGhhdCBob2xkIHRoZVxuLy8gcGFyc2VkIG1hcHBpbmcgY29vcmRpbmF0ZXMgZnJvbSB0aGUgc291cmNlIG1hcCdzIFwibWFwcGluZ3NcIiBhdHRyaWJ1dGUuIFRoZXlcbi8vIGFyZSBsYXppbHkgaW5zdGFudGlhdGVkLCBhY2Nlc3NlZCB2aWEgdGhlIGBfZ2VuZXJhdGVkTWFwcGluZ3NgIGFuZFxuLy8gYF9vcmlnaW5hbE1hcHBpbmdzYCBnZXR0ZXJzIHJlc3BlY3RpdmVseSwgYW5kIHdlIG9ubHkgcGFyc2UgdGhlIG1hcHBpbmdzXG4vLyBhbmQgY3JlYXRlIHRoZXNlIGFycmF5cyBvbmNlIHF1ZXJpZWQgZm9yIGEgc291cmNlIGxvY2F0aW9uLiBXZSBqdW1wIHRocm91Z2hcbi8vIHRoZXNlIGhvb3BzIGJlY2F1c2UgdGhlcmUgY2FuIGJlIG1hbnkgdGhvdXNhbmRzIG9mIG1hcHBpbmdzLCBhbmQgcGFyc2luZ1xuLy8gdGhlbSBpcyBleHBlbnNpdmUsIHNvIHdlIG9ubHkgd2FudCB0byBkbyBpdCBpZiB3ZSBtdXN0LlxuLy9cbi8vIEVhY2ggb2JqZWN0IGluIHRoZSBhcnJheXMgaXMgb2YgdGhlIGZvcm06XG4vL1xuLy8gICAgIHtcbi8vICAgICAgIGdlbmVyYXRlZExpbmU6IFRoZSBsaW5lIG51bWJlciBpbiB0aGUgZ2VuZXJhdGVkIGNvZGUsXG4vLyAgICAgICBnZW5lcmF0ZWRDb2x1bW46IFRoZSBjb2x1bW4gbnVtYmVyIGluIHRoZSBnZW5lcmF0ZWQgY29kZSxcbi8vICAgICAgIHNvdXJjZTogVGhlIHBhdGggdG8gdGhlIG9yaWdpbmFsIHNvdXJjZSBmaWxlIHRoYXQgZ2VuZXJhdGVkIHRoaXNcbi8vICAgICAgICAgICAgICAgY2h1bmsgb2YgY29kZSxcbi8vICAgICAgIG9yaWdpbmFsTGluZTogVGhlIGxpbmUgbnVtYmVyIGluIHRoZSBvcmlnaW5hbCBzb3VyY2UgdGhhdFxuLy8gICAgICAgICAgICAgICAgICAgICBjb3JyZXNwb25kcyB0byB0aGlzIGNodW5rIG9mIGdlbmVyYXRlZCBjb2RlLFxuLy8gICAgICAgb3JpZ2luYWxDb2x1bW46IFRoZSBjb2x1bW4gbnVtYmVyIGluIHRoZSBvcmlnaW5hbCBzb3VyY2UgdGhhdFxuLy8gICAgICAgICAgICAgICAgICAgICAgIGNvcnJlc3BvbmRzIHRvIHRoaXMgY2h1bmsgb2YgZ2VuZXJhdGVkIGNvZGUsXG4vLyAgICAgICBuYW1lOiBUaGUgbmFtZSBvZiB0aGUgb3JpZ2luYWwgc3ltYm9sIHdoaWNoIGdlbmVyYXRlZCB0aGlzIGNodW5rIG9mXG4vLyAgICAgICAgICAgICBjb2RlLlxuLy8gICAgIH1cbi8vXG4vLyBBbGwgcHJvcGVydGllcyBleGNlcHQgZm9yIGBnZW5lcmF0ZWRMaW5lYCBhbmQgYGdlbmVyYXRlZENvbHVtbmAgY2FuIGJlXG4vLyBgbnVsbGAuXG4vL1xuLy8gYF9nZW5lcmF0ZWRNYXBwaW5nc2AgaXMgb3JkZXJlZCBieSB0aGUgZ2VuZXJhdGVkIHBvc2l0aW9ucy5cbi8vXG4vLyBgX29yaWdpbmFsTWFwcGluZ3NgIGlzIG9yZGVyZWQgYnkgdGhlIG9yaWdpbmFsIHBvc2l0aW9ucy5cblxuU291cmNlTWFwQ29uc3VtZXIucHJvdG90eXBlLl9fZ2VuZXJhdGVkTWFwcGluZ3MgPSBudWxsO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KFNvdXJjZU1hcENvbnN1bWVyLnByb3RvdHlwZSwgJ19nZW5lcmF0ZWRNYXBwaW5ncycsIHtcbiAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgaWYgKCF0aGlzLl9fZ2VuZXJhdGVkTWFwcGluZ3MpIHtcbiAgICAgIHRoaXMuX3BhcnNlTWFwcGluZ3ModGhpcy5fbWFwcGluZ3MsIHRoaXMuc291cmNlUm9vdCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuX19nZW5lcmF0ZWRNYXBwaW5ncztcbiAgfVxufSk7XG5cblNvdXJjZU1hcENvbnN1bWVyLnByb3RvdHlwZS5fX29yaWdpbmFsTWFwcGluZ3MgPSBudWxsO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KFNvdXJjZU1hcENvbnN1bWVyLnByb3RvdHlwZSwgJ19vcmlnaW5hbE1hcHBpbmdzJywge1xuICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICBpZiAoIXRoaXMuX19vcmlnaW5hbE1hcHBpbmdzKSB7XG4gICAgICB0aGlzLl9wYXJzZU1hcHBpbmdzKHRoaXMuX21hcHBpbmdzLCB0aGlzLnNvdXJjZVJvb3QpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLl9fb3JpZ2luYWxNYXBwaW5ncztcbiAgfVxufSk7XG5cblNvdXJjZU1hcENvbnN1bWVyLnByb3RvdHlwZS5fY2hhcklzTWFwcGluZ1NlcGFyYXRvciA9XG4gIGZ1bmN0aW9uIFNvdXJjZU1hcENvbnN1bWVyX2NoYXJJc01hcHBpbmdTZXBhcmF0b3IoYVN0ciwgaW5kZXgpIHtcbiAgICB2YXIgYyA9IGFTdHIuY2hhckF0KGluZGV4KTtcbiAgICByZXR1cm4gYyA9PT0gXCI7XCIgfHwgYyA9PT0gXCIsXCI7XG4gIH07XG5cbi8qKlxuICogUGFyc2UgdGhlIG1hcHBpbmdzIGluIGEgc3RyaW5nIGluIHRvIGEgZGF0YSBzdHJ1Y3R1cmUgd2hpY2ggd2UgY2FuIGVhc2lseVxuICogcXVlcnkgKHRoZSBvcmRlcmVkIGFycmF5cyBpbiB0aGUgYHRoaXMuX19nZW5lcmF0ZWRNYXBwaW5nc2AgYW5kXG4gKiBgdGhpcy5fX29yaWdpbmFsTWFwcGluZ3NgIHByb3BlcnRpZXMpLlxuICovXG5Tb3VyY2VNYXBDb25zdW1lci5wcm90b3R5cGUuX3BhcnNlTWFwcGluZ3MgPVxuICBmdW5jdGlvbiBTb3VyY2VNYXBDb25zdW1lcl9wYXJzZU1hcHBpbmdzKGFTdHIsIGFTb3VyY2VSb290KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFwiU3ViY2xhc3NlcyBtdXN0IGltcGxlbWVudCBfcGFyc2VNYXBwaW5nc1wiKTtcbiAgfTtcblxuU291cmNlTWFwQ29uc3VtZXIuR0VORVJBVEVEX09SREVSID0gMTtcblNvdXJjZU1hcENvbnN1bWVyLk9SSUdJTkFMX09SREVSID0gMjtcblxuU291cmNlTWFwQ29uc3VtZXIuR1JFQVRFU1RfTE9XRVJfQk9VTkQgPSAxO1xuU291cmNlTWFwQ29uc3VtZXIuTEVBU1RfVVBQRVJfQk9VTkQgPSAyO1xuXG4vKipcbiAqIEl0ZXJhdGUgb3ZlciBlYWNoIG1hcHBpbmcgYmV0d2VlbiBhbiBvcmlnaW5hbCBzb3VyY2UvbGluZS9jb2x1bW4gYW5kIGFcbiAqIGdlbmVyYXRlZCBsaW5lL2NvbHVtbiBpbiB0aGlzIHNvdXJjZSBtYXAuXG4gKlxuICogQHBhcmFtIEZ1bmN0aW9uIGFDYWxsYmFja1xuICogICAgICAgIFRoZSBmdW5jdGlvbiB0aGF0IGlzIGNhbGxlZCB3aXRoIGVhY2ggbWFwcGluZy5cbiAqIEBwYXJhbSBPYmplY3QgYUNvbnRleHRcbiAqICAgICAgICBPcHRpb25hbC4gSWYgc3BlY2lmaWVkLCB0aGlzIG9iamVjdCB3aWxsIGJlIHRoZSB2YWx1ZSBvZiBgdGhpc2AgZXZlcnlcbiAqICAgICAgICB0aW1lIHRoYXQgYGFDYWxsYmFja2AgaXMgY2FsbGVkLlxuICogQHBhcmFtIGFPcmRlclxuICogICAgICAgIEVpdGhlciBgU291cmNlTWFwQ29uc3VtZXIuR0VORVJBVEVEX09SREVSYCBvclxuICogICAgICAgIGBTb3VyY2VNYXBDb25zdW1lci5PUklHSU5BTF9PUkRFUmAuIFNwZWNpZmllcyB3aGV0aGVyIHlvdSB3YW50IHRvXG4gKiAgICAgICAgaXRlcmF0ZSBvdmVyIHRoZSBtYXBwaW5ncyBzb3J0ZWQgYnkgdGhlIGdlbmVyYXRlZCBmaWxlJ3MgbGluZS9jb2x1bW5cbiAqICAgICAgICBvcmRlciBvciB0aGUgb3JpZ2luYWwncyBzb3VyY2UvbGluZS9jb2x1bW4gb3JkZXIsIHJlc3BlY3RpdmVseS4gRGVmYXVsdHMgdG9cbiAqICAgICAgICBgU291cmNlTWFwQ29uc3VtZXIuR0VORVJBVEVEX09SREVSYC5cbiAqL1xuU291cmNlTWFwQ29uc3VtZXIucHJvdG90eXBlLmVhY2hNYXBwaW5nID1cbiAgZnVuY3Rpb24gU291cmNlTWFwQ29uc3VtZXJfZWFjaE1hcHBpbmcoYUNhbGxiYWNrLCBhQ29udGV4dCwgYU9yZGVyKSB7XG4gICAgdmFyIGNvbnRleHQgPSBhQ29udGV4dCB8fCBudWxsO1xuICAgIHZhciBvcmRlciA9IGFPcmRlciB8fCBTb3VyY2VNYXBDb25zdW1lci5HRU5FUkFURURfT1JERVI7XG5cbiAgICB2YXIgbWFwcGluZ3M7XG4gICAgc3dpdGNoIChvcmRlcikge1xuICAgIGNhc2UgU291cmNlTWFwQ29uc3VtZXIuR0VORVJBVEVEX09SREVSOlxuICAgICAgbWFwcGluZ3MgPSB0aGlzLl9nZW5lcmF0ZWRNYXBwaW5ncztcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgU291cmNlTWFwQ29uc3VtZXIuT1JJR0lOQUxfT1JERVI6XG4gICAgICBtYXBwaW5ncyA9IHRoaXMuX29yaWdpbmFsTWFwcGluZ3M7XG4gICAgICBicmVhaztcbiAgICBkZWZhdWx0OlxuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiVW5rbm93biBvcmRlciBvZiBpdGVyYXRpb24uXCIpO1xuICAgIH1cblxuICAgIHZhciBzb3VyY2VSb290ID0gdGhpcy5zb3VyY2VSb290O1xuICAgIG1hcHBpbmdzLm1hcChmdW5jdGlvbiAobWFwcGluZykge1xuICAgICAgdmFyIHNvdXJjZSA9IG1hcHBpbmcuc291cmNlID09PSBudWxsID8gbnVsbCA6IHRoaXMuX3NvdXJjZXMuYXQobWFwcGluZy5zb3VyY2UpO1xuICAgICAgaWYgKHNvdXJjZSAhPSBudWxsICYmIHNvdXJjZVJvb3QgIT0gbnVsbCkge1xuICAgICAgICBzb3VyY2UgPSB1dGlsLmpvaW4oc291cmNlUm9vdCwgc291cmNlKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB7XG4gICAgICAgIHNvdXJjZTogc291cmNlLFxuICAgICAgICBnZW5lcmF0ZWRMaW5lOiBtYXBwaW5nLmdlbmVyYXRlZExpbmUsXG4gICAgICAgIGdlbmVyYXRlZENvbHVtbjogbWFwcGluZy5nZW5lcmF0ZWRDb2x1bW4sXG4gICAgICAgIG9yaWdpbmFsTGluZTogbWFwcGluZy5vcmlnaW5hbExpbmUsXG4gICAgICAgIG9yaWdpbmFsQ29sdW1uOiBtYXBwaW5nLm9yaWdpbmFsQ29sdW1uLFxuICAgICAgICBuYW1lOiBtYXBwaW5nLm5hbWUgPT09IG51bGwgPyBudWxsIDogdGhpcy5fbmFtZXMuYXQobWFwcGluZy5uYW1lKVxuICAgICAgfTtcbiAgICB9LCB0aGlzKS5mb3JFYWNoKGFDYWxsYmFjaywgY29udGV4dCk7XG4gIH07XG5cbi8qKlxuICogUmV0dXJucyBhbGwgZ2VuZXJhdGVkIGxpbmUgYW5kIGNvbHVtbiBpbmZvcm1hdGlvbiBmb3IgdGhlIG9yaWdpbmFsIHNvdXJjZSxcbiAqIGxpbmUsIGFuZCBjb2x1bW4gcHJvdmlkZWQuIElmIG5vIGNvbHVtbiBpcyBwcm92aWRlZCwgcmV0dXJucyBhbGwgbWFwcGluZ3NcbiAqIGNvcnJlc3BvbmRpbmcgdG8gYSBlaXRoZXIgdGhlIGxpbmUgd2UgYXJlIHNlYXJjaGluZyBmb3Igb3IgdGhlIG5leHRcbiAqIGNsb3Nlc3QgbGluZSB0aGF0IGhhcyBhbnkgbWFwcGluZ3MuIE90aGVyd2lzZSwgcmV0dXJucyBhbGwgbWFwcGluZ3NcbiAqIGNvcnJlc3BvbmRpbmcgdG8gdGhlIGdpdmVuIGxpbmUgYW5kIGVpdGhlciB0aGUgY29sdW1uIHdlIGFyZSBzZWFyY2hpbmcgZm9yXG4gKiBvciB0aGUgbmV4dCBjbG9zZXN0IGNvbHVtbiB0aGF0IGhhcyBhbnkgb2Zmc2V0cy5cbiAqXG4gKiBUaGUgb25seSBhcmd1bWVudCBpcyBhbiBvYmplY3Qgd2l0aCB0aGUgZm9sbG93aW5nIHByb3BlcnRpZXM6XG4gKlxuICogICAtIHNvdXJjZTogVGhlIGZpbGVuYW1lIG9mIHRoZSBvcmlnaW5hbCBzb3VyY2UuXG4gKiAgIC0gbGluZTogVGhlIGxpbmUgbnVtYmVyIGluIHRoZSBvcmlnaW5hbCBzb3VyY2UuXG4gKiAgIC0gY29sdW1uOiBPcHRpb25hbC4gdGhlIGNvbHVtbiBudW1iZXIgaW4gdGhlIG9yaWdpbmFsIHNvdXJjZS5cbiAqXG4gKiBhbmQgYW4gYXJyYXkgb2Ygb2JqZWN0cyBpcyByZXR1cm5lZCwgZWFjaCB3aXRoIHRoZSBmb2xsb3dpbmcgcHJvcGVydGllczpcbiAqXG4gKiAgIC0gbGluZTogVGhlIGxpbmUgbnVtYmVyIGluIHRoZSBnZW5lcmF0ZWQgc291cmNlLCBvciBudWxsLlxuICogICAtIGNvbHVtbjogVGhlIGNvbHVtbiBudW1iZXIgaW4gdGhlIGdlbmVyYXRlZCBzb3VyY2UsIG9yIG51bGwuXG4gKi9cblNvdXJjZU1hcENvbnN1bWVyLnByb3RvdHlwZS5hbGxHZW5lcmF0ZWRQb3NpdGlvbnNGb3IgPVxuICBmdW5jdGlvbiBTb3VyY2VNYXBDb25zdW1lcl9hbGxHZW5lcmF0ZWRQb3NpdGlvbnNGb3IoYUFyZ3MpIHtcbiAgICB2YXIgbGluZSA9IHV0aWwuZ2V0QXJnKGFBcmdzLCAnbGluZScpO1xuXG4gICAgLy8gV2hlbiB0aGVyZSBpcyBubyBleGFjdCBtYXRjaCwgQmFzaWNTb3VyY2VNYXBDb25zdW1lci5wcm90b3R5cGUuX2ZpbmRNYXBwaW5nXG4gICAgLy8gcmV0dXJucyB0aGUgaW5kZXggb2YgdGhlIGNsb3Nlc3QgbWFwcGluZyBsZXNzIHRoYW4gdGhlIG5lZWRsZS4gQnlcbiAgICAvLyBzZXR0aW5nIG5lZWRsZS5vcmlnaW5hbENvbHVtbiB0byAwLCB3ZSB0aHVzIGZpbmQgdGhlIGxhc3QgbWFwcGluZyBmb3JcbiAgICAvLyB0aGUgZ2l2ZW4gbGluZSwgcHJvdmlkZWQgc3VjaCBhIG1hcHBpbmcgZXhpc3RzLlxuICAgIHZhciBuZWVkbGUgPSB7XG4gICAgICBzb3VyY2U6IHV0aWwuZ2V0QXJnKGFBcmdzLCAnc291cmNlJyksXG4gICAgICBvcmlnaW5hbExpbmU6IGxpbmUsXG4gICAgICBvcmlnaW5hbENvbHVtbjogdXRpbC5nZXRBcmcoYUFyZ3MsICdjb2x1bW4nLCAwKVxuICAgIH07XG5cbiAgICBpZiAodGhpcy5zb3VyY2VSb290ICE9IG51bGwpIHtcbiAgICAgIG5lZWRsZS5zb3VyY2UgPSB1dGlsLnJlbGF0aXZlKHRoaXMuc291cmNlUm9vdCwgbmVlZGxlLnNvdXJjZSk7XG4gICAgfVxuICAgIGlmICghdGhpcy5fc291cmNlcy5oYXMobmVlZGxlLnNvdXJjZSkpIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG4gICAgbmVlZGxlLnNvdXJjZSA9IHRoaXMuX3NvdXJjZXMuaW5kZXhPZihuZWVkbGUuc291cmNlKTtcblxuICAgIHZhciBtYXBwaW5ncyA9IFtdO1xuXG4gICAgdmFyIGluZGV4ID0gdGhpcy5fZmluZE1hcHBpbmcobmVlZGxlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX29yaWdpbmFsTWFwcGluZ3MsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJvcmlnaW5hbExpbmVcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIm9yaWdpbmFsQ29sdW1uXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXRpbC5jb21wYXJlQnlPcmlnaW5hbFBvc2l0aW9ucyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiaW5hcnlTZWFyY2guTEVBU1RfVVBQRVJfQk9VTkQpO1xuICAgIGlmIChpbmRleCA+PSAwKSB7XG4gICAgICB2YXIgbWFwcGluZyA9IHRoaXMuX29yaWdpbmFsTWFwcGluZ3NbaW5kZXhdO1xuXG4gICAgICBpZiAoYUFyZ3MuY29sdW1uID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgdmFyIG9yaWdpbmFsTGluZSA9IG1hcHBpbmcub3JpZ2luYWxMaW5lO1xuXG4gICAgICAgIC8vIEl0ZXJhdGUgdW50aWwgZWl0aGVyIHdlIHJ1biBvdXQgb2YgbWFwcGluZ3MsIG9yIHdlIHJ1biBpbnRvXG4gICAgICAgIC8vIGEgbWFwcGluZyBmb3IgYSBkaWZmZXJlbnQgbGluZSB0aGFuIHRoZSBvbmUgd2UgZm91bmQuIFNpbmNlXG4gICAgICAgIC8vIG1hcHBpbmdzIGFyZSBzb3J0ZWQsIHRoaXMgaXMgZ3VhcmFudGVlZCB0byBmaW5kIGFsbCBtYXBwaW5ncyBmb3JcbiAgICAgICAgLy8gdGhlIGxpbmUgd2UgZm91bmQuXG4gICAgICAgIHdoaWxlIChtYXBwaW5nICYmIG1hcHBpbmcub3JpZ2luYWxMaW5lID09PSBvcmlnaW5hbExpbmUpIHtcbiAgICAgICAgICBtYXBwaW5ncy5wdXNoKHtcbiAgICAgICAgICAgIGxpbmU6IHV0aWwuZ2V0QXJnKG1hcHBpbmcsICdnZW5lcmF0ZWRMaW5lJywgbnVsbCksXG4gICAgICAgICAgICBjb2x1bW46IHV0aWwuZ2V0QXJnKG1hcHBpbmcsICdnZW5lcmF0ZWRDb2x1bW4nLCBudWxsKSxcbiAgICAgICAgICAgIGxhc3RDb2x1bW46IHV0aWwuZ2V0QXJnKG1hcHBpbmcsICdsYXN0R2VuZXJhdGVkQ29sdW1uJywgbnVsbClcbiAgICAgICAgICB9KTtcblxuICAgICAgICAgIG1hcHBpbmcgPSB0aGlzLl9vcmlnaW5hbE1hcHBpbmdzWysraW5kZXhdO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB2YXIgb3JpZ2luYWxDb2x1bW4gPSBtYXBwaW5nLm9yaWdpbmFsQ29sdW1uO1xuXG4gICAgICAgIC8vIEl0ZXJhdGUgdW50aWwgZWl0aGVyIHdlIHJ1biBvdXQgb2YgbWFwcGluZ3MsIG9yIHdlIHJ1biBpbnRvXG4gICAgICAgIC8vIGEgbWFwcGluZyBmb3IgYSBkaWZmZXJlbnQgbGluZSB0aGFuIHRoZSBvbmUgd2Ugd2VyZSBzZWFyY2hpbmcgZm9yLlxuICAgICAgICAvLyBTaW5jZSBtYXBwaW5ncyBhcmUgc29ydGVkLCB0aGlzIGlzIGd1YXJhbnRlZWQgdG8gZmluZCBhbGwgbWFwcGluZ3MgZm9yXG4gICAgICAgIC8vIHRoZSBsaW5lIHdlIGFyZSBzZWFyY2hpbmcgZm9yLlxuICAgICAgICB3aGlsZSAobWFwcGluZyAmJlxuICAgICAgICAgICAgICAgbWFwcGluZy5vcmlnaW5hbExpbmUgPT09IGxpbmUgJiZcbiAgICAgICAgICAgICAgIG1hcHBpbmcub3JpZ2luYWxDb2x1bW4gPT0gb3JpZ2luYWxDb2x1bW4pIHtcbiAgICAgICAgICBtYXBwaW5ncy5wdXNoKHtcbiAgICAgICAgICAgIGxpbmU6IHV0aWwuZ2V0QXJnKG1hcHBpbmcsICdnZW5lcmF0ZWRMaW5lJywgbnVsbCksXG4gICAgICAgICAgICBjb2x1bW46IHV0aWwuZ2V0QXJnKG1hcHBpbmcsICdnZW5lcmF0ZWRDb2x1bW4nLCBudWxsKSxcbiAgICAgICAgICAgIGxhc3RDb2x1bW46IHV0aWwuZ2V0QXJnKG1hcHBpbmcsICdsYXN0R2VuZXJhdGVkQ29sdW1uJywgbnVsbClcbiAgICAgICAgICB9KTtcblxuICAgICAgICAgIG1hcHBpbmcgPSB0aGlzLl9vcmlnaW5hbE1hcHBpbmdzWysraW5kZXhdO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIG1hcHBpbmdzO1xuICB9O1xuXG5leHBvcnRzLlNvdXJjZU1hcENvbnN1bWVyID0gU291cmNlTWFwQ29uc3VtZXI7XG5cbi8qKlxuICogQSBCYXNpY1NvdXJjZU1hcENvbnN1bWVyIGluc3RhbmNlIHJlcHJlc2VudHMgYSBwYXJzZWQgc291cmNlIG1hcCB3aGljaCB3ZSBjYW5cbiAqIHF1ZXJ5IGZvciBpbmZvcm1hdGlvbiBhYm91dCB0aGUgb3JpZ2luYWwgZmlsZSBwb3NpdGlvbnMgYnkgZ2l2aW5nIGl0IGEgZmlsZVxuICogcG9zaXRpb24gaW4gdGhlIGdlbmVyYXRlZCBzb3VyY2UuXG4gKlxuICogVGhlIG9ubHkgcGFyYW1ldGVyIGlzIHRoZSByYXcgc291cmNlIG1hcCAoZWl0aGVyIGFzIGEgSlNPTiBzdHJpbmcsIG9yXG4gKiBhbHJlYWR5IHBhcnNlZCB0byBhbiBvYmplY3QpLiBBY2NvcmRpbmcgdG8gdGhlIHNwZWMsIHNvdXJjZSBtYXBzIGhhdmUgdGhlXG4gKiBmb2xsb3dpbmcgYXR0cmlidXRlczpcbiAqXG4gKiAgIC0gdmVyc2lvbjogV2hpY2ggdmVyc2lvbiBvZiB0aGUgc291cmNlIG1hcCBzcGVjIHRoaXMgbWFwIGlzIGZvbGxvd2luZy5cbiAqICAgLSBzb3VyY2VzOiBBbiBhcnJheSBvZiBVUkxzIHRvIHRoZSBvcmlnaW5hbCBzb3VyY2UgZmlsZXMuXG4gKiAgIC0gbmFtZXM6IEFuIGFycmF5IG9mIGlkZW50aWZpZXJzIHdoaWNoIGNhbiBiZSByZWZlcnJlbmNlZCBieSBpbmRpdmlkdWFsIG1hcHBpbmdzLlxuICogICAtIHNvdXJjZVJvb3Q6IE9wdGlvbmFsLiBUaGUgVVJMIHJvb3QgZnJvbSB3aGljaCBhbGwgc291cmNlcyBhcmUgcmVsYXRpdmUuXG4gKiAgIC0gc291cmNlc0NvbnRlbnQ6IE9wdGlvbmFsLiBBbiBhcnJheSBvZiBjb250ZW50cyBvZiB0aGUgb3JpZ2luYWwgc291cmNlIGZpbGVzLlxuICogICAtIG1hcHBpbmdzOiBBIHN0cmluZyBvZiBiYXNlNjQgVkxRcyB3aGljaCBjb250YWluIHRoZSBhY3R1YWwgbWFwcGluZ3MuXG4gKiAgIC0gZmlsZTogT3B0aW9uYWwuIFRoZSBnZW5lcmF0ZWQgZmlsZSB0aGlzIHNvdXJjZSBtYXAgaXMgYXNzb2NpYXRlZCB3aXRoLlxuICpcbiAqIEhlcmUgaXMgYW4gZXhhbXBsZSBzb3VyY2UgbWFwLCB0YWtlbiBmcm9tIHRoZSBzb3VyY2UgbWFwIHNwZWNbMF06XG4gKlxuICogICAgIHtcbiAqICAgICAgIHZlcnNpb24gOiAzLFxuICogICAgICAgZmlsZTogXCJvdXQuanNcIixcbiAqICAgICAgIHNvdXJjZVJvb3QgOiBcIlwiLFxuICogICAgICAgc291cmNlczogW1wiZm9vLmpzXCIsIFwiYmFyLmpzXCJdLFxuICogICAgICAgbmFtZXM6IFtcInNyY1wiLCBcIm1hcHNcIiwgXCJhcmVcIiwgXCJmdW5cIl0sXG4gKiAgICAgICBtYXBwaW5nczogXCJBQSxBQjs7QUJDREU7XCJcbiAqICAgICB9XG4gKlxuICogWzBdOiBodHRwczovL2RvY3MuZ29vZ2xlLmNvbS9kb2N1bWVudC9kLzFVMVJHQWVoUXdSeXBVVG92RjFLUmxwaU9GemUwYi1fMmdjNmZBSDBLWTBrL2VkaXQ/cGxpPTEjXG4gKi9cbmZ1bmN0aW9uIEJhc2ljU291cmNlTWFwQ29uc3VtZXIoYVNvdXJjZU1hcCkge1xuICB2YXIgc291cmNlTWFwID0gYVNvdXJjZU1hcDtcbiAgaWYgKHR5cGVvZiBhU291cmNlTWFwID09PSAnc3RyaW5nJykge1xuICAgIHNvdXJjZU1hcCA9IEpTT04ucGFyc2UoYVNvdXJjZU1hcC5yZXBsYWNlKC9eXFwpXFxdXFx9Jy8sICcnKSk7XG4gIH1cblxuICB2YXIgdmVyc2lvbiA9IHV0aWwuZ2V0QXJnKHNvdXJjZU1hcCwgJ3ZlcnNpb24nKTtcbiAgdmFyIHNvdXJjZXMgPSB1dGlsLmdldEFyZyhzb3VyY2VNYXAsICdzb3VyY2VzJyk7XG4gIC8vIFNhc3MgMy4zIGxlYXZlcyBvdXQgdGhlICduYW1lcycgYXJyYXksIHNvIHdlIGRldmlhdGUgZnJvbSB0aGUgc3BlYyAod2hpY2hcbiAgLy8gcmVxdWlyZXMgdGhlIGFycmF5KSB0byBwbGF5IG5pY2UgaGVyZS5cbiAgdmFyIG5hbWVzID0gdXRpbC5nZXRBcmcoc291cmNlTWFwLCAnbmFtZXMnLCBbXSk7XG4gIHZhciBzb3VyY2VSb290ID0gdXRpbC5nZXRBcmcoc291cmNlTWFwLCAnc291cmNlUm9vdCcsIG51bGwpO1xuICB2YXIgc291cmNlc0NvbnRlbnQgPSB1dGlsLmdldEFyZyhzb3VyY2VNYXAsICdzb3VyY2VzQ29udGVudCcsIG51bGwpO1xuICB2YXIgbWFwcGluZ3MgPSB1dGlsLmdldEFyZyhzb3VyY2VNYXAsICdtYXBwaW5ncycpO1xuICB2YXIgZmlsZSA9IHV0aWwuZ2V0QXJnKHNvdXJjZU1hcCwgJ2ZpbGUnLCBudWxsKTtcblxuICAvLyBPbmNlIGFnYWluLCBTYXNzIGRldmlhdGVzIGZyb20gdGhlIHNwZWMgYW5kIHN1cHBsaWVzIHRoZSB2ZXJzaW9uIGFzIGFcbiAgLy8gc3RyaW5nIHJhdGhlciB0aGFuIGEgbnVtYmVyLCBzbyB3ZSB1c2UgbG9vc2UgZXF1YWxpdHkgY2hlY2tpbmcgaGVyZS5cbiAgaWYgKHZlcnNpb24gIT0gdGhpcy5fdmVyc2lvbikge1xuICAgIHRocm93IG5ldyBFcnJvcignVW5zdXBwb3J0ZWQgdmVyc2lvbjogJyArIHZlcnNpb24pO1xuICB9XG5cbiAgc291cmNlcyA9IHNvdXJjZXNcbiAgICAubWFwKFN0cmluZylcbiAgICAvLyBTb21lIHNvdXJjZSBtYXBzIHByb2R1Y2UgcmVsYXRpdmUgc291cmNlIHBhdGhzIGxpa2UgXCIuL2Zvby5qc1wiIGluc3RlYWQgb2ZcbiAgICAvLyBcImZvby5qc1wiLiAgTm9ybWFsaXplIHRoZXNlIGZpcnN0IHNvIHRoYXQgZnV0dXJlIGNvbXBhcmlzb25zIHdpbGwgc3VjY2VlZC5cbiAgICAvLyBTZWUgYnVnemlsLmxhLzEwOTA3NjguXG4gICAgLm1hcCh1dGlsLm5vcm1hbGl6ZSlcbiAgICAvLyBBbHdheXMgZW5zdXJlIHRoYXQgYWJzb2x1dGUgc291cmNlcyBhcmUgaW50ZXJuYWxseSBzdG9yZWQgcmVsYXRpdmUgdG9cbiAgICAvLyB0aGUgc291cmNlIHJvb3QsIGlmIHRoZSBzb3VyY2Ugcm9vdCBpcyBhYnNvbHV0ZS4gTm90IGRvaW5nIHRoaXMgd291bGRcbiAgICAvLyBiZSBwYXJ0aWN1bGFybHkgcHJvYmxlbWF0aWMgd2hlbiB0aGUgc291cmNlIHJvb3QgaXMgYSBwcmVmaXggb2YgdGhlXG4gICAgLy8gc291cmNlICh2YWxpZCwgYnV0IHdoeT8/KS4gU2VlIGdpdGh1YiBpc3N1ZSAjMTk5IGFuZCBidWd6aWwubGEvMTE4ODk4Mi5cbiAgICAubWFwKGZ1bmN0aW9uIChzb3VyY2UpIHtcbiAgICAgIHJldHVybiBzb3VyY2VSb290ICYmIHV0aWwuaXNBYnNvbHV0ZShzb3VyY2VSb290KSAmJiB1dGlsLmlzQWJzb2x1dGUoc291cmNlKVxuICAgICAgICA/IHV0aWwucmVsYXRpdmUoc291cmNlUm9vdCwgc291cmNlKVxuICAgICAgICA6IHNvdXJjZTtcbiAgICB9KTtcblxuICAvLyBQYXNzIGB0cnVlYCBiZWxvdyB0byBhbGxvdyBkdXBsaWNhdGUgbmFtZXMgYW5kIHNvdXJjZXMuIFdoaWxlIHNvdXJjZSBtYXBzXG4gIC8vIGFyZSBpbnRlbmRlZCB0byBiZSBjb21wcmVzc2VkIGFuZCBkZWR1cGxpY2F0ZWQsIHRoZSBUeXBlU2NyaXB0IGNvbXBpbGVyXG4gIC8vIHNvbWV0aW1lcyBnZW5lcmF0ZXMgc291cmNlIG1hcHMgd2l0aCBkdXBsaWNhdGVzIGluIHRoZW0uIFNlZSBHaXRodWIgaXNzdWVcbiAgLy8gIzcyIGFuZCBidWd6aWwubGEvODg5NDkyLlxuICB0aGlzLl9uYW1lcyA9IEFycmF5U2V0LmZyb21BcnJheShuYW1lcy5tYXAoU3RyaW5nKSwgdHJ1ZSk7XG4gIHRoaXMuX3NvdXJjZXMgPSBBcnJheVNldC5mcm9tQXJyYXkoc291cmNlcywgdHJ1ZSk7XG5cbiAgdGhpcy5zb3VyY2VSb290ID0gc291cmNlUm9vdDtcbiAgdGhpcy5zb3VyY2VzQ29udGVudCA9IHNvdXJjZXNDb250ZW50O1xuICB0aGlzLl9tYXBwaW5ncyA9IG1hcHBpbmdzO1xuICB0aGlzLmZpbGUgPSBmaWxlO1xufVxuXG5CYXNpY1NvdXJjZU1hcENvbnN1bWVyLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoU291cmNlTWFwQ29uc3VtZXIucHJvdG90eXBlKTtcbkJhc2ljU291cmNlTWFwQ29uc3VtZXIucHJvdG90eXBlLmNvbnN1bWVyID0gU291cmNlTWFwQ29uc3VtZXI7XG5cbi8qKlxuICogQ3JlYXRlIGEgQmFzaWNTb3VyY2VNYXBDb25zdW1lciBmcm9tIGEgU291cmNlTWFwR2VuZXJhdG9yLlxuICpcbiAqIEBwYXJhbSBTb3VyY2VNYXBHZW5lcmF0b3IgYVNvdXJjZU1hcFxuICogICAgICAgIFRoZSBzb3VyY2UgbWFwIHRoYXQgd2lsbCBiZSBjb25zdW1lZC5cbiAqIEByZXR1cm5zIEJhc2ljU291cmNlTWFwQ29uc3VtZXJcbiAqL1xuQmFzaWNTb3VyY2VNYXBDb25zdW1lci5mcm9tU291cmNlTWFwID1cbiAgZnVuY3Rpb24gU291cmNlTWFwQ29uc3VtZXJfZnJvbVNvdXJjZU1hcChhU291cmNlTWFwKSB7XG4gICAgdmFyIHNtYyA9IE9iamVjdC5jcmVhdGUoQmFzaWNTb3VyY2VNYXBDb25zdW1lci5wcm90b3R5cGUpO1xuXG4gICAgdmFyIG5hbWVzID0gc21jLl9uYW1lcyA9IEFycmF5U2V0LmZyb21BcnJheShhU291cmNlTWFwLl9uYW1lcy50b0FycmF5KCksIHRydWUpO1xuICAgIHZhciBzb3VyY2VzID0gc21jLl9zb3VyY2VzID0gQXJyYXlTZXQuZnJvbUFycmF5KGFTb3VyY2VNYXAuX3NvdXJjZXMudG9BcnJheSgpLCB0cnVlKTtcbiAgICBzbWMuc291cmNlUm9vdCA9IGFTb3VyY2VNYXAuX3NvdXJjZVJvb3Q7XG4gICAgc21jLnNvdXJjZXNDb250ZW50ID0gYVNvdXJjZU1hcC5fZ2VuZXJhdGVTb3VyY2VzQ29udGVudChzbWMuX3NvdXJjZXMudG9BcnJheSgpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc21jLnNvdXJjZVJvb3QpO1xuICAgIHNtYy5maWxlID0gYVNvdXJjZU1hcC5fZmlsZTtcblxuICAgIC8vIEJlY2F1c2Ugd2UgYXJlIG1vZGlmeWluZyB0aGUgZW50cmllcyAoYnkgY29udmVydGluZyBzdHJpbmcgc291cmNlcyBhbmRcbiAgICAvLyBuYW1lcyB0byBpbmRpY2VzIGludG8gdGhlIHNvdXJjZXMgYW5kIG5hbWVzIEFycmF5U2V0cyksIHdlIGhhdmUgdG8gbWFrZVxuICAgIC8vIGEgY29weSBvZiB0aGUgZW50cnkgb3IgZWxzZSBiYWQgdGhpbmdzIGhhcHBlbi4gU2hhcmVkIG11dGFibGUgc3RhdGVcbiAgICAvLyBzdHJpa2VzIGFnYWluISBTZWUgZ2l0aHViIGlzc3VlICMxOTEuXG5cbiAgICB2YXIgZ2VuZXJhdGVkTWFwcGluZ3MgPSBhU291cmNlTWFwLl9tYXBwaW5ncy50b0FycmF5KCkuc2xpY2UoKTtcbiAgICB2YXIgZGVzdEdlbmVyYXRlZE1hcHBpbmdzID0gc21jLl9fZ2VuZXJhdGVkTWFwcGluZ3MgPSBbXTtcbiAgICB2YXIgZGVzdE9yaWdpbmFsTWFwcGluZ3MgPSBzbWMuX19vcmlnaW5hbE1hcHBpbmdzID0gW107XG5cbiAgICBmb3IgKHZhciBpID0gMCwgbGVuZ3RoID0gZ2VuZXJhdGVkTWFwcGluZ3MubGVuZ3RoOyBpIDwgbGVuZ3RoOyBpKyspIHtcbiAgICAgIHZhciBzcmNNYXBwaW5nID0gZ2VuZXJhdGVkTWFwcGluZ3NbaV07XG4gICAgICB2YXIgZGVzdE1hcHBpbmcgPSBuZXcgTWFwcGluZztcbiAgICAgIGRlc3RNYXBwaW5nLmdlbmVyYXRlZExpbmUgPSBzcmNNYXBwaW5nLmdlbmVyYXRlZExpbmU7XG4gICAgICBkZXN0TWFwcGluZy5nZW5lcmF0ZWRDb2x1bW4gPSBzcmNNYXBwaW5nLmdlbmVyYXRlZENvbHVtbjtcblxuICAgICAgaWYgKHNyY01hcHBpbmcuc291cmNlKSB7XG4gICAgICAgIGRlc3RNYXBwaW5nLnNvdXJjZSA9IHNvdXJjZXMuaW5kZXhPZihzcmNNYXBwaW5nLnNvdXJjZSk7XG4gICAgICAgIGRlc3RNYXBwaW5nLm9yaWdpbmFsTGluZSA9IHNyY01hcHBpbmcub3JpZ2luYWxMaW5lO1xuICAgICAgICBkZXN0TWFwcGluZy5vcmlnaW5hbENvbHVtbiA9IHNyY01hcHBpbmcub3JpZ2luYWxDb2x1bW47XG5cbiAgICAgICAgaWYgKHNyY01hcHBpbmcubmFtZSkge1xuICAgICAgICAgIGRlc3RNYXBwaW5nLm5hbWUgPSBuYW1lcy5pbmRleE9mKHNyY01hcHBpbmcubmFtZSk7XG4gICAgICAgIH1cblxuICAgICAgICBkZXN0T3JpZ2luYWxNYXBwaW5ncy5wdXNoKGRlc3RNYXBwaW5nKTtcbiAgICAgIH1cblxuICAgICAgZGVzdEdlbmVyYXRlZE1hcHBpbmdzLnB1c2goZGVzdE1hcHBpbmcpO1xuICAgIH1cblxuICAgIHF1aWNrU29ydChzbWMuX19vcmlnaW5hbE1hcHBpbmdzLCB1dGlsLmNvbXBhcmVCeU9yaWdpbmFsUG9zaXRpb25zKTtcblxuICAgIHJldHVybiBzbWM7XG4gIH07XG5cbi8qKlxuICogVGhlIHZlcnNpb24gb2YgdGhlIHNvdXJjZSBtYXBwaW5nIHNwZWMgdGhhdCB3ZSBhcmUgY29uc3VtaW5nLlxuICovXG5CYXNpY1NvdXJjZU1hcENvbnN1bWVyLnByb3RvdHlwZS5fdmVyc2lvbiA9IDM7XG5cbi8qKlxuICogVGhlIGxpc3Qgb2Ygb3JpZ2luYWwgc291cmNlcy5cbiAqL1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KEJhc2ljU291cmNlTWFwQ29uc3VtZXIucHJvdG90eXBlLCAnc291cmNlcycsIHtcbiAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3NvdXJjZXMudG9BcnJheSgpLm1hcChmdW5jdGlvbiAocykge1xuICAgICAgcmV0dXJuIHRoaXMuc291cmNlUm9vdCAhPSBudWxsID8gdXRpbC5qb2luKHRoaXMuc291cmNlUm9vdCwgcykgOiBzO1xuICAgIH0sIHRoaXMpO1xuICB9XG59KTtcblxuLyoqXG4gKiBQcm92aWRlIHRoZSBKSVQgd2l0aCBhIG5pY2Ugc2hhcGUgLyBoaWRkZW4gY2xhc3MuXG4gKi9cbmZ1bmN0aW9uIE1hcHBpbmcoKSB7XG4gIHRoaXMuZ2VuZXJhdGVkTGluZSA9IDA7XG4gIHRoaXMuZ2VuZXJhdGVkQ29sdW1uID0gMDtcbiAgdGhpcy5zb3VyY2UgPSBudWxsO1xuICB0aGlzLm9yaWdpbmFsTGluZSA9IG51bGw7XG4gIHRoaXMub3JpZ2luYWxDb2x1bW4gPSBudWxsO1xuICB0aGlzLm5hbWUgPSBudWxsO1xufVxuXG4vKipcbiAqIFBhcnNlIHRoZSBtYXBwaW5ncyBpbiBhIHN0cmluZyBpbiB0byBhIGRhdGEgc3RydWN0dXJlIHdoaWNoIHdlIGNhbiBlYXNpbHlcbiAqIHF1ZXJ5ICh0aGUgb3JkZXJlZCBhcnJheXMgaW4gdGhlIGB0aGlzLl9fZ2VuZXJhdGVkTWFwcGluZ3NgIGFuZFxuICogYHRoaXMuX19vcmlnaW5hbE1hcHBpbmdzYCBwcm9wZXJ0aWVzKS5cbiAqL1xuQmFzaWNTb3VyY2VNYXBDb25zdW1lci5wcm90b3R5cGUuX3BhcnNlTWFwcGluZ3MgPVxuICBmdW5jdGlvbiBTb3VyY2VNYXBDb25zdW1lcl9wYXJzZU1hcHBpbmdzKGFTdHIsIGFTb3VyY2VSb290KSB7XG4gICAgdmFyIGdlbmVyYXRlZExpbmUgPSAxO1xuICAgIHZhciBwcmV2aW91c0dlbmVyYXRlZENvbHVtbiA9IDA7XG4gICAgdmFyIHByZXZpb3VzT3JpZ2luYWxMaW5lID0gMDtcbiAgICB2YXIgcHJldmlvdXNPcmlnaW5hbENvbHVtbiA9IDA7XG4gICAgdmFyIHByZXZpb3VzU291cmNlID0gMDtcbiAgICB2YXIgcHJldmlvdXNOYW1lID0gMDtcbiAgICB2YXIgbGVuZ3RoID0gYVN0ci5sZW5ndGg7XG4gICAgdmFyIGluZGV4ID0gMDtcbiAgICB2YXIgY2FjaGVkU2VnbWVudHMgPSB7fTtcbiAgICB2YXIgdGVtcCA9IHt9O1xuICAgIHZhciBvcmlnaW5hbE1hcHBpbmdzID0gW107XG4gICAgdmFyIGdlbmVyYXRlZE1hcHBpbmdzID0gW107XG4gICAgdmFyIG1hcHBpbmcsIHN0ciwgc2VnbWVudCwgZW5kLCB2YWx1ZTtcblxuICAgIHdoaWxlIChpbmRleCA8IGxlbmd0aCkge1xuICAgICAgaWYgKGFTdHIuY2hhckF0KGluZGV4KSA9PT0gJzsnKSB7XG4gICAgICAgIGdlbmVyYXRlZExpbmUrKztcbiAgICAgICAgaW5kZXgrKztcbiAgICAgICAgcHJldmlvdXNHZW5lcmF0ZWRDb2x1bW4gPSAwO1xuICAgICAgfVxuICAgICAgZWxzZSBpZiAoYVN0ci5jaGFyQXQoaW5kZXgpID09PSAnLCcpIHtcbiAgICAgICAgaW5kZXgrKztcbiAgICAgIH1cbiAgICAgIGVsc2Uge1xuICAgICAgICBtYXBwaW5nID0gbmV3IE1hcHBpbmcoKTtcbiAgICAgICAgbWFwcGluZy5nZW5lcmF0ZWRMaW5lID0gZ2VuZXJhdGVkTGluZTtcblxuICAgICAgICAvLyBCZWNhdXNlIGVhY2ggb2Zmc2V0IGlzIGVuY29kZWQgcmVsYXRpdmUgdG8gdGhlIHByZXZpb3VzIG9uZSxcbiAgICAgICAgLy8gbWFueSBzZWdtZW50cyBvZnRlbiBoYXZlIHRoZSBzYW1lIGVuY29kaW5nLiBXZSBjYW4gZXhwbG9pdCB0aGlzXG4gICAgICAgIC8vIGZhY3QgYnkgY2FjaGluZyB0aGUgcGFyc2VkIHZhcmlhYmxlIGxlbmd0aCBmaWVsZHMgb2YgZWFjaCBzZWdtZW50LFxuICAgICAgICAvLyBhbGxvd2luZyB1cyB0byBhdm9pZCBhIHNlY29uZCBwYXJzZSBpZiB3ZSBlbmNvdW50ZXIgdGhlIHNhbWVcbiAgICAgICAgLy8gc2VnbWVudCBhZ2Fpbi5cbiAgICAgICAgZm9yIChlbmQgPSBpbmRleDsgZW5kIDwgbGVuZ3RoOyBlbmQrKykge1xuICAgICAgICAgIGlmICh0aGlzLl9jaGFySXNNYXBwaW5nU2VwYXJhdG9yKGFTdHIsIGVuZCkpIHtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBzdHIgPSBhU3RyLnNsaWNlKGluZGV4LCBlbmQpO1xuXG4gICAgICAgIHNlZ21lbnQgPSBjYWNoZWRTZWdtZW50c1tzdHJdO1xuICAgICAgICBpZiAoc2VnbWVudCkge1xuICAgICAgICAgIGluZGV4ICs9IHN0ci5sZW5ndGg7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgc2VnbWVudCA9IFtdO1xuICAgICAgICAgIHdoaWxlIChpbmRleCA8IGVuZCkge1xuICAgICAgICAgICAgYmFzZTY0VkxRLmRlY29kZShhU3RyLCBpbmRleCwgdGVtcCk7XG4gICAgICAgICAgICB2YWx1ZSA9IHRlbXAudmFsdWU7XG4gICAgICAgICAgICBpbmRleCA9IHRlbXAucmVzdDtcbiAgICAgICAgICAgIHNlZ21lbnQucHVzaCh2YWx1ZSk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKHNlZ21lbnQubGVuZ3RoID09PSAyKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ZvdW5kIGEgc291cmNlLCBidXQgbm8gbGluZSBhbmQgY29sdW1uJyk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKHNlZ21lbnQubGVuZ3RoID09PSAzKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ZvdW5kIGEgc291cmNlIGFuZCBsaW5lLCBidXQgbm8gY29sdW1uJyk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY2FjaGVkU2VnbWVudHNbc3RyXSA9IHNlZ21lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBHZW5lcmF0ZWQgY29sdW1uLlxuICAgICAgICBtYXBwaW5nLmdlbmVyYXRlZENvbHVtbiA9IHByZXZpb3VzR2VuZXJhdGVkQ29sdW1uICsgc2VnbWVudFswXTtcbiAgICAgICAgcHJldmlvdXNHZW5lcmF0ZWRDb2x1bW4gPSBtYXBwaW5nLmdlbmVyYXRlZENvbHVtbjtcblxuICAgICAgICBpZiAoc2VnbWVudC5sZW5ndGggPiAxKSB7XG4gICAgICAgICAgLy8gT3JpZ2luYWwgc291cmNlLlxuICAgICAgICAgIG1hcHBpbmcuc291cmNlID0gcHJldmlvdXNTb3VyY2UgKyBzZWdtZW50WzFdO1xuICAgICAgICAgIHByZXZpb3VzU291cmNlICs9IHNlZ21lbnRbMV07XG5cbiAgICAgICAgICAvLyBPcmlnaW5hbCBsaW5lLlxuICAgICAgICAgIG1hcHBpbmcub3JpZ2luYWxMaW5lID0gcHJldmlvdXNPcmlnaW5hbExpbmUgKyBzZWdtZW50WzJdO1xuICAgICAgICAgIHByZXZpb3VzT3JpZ2luYWxMaW5lID0gbWFwcGluZy5vcmlnaW5hbExpbmU7XG4gICAgICAgICAgLy8gTGluZXMgYXJlIHN0b3JlZCAwLWJhc2VkXG4gICAgICAgICAgbWFwcGluZy5vcmlnaW5hbExpbmUgKz0gMTtcblxuICAgICAgICAgIC8vIE9yaWdpbmFsIGNvbHVtbi5cbiAgICAgICAgICBtYXBwaW5nLm9yaWdpbmFsQ29sdW1uID0gcHJldmlvdXNPcmlnaW5hbENvbHVtbiArIHNlZ21lbnRbM107XG4gICAgICAgICAgcHJldmlvdXNPcmlnaW5hbENvbHVtbiA9IG1hcHBpbmcub3JpZ2luYWxDb2x1bW47XG5cbiAgICAgICAgICBpZiAoc2VnbWVudC5sZW5ndGggPiA0KSB7XG4gICAgICAgICAgICAvLyBPcmlnaW5hbCBuYW1lLlxuICAgICAgICAgICAgbWFwcGluZy5uYW1lID0gcHJldmlvdXNOYW1lICsgc2VnbWVudFs0XTtcbiAgICAgICAgICAgIHByZXZpb3VzTmFtZSArPSBzZWdtZW50WzRdO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGdlbmVyYXRlZE1hcHBpbmdzLnB1c2gobWFwcGluZyk7XG4gICAgICAgIGlmICh0eXBlb2YgbWFwcGluZy5vcmlnaW5hbExpbmUgPT09ICdudW1iZXInKSB7XG4gICAgICAgICAgb3JpZ2luYWxNYXBwaW5ncy5wdXNoKG1hcHBpbmcpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcXVpY2tTb3J0KGdlbmVyYXRlZE1hcHBpbmdzLCB1dGlsLmNvbXBhcmVCeUdlbmVyYXRlZFBvc2l0aW9uc0RlZmxhdGVkKTtcbiAgICB0aGlzLl9fZ2VuZXJhdGVkTWFwcGluZ3MgPSBnZW5lcmF0ZWRNYXBwaW5ncztcblxuICAgIHF1aWNrU29ydChvcmlnaW5hbE1hcHBpbmdzLCB1dGlsLmNvbXBhcmVCeU9yaWdpbmFsUG9zaXRpb25zKTtcbiAgICB0aGlzLl9fb3JpZ2luYWxNYXBwaW5ncyA9IG9yaWdpbmFsTWFwcGluZ3M7XG4gIH07XG5cbi8qKlxuICogRmluZCB0aGUgbWFwcGluZyB0aGF0IGJlc3QgbWF0Y2hlcyB0aGUgaHlwb3RoZXRpY2FsIFwibmVlZGxlXCIgbWFwcGluZyB0aGF0XG4gKiB3ZSBhcmUgc2VhcmNoaW5nIGZvciBpbiB0aGUgZ2l2ZW4gXCJoYXlzdGFja1wiIG9mIG1hcHBpbmdzLlxuICovXG5CYXNpY1NvdXJjZU1hcENvbnN1bWVyLnByb3RvdHlwZS5fZmluZE1hcHBpbmcgPVxuICBmdW5jdGlvbiBTb3VyY2VNYXBDb25zdW1lcl9maW5kTWFwcGluZyhhTmVlZGxlLCBhTWFwcGluZ3MsIGFMaW5lTmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYUNvbHVtbk5hbWUsIGFDb21wYXJhdG9yLCBhQmlhcykge1xuICAgIC8vIFRvIHJldHVybiB0aGUgcG9zaXRpb24gd2UgYXJlIHNlYXJjaGluZyBmb3IsIHdlIG11c3QgZmlyc3QgZmluZCB0aGVcbiAgICAvLyBtYXBwaW5nIGZvciB0aGUgZ2l2ZW4gcG9zaXRpb24gYW5kIHRoZW4gcmV0dXJuIHRoZSBvcHBvc2l0ZSBwb3NpdGlvbiBpdFxuICAgIC8vIHBvaW50cyB0by4gQmVjYXVzZSB0aGUgbWFwcGluZ3MgYXJlIHNvcnRlZCwgd2UgY2FuIHVzZSBiaW5hcnkgc2VhcmNoIHRvXG4gICAgLy8gZmluZCB0aGUgYmVzdCBtYXBwaW5nLlxuXG4gICAgaWYgKGFOZWVkbGVbYUxpbmVOYW1lXSA8PSAwKSB7XG4gICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdMaW5lIG11c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIDEsIGdvdCAnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICsgYU5lZWRsZVthTGluZU5hbWVdKTtcbiAgICB9XG4gICAgaWYgKGFOZWVkbGVbYUNvbHVtbk5hbWVdIDwgMCkge1xuICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignQ29sdW1uIG11c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIDAsIGdvdCAnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICsgYU5lZWRsZVthQ29sdW1uTmFtZV0pO1xuICAgIH1cblxuICAgIHJldHVybiBiaW5hcnlTZWFyY2guc2VhcmNoKGFOZWVkbGUsIGFNYXBwaW5ncywgYUNvbXBhcmF0b3IsIGFCaWFzKTtcbiAgfTtcblxuLyoqXG4gKiBDb21wdXRlIHRoZSBsYXN0IGNvbHVtbiBmb3IgZWFjaCBnZW5lcmF0ZWQgbWFwcGluZy4gVGhlIGxhc3QgY29sdW1uIGlzXG4gKiBpbmNsdXNpdmUuXG4gKi9cbkJhc2ljU291cmNlTWFwQ29uc3VtZXIucHJvdG90eXBlLmNvbXB1dGVDb2x1bW5TcGFucyA9XG4gIGZ1bmN0aW9uIFNvdXJjZU1hcENvbnN1bWVyX2NvbXB1dGVDb2x1bW5TcGFucygpIHtcbiAgICBmb3IgKHZhciBpbmRleCA9IDA7IGluZGV4IDwgdGhpcy5fZ2VuZXJhdGVkTWFwcGluZ3MubGVuZ3RoOyArK2luZGV4KSB7XG4gICAgICB2YXIgbWFwcGluZyA9IHRoaXMuX2dlbmVyYXRlZE1hcHBpbmdzW2luZGV4XTtcblxuICAgICAgLy8gTWFwcGluZ3MgZG8gbm90IGNvbnRhaW4gYSBmaWVsZCBmb3IgdGhlIGxhc3QgZ2VuZXJhdGVkIGNvbHVtbnQuIFdlXG4gICAgICAvLyBjYW4gY29tZSB1cCB3aXRoIGFuIG9wdGltaXN0aWMgZXN0aW1hdGUsIGhvd2V2ZXIsIGJ5IGFzc3VtaW5nIHRoYXRcbiAgICAgIC8vIG1hcHBpbmdzIGFyZSBjb250aWd1b3VzIChpLmUuIGdpdmVuIHR3byBjb25zZWN1dGl2ZSBtYXBwaW5ncywgdGhlXG4gICAgICAvLyBmaXJzdCBtYXBwaW5nIGVuZHMgd2hlcmUgdGhlIHNlY29uZCBvbmUgc3RhcnRzKS5cbiAgICAgIGlmIChpbmRleCArIDEgPCB0aGlzLl9nZW5lcmF0ZWRNYXBwaW5ncy5sZW5ndGgpIHtcbiAgICAgICAgdmFyIG5leHRNYXBwaW5nID0gdGhpcy5fZ2VuZXJhdGVkTWFwcGluZ3NbaW5kZXggKyAxXTtcblxuICAgICAgICBpZiAobWFwcGluZy5nZW5lcmF0ZWRMaW5lID09PSBuZXh0TWFwcGluZy5nZW5lcmF0ZWRMaW5lKSB7XG4gICAgICAgICAgbWFwcGluZy5sYXN0R2VuZXJhdGVkQ29sdW1uID0gbmV4dE1hcHBpbmcuZ2VuZXJhdGVkQ29sdW1uIC0gMTtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyBUaGUgbGFzdCBtYXBwaW5nIGZvciBlYWNoIGxpbmUgc3BhbnMgdGhlIGVudGlyZSBsaW5lLlxuICAgICAgbWFwcGluZy5sYXN0R2VuZXJhdGVkQ29sdW1uID0gSW5maW5pdHk7XG4gICAgfVxuICB9O1xuXG4vKipcbiAqIFJldHVybnMgdGhlIG9yaWdpbmFsIHNvdXJjZSwgbGluZSwgYW5kIGNvbHVtbiBpbmZvcm1hdGlvbiBmb3IgdGhlIGdlbmVyYXRlZFxuICogc291cmNlJ3MgbGluZSBhbmQgY29sdW1uIHBvc2l0aW9ucyBwcm92aWRlZC4gVGhlIG9ubHkgYXJndW1lbnQgaXMgYW4gb2JqZWN0XG4gKiB3aXRoIHRoZSBmb2xsb3dpbmcgcHJvcGVydGllczpcbiAqXG4gKiAgIC0gbGluZTogVGhlIGxpbmUgbnVtYmVyIGluIHRoZSBnZW5lcmF0ZWQgc291cmNlLlxuICogICAtIGNvbHVtbjogVGhlIGNvbHVtbiBudW1iZXIgaW4gdGhlIGdlbmVyYXRlZCBzb3VyY2UuXG4gKiAgIC0gYmlhczogRWl0aGVyICdTb3VyY2VNYXBDb25zdW1lci5HUkVBVEVTVF9MT1dFUl9CT1VORCcgb3JcbiAqICAgICAnU291cmNlTWFwQ29uc3VtZXIuTEVBU1RfVVBQRVJfQk9VTkQnLiBTcGVjaWZpZXMgd2hldGhlciB0byByZXR1cm4gdGhlXG4gKiAgICAgY2xvc2VzdCBlbGVtZW50IHRoYXQgaXMgc21hbGxlciB0aGFuIG9yIGdyZWF0ZXIgdGhhbiB0aGUgb25lIHdlIGFyZVxuICogICAgIHNlYXJjaGluZyBmb3IsIHJlc3BlY3RpdmVseSwgaWYgdGhlIGV4YWN0IGVsZW1lbnQgY2Fubm90IGJlIGZvdW5kLlxuICogICAgIERlZmF1bHRzIHRvICdTb3VyY2VNYXBDb25zdW1lci5HUkVBVEVTVF9MT1dFUl9CT1VORCcuXG4gKlxuICogYW5kIGFuIG9iamVjdCBpcyByZXR1cm5lZCB3aXRoIHRoZSBmb2xsb3dpbmcgcHJvcGVydGllczpcbiAqXG4gKiAgIC0gc291cmNlOiBUaGUgb3JpZ2luYWwgc291cmNlIGZpbGUsIG9yIG51bGwuXG4gKiAgIC0gbGluZTogVGhlIGxpbmUgbnVtYmVyIGluIHRoZSBvcmlnaW5hbCBzb3VyY2UsIG9yIG51bGwuXG4gKiAgIC0gY29sdW1uOiBUaGUgY29sdW1uIG51bWJlciBpbiB0aGUgb3JpZ2luYWwgc291cmNlLCBvciBudWxsLlxuICogICAtIG5hbWU6IFRoZSBvcmlnaW5hbCBpZGVudGlmaWVyLCBvciBudWxsLlxuICovXG5CYXNpY1NvdXJjZU1hcENvbnN1bWVyLnByb3RvdHlwZS5vcmlnaW5hbFBvc2l0aW9uRm9yID1cbiAgZnVuY3Rpb24gU291cmNlTWFwQ29uc3VtZXJfb3JpZ2luYWxQb3NpdGlvbkZvcihhQXJncykge1xuICAgIHZhciBuZWVkbGUgPSB7XG4gICAgICBnZW5lcmF0ZWRMaW5lOiB1dGlsLmdldEFyZyhhQXJncywgJ2xpbmUnKSxcbiAgICAgIGdlbmVyYXRlZENvbHVtbjogdXRpbC5nZXRBcmcoYUFyZ3MsICdjb2x1bW4nKVxuICAgIH07XG5cbiAgICB2YXIgaW5kZXggPSB0aGlzLl9maW5kTWFwcGluZyhcbiAgICAgIG5lZWRsZSxcbiAgICAgIHRoaXMuX2dlbmVyYXRlZE1hcHBpbmdzLFxuICAgICAgXCJnZW5lcmF0ZWRMaW5lXCIsXG4gICAgICBcImdlbmVyYXRlZENvbHVtblwiLFxuICAgICAgdXRpbC5jb21wYXJlQnlHZW5lcmF0ZWRQb3NpdGlvbnNEZWZsYXRlZCxcbiAgICAgIHV0aWwuZ2V0QXJnKGFBcmdzLCAnYmlhcycsIFNvdXJjZU1hcENvbnN1bWVyLkdSRUFURVNUX0xPV0VSX0JPVU5EKVxuICAgICk7XG5cbiAgICBpZiAoaW5kZXggPj0gMCkge1xuICAgICAgdmFyIG1hcHBpbmcgPSB0aGlzLl9nZW5lcmF0ZWRNYXBwaW5nc1tpbmRleF07XG5cbiAgICAgIGlmIChtYXBwaW5nLmdlbmVyYXRlZExpbmUgPT09IG5lZWRsZS5nZW5lcmF0ZWRMaW5lKSB7XG4gICAgICAgIHZhciBzb3VyY2UgPSB1dGlsLmdldEFyZyhtYXBwaW5nLCAnc291cmNlJywgbnVsbCk7XG4gICAgICAgIGlmIChzb3VyY2UgIT09IG51bGwpIHtcbiAgICAgICAgICBzb3VyY2UgPSB0aGlzLl9zb3VyY2VzLmF0KHNvdXJjZSk7XG4gICAgICAgICAgaWYgKHRoaXMuc291cmNlUm9vdCAhPSBudWxsKSB7XG4gICAgICAgICAgICBzb3VyY2UgPSB1dGlsLmpvaW4odGhpcy5zb3VyY2VSb290LCBzb3VyY2UpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB2YXIgbmFtZSA9IHV0aWwuZ2V0QXJnKG1hcHBpbmcsICduYW1lJywgbnVsbCk7XG4gICAgICAgIGlmIChuYW1lICE9PSBudWxsKSB7XG4gICAgICAgICAgbmFtZSA9IHRoaXMuX25hbWVzLmF0KG5hbWUpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgc291cmNlOiBzb3VyY2UsXG4gICAgICAgICAgbGluZTogdXRpbC5nZXRBcmcobWFwcGluZywgJ29yaWdpbmFsTGluZScsIG51bGwpLFxuICAgICAgICAgIGNvbHVtbjogdXRpbC5nZXRBcmcobWFwcGluZywgJ29yaWdpbmFsQ29sdW1uJywgbnVsbCksXG4gICAgICAgICAgbmFtZTogbmFtZVxuICAgICAgICB9O1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBzb3VyY2U6IG51bGwsXG4gICAgICBsaW5lOiBudWxsLFxuICAgICAgY29sdW1uOiBudWxsLFxuICAgICAgbmFtZTogbnVsbFxuICAgIH07XG4gIH07XG5cbi8qKlxuICogUmV0dXJuIHRydWUgaWYgd2UgaGF2ZSB0aGUgc291cmNlIGNvbnRlbnQgZm9yIGV2ZXJ5IHNvdXJjZSBpbiB0aGUgc291cmNlXG4gKiBtYXAsIGZhbHNlIG90aGVyd2lzZS5cbiAqL1xuQmFzaWNTb3VyY2VNYXBDb25zdW1lci5wcm90b3R5cGUuaGFzQ29udGVudHNPZkFsbFNvdXJjZXMgPVxuICBmdW5jdGlvbiBCYXNpY1NvdXJjZU1hcENvbnN1bWVyX2hhc0NvbnRlbnRzT2ZBbGxTb3VyY2VzKCkge1xuICAgIGlmICghdGhpcy5zb3VyY2VzQ29udGVudCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5zb3VyY2VzQ29udGVudC5sZW5ndGggPj0gdGhpcy5fc291cmNlcy5zaXplKCkgJiZcbiAgICAgICF0aGlzLnNvdXJjZXNDb250ZW50LnNvbWUoZnVuY3Rpb24gKHNjKSB7IHJldHVybiBzYyA9PSBudWxsOyB9KTtcbiAgfTtcblxuLyoqXG4gKiBSZXR1cm5zIHRoZSBvcmlnaW5hbCBzb3VyY2UgY29udGVudC4gVGhlIG9ubHkgYXJndW1lbnQgaXMgdGhlIHVybCBvZiB0aGVcbiAqIG9yaWdpbmFsIHNvdXJjZSBmaWxlLiBSZXR1cm5zIG51bGwgaWYgbm8gb3JpZ2luYWwgc291cmNlIGNvbnRlbnQgaXNcbiAqIGF2YWlsYWJsZS5cbiAqL1xuQmFzaWNTb3VyY2VNYXBDb25zdW1lci5wcm90b3R5cGUuc291cmNlQ29udGVudEZvciA9XG4gIGZ1bmN0aW9uIFNvdXJjZU1hcENvbnN1bWVyX3NvdXJjZUNvbnRlbnRGb3IoYVNvdXJjZSwgbnVsbE9uTWlzc2luZykge1xuICAgIGlmICghdGhpcy5zb3VyY2VzQ29udGVudCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuc291cmNlUm9vdCAhPSBudWxsKSB7XG4gICAgICBhU291cmNlID0gdXRpbC5yZWxhdGl2ZSh0aGlzLnNvdXJjZVJvb3QsIGFTb3VyY2UpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLl9zb3VyY2VzLmhhcyhhU291cmNlKSkge1xuICAgICAgcmV0dXJuIHRoaXMuc291cmNlc0NvbnRlbnRbdGhpcy5fc291cmNlcy5pbmRleE9mKGFTb3VyY2UpXTtcbiAgICB9XG5cbiAgICB2YXIgdXJsO1xuICAgIGlmICh0aGlzLnNvdXJjZVJvb3QgIT0gbnVsbFxuICAgICAgICAmJiAodXJsID0gdXRpbC51cmxQYXJzZSh0aGlzLnNvdXJjZVJvb3QpKSkge1xuICAgICAgLy8gWFhYOiBmaWxlOi8vIFVSSXMgYW5kIGFic29sdXRlIHBhdGhzIGxlYWQgdG8gdW5leHBlY3RlZCBiZWhhdmlvciBmb3JcbiAgICAgIC8vIG1hbnkgdXNlcnMuIFdlIGNhbiBoZWxwIHRoZW0gb3V0IHdoZW4gdGhleSBleHBlY3QgZmlsZTovLyBVUklzIHRvXG4gICAgICAvLyBiZWhhdmUgbGlrZSBpdCB3b3VsZCBpZiB0aGV5IHdlcmUgcnVubmluZyBhIGxvY2FsIEhUVFAgc2VydmVyLiBTZWVcbiAgICAgIC8vIGh0dHBzOi8vYnVnemlsbGEubW96aWxsYS5vcmcvc2hvd19idWcuY2dpP2lkPTg4NTU5Ny5cbiAgICAgIHZhciBmaWxlVXJpQWJzUGF0aCA9IGFTb3VyY2UucmVwbGFjZSgvXmZpbGU6XFwvXFwvLywgXCJcIik7XG4gICAgICBpZiAodXJsLnNjaGVtZSA9PSBcImZpbGVcIlxuICAgICAgICAgICYmIHRoaXMuX3NvdXJjZXMuaGFzKGZpbGVVcmlBYnNQYXRoKSkge1xuICAgICAgICByZXR1cm4gdGhpcy5zb3VyY2VzQ29udGVudFt0aGlzLl9zb3VyY2VzLmluZGV4T2YoZmlsZVVyaUFic1BhdGgpXVxuICAgICAgfVxuXG4gICAgICBpZiAoKCF1cmwucGF0aCB8fCB1cmwucGF0aCA9PSBcIi9cIilcbiAgICAgICAgICAmJiB0aGlzLl9zb3VyY2VzLmhhcyhcIi9cIiArIGFTb3VyY2UpKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnNvdXJjZXNDb250ZW50W3RoaXMuX3NvdXJjZXMuaW5kZXhPZihcIi9cIiArIGFTb3VyY2UpXTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBUaGlzIGZ1bmN0aW9uIGlzIHVzZWQgcmVjdXJzaXZlbHkgZnJvbVxuICAgIC8vIEluZGV4ZWRTb3VyY2VNYXBDb25zdW1lci5wcm90b3R5cGUuc291cmNlQ29udGVudEZvci4gSW4gdGhhdCBjYXNlLCB3ZVxuICAgIC8vIGRvbid0IHdhbnQgdG8gdGhyb3cgaWYgd2UgY2FuJ3QgZmluZCB0aGUgc291cmNlIC0gd2UganVzdCB3YW50IHRvXG4gICAgLy8gcmV0dXJuIG51bGwsIHNvIHdlIHByb3ZpZGUgYSBmbGFnIHRvIGV4aXQgZ3JhY2VmdWxseS5cbiAgICBpZiAobnVsbE9uTWlzc2luZykge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdcIicgKyBhU291cmNlICsgJ1wiIGlzIG5vdCBpbiB0aGUgU291cmNlTWFwLicpO1xuICAgIH1cbiAgfTtcblxuLyoqXG4gKiBSZXR1cm5zIHRoZSBnZW5lcmF0ZWQgbGluZSBhbmQgY29sdW1uIGluZm9ybWF0aW9uIGZvciB0aGUgb3JpZ2luYWwgc291cmNlLFxuICogbGluZSwgYW5kIGNvbHVtbiBwb3NpdGlvbnMgcHJvdmlkZWQuIFRoZSBvbmx5IGFyZ3VtZW50IGlzIGFuIG9iamVjdCB3aXRoXG4gKiB0aGUgZm9sbG93aW5nIHByb3BlcnRpZXM6XG4gKlxuICogICAtIHNvdXJjZTogVGhlIGZpbGVuYW1lIG9mIHRoZSBvcmlnaW5hbCBzb3VyY2UuXG4gKiAgIC0gbGluZTogVGhlIGxpbmUgbnVtYmVyIGluIHRoZSBvcmlnaW5hbCBzb3VyY2UuXG4gKiAgIC0gY29sdW1uOiBUaGUgY29sdW1uIG51bWJlciBpbiB0aGUgb3JpZ2luYWwgc291cmNlLlxuICogICAtIGJpYXM6IEVpdGhlciAnU291cmNlTWFwQ29uc3VtZXIuR1JFQVRFU1RfTE9XRVJfQk9VTkQnIG9yXG4gKiAgICAgJ1NvdXJjZU1hcENvbnN1bWVyLkxFQVNUX1VQUEVSX0JPVU5EJy4gU3BlY2lmaWVzIHdoZXRoZXIgdG8gcmV0dXJuIHRoZVxuICogICAgIGNsb3Nlc3QgZWxlbWVudCB0aGF0IGlzIHNtYWxsZXIgdGhhbiBvciBncmVhdGVyIHRoYW4gdGhlIG9uZSB3ZSBhcmVcbiAqICAgICBzZWFyY2hpbmcgZm9yLCByZXNwZWN0aXZlbHksIGlmIHRoZSBleGFjdCBlbGVtZW50IGNhbm5vdCBiZSBmb3VuZC5cbiAqICAgICBEZWZhdWx0cyB0byAnU291cmNlTWFwQ29uc3VtZXIuR1JFQVRFU1RfTE9XRVJfQk9VTkQnLlxuICpcbiAqIGFuZCBhbiBvYmplY3QgaXMgcmV0dXJuZWQgd2l0aCB0aGUgZm9sbG93aW5nIHByb3BlcnRpZXM6XG4gKlxuICogICAtIGxpbmU6IFRoZSBsaW5lIG51bWJlciBpbiB0aGUgZ2VuZXJhdGVkIHNvdXJjZSwgb3IgbnVsbC5cbiAqICAgLSBjb2x1bW46IFRoZSBjb2x1bW4gbnVtYmVyIGluIHRoZSBnZW5lcmF0ZWQgc291cmNlLCBvciBudWxsLlxuICovXG5CYXNpY1NvdXJjZU1hcENvbnN1bWVyLnByb3RvdHlwZS5nZW5lcmF0ZWRQb3NpdGlvbkZvciA9XG4gIGZ1bmN0aW9uIFNvdXJjZU1hcENvbnN1bWVyX2dlbmVyYXRlZFBvc2l0aW9uRm9yKGFBcmdzKSB7XG4gICAgdmFyIHNvdXJjZSA9IHV0aWwuZ2V0QXJnKGFBcmdzLCAnc291cmNlJyk7XG4gICAgaWYgKHRoaXMuc291cmNlUm9vdCAhPSBudWxsKSB7XG4gICAgICBzb3VyY2UgPSB1dGlsLnJlbGF0aXZlKHRoaXMuc291cmNlUm9vdCwgc291cmNlKTtcbiAgICB9XG4gICAgaWYgKCF0aGlzLl9zb3VyY2VzLmhhcyhzb3VyY2UpKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBsaW5lOiBudWxsLFxuICAgICAgICBjb2x1bW46IG51bGwsXG4gICAgICAgIGxhc3RDb2x1bW46IG51bGxcbiAgICAgIH07XG4gICAgfVxuICAgIHNvdXJjZSA9IHRoaXMuX3NvdXJjZXMuaW5kZXhPZihzb3VyY2UpO1xuXG4gICAgdmFyIG5lZWRsZSA9IHtcbiAgICAgIHNvdXJjZTogc291cmNlLFxuICAgICAgb3JpZ2luYWxMaW5lOiB1dGlsLmdldEFyZyhhQXJncywgJ2xpbmUnKSxcbiAgICAgIG9yaWdpbmFsQ29sdW1uOiB1dGlsLmdldEFyZyhhQXJncywgJ2NvbHVtbicpXG4gICAgfTtcblxuICAgIHZhciBpbmRleCA9IHRoaXMuX2ZpbmRNYXBwaW5nKFxuICAgICAgbmVlZGxlLFxuICAgICAgdGhpcy5fb3JpZ2luYWxNYXBwaW5ncyxcbiAgICAgIFwib3JpZ2luYWxMaW5lXCIsXG4gICAgICBcIm9yaWdpbmFsQ29sdW1uXCIsXG4gICAgICB1dGlsLmNvbXBhcmVCeU9yaWdpbmFsUG9zaXRpb25zLFxuICAgICAgdXRpbC5nZXRBcmcoYUFyZ3MsICdiaWFzJywgU291cmNlTWFwQ29uc3VtZXIuR1JFQVRFU1RfTE9XRVJfQk9VTkQpXG4gICAgKTtcblxuICAgIGlmIChpbmRleCA+PSAwKSB7XG4gICAgICB2YXIgbWFwcGluZyA9IHRoaXMuX29yaWdpbmFsTWFwcGluZ3NbaW5kZXhdO1xuXG4gICAgICBpZiAobWFwcGluZy5zb3VyY2UgPT09IG5lZWRsZS5zb3VyY2UpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBsaW5lOiB1dGlsLmdldEFyZyhtYXBwaW5nLCAnZ2VuZXJhdGVkTGluZScsIG51bGwpLFxuICAgICAgICAgIGNvbHVtbjogdXRpbC5nZXRBcmcobWFwcGluZywgJ2dlbmVyYXRlZENvbHVtbicsIG51bGwpLFxuICAgICAgICAgIGxhc3RDb2x1bW46IHV0aWwuZ2V0QXJnKG1hcHBpbmcsICdsYXN0R2VuZXJhdGVkQ29sdW1uJywgbnVsbClcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgbGluZTogbnVsbCxcbiAgICAgIGNvbHVtbjogbnVsbCxcbiAgICAgIGxhc3RDb2x1bW46IG51bGxcbiAgICB9O1xuICB9O1xuXG5leHBvcnRzLkJhc2ljU291cmNlTWFwQ29uc3VtZXIgPSBCYXNpY1NvdXJjZU1hcENvbnN1bWVyO1xuXG4vKipcbiAqIEFuIEluZGV4ZWRTb3VyY2VNYXBDb25zdW1lciBpbnN0YW5jZSByZXByZXNlbnRzIGEgcGFyc2VkIHNvdXJjZSBtYXAgd2hpY2hcbiAqIHdlIGNhbiBxdWVyeSBmb3IgaW5mb3JtYXRpb24uIEl0IGRpZmZlcnMgZnJvbSBCYXNpY1NvdXJjZU1hcENvbnN1bWVyIGluXG4gKiB0aGF0IGl0IHRha2VzIFwiaW5kZXhlZFwiIHNvdXJjZSBtYXBzIChpLmUuIG9uZXMgd2l0aCBhIFwic2VjdGlvbnNcIiBmaWVsZCkgYXNcbiAqIGlucHV0LlxuICpcbiAqIFRoZSBvbmx5IHBhcmFtZXRlciBpcyBhIHJhdyBzb3VyY2UgbWFwIChlaXRoZXIgYXMgYSBKU09OIHN0cmluZywgb3IgYWxyZWFkeVxuICogcGFyc2VkIHRvIGFuIG9iamVjdCkuIEFjY29yZGluZyB0byB0aGUgc3BlYyBmb3IgaW5kZXhlZCBzb3VyY2UgbWFwcywgdGhleVxuICogaGF2ZSB0aGUgZm9sbG93aW5nIGF0dHJpYnV0ZXM6XG4gKlxuICogICAtIHZlcnNpb246IFdoaWNoIHZlcnNpb24gb2YgdGhlIHNvdXJjZSBtYXAgc3BlYyB0aGlzIG1hcCBpcyBmb2xsb3dpbmcuXG4gKiAgIC0gZmlsZTogT3B0aW9uYWwuIFRoZSBnZW5lcmF0ZWQgZmlsZSB0aGlzIHNvdXJjZSBtYXAgaXMgYXNzb2NpYXRlZCB3aXRoLlxuICogICAtIHNlY3Rpb25zOiBBIGxpc3Qgb2Ygc2VjdGlvbiBkZWZpbml0aW9ucy5cbiAqXG4gKiBFYWNoIHZhbHVlIHVuZGVyIHRoZSBcInNlY3Rpb25zXCIgZmllbGQgaGFzIHR3byBmaWVsZHM6XG4gKiAgIC0gb2Zmc2V0OiBUaGUgb2Zmc2V0IGludG8gdGhlIG9yaWdpbmFsIHNwZWNpZmllZCBhdCB3aGljaCB0aGlzIHNlY3Rpb25cbiAqICAgICAgIGJlZ2lucyB0byBhcHBseSwgZGVmaW5lZCBhcyBhbiBvYmplY3Qgd2l0aCBhIFwibGluZVwiIGFuZCBcImNvbHVtblwiXG4gKiAgICAgICBmaWVsZC5cbiAqICAgLSBtYXA6IEEgc291cmNlIG1hcCBkZWZpbml0aW9uLiBUaGlzIHNvdXJjZSBtYXAgY291bGQgYWxzbyBiZSBpbmRleGVkLFxuICogICAgICAgYnV0IGRvZXNuJ3QgaGF2ZSB0byBiZS5cbiAqXG4gKiBJbnN0ZWFkIG9mIHRoZSBcIm1hcFwiIGZpZWxkLCBpdCdzIGFsc28gcG9zc2libGUgdG8gaGF2ZSBhIFwidXJsXCIgZmllbGRcbiAqIHNwZWNpZnlpbmcgYSBVUkwgdG8gcmV0cmlldmUgYSBzb3VyY2UgbWFwIGZyb20sIGJ1dCB0aGF0J3MgY3VycmVudGx5XG4gKiB1bnN1cHBvcnRlZC5cbiAqXG4gKiBIZXJlJ3MgYW4gZXhhbXBsZSBzb3VyY2UgbWFwLCB0YWtlbiBmcm9tIHRoZSBzb3VyY2UgbWFwIHNwZWNbMF0sIGJ1dFxuICogbW9kaWZpZWQgdG8gb21pdCBhIHNlY3Rpb24gd2hpY2ggdXNlcyB0aGUgXCJ1cmxcIiBmaWVsZC5cbiAqXG4gKiAge1xuICogICAgdmVyc2lvbiA6IDMsXG4gKiAgICBmaWxlOiBcImFwcC5qc1wiLFxuICogICAgc2VjdGlvbnM6IFt7XG4gKiAgICAgIG9mZnNldDoge2xpbmU6MTAwLCBjb2x1bW46MTB9LFxuICogICAgICBtYXA6IHtcbiAqICAgICAgICB2ZXJzaW9uIDogMyxcbiAqICAgICAgICBmaWxlOiBcInNlY3Rpb24uanNcIixcbiAqICAgICAgICBzb3VyY2VzOiBbXCJmb28uanNcIiwgXCJiYXIuanNcIl0sXG4gKiAgICAgICAgbmFtZXM6IFtcInNyY1wiLCBcIm1hcHNcIiwgXCJhcmVcIiwgXCJmdW5cIl0sXG4gKiAgICAgICAgbWFwcGluZ3M6IFwiQUFBQSxFOztBQkNERTtcIlxuICogICAgICB9XG4gKiAgICB9XSxcbiAqICB9XG4gKlxuICogWzBdOiBodHRwczovL2RvY3MuZ29vZ2xlLmNvbS9kb2N1bWVudC9kLzFVMVJHQWVoUXdSeXBVVG92RjFLUmxwaU9GemUwYi1fMmdjNmZBSDBLWTBrL2VkaXQjaGVhZGluZz1oLjUzNWVzM3hlcHJndFxuICovXG5mdW5jdGlvbiBJbmRleGVkU291cmNlTWFwQ29uc3VtZXIoYVNvdXJjZU1hcCkge1xuICB2YXIgc291cmNlTWFwID0gYVNvdXJjZU1hcDtcbiAgaWYgKHR5cGVvZiBhU291cmNlTWFwID09PSAnc3RyaW5nJykge1xuICAgIHNvdXJjZU1hcCA9IEpTT04ucGFyc2UoYVNvdXJjZU1hcC5yZXBsYWNlKC9eXFwpXFxdXFx9Jy8sICcnKSk7XG4gIH1cblxuICB2YXIgdmVyc2lvbiA9IHV0aWwuZ2V0QXJnKHNvdXJjZU1hcCwgJ3ZlcnNpb24nKTtcbiAgdmFyIHNlY3Rpb25zID0gdXRpbC5nZXRBcmcoc291cmNlTWFwLCAnc2VjdGlvbnMnKTtcblxuICBpZiAodmVyc2lvbiAhPSB0aGlzLl92ZXJzaW9uKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdVbnN1cHBvcnRlZCB2ZXJzaW9uOiAnICsgdmVyc2lvbik7XG4gIH1cblxuICB0aGlzLl9zb3VyY2VzID0gbmV3IEFycmF5U2V0KCk7XG4gIHRoaXMuX25hbWVzID0gbmV3IEFycmF5U2V0KCk7XG5cbiAgdmFyIGxhc3RPZmZzZXQgPSB7XG4gICAgbGluZTogLTEsXG4gICAgY29sdW1uOiAwXG4gIH07XG4gIHRoaXMuX3NlY3Rpb25zID0gc2VjdGlvbnMubWFwKGZ1bmN0aW9uIChzKSB7XG4gICAgaWYgKHMudXJsKSB7XG4gICAgICAvLyBUaGUgdXJsIGZpZWxkIHdpbGwgcmVxdWlyZSBzdXBwb3J0IGZvciBhc3luY2hyb25pY2l0eS5cbiAgICAgIC8vIFNlZSBodHRwczovL2dpdGh1Yi5jb20vbW96aWxsYS9zb3VyY2UtbWFwL2lzc3Vlcy8xNlxuICAgICAgdGhyb3cgbmV3IEVycm9yKCdTdXBwb3J0IGZvciB1cmwgZmllbGQgaW4gc2VjdGlvbnMgbm90IGltcGxlbWVudGVkLicpO1xuICAgIH1cbiAgICB2YXIgb2Zmc2V0ID0gdXRpbC5nZXRBcmcocywgJ29mZnNldCcpO1xuICAgIHZhciBvZmZzZXRMaW5lID0gdXRpbC5nZXRBcmcob2Zmc2V0LCAnbGluZScpO1xuICAgIHZhciBvZmZzZXRDb2x1bW4gPSB1dGlsLmdldEFyZyhvZmZzZXQsICdjb2x1bW4nKTtcblxuICAgIGlmIChvZmZzZXRMaW5lIDwgbGFzdE9mZnNldC5saW5lIHx8XG4gICAgICAgIChvZmZzZXRMaW5lID09PSBsYXN0T2Zmc2V0LmxpbmUgJiYgb2Zmc2V0Q29sdW1uIDwgbGFzdE9mZnNldC5jb2x1bW4pKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1NlY3Rpb24gb2Zmc2V0cyBtdXN0IGJlIG9yZGVyZWQgYW5kIG5vbi1vdmVybGFwcGluZy4nKTtcbiAgICB9XG4gICAgbGFzdE9mZnNldCA9IG9mZnNldDtcblxuICAgIHJldHVybiB7XG4gICAgICBnZW5lcmF0ZWRPZmZzZXQ6IHtcbiAgICAgICAgLy8gVGhlIG9mZnNldCBmaWVsZHMgYXJlIDAtYmFzZWQsIGJ1dCB3ZSB1c2UgMS1iYXNlZCBpbmRpY2VzIHdoZW5cbiAgICAgICAgLy8gZW5jb2RpbmcvZGVjb2RpbmcgZnJvbSBWTFEuXG4gICAgICAgIGdlbmVyYXRlZExpbmU6IG9mZnNldExpbmUgKyAxLFxuICAgICAgICBnZW5lcmF0ZWRDb2x1bW46IG9mZnNldENvbHVtbiArIDFcbiAgICAgIH0sXG4gICAgICBjb25zdW1lcjogbmV3IFNvdXJjZU1hcENvbnN1bWVyKHV0aWwuZ2V0QXJnKHMsICdtYXAnKSlcbiAgICB9XG4gIH0pO1xufVxuXG5JbmRleGVkU291cmNlTWFwQ29uc3VtZXIucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShTb3VyY2VNYXBDb25zdW1lci5wcm90b3R5cGUpO1xuSW5kZXhlZFNvdXJjZU1hcENvbnN1bWVyLnByb3RvdHlwZS5jb25zdHJ1Y3RvciA9IFNvdXJjZU1hcENvbnN1bWVyO1xuXG4vKipcbiAqIFRoZSB2ZXJzaW9uIG9mIHRoZSBzb3VyY2UgbWFwcGluZyBzcGVjIHRoYXQgd2UgYXJlIGNvbnN1bWluZy5cbiAqL1xuSW5kZXhlZFNvdXJjZU1hcENvbnN1bWVyLnByb3RvdHlwZS5fdmVyc2lvbiA9IDM7XG5cbi8qKlxuICogVGhlIGxpc3Qgb2Ygb3JpZ2luYWwgc291cmNlcy5cbiAqL1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KEluZGV4ZWRTb3VyY2VNYXBDb25zdW1lci5wcm90b3R5cGUsICdzb3VyY2VzJywge1xuICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgc291cmNlcyA9IFtdO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5fc2VjdGlvbnMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgdGhpcy5fc2VjdGlvbnNbaV0uY29uc3VtZXIuc291cmNlcy5sZW5ndGg7IGorKykge1xuICAgICAgICBzb3VyY2VzLnB1c2godGhpcy5fc2VjdGlvbnNbaV0uY29uc3VtZXIuc291cmNlc1tqXSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBzb3VyY2VzO1xuICB9XG59KTtcblxuLyoqXG4gKiBSZXR1cm5zIHRoZSBvcmlnaW5hbCBzb3VyY2UsIGxpbmUsIGFuZCBjb2x1bW4gaW5mb3JtYXRpb24gZm9yIHRoZSBnZW5lcmF0ZWRcbiAqIHNvdXJjZSdzIGxpbmUgYW5kIGNvbHVtbiBwb3NpdGlvbnMgcHJvdmlkZWQuIFRoZSBvbmx5IGFyZ3VtZW50IGlzIGFuIG9iamVjdFxuICogd2l0aCB0aGUgZm9sbG93aW5nIHByb3BlcnRpZXM6XG4gKlxuICogICAtIGxpbmU6IFRoZSBsaW5lIG51bWJlciBpbiB0aGUgZ2VuZXJhdGVkIHNvdXJjZS5cbiAqICAgLSBjb2x1bW46IFRoZSBjb2x1bW4gbnVtYmVyIGluIHRoZSBnZW5lcmF0ZWQgc291cmNlLlxuICpcbiAqIGFuZCBhbiBvYmplY3QgaXMgcmV0dXJuZWQgd2l0aCB0aGUgZm9sbG93aW5nIHByb3BlcnRpZXM6XG4gKlxuICogICAtIHNvdXJjZTogVGhlIG9yaWdpbmFsIHNvdXJjZSBmaWxlLCBvciBudWxsLlxuICogICAtIGxpbmU6IFRoZSBsaW5lIG51bWJlciBpbiB0aGUgb3JpZ2luYWwgc291cmNlLCBvciBudWxsLlxuICogICAtIGNvbHVtbjogVGhlIGNvbHVtbiBudW1iZXIgaW4gdGhlIG9yaWdpbmFsIHNvdXJjZSwgb3IgbnVsbC5cbiAqICAgLSBuYW1lOiBUaGUgb3JpZ2luYWwgaWRlbnRpZmllciwgb3IgbnVsbC5cbiAqL1xuSW5kZXhlZFNvdXJjZU1hcENvbnN1bWVyLnByb3RvdHlwZS5vcmlnaW5hbFBvc2l0aW9uRm9yID1cbiAgZnVuY3Rpb24gSW5kZXhlZFNvdXJjZU1hcENvbnN1bWVyX29yaWdpbmFsUG9zaXRpb25Gb3IoYUFyZ3MpIHtcbiAgICB2YXIgbmVlZGxlID0ge1xuICAgICAgZ2VuZXJhdGVkTGluZTogdXRpbC5nZXRBcmcoYUFyZ3MsICdsaW5lJyksXG4gICAgICBnZW5lcmF0ZWRDb2x1bW46IHV0aWwuZ2V0QXJnKGFBcmdzLCAnY29sdW1uJylcbiAgICB9O1xuXG4gICAgLy8gRmluZCB0aGUgc2VjdGlvbiBjb250YWluaW5nIHRoZSBnZW5lcmF0ZWQgcG9zaXRpb24gd2UncmUgdHJ5aW5nIHRvIG1hcFxuICAgIC8vIHRvIGFuIG9yaWdpbmFsIHBvc2l0aW9uLlxuICAgIHZhciBzZWN0aW9uSW5kZXggPSBiaW5hcnlTZWFyY2guc2VhcmNoKG5lZWRsZSwgdGhpcy5fc2VjdGlvbnMsXG4gICAgICBmdW5jdGlvbihuZWVkbGUsIHNlY3Rpb24pIHtcbiAgICAgICAgdmFyIGNtcCA9IG5lZWRsZS5nZW5lcmF0ZWRMaW5lIC0gc2VjdGlvbi5nZW5lcmF0ZWRPZmZzZXQuZ2VuZXJhdGVkTGluZTtcbiAgICAgICAgaWYgKGNtcCkge1xuICAgICAgICAgIHJldHVybiBjbXA7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gKG5lZWRsZS5nZW5lcmF0ZWRDb2x1bW4gLVxuICAgICAgICAgICAgICAgIHNlY3Rpb24uZ2VuZXJhdGVkT2Zmc2V0LmdlbmVyYXRlZENvbHVtbik7XG4gICAgICB9KTtcbiAgICB2YXIgc2VjdGlvbiA9IHRoaXMuX3NlY3Rpb25zW3NlY3Rpb25JbmRleF07XG5cbiAgICBpZiAoIXNlY3Rpb24pIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHNvdXJjZTogbnVsbCxcbiAgICAgICAgbGluZTogbnVsbCxcbiAgICAgICAgY29sdW1uOiBudWxsLFxuICAgICAgICBuYW1lOiBudWxsXG4gICAgICB9O1xuICAgIH1cblxuICAgIHJldHVybiBzZWN0aW9uLmNvbnN1bWVyLm9yaWdpbmFsUG9zaXRpb25Gb3Ioe1xuICAgICAgbGluZTogbmVlZGxlLmdlbmVyYXRlZExpbmUgLVxuICAgICAgICAoc2VjdGlvbi5nZW5lcmF0ZWRPZmZzZXQuZ2VuZXJhdGVkTGluZSAtIDEpLFxuICAgICAgY29sdW1uOiBuZWVkbGUuZ2VuZXJhdGVkQ29sdW1uIC1cbiAgICAgICAgKHNlY3Rpb24uZ2VuZXJhdGVkT2Zmc2V0LmdlbmVyYXRlZExpbmUgPT09IG5lZWRsZS5nZW5lcmF0ZWRMaW5lXG4gICAgICAgICA/IHNlY3Rpb24uZ2VuZXJhdGVkT2Zmc2V0LmdlbmVyYXRlZENvbHVtbiAtIDFcbiAgICAgICAgIDogMCksXG4gICAgICBiaWFzOiBhQXJncy5iaWFzXG4gICAgfSk7XG4gIH07XG5cbi8qKlxuICogUmV0dXJuIHRydWUgaWYgd2UgaGF2ZSB0aGUgc291cmNlIGNvbnRlbnQgZm9yIGV2ZXJ5IHNvdXJjZSBpbiB0aGUgc291cmNlXG4gKiBtYXAsIGZhbHNlIG90aGVyd2lzZS5cbiAqL1xuSW5kZXhlZFNvdXJjZU1hcENvbnN1bWVyLnByb3RvdHlwZS5oYXNDb250ZW50c09mQWxsU291cmNlcyA9XG4gIGZ1bmN0aW9uIEluZGV4ZWRTb3VyY2VNYXBDb25zdW1lcl9oYXNDb250ZW50c09mQWxsU291cmNlcygpIHtcbiAgICByZXR1cm4gdGhpcy5fc2VjdGlvbnMuZXZlcnkoZnVuY3Rpb24gKHMpIHtcbiAgICAgIHJldHVybiBzLmNvbnN1bWVyLmhhc0NvbnRlbnRzT2ZBbGxTb3VyY2VzKCk7XG4gICAgfSk7XG4gIH07XG5cbi8qKlxuICogUmV0dXJucyB0aGUgb3JpZ2luYWwgc291cmNlIGNvbnRlbnQuIFRoZSBvbmx5IGFyZ3VtZW50IGlzIHRoZSB1cmwgb2YgdGhlXG4gKiBvcmlnaW5hbCBzb3VyY2UgZmlsZS4gUmV0dXJucyBudWxsIGlmIG5vIG9yaWdpbmFsIHNvdXJjZSBjb250ZW50IGlzXG4gKiBhdmFpbGFibGUuXG4gKi9cbkluZGV4ZWRTb3VyY2VNYXBDb25zdW1lci5wcm90b3R5cGUuc291cmNlQ29udGVudEZvciA9XG4gIGZ1bmN0aW9uIEluZGV4ZWRTb3VyY2VNYXBDb25zdW1lcl9zb3VyY2VDb250ZW50Rm9yKGFTb3VyY2UsIG51bGxPbk1pc3NpbmcpIHtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuX3NlY3Rpb25zLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIgc2VjdGlvbiA9IHRoaXMuX3NlY3Rpb25zW2ldO1xuXG4gICAgICB2YXIgY29udGVudCA9IHNlY3Rpb24uY29uc3VtZXIuc291cmNlQ29udGVudEZvcihhU291cmNlLCB0cnVlKTtcbiAgICAgIGlmIChjb250ZW50KSB7XG4gICAgICAgIHJldHVybiBjb250ZW50O1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAobnVsbE9uTWlzc2luZykge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdcIicgKyBhU291cmNlICsgJ1wiIGlzIG5vdCBpbiB0aGUgU291cmNlTWFwLicpO1xuICAgIH1cbiAgfTtcblxuLyoqXG4gKiBSZXR1cm5zIHRoZSBnZW5lcmF0ZWQgbGluZSBhbmQgY29sdW1uIGluZm9ybWF0aW9uIGZvciB0aGUgb3JpZ2luYWwgc291cmNlLFxuICogbGluZSwgYW5kIGNvbHVtbiBwb3NpdGlvbnMgcHJvdmlkZWQuIFRoZSBvbmx5IGFyZ3VtZW50IGlzIGFuIG9iamVjdCB3aXRoXG4gKiB0aGUgZm9sbG93aW5nIHByb3BlcnRpZXM6XG4gKlxuICogICAtIHNvdXJjZTogVGhlIGZpbGVuYW1lIG9mIHRoZSBvcmlnaW5hbCBzb3VyY2UuXG4gKiAgIC0gbGluZTogVGhlIGxpbmUgbnVtYmVyIGluIHRoZSBvcmlnaW5hbCBzb3VyY2UuXG4gKiAgIC0gY29sdW1uOiBUaGUgY29sdW1uIG51bWJlciBpbiB0aGUgb3JpZ2luYWwgc291cmNlLlxuICpcbiAqIGFuZCBhbiBvYmplY3QgaXMgcmV0dXJuZWQgd2l0aCB0aGUgZm9sbG93aW5nIHByb3BlcnRpZXM6XG4gKlxuICogICAtIGxpbmU6IFRoZSBsaW5lIG51bWJlciBpbiB0aGUgZ2VuZXJhdGVkIHNvdXJjZSwgb3IgbnVsbC5cbiAqICAgLSBjb2x1bW46IFRoZSBjb2x1bW4gbnVtYmVyIGluIHRoZSBnZW5lcmF0ZWQgc291cmNlLCBvciBudWxsLlxuICovXG5JbmRleGVkU291cmNlTWFwQ29uc3VtZXIucHJvdG90eXBlLmdlbmVyYXRlZFBvc2l0aW9uRm9yID1cbiAgZnVuY3Rpb24gSW5kZXhlZFNvdXJjZU1hcENvbnN1bWVyX2dlbmVyYXRlZFBvc2l0aW9uRm9yKGFBcmdzKSB7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLl9zZWN0aW9ucy5sZW5ndGg7IGkrKykge1xuICAgICAgdmFyIHNlY3Rpb24gPSB0aGlzLl9zZWN0aW9uc1tpXTtcblxuICAgICAgLy8gT25seSBjb25zaWRlciB0aGlzIHNlY3Rpb24gaWYgdGhlIHJlcXVlc3RlZCBzb3VyY2UgaXMgaW4gdGhlIGxpc3Qgb2ZcbiAgICAgIC8vIHNvdXJjZXMgb2YgdGhlIGNvbnN1bWVyLlxuICAgICAgaWYgKHNlY3Rpb24uY29uc3VtZXIuc291cmNlcy5pbmRleE9mKHV0aWwuZ2V0QXJnKGFBcmdzLCAnc291cmNlJykpID09PSAtMSkge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIHZhciBnZW5lcmF0ZWRQb3NpdGlvbiA9IHNlY3Rpb24uY29uc3VtZXIuZ2VuZXJhdGVkUG9zaXRpb25Gb3IoYUFyZ3MpO1xuICAgICAgaWYgKGdlbmVyYXRlZFBvc2l0aW9uKSB7XG4gICAgICAgIHZhciByZXQgPSB7XG4gICAgICAgICAgbGluZTogZ2VuZXJhdGVkUG9zaXRpb24ubGluZSArXG4gICAgICAgICAgICAoc2VjdGlvbi5nZW5lcmF0ZWRPZmZzZXQuZ2VuZXJhdGVkTGluZSAtIDEpLFxuICAgICAgICAgIGNvbHVtbjogZ2VuZXJhdGVkUG9zaXRpb24uY29sdW1uICtcbiAgICAgICAgICAgIChzZWN0aW9uLmdlbmVyYXRlZE9mZnNldC5nZW5lcmF0ZWRMaW5lID09PSBnZW5lcmF0ZWRQb3NpdGlvbi5saW5lXG4gICAgICAgICAgICAgPyBzZWN0aW9uLmdlbmVyYXRlZE9mZnNldC5nZW5lcmF0ZWRDb2x1bW4gLSAxXG4gICAgICAgICAgICAgOiAwKVxuICAgICAgICB9O1xuICAgICAgICByZXR1cm4gcmV0O1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBsaW5lOiBudWxsLFxuICAgICAgY29sdW1uOiBudWxsXG4gICAgfTtcbiAgfTtcblxuLyoqXG4gKiBQYXJzZSB0aGUgbWFwcGluZ3MgaW4gYSBzdHJpbmcgaW4gdG8gYSBkYXRhIHN0cnVjdHVyZSB3aGljaCB3ZSBjYW4gZWFzaWx5XG4gKiBxdWVyeSAodGhlIG9yZGVyZWQgYXJyYXlzIGluIHRoZSBgdGhpcy5fX2dlbmVyYXRlZE1hcHBpbmdzYCBhbmRcbiAqIGB0aGlzLl9fb3JpZ2luYWxNYXBwaW5nc2AgcHJvcGVydGllcykuXG4gKi9cbkluZGV4ZWRTb3VyY2VNYXBDb25zdW1lci5wcm90b3R5cGUuX3BhcnNlTWFwcGluZ3MgPVxuICBmdW5jdGlvbiBJbmRleGVkU291cmNlTWFwQ29uc3VtZXJfcGFyc2VNYXBwaW5ncyhhU3RyLCBhU291cmNlUm9vdCkge1xuICAgIHRoaXMuX19nZW5lcmF0ZWRNYXBwaW5ncyA9IFtdO1xuICAgIHRoaXMuX19vcmlnaW5hbE1hcHBpbmdzID0gW107XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLl9zZWN0aW9ucy5sZW5ndGg7IGkrKykge1xuICAgICAgdmFyIHNlY3Rpb24gPSB0aGlzLl9zZWN0aW9uc1tpXTtcbiAgICAgIHZhciBzZWN0aW9uTWFwcGluZ3MgPSBzZWN0aW9uLmNvbnN1bWVyLl9nZW5lcmF0ZWRNYXBwaW5ncztcbiAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgc2VjdGlvbk1hcHBpbmdzLmxlbmd0aDsgaisrKSB7XG4gICAgICAgIHZhciBtYXBwaW5nID0gc2VjdGlvbk1hcHBpbmdzW2pdO1xuXG4gICAgICAgIHZhciBzb3VyY2UgPSBzZWN0aW9uLmNvbnN1bWVyLl9zb3VyY2VzLmF0KG1hcHBpbmcuc291cmNlKTtcbiAgICAgICAgaWYgKHNlY3Rpb24uY29uc3VtZXIuc291cmNlUm9vdCAhPT0gbnVsbCkge1xuICAgICAgICAgIHNvdXJjZSA9IHV0aWwuam9pbihzZWN0aW9uLmNvbnN1bWVyLnNvdXJjZVJvb3QsIHNvdXJjZSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fc291cmNlcy5hZGQoc291cmNlKTtcbiAgICAgICAgc291cmNlID0gdGhpcy5fc291cmNlcy5pbmRleE9mKHNvdXJjZSk7XG5cbiAgICAgICAgdmFyIG5hbWUgPSBzZWN0aW9uLmNvbnN1bWVyLl9uYW1lcy5hdChtYXBwaW5nLm5hbWUpO1xuICAgICAgICB0aGlzLl9uYW1lcy5hZGQobmFtZSk7XG4gICAgICAgIG5hbWUgPSB0aGlzLl9uYW1lcy5pbmRleE9mKG5hbWUpO1xuXG4gICAgICAgIC8vIFRoZSBtYXBwaW5ncyBjb21pbmcgZnJvbSB0aGUgY29uc3VtZXIgZm9yIHRoZSBzZWN0aW9uIGhhdmVcbiAgICAgICAgLy8gZ2VuZXJhdGVkIHBvc2l0aW9ucyByZWxhdGl2ZSB0byB0aGUgc3RhcnQgb2YgdGhlIHNlY3Rpb24sIHNvIHdlXG4gICAgICAgIC8vIG5lZWQgdG8gb2Zmc2V0IHRoZW0gdG8gYmUgcmVsYXRpdmUgdG8gdGhlIHN0YXJ0IG9mIHRoZSBjb25jYXRlbmF0ZWRcbiAgICAgICAgLy8gZ2VuZXJhdGVkIGZpbGUuXG4gICAgICAgIHZhciBhZGp1c3RlZE1hcHBpbmcgPSB7XG4gICAgICAgICAgc291cmNlOiBzb3VyY2UsXG4gICAgICAgICAgZ2VuZXJhdGVkTGluZTogbWFwcGluZy5nZW5lcmF0ZWRMaW5lICtcbiAgICAgICAgICAgIChzZWN0aW9uLmdlbmVyYXRlZE9mZnNldC5nZW5lcmF0ZWRMaW5lIC0gMSksXG4gICAgICAgICAgZ2VuZXJhdGVkQ29sdW1uOiBtYXBwaW5nLmdlbmVyYXRlZENvbHVtbiArXG4gICAgICAgICAgICAoc2VjdGlvbi5nZW5lcmF0ZWRPZmZzZXQuZ2VuZXJhdGVkTGluZSA9PT0gbWFwcGluZy5nZW5lcmF0ZWRMaW5lXG4gICAgICAgICAgICA/IHNlY3Rpb24uZ2VuZXJhdGVkT2Zmc2V0LmdlbmVyYXRlZENvbHVtbiAtIDFcbiAgICAgICAgICAgIDogMCksXG4gICAgICAgICAgb3JpZ2luYWxMaW5lOiBtYXBwaW5nLm9yaWdpbmFsTGluZSxcbiAgICAgICAgICBvcmlnaW5hbENvbHVtbjogbWFwcGluZy5vcmlnaW5hbENvbHVtbixcbiAgICAgICAgICBuYW1lOiBuYW1lXG4gICAgICAgIH07XG5cbiAgICAgICAgdGhpcy5fX2dlbmVyYXRlZE1hcHBpbmdzLnB1c2goYWRqdXN0ZWRNYXBwaW5nKTtcbiAgICAgICAgaWYgKHR5cGVvZiBhZGp1c3RlZE1hcHBpbmcub3JpZ2luYWxMaW5lID09PSAnbnVtYmVyJykge1xuICAgICAgICAgIHRoaXMuX19vcmlnaW5hbE1hcHBpbmdzLnB1c2goYWRqdXN0ZWRNYXBwaW5nKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHF1aWNrU29ydCh0aGlzLl9fZ2VuZXJhdGVkTWFwcGluZ3MsIHV0aWwuY29tcGFyZUJ5R2VuZXJhdGVkUG9zaXRpb25zRGVmbGF0ZWQpO1xuICAgIHF1aWNrU29ydCh0aGlzLl9fb3JpZ2luYWxNYXBwaW5ncywgdXRpbC5jb21wYXJlQnlPcmlnaW5hbFBvc2l0aW9ucyk7XG4gIH07XG5cbmV4cG9ydHMuSW5kZXhlZFNvdXJjZU1hcENvbnN1bWVyID0gSW5kZXhlZFNvdXJjZU1hcENvbnN1bWVyO1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9saWIvc291cmNlLW1hcC1jb25zdW1lci5qc1xuLy8gbW9kdWxlIGlkID0gN1xuLy8gbW9kdWxlIGNodW5rcyA9IDAiLCIvKiAtKi0gTW9kZToganM7IGpzLWluZGVudC1sZXZlbDogMjsgLSotICovXG4vKlxuICogQ29weXJpZ2h0IDIwMTEgTW96aWxsYSBGb3VuZGF0aW9uIGFuZCBjb250cmlidXRvcnNcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBOZXcgQlNEIGxpY2Vuc2UuIFNlZSBMSUNFTlNFIG9yOlxuICogaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL0JTRC0zLUNsYXVzZVxuICovXG5cbmV4cG9ydHMuR1JFQVRFU1RfTE9XRVJfQk9VTkQgPSAxO1xuZXhwb3J0cy5MRUFTVF9VUFBFUl9CT1VORCA9IDI7XG5cbi8qKlxuICogUmVjdXJzaXZlIGltcGxlbWVudGF0aW9uIG9mIGJpbmFyeSBzZWFyY2guXG4gKlxuICogQHBhcmFtIGFMb3cgSW5kaWNlcyBoZXJlIGFuZCBsb3dlciBkbyBub3QgY29udGFpbiB0aGUgbmVlZGxlLlxuICogQHBhcmFtIGFIaWdoIEluZGljZXMgaGVyZSBhbmQgaGlnaGVyIGRvIG5vdCBjb250YWluIHRoZSBuZWVkbGUuXG4gKiBAcGFyYW0gYU5lZWRsZSBUaGUgZWxlbWVudCBiZWluZyBzZWFyY2hlZCBmb3IuXG4gKiBAcGFyYW0gYUhheXN0YWNrIFRoZSBub24tZW1wdHkgYXJyYXkgYmVpbmcgc2VhcmNoZWQuXG4gKiBAcGFyYW0gYUNvbXBhcmUgRnVuY3Rpb24gd2hpY2ggdGFrZXMgdHdvIGVsZW1lbnRzIGFuZCByZXR1cm5zIC0xLCAwLCBvciAxLlxuICogQHBhcmFtIGFCaWFzIEVpdGhlciAnYmluYXJ5U2VhcmNoLkdSRUFURVNUX0xPV0VSX0JPVU5EJyBvclxuICogICAgICdiaW5hcnlTZWFyY2guTEVBU1RfVVBQRVJfQk9VTkQnLiBTcGVjaWZpZXMgd2hldGhlciB0byByZXR1cm4gdGhlXG4gKiAgICAgY2xvc2VzdCBlbGVtZW50IHRoYXQgaXMgc21hbGxlciB0aGFuIG9yIGdyZWF0ZXIgdGhhbiB0aGUgb25lIHdlIGFyZVxuICogICAgIHNlYXJjaGluZyBmb3IsIHJlc3BlY3RpdmVseSwgaWYgdGhlIGV4YWN0IGVsZW1lbnQgY2Fubm90IGJlIGZvdW5kLlxuICovXG5mdW5jdGlvbiByZWN1cnNpdmVTZWFyY2goYUxvdywgYUhpZ2gsIGFOZWVkbGUsIGFIYXlzdGFjaywgYUNvbXBhcmUsIGFCaWFzKSB7XG4gIC8vIFRoaXMgZnVuY3Rpb24gdGVybWluYXRlcyB3aGVuIG9uZSBvZiB0aGUgZm9sbG93aW5nIGlzIHRydWU6XG4gIC8vXG4gIC8vICAgMS4gV2UgZmluZCB0aGUgZXhhY3QgZWxlbWVudCB3ZSBhcmUgbG9va2luZyBmb3IuXG4gIC8vXG4gIC8vICAgMi4gV2UgZGlkIG5vdCBmaW5kIHRoZSBleGFjdCBlbGVtZW50LCBidXQgd2UgY2FuIHJldHVybiB0aGUgaW5kZXggb2ZcbiAgLy8gICAgICB0aGUgbmV4dC1jbG9zZXN0IGVsZW1lbnQuXG4gIC8vXG4gIC8vICAgMy4gV2UgZGlkIG5vdCBmaW5kIHRoZSBleGFjdCBlbGVtZW50LCBhbmQgdGhlcmUgaXMgbm8gbmV4dC1jbG9zZXN0XG4gIC8vICAgICAgZWxlbWVudCB0aGFuIHRoZSBvbmUgd2UgYXJlIHNlYXJjaGluZyBmb3IsIHNvIHdlIHJldHVybiAtMS5cbiAgdmFyIG1pZCA9IE1hdGguZmxvb3IoKGFIaWdoIC0gYUxvdykgLyAyKSArIGFMb3c7XG4gIHZhciBjbXAgPSBhQ29tcGFyZShhTmVlZGxlLCBhSGF5c3RhY2tbbWlkXSwgdHJ1ZSk7XG4gIGlmIChjbXAgPT09IDApIHtcbiAgICAvLyBGb3VuZCB0aGUgZWxlbWVudCB3ZSBhcmUgbG9va2luZyBmb3IuXG4gICAgcmV0dXJuIG1pZDtcbiAgfVxuICBlbHNlIGlmIChjbXAgPiAwKSB7XG4gICAgLy8gT3VyIG5lZWRsZSBpcyBncmVhdGVyIHRoYW4gYUhheXN0YWNrW21pZF0uXG4gICAgaWYgKGFIaWdoIC0gbWlkID4gMSkge1xuICAgICAgLy8gVGhlIGVsZW1lbnQgaXMgaW4gdGhlIHVwcGVyIGhhbGYuXG4gICAgICByZXR1cm4gcmVjdXJzaXZlU2VhcmNoKG1pZCwgYUhpZ2gsIGFOZWVkbGUsIGFIYXlzdGFjaywgYUNvbXBhcmUsIGFCaWFzKTtcbiAgICB9XG5cbiAgICAvLyBUaGUgZXhhY3QgbmVlZGxlIGVsZW1lbnQgd2FzIG5vdCBmb3VuZCBpbiB0aGlzIGhheXN0YWNrLiBEZXRlcm1pbmUgaWZcbiAgICAvLyB3ZSBhcmUgaW4gdGVybWluYXRpb24gY2FzZSAoMykgb3IgKDIpIGFuZCByZXR1cm4gdGhlIGFwcHJvcHJpYXRlIHRoaW5nLlxuICAgIGlmIChhQmlhcyA9PSBleHBvcnRzLkxFQVNUX1VQUEVSX0JPVU5EKSB7XG4gICAgICByZXR1cm4gYUhpZ2ggPCBhSGF5c3RhY2subGVuZ3RoID8gYUhpZ2ggOiAtMTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIG1pZDtcbiAgICB9XG4gIH1cbiAgZWxzZSB7XG4gICAgLy8gT3VyIG5lZWRsZSBpcyBsZXNzIHRoYW4gYUhheXN0YWNrW21pZF0uXG4gICAgaWYgKG1pZCAtIGFMb3cgPiAxKSB7XG4gICAgICAvLyBUaGUgZWxlbWVudCBpcyBpbiB0aGUgbG93ZXIgaGFsZi5cbiAgICAgIHJldHVybiByZWN1cnNpdmVTZWFyY2goYUxvdywgbWlkLCBhTmVlZGxlLCBhSGF5c3RhY2ssIGFDb21wYXJlLCBhQmlhcyk7XG4gICAgfVxuXG4gICAgLy8gd2UgYXJlIGluIHRlcm1pbmF0aW9uIGNhc2UgKDMpIG9yICgyKSBhbmQgcmV0dXJuIHRoZSBhcHByb3ByaWF0ZSB0aGluZy5cbiAgICBpZiAoYUJpYXMgPT0gZXhwb3J0cy5MRUFTVF9VUFBFUl9CT1VORCkge1xuICAgICAgcmV0dXJuIG1pZDtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGFMb3cgPCAwID8gLTEgOiBhTG93O1xuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIFRoaXMgaXMgYW4gaW1wbGVtZW50YXRpb24gb2YgYmluYXJ5IHNlYXJjaCB3aGljaCB3aWxsIGFsd2F5cyB0cnkgYW5kIHJldHVyblxuICogdGhlIGluZGV4IG9mIHRoZSBjbG9zZXN0IGVsZW1lbnQgaWYgdGhlcmUgaXMgbm8gZXhhY3QgaGl0LiBUaGlzIGlzIGJlY2F1c2VcbiAqIG1hcHBpbmdzIGJldHdlZW4gb3JpZ2luYWwgYW5kIGdlbmVyYXRlZCBsaW5lL2NvbCBwYWlycyBhcmUgc2luZ2xlIHBvaW50cyxcbiAqIGFuZCB0aGVyZSBpcyBhbiBpbXBsaWNpdCByZWdpb24gYmV0d2VlbiBlYWNoIG9mIHRoZW0sIHNvIGEgbWlzcyBqdXN0IG1lYW5zXG4gKiB0aGF0IHlvdSBhcmVuJ3Qgb24gdGhlIHZlcnkgc3RhcnQgb2YgYSByZWdpb24uXG4gKlxuICogQHBhcmFtIGFOZWVkbGUgVGhlIGVsZW1lbnQgeW91IGFyZSBsb29raW5nIGZvci5cbiAqIEBwYXJhbSBhSGF5c3RhY2sgVGhlIGFycmF5IHRoYXQgaXMgYmVpbmcgc2VhcmNoZWQuXG4gKiBAcGFyYW0gYUNvbXBhcmUgQSBmdW5jdGlvbiB3aGljaCB0YWtlcyB0aGUgbmVlZGxlIGFuZCBhbiBlbGVtZW50IGluIHRoZVxuICogICAgIGFycmF5IGFuZCByZXR1cm5zIC0xLCAwLCBvciAxIGRlcGVuZGluZyBvbiB3aGV0aGVyIHRoZSBuZWVkbGUgaXMgbGVzc1xuICogICAgIHRoYW4sIGVxdWFsIHRvLCBvciBncmVhdGVyIHRoYW4gdGhlIGVsZW1lbnQsIHJlc3BlY3RpdmVseS5cbiAqIEBwYXJhbSBhQmlhcyBFaXRoZXIgJ2JpbmFyeVNlYXJjaC5HUkVBVEVTVF9MT1dFUl9CT1VORCcgb3JcbiAqICAgICAnYmluYXJ5U2VhcmNoLkxFQVNUX1VQUEVSX0JPVU5EJy4gU3BlY2lmaWVzIHdoZXRoZXIgdG8gcmV0dXJuIHRoZVxuICogICAgIGNsb3Nlc3QgZWxlbWVudCB0aGF0IGlzIHNtYWxsZXIgdGhhbiBvciBncmVhdGVyIHRoYW4gdGhlIG9uZSB3ZSBhcmVcbiAqICAgICBzZWFyY2hpbmcgZm9yLCByZXNwZWN0aXZlbHksIGlmIHRoZSBleGFjdCBlbGVtZW50IGNhbm5vdCBiZSBmb3VuZC5cbiAqICAgICBEZWZhdWx0cyB0byAnYmluYXJ5U2VhcmNoLkdSRUFURVNUX0xPV0VSX0JPVU5EJy5cbiAqL1xuZXhwb3J0cy5zZWFyY2ggPSBmdW5jdGlvbiBzZWFyY2goYU5lZWRsZSwgYUhheXN0YWNrLCBhQ29tcGFyZSwgYUJpYXMpIHtcbiAgaWYgKGFIYXlzdGFjay5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gLTE7XG4gIH1cblxuICB2YXIgaW5kZXggPSByZWN1cnNpdmVTZWFyY2goLTEsIGFIYXlzdGFjay5sZW5ndGgsIGFOZWVkbGUsIGFIYXlzdGFjayxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFDb21wYXJlLCBhQmlhcyB8fCBleHBvcnRzLkdSRUFURVNUX0xPV0VSX0JPVU5EKTtcbiAgaWYgKGluZGV4IDwgMCkge1xuICAgIHJldHVybiAtMTtcbiAgfVxuXG4gIC8vIFdlIGhhdmUgZm91bmQgZWl0aGVyIHRoZSBleGFjdCBlbGVtZW50LCBvciB0aGUgbmV4dC1jbG9zZXN0IGVsZW1lbnQgdGhhblxuICAvLyB0aGUgb25lIHdlIGFyZSBzZWFyY2hpbmcgZm9yLiBIb3dldmVyLCB0aGVyZSBtYXkgYmUgbW9yZSB0aGFuIG9uZSBzdWNoXG4gIC8vIGVsZW1lbnQuIE1ha2Ugc3VyZSB3ZSBhbHdheXMgcmV0dXJuIHRoZSBzbWFsbGVzdCBvZiB0aGVzZS5cbiAgd2hpbGUgKGluZGV4IC0gMSA+PSAwKSB7XG4gICAgaWYgKGFDb21wYXJlKGFIYXlzdGFja1tpbmRleF0sIGFIYXlzdGFja1tpbmRleCAtIDFdLCB0cnVlKSAhPT0gMCkge1xuICAgICAgYnJlYWs7XG4gICAgfVxuICAgIC0taW5kZXg7XG4gIH1cblxuICByZXR1cm4gaW5kZXg7XG59O1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9saWIvYmluYXJ5LXNlYXJjaC5qc1xuLy8gbW9kdWxlIGlkID0gOFxuLy8gbW9kdWxlIGNodW5rcyA9IDAiLCIvKiAtKi0gTW9kZToganM7IGpzLWluZGVudC1sZXZlbDogMjsgLSotICovXG4vKlxuICogQ29weXJpZ2h0IDIwMTEgTW96aWxsYSBGb3VuZGF0aW9uIGFuZCBjb250cmlidXRvcnNcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBOZXcgQlNEIGxpY2Vuc2UuIFNlZSBMSUNFTlNFIG9yOlxuICogaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL0JTRC0zLUNsYXVzZVxuICovXG5cbi8vIEl0IHR1cm5zIG91dCB0aGF0IHNvbWUgKG1vc3Q/KSBKYXZhU2NyaXB0IGVuZ2luZXMgZG9uJ3Qgc2VsZi1ob3N0XG4vLyBgQXJyYXkucHJvdG90eXBlLnNvcnRgLiBUaGlzIG1ha2VzIHNlbnNlIGJlY2F1c2UgQysrIHdpbGwgbGlrZWx5IHJlbWFpblxuLy8gZmFzdGVyIHRoYW4gSlMgd2hlbiBkb2luZyByYXcgQ1BVLWludGVuc2l2ZSBzb3J0aW5nLiBIb3dldmVyLCB3aGVuIHVzaW5nIGFcbi8vIGN1c3RvbSBjb21wYXJhdG9yIGZ1bmN0aW9uLCBjYWxsaW5nIGJhY2sgYW5kIGZvcnRoIGJldHdlZW4gdGhlIFZNJ3MgQysrIGFuZFxuLy8gSklUJ2QgSlMgaXMgcmF0aGVyIHNsb3cgKmFuZCogbG9zZXMgSklUIHR5cGUgaW5mb3JtYXRpb24sIHJlc3VsdGluZyBpblxuLy8gd29yc2UgZ2VuZXJhdGVkIGNvZGUgZm9yIHRoZSBjb21wYXJhdG9yIGZ1bmN0aW9uIHRoYW4gd291bGQgYmUgb3B0aW1hbC4gSW5cbi8vIGZhY3QsIHdoZW4gc29ydGluZyB3aXRoIGEgY29tcGFyYXRvciwgdGhlc2UgY29zdHMgb3V0d2VpZ2ggdGhlIGJlbmVmaXRzIG9mXG4vLyBzb3J0aW5nIGluIEMrKy4gQnkgdXNpbmcgb3VyIG93biBKUy1pbXBsZW1lbnRlZCBRdWljayBTb3J0IChiZWxvdyksIHdlIGdldFxuLy8gYSB+MzUwMG1zIG1lYW4gc3BlZWQtdXAgaW4gYGJlbmNoL2JlbmNoLmh0bWxgLlxuXG4vKipcbiAqIFN3YXAgdGhlIGVsZW1lbnRzIGluZGV4ZWQgYnkgYHhgIGFuZCBgeWAgaW4gdGhlIGFycmF5IGBhcnlgLlxuICpcbiAqIEBwYXJhbSB7QXJyYXl9IGFyeVxuICogICAgICAgIFRoZSBhcnJheS5cbiAqIEBwYXJhbSB7TnVtYmVyfSB4XG4gKiAgICAgICAgVGhlIGluZGV4IG9mIHRoZSBmaXJzdCBpdGVtLlxuICogQHBhcmFtIHtOdW1iZXJ9IHlcbiAqICAgICAgICBUaGUgaW5kZXggb2YgdGhlIHNlY29uZCBpdGVtLlxuICovXG5mdW5jdGlvbiBzd2FwKGFyeSwgeCwgeSkge1xuICB2YXIgdGVtcCA9IGFyeVt4XTtcbiAgYXJ5W3hdID0gYXJ5W3ldO1xuICBhcnlbeV0gPSB0ZW1wO1xufVxuXG4vKipcbiAqIFJldHVybnMgYSByYW5kb20gaW50ZWdlciB3aXRoaW4gdGhlIHJhbmdlIGBsb3cgLi4gaGlnaGAgaW5jbHVzaXZlLlxuICpcbiAqIEBwYXJhbSB7TnVtYmVyfSBsb3dcbiAqICAgICAgICBUaGUgbG93ZXIgYm91bmQgb24gdGhlIHJhbmdlLlxuICogQHBhcmFtIHtOdW1iZXJ9IGhpZ2hcbiAqICAgICAgICBUaGUgdXBwZXIgYm91bmQgb24gdGhlIHJhbmdlLlxuICovXG5mdW5jdGlvbiByYW5kb21JbnRJblJhbmdlKGxvdywgaGlnaCkge1xuICByZXR1cm4gTWF0aC5yb3VuZChsb3cgKyAoTWF0aC5yYW5kb20oKSAqIChoaWdoIC0gbG93KSkpO1xufVxuXG4vKipcbiAqIFRoZSBRdWljayBTb3J0IGFsZ29yaXRobS5cbiAqXG4gKiBAcGFyYW0ge0FycmF5fSBhcnlcbiAqICAgICAgICBBbiBhcnJheSB0byBzb3J0LlxuICogQHBhcmFtIHtmdW5jdGlvbn0gY29tcGFyYXRvclxuICogICAgICAgIEZ1bmN0aW9uIHRvIHVzZSB0byBjb21wYXJlIHR3byBpdGVtcy5cbiAqIEBwYXJhbSB7TnVtYmVyfSBwXG4gKiAgICAgICAgU3RhcnQgaW5kZXggb2YgdGhlIGFycmF5XG4gKiBAcGFyYW0ge051bWJlcn0gclxuICogICAgICAgIEVuZCBpbmRleCBvZiB0aGUgYXJyYXlcbiAqL1xuZnVuY3Rpb24gZG9RdWlja1NvcnQoYXJ5LCBjb21wYXJhdG9yLCBwLCByKSB7XG4gIC8vIElmIG91ciBsb3dlciBib3VuZCBpcyBsZXNzIHRoYW4gb3VyIHVwcGVyIGJvdW5kLCB3ZSAoMSkgcGFydGl0aW9uIHRoZVxuICAvLyBhcnJheSBpbnRvIHR3byBwaWVjZXMgYW5kICgyKSByZWN1cnNlIG9uIGVhY2ggaGFsZi4gSWYgaXQgaXMgbm90LCB0aGlzIGlzXG4gIC8vIHRoZSBlbXB0eSBhcnJheSBhbmQgb3VyIGJhc2UgY2FzZS5cblxuICBpZiAocCA8IHIpIHtcbiAgICAvLyAoMSkgUGFydGl0aW9uaW5nLlxuICAgIC8vXG4gICAgLy8gVGhlIHBhcnRpdGlvbmluZyBjaG9vc2VzIGEgcGl2b3QgYmV0d2VlbiBgcGAgYW5kIGByYCBhbmQgbW92ZXMgYWxsXG4gICAgLy8gZWxlbWVudHMgdGhhdCBhcmUgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIHRoZSBwaXZvdCB0byB0aGUgYmVmb3JlIGl0LCBhbmRcbiAgICAvLyBhbGwgdGhlIGVsZW1lbnRzIHRoYXQgYXJlIGdyZWF0ZXIgdGhhbiBpdCBhZnRlciBpdC4gVGhlIGVmZmVjdCBpcyB0aGF0XG4gICAgLy8gb25jZSBwYXJ0aXRpb24gaXMgZG9uZSwgdGhlIHBpdm90IGlzIGluIHRoZSBleGFjdCBwbGFjZSBpdCB3aWxsIGJlIHdoZW5cbiAgICAvLyB0aGUgYXJyYXkgaXMgcHV0IGluIHNvcnRlZCBvcmRlciwgYW5kIGl0IHdpbGwgbm90IG5lZWQgdG8gYmUgbW92ZWRcbiAgICAvLyBhZ2Fpbi4gVGhpcyBydW5zIGluIE8obikgdGltZS5cblxuICAgIC8vIEFsd2F5cyBjaG9vc2UgYSByYW5kb20gcGl2b3Qgc28gdGhhdCBhbiBpbnB1dCBhcnJheSB3aGljaCBpcyByZXZlcnNlXG4gICAgLy8gc29ydGVkIGRvZXMgbm90IGNhdXNlIE8obl4yKSBydW5uaW5nIHRpbWUuXG4gICAgdmFyIHBpdm90SW5kZXggPSByYW5kb21JbnRJblJhbmdlKHAsIHIpO1xuICAgIHZhciBpID0gcCAtIDE7XG5cbiAgICBzd2FwKGFyeSwgcGl2b3RJbmRleCwgcik7XG4gICAgdmFyIHBpdm90ID0gYXJ5W3JdO1xuXG4gICAgLy8gSW1tZWRpYXRlbHkgYWZ0ZXIgYGpgIGlzIGluY3JlbWVudGVkIGluIHRoaXMgbG9vcCwgdGhlIGZvbGxvd2luZyBob2xkXG4gICAgLy8gdHJ1ZTpcbiAgICAvL1xuICAgIC8vICAgKiBFdmVyeSBlbGVtZW50IGluIGBhcnlbcCAuLiBpXWAgaXMgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIHRoZSBwaXZvdC5cbiAgICAvL1xuICAgIC8vICAgKiBFdmVyeSBlbGVtZW50IGluIGBhcnlbaSsxIC4uIGotMV1gIGlzIGdyZWF0ZXIgdGhhbiB0aGUgcGl2b3QuXG4gICAgZm9yICh2YXIgaiA9IHA7IGogPCByOyBqKyspIHtcbiAgICAgIGlmIChjb21wYXJhdG9yKGFyeVtqXSwgcGl2b3QpIDw9IDApIHtcbiAgICAgICAgaSArPSAxO1xuICAgICAgICBzd2FwKGFyeSwgaSwgaik7XG4gICAgICB9XG4gICAgfVxuXG4gICAgc3dhcChhcnksIGkgKyAxLCBqKTtcbiAgICB2YXIgcSA9IGkgKyAxO1xuXG4gICAgLy8gKDIpIFJlY3Vyc2Ugb24gZWFjaCBoYWxmLlxuXG4gICAgZG9RdWlja1NvcnQoYXJ5LCBjb21wYXJhdG9yLCBwLCBxIC0gMSk7XG4gICAgZG9RdWlja1NvcnQoYXJ5LCBjb21wYXJhdG9yLCBxICsgMSwgcik7XG4gIH1cbn1cblxuLyoqXG4gKiBTb3J0IHRoZSBnaXZlbiBhcnJheSBpbi1wbGFjZSB3aXRoIHRoZSBnaXZlbiBjb21wYXJhdG9yIGZ1bmN0aW9uLlxuICpcbiAqIEBwYXJhbSB7QXJyYXl9IGFyeVxuICogICAgICAgIEFuIGFycmF5IHRvIHNvcnQuXG4gKiBAcGFyYW0ge2Z1bmN0aW9ufSBjb21wYXJhdG9yXG4gKiAgICAgICAgRnVuY3Rpb24gdG8gdXNlIHRvIGNvbXBhcmUgdHdvIGl0ZW1zLlxuICovXG5leHBvcnRzLnF1aWNrU29ydCA9IGZ1bmN0aW9uIChhcnksIGNvbXBhcmF0b3IpIHtcbiAgZG9RdWlja1NvcnQoYXJ5LCBjb21wYXJhdG9yLCAwLCBhcnkubGVuZ3RoIC0gMSk7XG59O1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9saWIvcXVpY2stc29ydC5qc1xuLy8gbW9kdWxlIGlkID0gOVxuLy8gbW9kdWxlIGNodW5rcyA9IDAiLCIvKiAtKi0gTW9kZToganM7IGpzLWluZGVudC1sZXZlbDogMjsgLSotICovXG4vKlxuICogQ29weXJpZ2h0IDIwMTEgTW96aWxsYSBGb3VuZGF0aW9uIGFuZCBjb250cmlidXRvcnNcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBOZXcgQlNEIGxpY2Vuc2UuIFNlZSBMSUNFTlNFIG9yOlxuICogaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL0JTRC0zLUNsYXVzZVxuICovXG5cbnZhciBTb3VyY2VNYXBHZW5lcmF0b3IgPSByZXF1aXJlKCcuL3NvdXJjZS1tYXAtZ2VuZXJhdG9yJykuU291cmNlTWFwR2VuZXJhdG9yO1xudmFyIHV0aWwgPSByZXF1aXJlKCcuL3V0aWwnKTtcblxuLy8gTWF0Y2hlcyBhIFdpbmRvd3Mtc3R5bGUgYFxcclxcbmAgbmV3bGluZSBvciBhIGBcXG5gIG5ld2xpbmUgdXNlZCBieSBhbGwgb3RoZXJcbi8vIG9wZXJhdGluZyBzeXN0ZW1zIHRoZXNlIGRheXMgKGNhcHR1cmluZyB0aGUgcmVzdWx0KS5cbnZhciBSRUdFWF9ORVdMSU5FID0gLyhcXHI/XFxuKS87XG5cbi8vIE5ld2xpbmUgY2hhcmFjdGVyIGNvZGUgZm9yIGNoYXJDb2RlQXQoKSBjb21wYXJpc29uc1xudmFyIE5FV0xJTkVfQ09ERSA9IDEwO1xuXG4vLyBQcml2YXRlIHN5bWJvbCBmb3IgaWRlbnRpZnlpbmcgYFNvdXJjZU5vZGVgcyB3aGVuIG11bHRpcGxlIHZlcnNpb25zIG9mXG4vLyB0aGUgc291cmNlLW1hcCBsaWJyYXJ5IGFyZSBsb2FkZWQuIFRoaXMgTVVTVCBOT1QgQ0hBTkdFIGFjcm9zc1xuLy8gdmVyc2lvbnMhXG52YXIgaXNTb3VyY2VOb2RlID0gXCIkJCRpc1NvdXJjZU5vZGUkJCRcIjtcblxuLyoqXG4gKiBTb3VyY2VOb2RlcyBwcm92aWRlIGEgd2F5IHRvIGFic3RyYWN0IG92ZXIgaW50ZXJwb2xhdGluZy9jb25jYXRlbmF0aW5nXG4gKiBzbmlwcGV0cyBvZiBnZW5lcmF0ZWQgSmF2YVNjcmlwdCBzb3VyY2UgY29kZSB3aGlsZSBtYWludGFpbmluZyB0aGUgbGluZSBhbmRcbiAqIGNvbHVtbiBpbmZvcm1hdGlvbiBhc3NvY2lhdGVkIHdpdGggdGhlIG9yaWdpbmFsIHNvdXJjZSBjb2RlLlxuICpcbiAqIEBwYXJhbSBhTGluZSBUaGUgb3JpZ2luYWwgbGluZSBudW1iZXIuXG4gKiBAcGFyYW0gYUNvbHVtbiBUaGUgb3JpZ2luYWwgY29sdW1uIG51bWJlci5cbiAqIEBwYXJhbSBhU291cmNlIFRoZSBvcmlnaW5hbCBzb3VyY2UncyBmaWxlbmFtZS5cbiAqIEBwYXJhbSBhQ2h1bmtzIE9wdGlvbmFsLiBBbiBhcnJheSBvZiBzdHJpbmdzIHdoaWNoIGFyZSBzbmlwcGV0cyBvZlxuICogICAgICAgIGdlbmVyYXRlZCBKUywgb3Igb3RoZXIgU291cmNlTm9kZXMuXG4gKiBAcGFyYW0gYU5hbWUgVGhlIG9yaWdpbmFsIGlkZW50aWZpZXIuXG4gKi9cbmZ1bmN0aW9uIFNvdXJjZU5vZGUoYUxpbmUsIGFDb2x1bW4sIGFTb3VyY2UsIGFDaHVua3MsIGFOYW1lKSB7XG4gIHRoaXMuY2hpbGRyZW4gPSBbXTtcbiAgdGhpcy5zb3VyY2VDb250ZW50cyA9IHt9O1xuICB0aGlzLmxpbmUgPSBhTGluZSA9PSBudWxsID8gbnVsbCA6IGFMaW5lO1xuICB0aGlzLmNvbHVtbiA9IGFDb2x1bW4gPT0gbnVsbCA/IG51bGwgOiBhQ29sdW1uO1xuICB0aGlzLnNvdXJjZSA9IGFTb3VyY2UgPT0gbnVsbCA/IG51bGwgOiBhU291cmNlO1xuICB0aGlzLm5hbWUgPSBhTmFtZSA9PSBudWxsID8gbnVsbCA6IGFOYW1lO1xuICB0aGlzW2lzU291cmNlTm9kZV0gPSB0cnVlO1xuICBpZiAoYUNodW5rcyAhPSBudWxsKSB0aGlzLmFkZChhQ2h1bmtzKTtcbn1cblxuLyoqXG4gKiBDcmVhdGVzIGEgU291cmNlTm9kZSBmcm9tIGdlbmVyYXRlZCBjb2RlIGFuZCBhIFNvdXJjZU1hcENvbnN1bWVyLlxuICpcbiAqIEBwYXJhbSBhR2VuZXJhdGVkQ29kZSBUaGUgZ2VuZXJhdGVkIGNvZGVcbiAqIEBwYXJhbSBhU291cmNlTWFwQ29uc3VtZXIgVGhlIFNvdXJjZU1hcCBmb3IgdGhlIGdlbmVyYXRlZCBjb2RlXG4gKiBAcGFyYW0gYVJlbGF0aXZlUGF0aCBPcHRpb25hbC4gVGhlIHBhdGggdGhhdCByZWxhdGl2ZSBzb3VyY2VzIGluIHRoZVxuICogICAgICAgIFNvdXJjZU1hcENvbnN1bWVyIHNob3VsZCBiZSByZWxhdGl2ZSB0by5cbiAqL1xuU291cmNlTm9kZS5mcm9tU3RyaW5nV2l0aFNvdXJjZU1hcCA9XG4gIGZ1bmN0aW9uIFNvdXJjZU5vZGVfZnJvbVN0cmluZ1dpdGhTb3VyY2VNYXAoYUdlbmVyYXRlZENvZGUsIGFTb3VyY2VNYXBDb25zdW1lciwgYVJlbGF0aXZlUGF0aCkge1xuICAgIC8vIFRoZSBTb3VyY2VOb2RlIHdlIHdhbnQgdG8gZmlsbCB3aXRoIHRoZSBnZW5lcmF0ZWQgY29kZVxuICAgIC8vIGFuZCB0aGUgU291cmNlTWFwXG4gICAgdmFyIG5vZGUgPSBuZXcgU291cmNlTm9kZSgpO1xuXG4gICAgLy8gQWxsIGV2ZW4gaW5kaWNlcyBvZiB0aGlzIGFycmF5IGFyZSBvbmUgbGluZSBvZiB0aGUgZ2VuZXJhdGVkIGNvZGUsXG4gICAgLy8gd2hpbGUgYWxsIG9kZCBpbmRpY2VzIGFyZSB0aGUgbmV3bGluZXMgYmV0d2VlbiB0d28gYWRqYWNlbnQgbGluZXNcbiAgICAvLyAoc2luY2UgYFJFR0VYX05FV0xJTkVgIGNhcHR1cmVzIGl0cyBtYXRjaCkuXG4gICAgLy8gUHJvY2Vzc2VkIGZyYWdtZW50cyBhcmUgYWNjZXNzZWQgYnkgY2FsbGluZyBgc2hpZnROZXh0TGluZWAuXG4gICAgdmFyIHJlbWFpbmluZ0xpbmVzID0gYUdlbmVyYXRlZENvZGUuc3BsaXQoUkVHRVhfTkVXTElORSk7XG4gICAgdmFyIHJlbWFpbmluZ0xpbmVzSW5kZXggPSAwO1xuICAgIHZhciBzaGlmdE5leHRMaW5lID0gZnVuY3Rpb24oKSB7XG4gICAgICB2YXIgbGluZUNvbnRlbnRzID0gZ2V0TmV4dExpbmUoKTtcbiAgICAgIC8vIFRoZSBsYXN0IGxpbmUgb2YgYSBmaWxlIG1pZ2h0IG5vdCBoYXZlIGEgbmV3bGluZS5cbiAgICAgIHZhciBuZXdMaW5lID0gZ2V0TmV4dExpbmUoKSB8fCBcIlwiO1xuICAgICAgcmV0dXJuIGxpbmVDb250ZW50cyArIG5ld0xpbmU7XG5cbiAgICAgIGZ1bmN0aW9uIGdldE5leHRMaW5lKCkge1xuICAgICAgICByZXR1cm4gcmVtYWluaW5nTGluZXNJbmRleCA8IHJlbWFpbmluZ0xpbmVzLmxlbmd0aCA/XG4gICAgICAgICAgICByZW1haW5pbmdMaW5lc1tyZW1haW5pbmdMaW5lc0luZGV4KytdIDogdW5kZWZpbmVkO1xuICAgICAgfVxuICAgIH07XG5cbiAgICAvLyBXZSBuZWVkIHRvIHJlbWVtYmVyIHRoZSBwb3NpdGlvbiBvZiBcInJlbWFpbmluZ0xpbmVzXCJcbiAgICB2YXIgbGFzdEdlbmVyYXRlZExpbmUgPSAxLCBsYXN0R2VuZXJhdGVkQ29sdW1uID0gMDtcblxuICAgIC8vIFRoZSBnZW5lcmF0ZSBTb3VyY2VOb2RlcyB3ZSBuZWVkIGEgY29kZSByYW5nZS5cbiAgICAvLyBUbyBleHRyYWN0IGl0IGN1cnJlbnQgYW5kIGxhc3QgbWFwcGluZyBpcyB1c2VkLlxuICAgIC8vIEhlcmUgd2Ugc3RvcmUgdGhlIGxhc3QgbWFwcGluZy5cbiAgICB2YXIgbGFzdE1hcHBpbmcgPSBudWxsO1xuXG4gICAgYVNvdXJjZU1hcENvbnN1bWVyLmVhY2hNYXBwaW5nKGZ1bmN0aW9uIChtYXBwaW5nKSB7XG4gICAgICBpZiAobGFzdE1hcHBpbmcgIT09IG51bGwpIHtcbiAgICAgICAgLy8gV2UgYWRkIHRoZSBjb2RlIGZyb20gXCJsYXN0TWFwcGluZ1wiIHRvIFwibWFwcGluZ1wiOlxuICAgICAgICAvLyBGaXJzdCBjaGVjayBpZiB0aGVyZSBpcyBhIG5ldyBsaW5lIGluIGJldHdlZW4uXG4gICAgICAgIGlmIChsYXN0R2VuZXJhdGVkTGluZSA8IG1hcHBpbmcuZ2VuZXJhdGVkTGluZSkge1xuICAgICAgICAgIC8vIEFzc29jaWF0ZSBmaXJzdCBsaW5lIHdpdGggXCJsYXN0TWFwcGluZ1wiXG4gICAgICAgICAgYWRkTWFwcGluZ1dpdGhDb2RlKGxhc3RNYXBwaW5nLCBzaGlmdE5leHRMaW5lKCkpO1xuICAgICAgICAgIGxhc3RHZW5lcmF0ZWRMaW5lKys7XG4gICAgICAgICAgbGFzdEdlbmVyYXRlZENvbHVtbiA9IDA7XG4gICAgICAgICAgLy8gVGhlIHJlbWFpbmluZyBjb2RlIGlzIGFkZGVkIHdpdGhvdXQgbWFwcGluZ1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIC8vIFRoZXJlIGlzIG5vIG5ldyBsaW5lIGluIGJldHdlZW4uXG4gICAgICAgICAgLy8gQXNzb2NpYXRlIHRoZSBjb2RlIGJldHdlZW4gXCJsYXN0R2VuZXJhdGVkQ29sdW1uXCIgYW5kXG4gICAgICAgICAgLy8gXCJtYXBwaW5nLmdlbmVyYXRlZENvbHVtblwiIHdpdGggXCJsYXN0TWFwcGluZ1wiXG4gICAgICAgICAgdmFyIG5leHRMaW5lID0gcmVtYWluaW5nTGluZXNbcmVtYWluaW5nTGluZXNJbmRleF07XG4gICAgICAgICAgdmFyIGNvZGUgPSBuZXh0TGluZS5zdWJzdHIoMCwgbWFwcGluZy5nZW5lcmF0ZWRDb2x1bW4gLVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhc3RHZW5lcmF0ZWRDb2x1bW4pO1xuICAgICAgICAgIHJlbWFpbmluZ0xpbmVzW3JlbWFpbmluZ0xpbmVzSW5kZXhdID0gbmV4dExpbmUuc3Vic3RyKG1hcHBpbmcuZ2VuZXJhdGVkQ29sdW1uIC1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXN0R2VuZXJhdGVkQ29sdW1uKTtcbiAgICAgICAgICBsYXN0R2VuZXJhdGVkQ29sdW1uID0gbWFwcGluZy5nZW5lcmF0ZWRDb2x1bW47XG4gICAgICAgICAgYWRkTWFwcGluZ1dpdGhDb2RlKGxhc3RNYXBwaW5nLCBjb2RlKTtcbiAgICAgICAgICAvLyBObyBtb3JlIHJlbWFpbmluZyBjb2RlLCBjb250aW51ZVxuICAgICAgICAgIGxhc3RNYXBwaW5nID0gbWFwcGluZztcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIC8vIFdlIGFkZCB0aGUgZ2VuZXJhdGVkIGNvZGUgdW50aWwgdGhlIGZpcnN0IG1hcHBpbmdcbiAgICAgIC8vIHRvIHRoZSBTb3VyY2VOb2RlIHdpdGhvdXQgYW55IG1hcHBpbmcuXG4gICAgICAvLyBFYWNoIGxpbmUgaXMgYWRkZWQgYXMgc2VwYXJhdGUgc3RyaW5nLlxuICAgICAgd2hpbGUgKGxhc3RHZW5lcmF0ZWRMaW5lIDwgbWFwcGluZy5nZW5lcmF0ZWRMaW5lKSB7XG4gICAgICAgIG5vZGUuYWRkKHNoaWZ0TmV4dExpbmUoKSk7XG4gICAgICAgIGxhc3RHZW5lcmF0ZWRMaW5lKys7XG4gICAgICB9XG4gICAgICBpZiAobGFzdEdlbmVyYXRlZENvbHVtbiA8IG1hcHBpbmcuZ2VuZXJhdGVkQ29sdW1uKSB7XG4gICAgICAgIHZhciBuZXh0TGluZSA9IHJlbWFpbmluZ0xpbmVzW3JlbWFpbmluZ0xpbmVzSW5kZXhdO1xuICAgICAgICBub2RlLmFkZChuZXh0TGluZS5zdWJzdHIoMCwgbWFwcGluZy5nZW5lcmF0ZWRDb2x1bW4pKTtcbiAgICAgICAgcmVtYWluaW5nTGluZXNbcmVtYWluaW5nTGluZXNJbmRleF0gPSBuZXh0TGluZS5zdWJzdHIobWFwcGluZy5nZW5lcmF0ZWRDb2x1bW4pO1xuICAgICAgICBsYXN0R2VuZXJhdGVkQ29sdW1uID0gbWFwcGluZy5nZW5lcmF0ZWRDb2x1bW47XG4gICAgICB9XG4gICAgICBsYXN0TWFwcGluZyA9IG1hcHBpbmc7XG4gICAgfSwgdGhpcyk7XG4gICAgLy8gV2UgaGF2ZSBwcm9jZXNzZWQgYWxsIG1hcHBpbmdzLlxuICAgIGlmIChyZW1haW5pbmdMaW5lc0luZGV4IDwgcmVtYWluaW5nTGluZXMubGVuZ3RoKSB7XG4gICAgICBpZiAobGFzdE1hcHBpbmcpIHtcbiAgICAgICAgLy8gQXNzb2NpYXRlIHRoZSByZW1haW5pbmcgY29kZSBpbiB0aGUgY3VycmVudCBsaW5lIHdpdGggXCJsYXN0TWFwcGluZ1wiXG4gICAgICAgIGFkZE1hcHBpbmdXaXRoQ29kZShsYXN0TWFwcGluZywgc2hpZnROZXh0TGluZSgpKTtcbiAgICAgIH1cbiAgICAgIC8vIGFuZCBhZGQgdGhlIHJlbWFpbmluZyBsaW5lcyB3aXRob3V0IGFueSBtYXBwaW5nXG4gICAgICBub2RlLmFkZChyZW1haW5pbmdMaW5lcy5zcGxpY2UocmVtYWluaW5nTGluZXNJbmRleCkuam9pbihcIlwiKSk7XG4gICAgfVxuXG4gICAgLy8gQ29weSBzb3VyY2VzQ29udGVudCBpbnRvIFNvdXJjZU5vZGVcbiAgICBhU291cmNlTWFwQ29uc3VtZXIuc291cmNlcy5mb3JFYWNoKGZ1bmN0aW9uIChzb3VyY2VGaWxlKSB7XG4gICAgICB2YXIgY29udGVudCA9IGFTb3VyY2VNYXBDb25zdW1lci5zb3VyY2VDb250ZW50Rm9yKHNvdXJjZUZpbGUpO1xuICAgICAgaWYgKGNvbnRlbnQgIT0gbnVsbCkge1xuICAgICAgICBpZiAoYVJlbGF0aXZlUGF0aCAhPSBudWxsKSB7XG4gICAgICAgICAgc291cmNlRmlsZSA9IHV0aWwuam9pbihhUmVsYXRpdmVQYXRoLCBzb3VyY2VGaWxlKTtcbiAgICAgICAgfVxuICAgICAgICBub2RlLnNldFNvdXJjZUNvbnRlbnQoc291cmNlRmlsZSwgY29udGVudCk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gbm9kZTtcblxuICAgIGZ1bmN0aW9uIGFkZE1hcHBpbmdXaXRoQ29kZShtYXBwaW5nLCBjb2RlKSB7XG4gICAgICBpZiAobWFwcGluZyA9PT0gbnVsbCB8fCBtYXBwaW5nLnNvdXJjZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIG5vZGUuYWRkKGNvZGUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdmFyIHNvdXJjZSA9IGFSZWxhdGl2ZVBhdGhcbiAgICAgICAgICA/IHV0aWwuam9pbihhUmVsYXRpdmVQYXRoLCBtYXBwaW5nLnNvdXJjZSlcbiAgICAgICAgICA6IG1hcHBpbmcuc291cmNlO1xuICAgICAgICBub2RlLmFkZChuZXcgU291cmNlTm9kZShtYXBwaW5nLm9yaWdpbmFsTGluZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFwcGluZy5vcmlnaW5hbENvbHVtbixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2RlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXBwaW5nLm5hbWUpKTtcbiAgICAgIH1cbiAgICB9XG4gIH07XG5cbi8qKlxuICogQWRkIGEgY2h1bmsgb2YgZ2VuZXJhdGVkIEpTIHRvIHRoaXMgc291cmNlIG5vZGUuXG4gKlxuICogQHBhcmFtIGFDaHVuayBBIHN0cmluZyBzbmlwcGV0IG9mIGdlbmVyYXRlZCBKUyBjb2RlLCBhbm90aGVyIGluc3RhbmNlIG9mXG4gKiAgICAgICAgU291cmNlTm9kZSwgb3IgYW4gYXJyYXkgd2hlcmUgZWFjaCBtZW1iZXIgaXMgb25lIG9mIHRob3NlIHRoaW5ncy5cbiAqL1xuU291cmNlTm9kZS5wcm90b3R5cGUuYWRkID0gZnVuY3Rpb24gU291cmNlTm9kZV9hZGQoYUNodW5rKSB7XG4gIGlmIChBcnJheS5pc0FycmF5KGFDaHVuaykpIHtcbiAgICBhQ2h1bmsuZm9yRWFjaChmdW5jdGlvbiAoY2h1bmspIHtcbiAgICAgIHRoaXMuYWRkKGNodW5rKTtcbiAgICB9LCB0aGlzKTtcbiAgfVxuICBlbHNlIGlmIChhQ2h1bmtbaXNTb3VyY2VOb2RlXSB8fCB0eXBlb2YgYUNodW5rID09PSBcInN0cmluZ1wiKSB7XG4gICAgaWYgKGFDaHVuaykge1xuICAgICAgdGhpcy5jaGlsZHJlbi5wdXNoKGFDaHVuayk7XG4gICAgfVxuICB9XG4gIGVsc2Uge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXG4gICAgICBcIkV4cGVjdGVkIGEgU291cmNlTm9kZSwgc3RyaW5nLCBvciBhbiBhcnJheSBvZiBTb3VyY2VOb2RlcyBhbmQgc3RyaW5ncy4gR290IFwiICsgYUNodW5rXG4gICAgKTtcbiAgfVxuICByZXR1cm4gdGhpcztcbn07XG5cbi8qKlxuICogQWRkIGEgY2h1bmsgb2YgZ2VuZXJhdGVkIEpTIHRvIHRoZSBiZWdpbm5pbmcgb2YgdGhpcyBzb3VyY2Ugbm9kZS5cbiAqXG4gKiBAcGFyYW0gYUNodW5rIEEgc3RyaW5nIHNuaXBwZXQgb2YgZ2VuZXJhdGVkIEpTIGNvZGUsIGFub3RoZXIgaW5zdGFuY2Ugb2ZcbiAqICAgICAgICBTb3VyY2VOb2RlLCBvciBhbiBhcnJheSB3aGVyZSBlYWNoIG1lbWJlciBpcyBvbmUgb2YgdGhvc2UgdGhpbmdzLlxuICovXG5Tb3VyY2VOb2RlLnByb3RvdHlwZS5wcmVwZW5kID0gZnVuY3Rpb24gU291cmNlTm9kZV9wcmVwZW5kKGFDaHVuaykge1xuICBpZiAoQXJyYXkuaXNBcnJheShhQ2h1bmspKSB7XG4gICAgZm9yICh2YXIgaSA9IGFDaHVuay5sZW5ndGgtMTsgaSA+PSAwOyBpLS0pIHtcbiAgICAgIHRoaXMucHJlcGVuZChhQ2h1bmtbaV0pO1xuICAgIH1cbiAgfVxuICBlbHNlIGlmIChhQ2h1bmtbaXNTb3VyY2VOb2RlXSB8fCB0eXBlb2YgYUNodW5rID09PSBcInN0cmluZ1wiKSB7XG4gICAgdGhpcy5jaGlsZHJlbi51bnNoaWZ0KGFDaHVuayk7XG4gIH1cbiAgZWxzZSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcbiAgICAgIFwiRXhwZWN0ZWQgYSBTb3VyY2VOb2RlLCBzdHJpbmcsIG9yIGFuIGFycmF5IG9mIFNvdXJjZU5vZGVzIGFuZCBzdHJpbmdzLiBHb3QgXCIgKyBhQ2h1bmtcbiAgICApO1xuICB9XG4gIHJldHVybiB0aGlzO1xufTtcblxuLyoqXG4gKiBXYWxrIG92ZXIgdGhlIHRyZWUgb2YgSlMgc25pcHBldHMgaW4gdGhpcyBub2RlIGFuZCBpdHMgY2hpbGRyZW4uIFRoZVxuICogd2Fsa2luZyBmdW5jdGlvbiBpcyBjYWxsZWQgb25jZSBmb3IgZWFjaCBzbmlwcGV0IG9mIEpTIGFuZCBpcyBwYXNzZWQgdGhhdFxuICogc25pcHBldCBhbmQgdGhlIGl0cyBvcmlnaW5hbCBhc3NvY2lhdGVkIHNvdXJjZSdzIGxpbmUvY29sdW1uIGxvY2F0aW9uLlxuICpcbiAqIEBwYXJhbSBhRm4gVGhlIHRyYXZlcnNhbCBmdW5jdGlvbi5cbiAqL1xuU291cmNlTm9kZS5wcm90b3R5cGUud2FsayA9IGZ1bmN0aW9uIFNvdXJjZU5vZGVfd2FsayhhRm4pIHtcbiAgdmFyIGNodW5rO1xuICBmb3IgKHZhciBpID0gMCwgbGVuID0gdGhpcy5jaGlsZHJlbi5sZW5ndGg7IGkgPCBsZW47IGkrKykge1xuICAgIGNodW5rID0gdGhpcy5jaGlsZHJlbltpXTtcbiAgICBpZiAoY2h1bmtbaXNTb3VyY2VOb2RlXSkge1xuICAgICAgY2h1bmsud2FsayhhRm4pO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIGlmIChjaHVuayAhPT0gJycpIHtcbiAgICAgICAgYUZuKGNodW5rLCB7IHNvdXJjZTogdGhpcy5zb3VyY2UsXG4gICAgICAgICAgICAgICAgICAgICBsaW5lOiB0aGlzLmxpbmUsXG4gICAgICAgICAgICAgICAgICAgICBjb2x1bW46IHRoaXMuY29sdW1uLFxuICAgICAgICAgICAgICAgICAgICAgbmFtZTogdGhpcy5uYW1lIH0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxufTtcblxuLyoqXG4gKiBMaWtlIGBTdHJpbmcucHJvdG90eXBlLmpvaW5gIGV4Y2VwdCBmb3IgU291cmNlTm9kZXMuIEluc2VydHMgYGFTdHJgIGJldHdlZW5cbiAqIGVhY2ggb2YgYHRoaXMuY2hpbGRyZW5gLlxuICpcbiAqIEBwYXJhbSBhU2VwIFRoZSBzZXBhcmF0b3IuXG4gKi9cblNvdXJjZU5vZGUucHJvdG90eXBlLmpvaW4gPSBmdW5jdGlvbiBTb3VyY2VOb2RlX2pvaW4oYVNlcCkge1xuICB2YXIgbmV3Q2hpbGRyZW47XG4gIHZhciBpO1xuICB2YXIgbGVuID0gdGhpcy5jaGlsZHJlbi5sZW5ndGg7XG4gIGlmIChsZW4gPiAwKSB7XG4gICAgbmV3Q2hpbGRyZW4gPSBbXTtcbiAgICBmb3IgKGkgPSAwOyBpIDwgbGVuLTE7IGkrKykge1xuICAgICAgbmV3Q2hpbGRyZW4ucHVzaCh0aGlzLmNoaWxkcmVuW2ldKTtcbiAgICAgIG5ld0NoaWxkcmVuLnB1c2goYVNlcCk7XG4gICAgfVxuICAgIG5ld0NoaWxkcmVuLnB1c2godGhpcy5jaGlsZHJlbltpXSk7XG4gICAgdGhpcy5jaGlsZHJlbiA9IG5ld0NoaWxkcmVuO1xuICB9XG4gIHJldHVybiB0aGlzO1xufTtcblxuLyoqXG4gKiBDYWxsIFN0cmluZy5wcm90b3R5cGUucmVwbGFjZSBvbiB0aGUgdmVyeSByaWdodC1tb3N0IHNvdXJjZSBzbmlwcGV0LiBVc2VmdWxcbiAqIGZvciB0cmltbWluZyB3aGl0ZXNwYWNlIGZyb20gdGhlIGVuZCBvZiBhIHNvdXJjZSBub2RlLCBldGMuXG4gKlxuICogQHBhcmFtIGFQYXR0ZXJuIFRoZSBwYXR0ZXJuIHRvIHJlcGxhY2UuXG4gKiBAcGFyYW0gYVJlcGxhY2VtZW50IFRoZSB0aGluZyB0byByZXBsYWNlIHRoZSBwYXR0ZXJuIHdpdGguXG4gKi9cblNvdXJjZU5vZGUucHJvdG90eXBlLnJlcGxhY2VSaWdodCA9IGZ1bmN0aW9uIFNvdXJjZU5vZGVfcmVwbGFjZVJpZ2h0KGFQYXR0ZXJuLCBhUmVwbGFjZW1lbnQpIHtcbiAgdmFyIGxhc3RDaGlsZCA9IHRoaXMuY2hpbGRyZW5bdGhpcy5jaGlsZHJlbi5sZW5ndGggLSAxXTtcbiAgaWYgKGxhc3RDaGlsZFtpc1NvdXJjZU5vZGVdKSB7XG4gICAgbGFzdENoaWxkLnJlcGxhY2VSaWdodChhUGF0dGVybiwgYVJlcGxhY2VtZW50KTtcbiAgfVxuICBlbHNlIGlmICh0eXBlb2YgbGFzdENoaWxkID09PSAnc3RyaW5nJykge1xuICAgIHRoaXMuY2hpbGRyZW5bdGhpcy5jaGlsZHJlbi5sZW5ndGggLSAxXSA9IGxhc3RDaGlsZC5yZXBsYWNlKGFQYXR0ZXJuLCBhUmVwbGFjZW1lbnQpO1xuICB9XG4gIGVsc2Uge1xuICAgIHRoaXMuY2hpbGRyZW4ucHVzaCgnJy5yZXBsYWNlKGFQYXR0ZXJuLCBhUmVwbGFjZW1lbnQpKTtcbiAgfVxuICByZXR1cm4gdGhpcztcbn07XG5cbi8qKlxuICogU2V0IHRoZSBzb3VyY2UgY29udGVudCBmb3IgYSBzb3VyY2UgZmlsZS4gVGhpcyB3aWxsIGJlIGFkZGVkIHRvIHRoZSBTb3VyY2VNYXBHZW5lcmF0b3JcbiAqIGluIHRoZSBzb3VyY2VzQ29udGVudCBmaWVsZC5cbiAqXG4gKiBAcGFyYW0gYVNvdXJjZUZpbGUgVGhlIGZpbGVuYW1lIG9mIHRoZSBzb3VyY2UgZmlsZVxuICogQHBhcmFtIGFTb3VyY2VDb250ZW50IFRoZSBjb250ZW50IG9mIHRoZSBzb3VyY2UgZmlsZVxuICovXG5Tb3VyY2VOb2RlLnByb3RvdHlwZS5zZXRTb3VyY2VDb250ZW50ID1cbiAgZnVuY3Rpb24gU291cmNlTm9kZV9zZXRTb3VyY2VDb250ZW50KGFTb3VyY2VGaWxlLCBhU291cmNlQ29udGVudCkge1xuICAgIHRoaXMuc291cmNlQ29udGVudHNbdXRpbC50b1NldFN0cmluZyhhU291cmNlRmlsZSldID0gYVNvdXJjZUNvbnRlbnQ7XG4gIH07XG5cbi8qKlxuICogV2FsayBvdmVyIHRoZSB0cmVlIG9mIFNvdXJjZU5vZGVzLiBUaGUgd2Fsa2luZyBmdW5jdGlvbiBpcyBjYWxsZWQgZm9yIGVhY2hcbiAqIHNvdXJjZSBmaWxlIGNvbnRlbnQgYW5kIGlzIHBhc3NlZCB0aGUgZmlsZW5hbWUgYW5kIHNvdXJjZSBjb250ZW50LlxuICpcbiAqIEBwYXJhbSBhRm4gVGhlIHRyYXZlcnNhbCBmdW5jdGlvbi5cbiAqL1xuU291cmNlTm9kZS5wcm90b3R5cGUud2Fsa1NvdXJjZUNvbnRlbnRzID1cbiAgZnVuY3Rpb24gU291cmNlTm9kZV93YWxrU291cmNlQ29udGVudHMoYUZuKSB7XG4gICAgZm9yICh2YXIgaSA9IDAsIGxlbiA9IHRoaXMuY2hpbGRyZW4ubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHtcbiAgICAgIGlmICh0aGlzLmNoaWxkcmVuW2ldW2lzU291cmNlTm9kZV0pIHtcbiAgICAgICAgdGhpcy5jaGlsZHJlbltpXS53YWxrU291cmNlQ29udGVudHMoYUZuKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB2YXIgc291cmNlcyA9IE9iamVjdC5rZXlzKHRoaXMuc291cmNlQ29udGVudHMpO1xuICAgIGZvciAodmFyIGkgPSAwLCBsZW4gPSBzb3VyY2VzLmxlbmd0aDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgICBhRm4odXRpbC5mcm9tU2V0U3RyaW5nKHNvdXJjZXNbaV0pLCB0aGlzLnNvdXJjZUNvbnRlbnRzW3NvdXJjZXNbaV1dKTtcbiAgICB9XG4gIH07XG5cbi8qKlxuICogUmV0dXJuIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhpcyBzb3VyY2Ugbm9kZS4gV2Fsa3Mgb3ZlciB0aGUgdHJlZVxuICogYW5kIGNvbmNhdGVuYXRlcyBhbGwgdGhlIHZhcmlvdXMgc25pcHBldHMgdG9nZXRoZXIgdG8gb25lIHN0cmluZy5cbiAqL1xuU291cmNlTm9kZS5wcm90b3R5cGUudG9TdHJpbmcgPSBmdW5jdGlvbiBTb3VyY2VOb2RlX3RvU3RyaW5nKCkge1xuICB2YXIgc3RyID0gXCJcIjtcbiAgdGhpcy53YWxrKGZ1bmN0aW9uIChjaHVuaykge1xuICAgIHN0ciArPSBjaHVuaztcbiAgfSk7XG4gIHJldHVybiBzdHI7XG59O1xuXG4vKipcbiAqIFJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGlzIHNvdXJjZSBub2RlIGFsb25nIHdpdGggYSBzb3VyY2VcbiAqIG1hcC5cbiAqL1xuU291cmNlTm9kZS5wcm90b3R5cGUudG9TdHJpbmdXaXRoU291cmNlTWFwID0gZnVuY3Rpb24gU291cmNlTm9kZV90b1N0cmluZ1dpdGhTb3VyY2VNYXAoYUFyZ3MpIHtcbiAgdmFyIGdlbmVyYXRlZCA9IHtcbiAgICBjb2RlOiBcIlwiLFxuICAgIGxpbmU6IDEsXG4gICAgY29sdW1uOiAwXG4gIH07XG4gIHZhciBtYXAgPSBuZXcgU291cmNlTWFwR2VuZXJhdG9yKGFBcmdzKTtcbiAgdmFyIHNvdXJjZU1hcHBpbmdBY3RpdmUgPSBmYWxzZTtcbiAgdmFyIGxhc3RPcmlnaW5hbFNvdXJjZSA9IG51bGw7XG4gIHZhciBsYXN0T3JpZ2luYWxMaW5lID0gbnVsbDtcbiAgdmFyIGxhc3RPcmlnaW5hbENvbHVtbiA9IG51bGw7XG4gIHZhciBsYXN0T3JpZ2luYWxOYW1lID0gbnVsbDtcbiAgdGhpcy53YWxrKGZ1bmN0aW9uIChjaHVuaywgb3JpZ2luYWwpIHtcbiAgICBnZW5lcmF0ZWQuY29kZSArPSBjaHVuaztcbiAgICBpZiAob3JpZ2luYWwuc291cmNlICE9PSBudWxsXG4gICAgICAgICYmIG9yaWdpbmFsLmxpbmUgIT09IG51bGxcbiAgICAgICAgJiYgb3JpZ2luYWwuY29sdW1uICE9PSBudWxsKSB7XG4gICAgICBpZihsYXN0T3JpZ2luYWxTb3VyY2UgIT09IG9yaWdpbmFsLnNvdXJjZVxuICAgICAgICAgfHwgbGFzdE9yaWdpbmFsTGluZSAhPT0gb3JpZ2luYWwubGluZVxuICAgICAgICAgfHwgbGFzdE9yaWdpbmFsQ29sdW1uICE9PSBvcmlnaW5hbC5jb2x1bW5cbiAgICAgICAgIHx8IGxhc3RPcmlnaW5hbE5hbWUgIT09IG9yaWdpbmFsLm5hbWUpIHtcbiAgICAgICAgbWFwLmFkZE1hcHBpbmcoe1xuICAgICAgICAgIHNvdXJjZTogb3JpZ2luYWwuc291cmNlLFxuICAgICAgICAgIG9yaWdpbmFsOiB7XG4gICAgICAgICAgICBsaW5lOiBvcmlnaW5hbC5saW5lLFxuICAgICAgICAgICAgY29sdW1uOiBvcmlnaW5hbC5jb2x1bW5cbiAgICAgICAgICB9LFxuICAgICAgICAgIGdlbmVyYXRlZDoge1xuICAgICAgICAgICAgbGluZTogZ2VuZXJhdGVkLmxpbmUsXG4gICAgICAgICAgICBjb2x1bW46IGdlbmVyYXRlZC5jb2x1bW5cbiAgICAgICAgICB9LFxuICAgICAgICAgIG5hbWU6IG9yaWdpbmFsLm5hbWVcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICBsYXN0T3JpZ2luYWxTb3VyY2UgPSBvcmlnaW5hbC5zb3VyY2U7XG4gICAgICBsYXN0T3JpZ2luYWxMaW5lID0gb3JpZ2luYWwubGluZTtcbiAgICAgIGxhc3RPcmlnaW5hbENvbHVtbiA9IG9yaWdpbmFsLmNvbHVtbjtcbiAgICAgIGxhc3RPcmlnaW5hbE5hbWUgPSBvcmlnaW5hbC5uYW1lO1xuICAgICAgc291cmNlTWFwcGluZ0FjdGl2ZSA9IHRydWU7XG4gICAgfSBlbHNlIGlmIChzb3VyY2VNYXBwaW5nQWN0aXZlKSB7XG4gICAgICBtYXAuYWRkTWFwcGluZyh7XG4gICAgICAgIGdlbmVyYXRlZDoge1xuICAgICAgICAgIGxpbmU6IGdlbmVyYXRlZC5saW5lLFxuICAgICAgICAgIGNvbHVtbjogZ2VuZXJhdGVkLmNvbHVtblxuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIGxhc3RPcmlnaW5hbFNvdXJjZSA9IG51bGw7XG4gICAgICBzb3VyY2VNYXBwaW5nQWN0aXZlID0gZmFsc2U7XG4gICAgfVxuICAgIGZvciAodmFyIGlkeCA9IDAsIGxlbmd0aCA9IGNodW5rLmxlbmd0aDsgaWR4IDwgbGVuZ3RoOyBpZHgrKykge1xuICAgICAgaWYgKGNodW5rLmNoYXJDb2RlQXQoaWR4KSA9PT0gTkVXTElORV9DT0RFKSB7XG4gICAgICAgIGdlbmVyYXRlZC5saW5lKys7XG4gICAgICAgIGdlbmVyYXRlZC5jb2x1bW4gPSAwO1xuICAgICAgICAvLyBNYXBwaW5ncyBlbmQgYXQgZW9sXG4gICAgICAgIGlmIChpZHggKyAxID09PSBsZW5ndGgpIHtcbiAgICAgICAgICBsYXN0T3JpZ2luYWxTb3VyY2UgPSBudWxsO1xuICAgICAgICAgIHNvdXJjZU1hcHBpbmdBY3RpdmUgPSBmYWxzZTtcbiAgICAgICAgfSBlbHNlIGlmIChzb3VyY2VNYXBwaW5nQWN0aXZlKSB7XG4gICAgICAgICAgbWFwLmFkZE1hcHBpbmcoe1xuICAgICAgICAgICAgc291cmNlOiBvcmlnaW5hbC5zb3VyY2UsXG4gICAgICAgICAgICBvcmlnaW5hbDoge1xuICAgICAgICAgICAgICBsaW5lOiBvcmlnaW5hbC5saW5lLFxuICAgICAgICAgICAgICBjb2x1bW46IG9yaWdpbmFsLmNvbHVtblxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGdlbmVyYXRlZDoge1xuICAgICAgICAgICAgICBsaW5lOiBnZW5lcmF0ZWQubGluZSxcbiAgICAgICAgICAgICAgY29sdW1uOiBnZW5lcmF0ZWQuY29sdW1uXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgbmFtZTogb3JpZ2luYWwubmFtZVxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBnZW5lcmF0ZWQuY29sdW1uKys7XG4gICAgICB9XG4gICAgfVxuICB9KTtcbiAgdGhpcy53YWxrU291cmNlQ29udGVudHMoZnVuY3Rpb24gKHNvdXJjZUZpbGUsIHNvdXJjZUNvbnRlbnQpIHtcbiAgICBtYXAuc2V0U291cmNlQ29udGVudChzb3VyY2VGaWxlLCBzb3VyY2VDb250ZW50KTtcbiAgfSk7XG5cbiAgcmV0dXJuIHsgY29kZTogZ2VuZXJhdGVkLmNvZGUsIG1hcDogbWFwIH07XG59O1xuXG5leHBvcnRzLlNvdXJjZU5vZGUgPSBTb3VyY2VOb2RlO1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9saWIvc291cmNlLW5vZGUuanNcbi8vIG1vZHVsZSBpZCA9IDEwXG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJzb3VyY2VSb290IjoiIn0=
\ No newline at end of file
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-coverage/node_modules/source-map/dist/source-map.js b/src/cobalt/debug/remote/devtools/node_modules/karma-coverage/node_modules/source-map/dist/source-map.js
deleted file mode 100644
index 4e630e2..0000000
--- a/src/cobalt/debug/remote/devtools/node_modules/karma-coverage/node_modules/source-map/dist/source-map.js
+++ /dev/null
@@ -1,3090 +0,0 @@
-(function webpackUniversalModuleDefinition(root, factory) {
-	if(typeof exports === 'object' && typeof module === 'object')
-		module.exports = factory();
-	else if(typeof define === 'function' && define.amd)
-		define([], factory);
-	else if(typeof exports === 'object')
-		exports["sourceMap"] = factory();
-	else
-		root["sourceMap"] = factory();
-})(this, function() {
-return /******/ (function(modules) { // webpackBootstrap
-/******/ 	// The module cache
-/******/ 	var installedModules = {};
-
-/******/ 	// The require function
-/******/ 	function __webpack_require__(moduleId) {
-
-/******/ 		// Check if module is in cache
-/******/ 		if(installedModules[moduleId])
-/******/ 			return installedModules[moduleId].exports;
-
-/******/ 		// Create a new module (and put it into the cache)
-/******/ 		var module = installedModules[moduleId] = {
-/******/ 			exports: {},
-/******/ 			id: moduleId,
-/******/ 			loaded: false
-/******/ 		};
-
-/******/ 		// Execute the module function
-/******/ 		modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
-
-/******/ 		// Flag the module as loaded
-/******/ 		module.loaded = true;
-
-/******/ 		// Return the exports of the module
-/******/ 		return module.exports;
-/******/ 	}
-
-
-/******/ 	// expose the modules object (__webpack_modules__)
-/******/ 	__webpack_require__.m = modules;
-
-/******/ 	// expose the module cache
-/******/ 	__webpack_require__.c = installedModules;
-
-/******/ 	// __webpack_public_path__
-/******/ 	__webpack_require__.p = "";
-
-/******/ 	// Load entry module and return exports
-/******/ 	return __webpack_require__(0);
-/******/ })
-/************************************************************************/
-/******/ ([
-/* 0 */
-/***/ (function(module, exports, __webpack_require__) {
-
-	/*
-	 * Copyright 2009-2011 Mozilla Foundation and contributors
-	 * Licensed under the New BSD license. See LICENSE.txt or:
-	 * http://opensource.org/licenses/BSD-3-Clause
-	 */
-	exports.SourceMapGenerator = __webpack_require__(1).SourceMapGenerator;
-	exports.SourceMapConsumer = __webpack_require__(7).SourceMapConsumer;
-	exports.SourceNode = __webpack_require__(10).SourceNode;
-
-
-/***/ }),
-/* 1 */
-/***/ (function(module, exports, __webpack_require__) {
-
-	/* -*- Mode: js; js-indent-level: 2; -*- */
-	/*
-	 * Copyright 2011 Mozilla Foundation and contributors
-	 * Licensed under the New BSD license. See LICENSE or:
-	 * http://opensource.org/licenses/BSD-3-Clause
-	 */
-
-	var base64VLQ = __webpack_require__(2);
-	var util = __webpack_require__(4);
-	var ArraySet = __webpack_require__(5).ArraySet;
-	var MappingList = __webpack_require__(6).MappingList;
-
-	/**
-	 * An instance of the SourceMapGenerator represents a source map which is
-	 * being built incrementally. You may pass an object with the following
-	 * properties:
-	 *
-	 *   - file: The filename of the generated source.
-	 *   - sourceRoot: A root for all relative URLs in this source map.
-	 */
-	function SourceMapGenerator(aArgs) {
-	  if (!aArgs) {
-	    aArgs = {};
-	  }
-	  this._file = util.getArg(aArgs, 'file', null);
-	  this._sourceRoot = util.getArg(aArgs, 'sourceRoot', null);
-	  this._skipValidation = util.getArg(aArgs, 'skipValidation', false);
-	  this._sources = new ArraySet();
-	  this._names = new ArraySet();
-	  this._mappings = new MappingList();
-	  this._sourcesContents = null;
-	}
-
-	SourceMapGenerator.prototype._version = 3;
-
-	/**
-	 * Creates a new SourceMapGenerator based on a SourceMapConsumer
-	 *
-	 * @param aSourceMapConsumer The SourceMap.
-	 */
-	SourceMapGenerator.fromSourceMap =
-	  function SourceMapGenerator_fromSourceMap(aSourceMapConsumer) {
-	    var sourceRoot = aSourceMapConsumer.sourceRoot;
-	    var generator = new SourceMapGenerator({
-	      file: aSourceMapConsumer.file,
-	      sourceRoot: sourceRoot
-	    });
-	    aSourceMapConsumer.eachMapping(function (mapping) {
-	      var newMapping = {
-	        generated: {
-	          line: mapping.generatedLine,
-	          column: mapping.generatedColumn
-	        }
-	      };
-
-	      if (mapping.source != null) {
-	        newMapping.source = mapping.source;
-	        if (sourceRoot != null) {
-	          newMapping.source = util.relative(sourceRoot, newMapping.source);
-	        }
-
-	        newMapping.original = {
-	          line: mapping.originalLine,
-	          column: mapping.originalColumn
-	        };
-
-	        if (mapping.name != null) {
-	          newMapping.name = mapping.name;
-	        }
-	      }
-
-	      generator.addMapping(newMapping);
-	    });
-	    aSourceMapConsumer.sources.forEach(function (sourceFile) {
-	      var content = aSourceMapConsumer.sourceContentFor(sourceFile);
-	      if (content != null) {
-	        generator.setSourceContent(sourceFile, content);
-	      }
-	    });
-	    return generator;
-	  };
-
-	/**
-	 * Add a single mapping from original source line and column to the generated
-	 * source's line and column for this source map being created. The mapping
-	 * object should have the following properties:
-	 *
-	 *   - generated: An object with the generated line and column positions.
-	 *   - original: An object with the original line and column positions.
-	 *   - source: The original source file (relative to the sourceRoot).
-	 *   - name: An optional original token name for this mapping.
-	 */
-	SourceMapGenerator.prototype.addMapping =
-	  function SourceMapGenerator_addMapping(aArgs) {
-	    var generated = util.getArg(aArgs, 'generated');
-	    var original = util.getArg(aArgs, 'original', null);
-	    var source = util.getArg(aArgs, 'source', null);
-	    var name = util.getArg(aArgs, 'name', null);
-
-	    if (!this._skipValidation) {
-	      this._validateMapping(generated, original, source, name);
-	    }
-
-	    if (source != null) {
-	      source = String(source);
-	      if (!this._sources.has(source)) {
-	        this._sources.add(source);
-	      }
-	    }
-
-	    if (name != null) {
-	      name = String(name);
-	      if (!this._names.has(name)) {
-	        this._names.add(name);
-	      }
-	    }
-
-	    this._mappings.add({
-	      generatedLine: generated.line,
-	      generatedColumn: generated.column,
-	      originalLine: original != null && original.line,
-	      originalColumn: original != null && original.column,
-	      source: source,
-	      name: name
-	    });
-	  };
-
-	/**
-	 * Set the source content for a source file.
-	 */
-	SourceMapGenerator.prototype.setSourceContent =
-	  function SourceMapGenerator_setSourceContent(aSourceFile, aSourceContent) {
-	    var source = aSourceFile;
-	    if (this._sourceRoot != null) {
-	      source = util.relative(this._sourceRoot, source);
-	    }
-
-	    if (aSourceContent != null) {
-	      // Add the source content to the _sourcesContents map.
-	      // Create a new _sourcesContents map if the property is null.
-	      if (!this._sourcesContents) {
-	        this._sourcesContents = Object.create(null);
-	      }
-	      this._sourcesContents[util.toSetString(source)] = aSourceContent;
-	    } else if (this._sourcesContents) {
-	      // Remove the source file from the _sourcesContents map.
-	      // If the _sourcesContents map is empty, set the property to null.
-	      delete this._sourcesContents[util.toSetString(source)];
-	      if (Object.keys(this._sourcesContents).length === 0) {
-	        this._sourcesContents = null;
-	      }
-	    }
-	  };
-
-	/**
-	 * Applies the mappings of a sub-source-map for a specific source file to the
-	 * source map being generated. Each mapping to the supplied source file is
-	 * rewritten using the supplied source map. Note: The resolution for the
-	 * resulting mappings is the minimium of this map and the supplied map.
-	 *
-	 * @param aSourceMapConsumer The source map to be applied.
-	 * @param aSourceFile Optional. The filename of the source file.
-	 *        If omitted, SourceMapConsumer's file property will be used.
-	 * @param aSourceMapPath Optional. The dirname of the path to the source map
-	 *        to be applied. If relative, it is relative to the SourceMapConsumer.
-	 *        This parameter is needed when the two source maps aren't in the same
-	 *        directory, and the source map to be applied contains relative source
-	 *        paths. If so, those relative source paths need to be rewritten
-	 *        relative to the SourceMapGenerator.
-	 */
-	SourceMapGenerator.prototype.applySourceMap =
-	  function SourceMapGenerator_applySourceMap(aSourceMapConsumer, aSourceFile, aSourceMapPath) {
-	    var sourceFile = aSourceFile;
-	    // If aSourceFile is omitted, we will use the file property of the SourceMap
-	    if (aSourceFile == null) {
-	      if (aSourceMapConsumer.file == null) {
-	        throw new Error(
-	          'SourceMapGenerator.prototype.applySourceMap requires either an explicit source file, ' +
-	          'or the source map\'s "file" property. Both were omitted.'
-	        );
-	      }
-	      sourceFile = aSourceMapConsumer.file;
-	    }
-	    var sourceRoot = this._sourceRoot;
-	    // Make "sourceFile" relative if an absolute Url is passed.
-	    if (sourceRoot != null) {
-	      sourceFile = util.relative(sourceRoot, sourceFile);
-	    }
-	    // Applying the SourceMap can add and remove items from the sources and
-	    // the names array.
-	    var newSources = new ArraySet();
-	    var newNames = new ArraySet();
-
-	    // Find mappings for the "sourceFile"
-	    this._mappings.unsortedForEach(function (mapping) {
-	      if (mapping.source === sourceFile && mapping.originalLine != null) {
-	        // Check if it can be mapped by the source map, then update the mapping.
-	        var original = aSourceMapConsumer.originalPositionFor({
-	          line: mapping.originalLine,
-	          column: mapping.originalColumn
-	        });
-	        if (original.source != null) {
-	          // Copy mapping
-	          mapping.source = original.source;
-	          if (aSourceMapPath != null) {
-	            mapping.source = util.join(aSourceMapPath, mapping.source)
-	          }
-	          if (sourceRoot != null) {
-	            mapping.source = util.relative(sourceRoot, mapping.source);
-	          }
-	          mapping.originalLine = original.line;
-	          mapping.originalColumn = original.column;
-	          if (original.name != null) {
-	            mapping.name = original.name;
-	          }
-	        }
-	      }
-
-	      var source = mapping.source;
-	      if (source != null && !newSources.has(source)) {
-	        newSources.add(source);
-	      }
-
-	      var name = mapping.name;
-	      if (name != null && !newNames.has(name)) {
-	        newNames.add(name);
-	      }
-
-	    }, this);
-	    this._sources = newSources;
-	    this._names = newNames;
-
-	    // Copy sourcesContents of applied map.
-	    aSourceMapConsumer.sources.forEach(function (sourceFile) {
-	      var content = aSourceMapConsumer.sourceContentFor(sourceFile);
-	      if (content != null) {
-	        if (aSourceMapPath != null) {
-	          sourceFile = util.join(aSourceMapPath, sourceFile);
-	        }
-	        if (sourceRoot != null) {
-	          sourceFile = util.relative(sourceRoot, sourceFile);
-	        }
-	        this.setSourceContent(sourceFile, content);
-	      }
-	    }, this);
-	  };
-
-	/**
-	 * A mapping can have one of the three levels of data:
-	 *
-	 *   1. Just the generated position.
-	 *   2. The Generated position, original position, and original source.
-	 *   3. Generated and original position, original source, as well as a name
-	 *      token.
-	 *
-	 * To maintain consistency, we validate that any new mapping being added falls
-	 * in to one of these categories.
-	 */
-	SourceMapGenerator.prototype._validateMapping =
-	  function SourceMapGenerator_validateMapping(aGenerated, aOriginal, aSource,
-	                                              aName) {
-	    // When aOriginal is truthy but has empty values for .line and .column,
-	    // it is most likely a programmer error. In this case we throw a very
-	    // specific error message to try to guide them the right way.
-	    // For example: https://github.com/Polymer/polymer-bundler/pull/519
-	    if (aOriginal && typeof aOriginal.line !== 'number' && typeof aOriginal.column !== 'number') {
-	        throw new Error(
-	            'original.line and original.column are not numbers -- you probably meant to omit ' +
-	            'the original mapping entirely and only map the generated position. If so, pass ' +
-	            'null for the original mapping instead of an object with empty or null values.'
-	        );
-	    }
-
-	    if (aGenerated && 'line' in aGenerated && 'column' in aGenerated
-	        && aGenerated.line > 0 && aGenerated.column >= 0
-	        && !aOriginal && !aSource && !aName) {
-	      // Case 1.
-	      return;
-	    }
-	    else if (aGenerated && 'line' in aGenerated && 'column' in aGenerated
-	             && aOriginal && 'line' in aOriginal && 'column' in aOriginal
-	             && aGenerated.line > 0 && aGenerated.column >= 0
-	             && aOriginal.line > 0 && aOriginal.column >= 0
-	             && aSource) {
-	      // Cases 2 and 3.
-	      return;
-	    }
-	    else {
-	      throw new Error('Invalid mapping: ' + JSON.stringify({
-	        generated: aGenerated,
-	        source: aSource,
-	        original: aOriginal,
-	        name: aName
-	      }));
-	    }
-	  };
-
-	/**
-	 * Serialize the accumulated mappings in to the stream of base 64 VLQs
-	 * specified by the source map format.
-	 */
-	SourceMapGenerator.prototype._serializeMappings =
-	  function SourceMapGenerator_serializeMappings() {
-	    var previousGeneratedColumn = 0;
-	    var previousGeneratedLine = 1;
-	    var previousOriginalColumn = 0;
-	    var previousOriginalLine = 0;
-	    var previousName = 0;
-	    var previousSource = 0;
-	    var result = '';
-	    var next;
-	    var mapping;
-	    var nameIdx;
-	    var sourceIdx;
-
-	    var mappings = this._mappings.toArray();
-	    for (var i = 0, len = mappings.length; i < len; i++) {
-	      mapping = mappings[i];
-	      next = ''
-
-	      if (mapping.generatedLine !== previousGeneratedLine) {
-	        previousGeneratedColumn = 0;
-	        while (mapping.generatedLine !== previousGeneratedLine) {
-	          next += ';';
-	          previousGeneratedLine++;
-	        }
-	      }
-	      else {
-	        if (i > 0) {
-	          if (!util.compareByGeneratedPositionsInflated(mapping, mappings[i - 1])) {
-	            continue;
-	          }
-	          next += ',';
-	        }
-	      }
-
-	      next += base64VLQ.encode(mapping.generatedColumn
-	                                 - previousGeneratedColumn);
-	      previousGeneratedColumn = mapping.generatedColumn;
-
-	      if (mapping.source != null) {
-	        sourceIdx = this._sources.indexOf(mapping.source);
-	        next += base64VLQ.encode(sourceIdx - previousSource);
-	        previousSource = sourceIdx;
-
-	        // lines are stored 0-based in SourceMap spec version 3
-	        next += base64VLQ.encode(mapping.originalLine - 1
-	                                   - previousOriginalLine);
-	        previousOriginalLine = mapping.originalLine - 1;
-
-	        next += base64VLQ.encode(mapping.originalColumn
-	                                   - previousOriginalColumn);
-	        previousOriginalColumn = mapping.originalColumn;
-
-	        if (mapping.name != null) {
-	          nameIdx = this._names.indexOf(mapping.name);
-	          next += base64VLQ.encode(nameIdx - previousName);
-	          previousName = nameIdx;
-	        }
-	      }
-
-	      result += next;
-	    }
-
-	    return result;
-	  };
-
-	SourceMapGenerator.prototype._generateSourcesContent =
-	  function SourceMapGenerator_generateSourcesContent(aSources, aSourceRoot) {
-	    return aSources.map(function (source) {
-	      if (!this._sourcesContents) {
-	        return null;
-	      }
-	      if (aSourceRoot != null) {
-	        source = util.relative(aSourceRoot, source);
-	      }
-	      var key = util.toSetString(source);
-	      return Object.prototype.hasOwnProperty.call(this._sourcesContents, key)
-	        ? this._sourcesContents[key]
-	        : null;
-	    }, this);
-	  };
-
-	/**
-	 * Externalize the source map.
-	 */
-	SourceMapGenerator.prototype.toJSON =
-	  function SourceMapGenerator_toJSON() {
-	    var map = {
-	      version: this._version,
-	      sources: this._sources.toArray(),
-	      names: this._names.toArray(),
-	      mappings: this._serializeMappings()
-	    };
-	    if (this._file != null) {
-	      map.file = this._file;
-	    }
-	    if (this._sourceRoot != null) {
-	      map.sourceRoot = this._sourceRoot;
-	    }
-	    if (this._sourcesContents) {
-	      map.sourcesContent = this._generateSourcesContent(map.sources, map.sourceRoot);
-	    }
-
-	    return map;
-	  };
-
-	/**
-	 * Render the source map being generated to a string.
-	 */
-	SourceMapGenerator.prototype.toString =
-	  function SourceMapGenerator_toString() {
-	    return JSON.stringify(this.toJSON());
-	  };
-
-	exports.SourceMapGenerator = SourceMapGenerator;
-
-
-/***/ }),
-/* 2 */
-/***/ (function(module, exports, __webpack_require__) {
-
-	/* -*- Mode: js; js-indent-level: 2; -*- */
-	/*
-	 * Copyright 2011 Mozilla Foundation and contributors
-	 * Licensed under the New BSD license. See LICENSE or:
-	 * http://opensource.org/licenses/BSD-3-Clause
-	 *
-	 * Based on the Base 64 VLQ implementation in Closure Compiler:
-	 * https://code.google.com/p/closure-compiler/source/browse/trunk/src/com/google/debugging/sourcemap/Base64VLQ.java
-	 *
-	 * Copyright 2011 The Closure Compiler Authors. All rights reserved.
-	 * Redistribution and use in source and binary forms, with or without
-	 * modification, are permitted provided that the following conditions are
-	 * met:
-	 *
-	 *  * Redistributions of source code must retain the above copyright
-	 *    notice, this list of conditions and the following disclaimer.
-	 *  * Redistributions in binary form must reproduce the above
-	 *    copyright notice, this list of conditions and the following
-	 *    disclaimer in the documentation and/or other materials provided
-	 *    with the distribution.
-	 *  * Neither the name of Google Inc. nor the names of its
-	 *    contributors may be used to endorse or promote products derived
-	 *    from this software without specific prior written permission.
-	 *
-	 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-	 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-	 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-	 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-	 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-	 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-	 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-	 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-	 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-	 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-	 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-	 */
-
-	var base64 = __webpack_require__(3);
-
-	// A single base 64 digit can contain 6 bits of data. For the base 64 variable
-	// length quantities we use in the source map spec, the first bit is the sign,
-	// the next four bits are the actual value, and the 6th bit is the
-	// continuation bit. The continuation bit tells us whether there are more
-	// digits in this value following this digit.
-	//
-	//   Continuation
-	//   |    Sign
-	//   |    |
-	//   V    V
-	//   101011
-
-	var VLQ_BASE_SHIFT = 5;
-
-	// binary: 100000
-	var VLQ_BASE = 1 << VLQ_BASE_SHIFT;
-
-	// binary: 011111
-	var VLQ_BASE_MASK = VLQ_BASE - 1;
-
-	// binary: 100000
-	var VLQ_CONTINUATION_BIT = VLQ_BASE;
-
-	/**
-	 * Converts from a two-complement value to a value where the sign bit is
-	 * placed in the least significant bit.  For example, as decimals:
-	 *   1 becomes 2 (10 binary), -1 becomes 3 (11 binary)
-	 *   2 becomes 4 (100 binary), -2 becomes 5 (101 binary)
-	 */
-	function toVLQSigned(aValue) {
-	  return aValue < 0
-	    ? ((-aValue) << 1) + 1
-	    : (aValue << 1) + 0;
-	}
-
-	/**
-	 * Converts to a two-complement value from a value where the sign bit is
-	 * placed in the least significant bit.  For example, as decimals:
-	 *   2 (10 binary) becomes 1, 3 (11 binary) becomes -1
-	 *   4 (100 binary) becomes 2, 5 (101 binary) becomes -2
-	 */
-	function fromVLQSigned(aValue) {
-	  var isNegative = (aValue & 1) === 1;
-	  var shifted = aValue >> 1;
-	  return isNegative
-	    ? -shifted
-	    : shifted;
-	}
-
-	/**
-	 * Returns the base 64 VLQ encoded value.
-	 */
-	exports.encode = function base64VLQ_encode(aValue) {
-	  var encoded = "";
-	  var digit;
-
-	  var vlq = toVLQSigned(aValue);
-
-	  do {
-	    digit = vlq & VLQ_BASE_MASK;
-	    vlq >>>= VLQ_BASE_SHIFT;
-	    if (vlq > 0) {
-	      // There are still more digits in this value, so we must make sure the
-	      // continuation bit is marked.
-	      digit |= VLQ_CONTINUATION_BIT;
-	    }
-	    encoded += base64.encode(digit);
-	  } while (vlq > 0);
-
-	  return encoded;
-	};
-
-	/**
-	 * Decodes the next base 64 VLQ value from the given string and returns the
-	 * value and the rest of the string via the out parameter.
-	 */
-	exports.decode = function base64VLQ_decode(aStr, aIndex, aOutParam) {
-	  var strLen = aStr.length;
-	  var result = 0;
-	  var shift = 0;
-	  var continuation, digit;
-
-	  do {
-	    if (aIndex >= strLen) {
-	      throw new Error("Expected more digits in base 64 VLQ value.");
-	    }
-
-	    digit = base64.decode(aStr.charCodeAt(aIndex++));
-	    if (digit === -1) {
-	      throw new Error("Invalid base64 digit: " + aStr.charAt(aIndex - 1));
-	    }
-
-	    continuation = !!(digit & VLQ_CONTINUATION_BIT);
-	    digit &= VLQ_BASE_MASK;
-	    result = result + (digit << shift);
-	    shift += VLQ_BASE_SHIFT;
-	  } while (continuation);
-
-	  aOutParam.value = fromVLQSigned(result);
-	  aOutParam.rest = aIndex;
-	};
-
-
-/***/ }),
-/* 3 */
-/***/ (function(module, exports) {
-
-	/* -*- Mode: js; js-indent-level: 2; -*- */
-	/*
-	 * Copyright 2011 Mozilla Foundation and contributors
-	 * Licensed under the New BSD license. See LICENSE or:
-	 * http://opensource.org/licenses/BSD-3-Clause
-	 */
-
-	var intToCharMap = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'.split('');
-
-	/**
-	 * Encode an integer in the range of 0 to 63 to a single base 64 digit.
-	 */
-	exports.encode = function (number) {
-	  if (0 <= number && number < intToCharMap.length) {
-	    return intToCharMap[number];
-	  }
-	  throw new TypeError("Must be between 0 and 63: " + number);
-	};
-
-	/**
-	 * Decode a single base 64 character code digit to an integer. Returns -1 on
-	 * failure.
-	 */
-	exports.decode = function (charCode) {
-	  var bigA = 65;     // 'A'
-	  var bigZ = 90;     // 'Z'
-
-	  var littleA = 97;  // 'a'
-	  var littleZ = 122; // 'z'
-
-	  var zero = 48;     // '0'
-	  var nine = 57;     // '9'
-
-	  var plus = 43;     // '+'
-	  var slash = 47;    // '/'
-
-	  var littleOffset = 26;
-	  var numberOffset = 52;
-
-	  // 0 - 25: ABCDEFGHIJKLMNOPQRSTUVWXYZ
-	  if (bigA <= charCode && charCode <= bigZ) {
-	    return (charCode - bigA);
-	  }
-
-	  // 26 - 51: abcdefghijklmnopqrstuvwxyz
-	  if (littleA <= charCode && charCode <= littleZ) {
-	    return (charCode - littleA + littleOffset);
-	  }
-
-	  // 52 - 61: 0123456789
-	  if (zero <= charCode && charCode <= nine) {
-	    return (charCode - zero + numberOffset);
-	  }
-
-	  // 62: +
-	  if (charCode == plus) {
-	    return 62;
-	  }
-
-	  // 63: /
-	  if (charCode == slash) {
-	    return 63;
-	  }
-
-	  // Invalid base64 digit.
-	  return -1;
-	};
-
-
-/***/ }),
-/* 4 */
-/***/ (function(module, exports) {
-
-	/* -*- Mode: js; js-indent-level: 2; -*- */
-	/*
-	 * Copyright 2011 Mozilla Foundation and contributors
-	 * Licensed under the New BSD license. See LICENSE or:
-	 * http://opensource.org/licenses/BSD-3-Clause
-	 */
-
-	/**
-	 * This is a helper function for getting values from parameter/options
-	 * objects.
-	 *
-	 * @param args The object we are extracting values from
-	 * @param name The name of the property we are getting.
-	 * @param defaultValue An optional value to return if the property is missing
-	 * from the object. If this is not specified and the property is missing, an
-	 * error will be thrown.
-	 */
-	function getArg(aArgs, aName, aDefaultValue) {
-	  if (aName in aArgs) {
-	    return aArgs[aName];
-	  } else if (arguments.length === 3) {
-	    return aDefaultValue;
-	  } else {
-	    throw new Error('"' + aName + '" is a required argument.');
-	  }
-	}
-	exports.getArg = getArg;
-
-	var urlRegexp = /^(?:([\w+\-.]+):)?\/\/(?:(\w+:\w+)@)?([\w.]*)(?::(\d+))?(\S*)$/;
-	var dataUrlRegexp = /^data:.+\,.+$/;
-
-	function urlParse(aUrl) {
-	  var match = aUrl.match(urlRegexp);
-	  if (!match) {
-	    return null;
-	  }
-	  return {
-	    scheme: match[1],
-	    auth: match[2],
-	    host: match[3],
-	    port: match[4],
-	    path: match[5]
-	  };
-	}
-	exports.urlParse = urlParse;
-
-	function urlGenerate(aParsedUrl) {
-	  var url = '';
-	  if (aParsedUrl.scheme) {
-	    url += aParsedUrl.scheme + ':';
-	  }
-	  url += '//';
-	  if (aParsedUrl.auth) {
-	    url += aParsedUrl.auth + '@';
-	  }
-	  if (aParsedUrl.host) {
-	    url += aParsedUrl.host;
-	  }
-	  if (aParsedUrl.port) {
-	    url += ":" + aParsedUrl.port
-	  }
-	  if (aParsedUrl.path) {
-	    url += aParsedUrl.path;
-	  }
-	  return url;
-	}
-	exports.urlGenerate = urlGenerate;
-
-	/**
-	 * Normalizes a path, or the path portion of a URL:
-	 *
-	 * - Replaces consecutive slashes with one slash.
-	 * - Removes unnecessary '.' parts.
-	 * - Removes unnecessary '<dir>/..' parts.
-	 *
-	 * Based on code in the Node.js 'path' core module.
-	 *
-	 * @param aPath The path or url to normalize.
-	 */
-	function normalize(aPath) {
-	  var path = aPath;
-	  var url = urlParse(aPath);
-	  if (url) {
-	    if (!url.path) {
-	      return aPath;
-	    }
-	    path = url.path;
-	  }
-	  var isAbsolute = exports.isAbsolute(path);
-
-	  var parts = path.split(/\/+/);
-	  for (var part, up = 0, i = parts.length - 1; i >= 0; i--) {
-	    part = parts[i];
-	    if (part === '.') {
-	      parts.splice(i, 1);
-	    } else if (part === '..') {
-	      up++;
-	    } else if (up > 0) {
-	      if (part === '') {
-	        // The first part is blank if the path is absolute. Trying to go
-	        // above the root is a no-op. Therefore we can remove all '..' parts
-	        // directly after the root.
-	        parts.splice(i + 1, up);
-	        up = 0;
-	      } else {
-	        parts.splice(i, 2);
-	        up--;
-	      }
-	    }
-	  }
-	  path = parts.join('/');
-
-	  if (path === '') {
-	    path = isAbsolute ? '/' : '.';
-	  }
-
-	  if (url) {
-	    url.path = path;
-	    return urlGenerate(url);
-	  }
-	  return path;
-	}
-	exports.normalize = normalize;
-
-	/**
-	 * Joins two paths/URLs.
-	 *
-	 * @param aRoot The root path or URL.
-	 * @param aPath The path or URL to be joined with the root.
-	 *
-	 * - If aPath is a URL or a data URI, aPath is returned, unless aPath is a
-	 *   scheme-relative URL: Then the scheme of aRoot, if any, is prepended
-	 *   first.
-	 * - Otherwise aPath is a path. If aRoot is a URL, then its path portion
-	 *   is updated with the result and aRoot is returned. Otherwise the result
-	 *   is returned.
-	 *   - If aPath is absolute, the result is aPath.
-	 *   - Otherwise the two paths are joined with a slash.
-	 * - Joining for example 'http://' and 'www.example.com' is also supported.
-	 */
-	function join(aRoot, aPath) {
-	  if (aRoot === "") {
-	    aRoot = ".";
-	  }
-	  if (aPath === "") {
-	    aPath = ".";
-	  }
-	  var aPathUrl = urlParse(aPath);
-	  var aRootUrl = urlParse(aRoot);
-	  if (aRootUrl) {
-	    aRoot = aRootUrl.path || '/';
-	  }
-
-	  // `join(foo, '//www.example.org')`
-	  if (aPathUrl && !aPathUrl.scheme) {
-	    if (aRootUrl) {
-	      aPathUrl.scheme = aRootUrl.scheme;
-	    }
-	    return urlGenerate(aPathUrl);
-	  }
-
-	  if (aPathUrl || aPath.match(dataUrlRegexp)) {
-	    return aPath;
-	  }
-
-	  // `join('http://', 'www.example.com')`
-	  if (aRootUrl && !aRootUrl.host && !aRootUrl.path) {
-	    aRootUrl.host = aPath;
-	    return urlGenerate(aRootUrl);
-	  }
-
-	  var joined = aPath.charAt(0) === '/'
-	    ? aPath
-	    : normalize(aRoot.replace(/\/+$/, '') + '/' + aPath);
-
-	  if (aRootUrl) {
-	    aRootUrl.path = joined;
-	    return urlGenerate(aRootUrl);
-	  }
-	  return joined;
-	}
-	exports.join = join;
-
-	exports.isAbsolute = function (aPath) {
-	  return aPath.charAt(0) === '/' || !!aPath.match(urlRegexp);
-	};
-
-	/**
-	 * Make a path relative to a URL or another path.
-	 *
-	 * @param aRoot The root path or URL.
-	 * @param aPath The path or URL to be made relative to aRoot.
-	 */
-	function relative(aRoot, aPath) {
-	  if (aRoot === "") {
-	    aRoot = ".";
-	  }
-
-	  aRoot = aRoot.replace(/\/$/, '');
-
-	  // It is possible for the path to be above the root. In this case, simply
-	  // checking whether the root is a prefix of the path won't work. Instead, we
-	  // need to remove components from the root one by one, until either we find
-	  // a prefix that fits, or we run out of components to remove.
-	  var level = 0;
-	  while (aPath.indexOf(aRoot + '/') !== 0) {
-	    var index = aRoot.lastIndexOf("/");
-	    if (index < 0) {
-	      return aPath;
-	    }
-
-	    // If the only part of the root that is left is the scheme (i.e. http://,
-	    // file:///, etc.), one or more slashes (/), or simply nothing at all, we
-	    // have exhausted all components, so the path is not relative to the root.
-	    aRoot = aRoot.slice(0, index);
-	    if (aRoot.match(/^([^\/]+:\/)?\/*$/)) {
-	      return aPath;
-	    }
-
-	    ++level;
-	  }
-
-	  // Make sure we add a "../" for each component we removed from the root.
-	  return Array(level + 1).join("../") + aPath.substr(aRoot.length + 1);
-	}
-	exports.relative = relative;
-
-	var supportsNullProto = (function () {
-	  var obj = Object.create(null);
-	  return !('__proto__' in obj);
-	}());
-
-	function identity (s) {
-	  return s;
-	}
-
-	/**
-	 * Because behavior goes wacky when you set `__proto__` on objects, we
-	 * have to prefix all the strings in our set with an arbitrary character.
-	 *
-	 * See https://github.com/mozilla/source-map/pull/31 and
-	 * https://github.com/mozilla/source-map/issues/30
-	 *
-	 * @param String aStr
-	 */
-	function toSetString(aStr) {
-	  if (isProtoString(aStr)) {
-	    return '$' + aStr;
-	  }
-
-	  return aStr;
-	}
-	exports.toSetString = supportsNullProto ? identity : toSetString;
-
-	function fromSetString(aStr) {
-	  if (isProtoString(aStr)) {
-	    return aStr.slice(1);
-	  }
-
-	  return aStr;
-	}
-	exports.fromSetString = supportsNullProto ? identity : fromSetString;
-
-	function isProtoString(s) {
-	  if (!s) {
-	    return false;
-	  }
-
-	  var length = s.length;
-
-	  if (length < 9 /* "__proto__".length */) {
-	    return false;
-	  }
-
-	  if (s.charCodeAt(length - 1) !== 95  /* '_' */ ||
-	      s.charCodeAt(length - 2) !== 95  /* '_' */ ||
-	      s.charCodeAt(length - 3) !== 111 /* 'o' */ ||
-	      s.charCodeAt(length - 4) !== 116 /* 't' */ ||
-	      s.charCodeAt(length - 5) !== 111 /* 'o' */ ||
-	      s.charCodeAt(length - 6) !== 114 /* 'r' */ ||
-	      s.charCodeAt(length - 7) !== 112 /* 'p' */ ||
-	      s.charCodeAt(length - 8) !== 95  /* '_' */ ||
-	      s.charCodeAt(length - 9) !== 95  /* '_' */) {
-	    return false;
-	  }
-
-	  for (var i = length - 10; i >= 0; i--) {
-	    if (s.charCodeAt(i) !== 36 /* '$' */) {
-	      return false;
-	    }
-	  }
-
-	  return true;
-	}
-
-	/**
-	 * Comparator between two mappings where the original positions are compared.
-	 *
-	 * Optionally pass in `true` as `onlyCompareGenerated` to consider two
-	 * mappings with the same original source/line/column, but different generated
-	 * line and column the same. Useful when searching for a mapping with a
-	 * stubbed out mapping.
-	 */
-	function compareByOriginalPositions(mappingA, mappingB, onlyCompareOriginal) {
-	  var cmp = mappingA.source - mappingB.source;
-	  if (cmp !== 0) {
-	    return cmp;
-	  }
-
-	  cmp = mappingA.originalLine - mappingB.originalLine;
-	  if (cmp !== 0) {
-	    return cmp;
-	  }
-
-	  cmp = mappingA.originalColumn - mappingB.originalColumn;
-	  if (cmp !== 0 || onlyCompareOriginal) {
-	    return cmp;
-	  }
-
-	  cmp = mappingA.generatedColumn - mappingB.generatedColumn;
-	  if (cmp !== 0) {
-	    return cmp;
-	  }
-
-	  cmp = mappingA.generatedLine - mappingB.generatedLine;
-	  if (cmp !== 0) {
-	    return cmp;
-	  }
-
-	  return mappingA.name - mappingB.name;
-	}
-	exports.compareByOriginalPositions = compareByOriginalPositions;
-
-	/**
-	 * Comparator between two mappings with deflated source and name indices where
-	 * the generated positions are compared.
-	 *
-	 * Optionally pass in `true` as `onlyCompareGenerated` to consider two
-	 * mappings with the same generated line and column, but different
-	 * source/name/original line and column the same. Useful when searching for a
-	 * mapping with a stubbed out mapping.
-	 */
-	function compareByGeneratedPositionsDeflated(mappingA, mappingB, onlyCompareGenerated) {
-	  var cmp = mappingA.generatedLine - mappingB.generatedLine;
-	  if (cmp !== 0) {
-	    return cmp;
-	  }
-
-	  cmp = mappingA.generatedColumn - mappingB.generatedColumn;
-	  if (cmp !== 0 || onlyCompareGenerated) {
-	    return cmp;
-	  }
-
-	  cmp = mappingA.source - mappingB.source;
-	  if (cmp !== 0) {
-	    return cmp;
-	  }
-
-	  cmp = mappingA.originalLine - mappingB.originalLine;
-	  if (cmp !== 0) {
-	    return cmp;
-	  }
-
-	  cmp = mappingA.originalColumn - mappingB.originalColumn;
-	  if (cmp !== 0) {
-	    return cmp;
-	  }
-
-	  return mappingA.name - mappingB.name;
-	}
-	exports.compareByGeneratedPositionsDeflated = compareByGeneratedPositionsDeflated;
-
-	function strcmp(aStr1, aStr2) {
-	  if (aStr1 === aStr2) {
-	    return 0;
-	  }
-
-	  if (aStr1 > aStr2) {
-	    return 1;
-	  }
-
-	  return -1;
-	}
-
-	/**
-	 * Comparator between two mappings with inflated source and name strings where
-	 * the generated positions are compared.
-	 */
-	function compareByGeneratedPositionsInflated(mappingA, mappingB) {
-	  var cmp = mappingA.generatedLine - mappingB.generatedLine;
-	  if (cmp !== 0) {
-	    return cmp;
-	  }
-
-	  cmp = mappingA.generatedColumn - mappingB.generatedColumn;
-	  if (cmp !== 0) {
-	    return cmp;
-	  }
-
-	  cmp = strcmp(mappingA.source, mappingB.source);
-	  if (cmp !== 0) {
-	    return cmp;
-	  }
-
-	  cmp = mappingA.originalLine - mappingB.originalLine;
-	  if (cmp !== 0) {
-	    return cmp;
-	  }
-
-	  cmp = mappingA.originalColumn - mappingB.originalColumn;
-	  if (cmp !== 0) {
-	    return cmp;
-	  }
-
-	  return strcmp(mappingA.name, mappingB.name);
-	}
-	exports.compareByGeneratedPositionsInflated = compareByGeneratedPositionsInflated;
-
-
-/***/ }),
-/* 5 */
-/***/ (function(module, exports, __webpack_require__) {
-
-	/* -*- Mode: js; js-indent-level: 2; -*- */
-	/*
-	 * Copyright 2011 Mozilla Foundation and contributors
-	 * Licensed under the New BSD license. See LICENSE or:
-	 * http://opensource.org/licenses/BSD-3-Clause
-	 */
-
-	var util = __webpack_require__(4);
-	var has = Object.prototype.hasOwnProperty;
-	var hasNativeMap = typeof Map !== "undefined";
-
-	/**
-	 * A data structure which is a combination of an array and a set. Adding a new
-	 * member is O(1), testing for membership is O(1), and finding the index of an
-	 * element is O(1). Removing elements from the set is not supported. Only
-	 * strings are supported for membership.
-	 */
-	function ArraySet() {
-	  this._array = [];
-	  this._set = hasNativeMap ? new Map() : Object.create(null);
-	}
-
-	/**
-	 * Static method for creating ArraySet instances from an existing array.
-	 */
-	ArraySet.fromArray = function ArraySet_fromArray(aArray, aAllowDuplicates) {
-	  var set = new ArraySet();
-	  for (var i = 0, len = aArray.length; i < len; i++) {
-	    set.add(aArray[i], aAllowDuplicates);
-	  }
-	  return set;
-	};
-
-	/**
-	 * Return how many unique items are in this ArraySet. If duplicates have been
-	 * added, than those do not count towards the size.
-	 *
-	 * @returns Number
-	 */
-	ArraySet.prototype.size = function ArraySet_size() {
-	  return hasNativeMap ? this._set.size : Object.getOwnPropertyNames(this._set).length;
-	};
-
-	/**
-	 * Add the given string to this set.
-	 *
-	 * @param String aStr
-	 */
-	ArraySet.prototype.add = function ArraySet_add(aStr, aAllowDuplicates) {
-	  var sStr = hasNativeMap ? aStr : util.toSetString(aStr);
-	  var isDuplicate = hasNativeMap ? this.has(aStr) : has.call(this._set, sStr);
-	  var idx = this._array.length;
-	  if (!isDuplicate || aAllowDuplicates) {
-	    this._array.push(aStr);
-	  }
-	  if (!isDuplicate) {
-	    if (hasNativeMap) {
-	      this._set.set(aStr, idx);
-	    } else {
-	      this._set[sStr] = idx;
-	    }
-	  }
-	};
-
-	/**
-	 * Is the given string a member of this set?
-	 *
-	 * @param String aStr
-	 */
-	ArraySet.prototype.has = function ArraySet_has(aStr) {
-	  if (hasNativeMap) {
-	    return this._set.has(aStr);
-	  } else {
-	    var sStr = util.toSetString(aStr);
-	    return has.call(this._set, sStr);
-	  }
-	};
-
-	/**
-	 * What is the index of the given string in the array?
-	 *
-	 * @param String aStr
-	 */
-	ArraySet.prototype.indexOf = function ArraySet_indexOf(aStr) {
-	  if (hasNativeMap) {
-	    var idx = this._set.get(aStr);
-	    if (idx >= 0) {
-	        return idx;
-	    }
-	  } else {
-	    var sStr = util.toSetString(aStr);
-	    if (has.call(this._set, sStr)) {
-	      return this._set[sStr];
-	    }
-	  }
-
-	  throw new Error('"' + aStr + '" is not in the set.');
-	};
-
-	/**
-	 * What is the element at the given index?
-	 *
-	 * @param Number aIdx
-	 */
-	ArraySet.prototype.at = function ArraySet_at(aIdx) {
-	  if (aIdx >= 0 && aIdx < this._array.length) {
-	    return this._array[aIdx];
-	  }
-	  throw new Error('No element indexed by ' + aIdx);
-	};
-
-	/**
-	 * Returns the array representation of this set (which has the proper indices
-	 * indicated by indexOf). Note that this is a copy of the internal array used
-	 * for storing the members so that no one can mess with internal state.
-	 */
-	ArraySet.prototype.toArray = function ArraySet_toArray() {
-	  return this._array.slice();
-	};
-
-	exports.ArraySet = ArraySet;
-
-
-/***/ }),
-/* 6 */
-/***/ (function(module, exports, __webpack_require__) {
-
-	/* -*- Mode: js; js-indent-level: 2; -*- */
-	/*
-	 * Copyright 2014 Mozilla Foundation and contributors
-	 * Licensed under the New BSD license. See LICENSE or:
-	 * http://opensource.org/licenses/BSD-3-Clause
-	 */
-
-	var util = __webpack_require__(4);
-
-	/**
-	 * Determine whether mappingB is after mappingA with respect to generated
-	 * position.
-	 */
-	function generatedPositionAfter(mappingA, mappingB) {
-	  // Optimized for most common case
-	  var lineA = mappingA.generatedLine;
-	  var lineB = mappingB.generatedLine;
-	  var columnA = mappingA.generatedColumn;
-	  var columnB = mappingB.generatedColumn;
-	  return lineB > lineA || lineB == lineA && columnB >= columnA ||
-	         util.compareByGeneratedPositionsInflated(mappingA, mappingB) <= 0;
-	}
-
-	/**
-	 * A data structure to provide a sorted view of accumulated mappings in a
-	 * performance conscious manner. It trades a neglibable overhead in general
-	 * case for a large speedup in case of mappings being added in order.
-	 */
-	function MappingList() {
-	  this._array = [];
-	  this._sorted = true;
-	  // Serves as infimum
-	  this._last = {generatedLine: -1, generatedColumn: 0};
-	}
-
-	/**
-	 * Iterate through internal items. This method takes the same arguments that
-	 * `Array.prototype.forEach` takes.
-	 *
-	 * NOTE: The order of the mappings is NOT guaranteed.
-	 */
-	MappingList.prototype.unsortedForEach =
-	  function MappingList_forEach(aCallback, aThisArg) {
-	    this._array.forEach(aCallback, aThisArg);
-	  };
-
-	/**
-	 * Add the given source mapping.
-	 *
-	 * @param Object aMapping
-	 */
-	MappingList.prototype.add = function MappingList_add(aMapping) {
-	  if (generatedPositionAfter(this._last, aMapping)) {
-	    this._last = aMapping;
-	    this._array.push(aMapping);
-	  } else {
-	    this._sorted = false;
-	    this._array.push(aMapping);
-	  }
-	};
-
-	/**
-	 * Returns the flat, sorted array of mappings. The mappings are sorted by
-	 * generated position.
-	 *
-	 * WARNING: This method returns internal data without copying, for
-	 * performance. The return value must NOT be mutated, and should be treated as
-	 * an immutable borrow. If you want to take ownership, you must make your own
-	 * copy.
-	 */
-	MappingList.prototype.toArray = function MappingList_toArray() {
-	  if (!this._sorted) {
-	    this._array.sort(util.compareByGeneratedPositionsInflated);
-	    this._sorted = true;
-	  }
-	  return this._array;
-	};
-
-	exports.MappingList = MappingList;
-
-
-/***/ }),
-/* 7 */
-/***/ (function(module, exports, __webpack_require__) {
-
-	/* -*- Mode: js; js-indent-level: 2; -*- */
-	/*
-	 * Copyright 2011 Mozilla Foundation and contributors
-	 * Licensed under the New BSD license. See LICENSE or:
-	 * http://opensource.org/licenses/BSD-3-Clause
-	 */
-
-	var util = __webpack_require__(4);
-	var binarySearch = __webpack_require__(8);
-	var ArraySet = __webpack_require__(5).ArraySet;
-	var base64VLQ = __webpack_require__(2);
-	var quickSort = __webpack_require__(9).quickSort;
-
-	function SourceMapConsumer(aSourceMap) {
-	  var sourceMap = aSourceMap;
-	  if (typeof aSourceMap === 'string') {
-	    sourceMap = JSON.parse(aSourceMap.replace(/^\)\]\}'/, ''));
-	  }
-
-	  return sourceMap.sections != null
-	    ? new IndexedSourceMapConsumer(sourceMap)
-	    : new BasicSourceMapConsumer(sourceMap);
-	}
-
-	SourceMapConsumer.fromSourceMap = function(aSourceMap) {
-	  return BasicSourceMapConsumer.fromSourceMap(aSourceMap);
-	}
-
-	/**
-	 * The version of the source mapping spec that we are consuming.
-	 */
-	SourceMapConsumer.prototype._version = 3;
-
-	// `__generatedMappings` and `__originalMappings` are arrays that hold the
-	// parsed mapping coordinates from the source map's "mappings" attribute. They
-	// are lazily instantiated, accessed via the `_generatedMappings` and
-	// `_originalMappings` getters respectively, and we only parse the mappings
-	// and create these arrays once queried for a source location. We jump through
-	// these hoops because there can be many thousands of mappings, and parsing
-	// them is expensive, so we only want to do it if we must.
-	//
-	// Each object in the arrays is of the form:
-	//
-	//     {
-	//       generatedLine: The line number in the generated code,
-	//       generatedColumn: The column number in the generated code,
-	//       source: The path to the original source file that generated this
-	//               chunk of code,
-	//       originalLine: The line number in the original source that
-	//                     corresponds to this chunk of generated code,
-	//       originalColumn: The column number in the original source that
-	//                       corresponds to this chunk of generated code,
-	//       name: The name of the original symbol which generated this chunk of
-	//             code.
-	//     }
-	//
-	// All properties except for `generatedLine` and `generatedColumn` can be
-	// `null`.
-	//
-	// `_generatedMappings` is ordered by the generated positions.
-	//
-	// `_originalMappings` is ordered by the original positions.
-
-	SourceMapConsumer.prototype.__generatedMappings = null;
-	Object.defineProperty(SourceMapConsumer.prototype, '_generatedMappings', {
-	  get: function () {
-	    if (!this.__generatedMappings) {
-	      this._parseMappings(this._mappings, this.sourceRoot);
-	    }
-
-	    return this.__generatedMappings;
-	  }
-	});
-
-	SourceMapConsumer.prototype.__originalMappings = null;
-	Object.defineProperty(SourceMapConsumer.prototype, '_originalMappings', {
-	  get: function () {
-	    if (!this.__originalMappings) {
-	      this._parseMappings(this._mappings, this.sourceRoot);
-	    }
-
-	    return this.__originalMappings;
-	  }
-	});
-
-	SourceMapConsumer.prototype._charIsMappingSeparator =
-	  function SourceMapConsumer_charIsMappingSeparator(aStr, index) {
-	    var c = aStr.charAt(index);
-	    return c === ";" || c === ",";
-	  };
-
-	/**
-	 * Parse the mappings in a string in to a data structure which we can easily
-	 * query (the ordered arrays in the `this.__generatedMappings` and
-	 * `this.__originalMappings` properties).
-	 */
-	SourceMapConsumer.prototype._parseMappings =
-	  function SourceMapConsumer_parseMappings(aStr, aSourceRoot) {
-	    throw new Error("Subclasses must implement _parseMappings");
-	  };
-
-	SourceMapConsumer.GENERATED_ORDER = 1;
-	SourceMapConsumer.ORIGINAL_ORDER = 2;
-
-	SourceMapConsumer.GREATEST_LOWER_BOUND = 1;
-	SourceMapConsumer.LEAST_UPPER_BOUND = 2;
-
-	/**
-	 * Iterate over each mapping between an original source/line/column and a
-	 * generated line/column in this source map.
-	 *
-	 * @param Function aCallback
-	 *        The function that is called with each mapping.
-	 * @param Object aContext
-	 *        Optional. If specified, this object will be the value of `this` every
-	 *        time that `aCallback` is called.
-	 * @param aOrder
-	 *        Either `SourceMapConsumer.GENERATED_ORDER` or
-	 *        `SourceMapConsumer.ORIGINAL_ORDER`. Specifies whether you want to
-	 *        iterate over the mappings sorted by the generated file's line/column
-	 *        order or the original's source/line/column order, respectively. Defaults to
-	 *        `SourceMapConsumer.GENERATED_ORDER`.
-	 */
-	SourceMapConsumer.prototype.eachMapping =
-	  function SourceMapConsumer_eachMapping(aCallback, aContext, aOrder) {
-	    var context = aContext || null;
-	    var order = aOrder || SourceMapConsumer.GENERATED_ORDER;
-
-	    var mappings;
-	    switch (order) {
-	    case SourceMapConsumer.GENERATED_ORDER:
-	      mappings = this._generatedMappings;
-	      break;
-	    case SourceMapConsumer.ORIGINAL_ORDER:
-	      mappings = this._originalMappings;
-	      break;
-	    default:
-	      throw new Error("Unknown order of iteration.");
-	    }
-
-	    var sourceRoot = this.sourceRoot;
-	    mappings.map(function (mapping) {
-	      var source = mapping.source === null ? null : this._sources.at(mapping.source);
-	      if (source != null && sourceRoot != null) {
-	        source = util.join(sourceRoot, source);
-	      }
-	      return {
-	        source: source,
-	        generatedLine: mapping.generatedLine,
-	        generatedColumn: mapping.generatedColumn,
-	        originalLine: mapping.originalLine,
-	        originalColumn: mapping.originalColumn,
-	        name: mapping.name === null ? null : this._names.at(mapping.name)
-	      };
-	    }, this).forEach(aCallback, context);
-	  };
-
-	/**
-	 * Returns all generated line and column information for the original source,
-	 * line, and column provided. If no column is provided, returns all mappings
-	 * corresponding to a either the line we are searching for or the next
-	 * closest line that has any mappings. Otherwise, returns all mappings
-	 * corresponding to the given line and either the column we are searching for
-	 * or the next closest column that has any offsets.
-	 *
-	 * The only argument is an object with the following properties:
-	 *
-	 *   - source: The filename of the original source.
-	 *   - line: The line number in the original source.
-	 *   - column: Optional. the column number in the original source.
-	 *
-	 * and an array of objects is returned, each with the following properties:
-	 *
-	 *   - line: The line number in the generated source, or null.
-	 *   - column: The column number in the generated source, or null.
-	 */
-	SourceMapConsumer.prototype.allGeneratedPositionsFor =
-	  function SourceMapConsumer_allGeneratedPositionsFor(aArgs) {
-	    var line = util.getArg(aArgs, 'line');
-
-	    // When there is no exact match, BasicSourceMapConsumer.prototype._findMapping
-	    // returns the index of the closest mapping less than the needle. By
-	    // setting needle.originalColumn to 0, we thus find the last mapping for
-	    // the given line, provided such a mapping exists.
-	    var needle = {
-	      source: util.getArg(aArgs, 'source'),
-	      originalLine: line,
-	      originalColumn: util.getArg(aArgs, 'column', 0)
-	    };
-
-	    if (this.sourceRoot != null) {
-	      needle.source = util.relative(this.sourceRoot, needle.source);
-	    }
-	    if (!this._sources.has(needle.source)) {
-	      return [];
-	    }
-	    needle.source = this._sources.indexOf(needle.source);
-
-	    var mappings = [];
-
-	    var index = this._findMapping(needle,
-	                                  this._originalMappings,
-	                                  "originalLine",
-	                                  "originalColumn",
-	                                  util.compareByOriginalPositions,
-	                                  binarySearch.LEAST_UPPER_BOUND);
-	    if (index >= 0) {
-	      var mapping = this._originalMappings[index];
-
-	      if (aArgs.column === undefined) {
-	        var originalLine = mapping.originalLine;
-
-	        // Iterate until either we run out of mappings, or we run into
-	        // a mapping for a different line than the one we found. Since
-	        // mappings are sorted, this is guaranteed to find all mappings for
-	        // the line we found.
-	        while (mapping && mapping.originalLine === originalLine) {
-	          mappings.push({
-	            line: util.getArg(mapping, 'generatedLine', null),
-	            column: util.getArg(mapping, 'generatedColumn', null),
-	            lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null)
-	          });
-
-	          mapping = this._originalMappings[++index];
-	        }
-	      } else {
-	        var originalColumn = mapping.originalColumn;
-
-	        // Iterate until either we run out of mappings, or we run into
-	        // a mapping for a different line than the one we were searching for.
-	        // Since mappings are sorted, this is guaranteed to find all mappings for
-	        // the line we are searching for.
-	        while (mapping &&
-	               mapping.originalLine === line &&
-	               mapping.originalColumn == originalColumn) {
-	          mappings.push({
-	            line: util.getArg(mapping, 'generatedLine', null),
-	            column: util.getArg(mapping, 'generatedColumn', null),
-	            lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null)
-	          });
-
-	          mapping = this._originalMappings[++index];
-	        }
-	      }
-	    }
-
-	    return mappings;
-	  };
-
-	exports.SourceMapConsumer = SourceMapConsumer;
-
-	/**
-	 * A BasicSourceMapConsumer instance represents a parsed source map which we can
-	 * query for information about the original file positions by giving it a file
-	 * position in the generated source.
-	 *
-	 * The only parameter is the raw source map (either as a JSON string, or
-	 * already parsed to an object). According to the spec, source maps have the
-	 * following attributes:
-	 *
-	 *   - version: Which version of the source map spec this map is following.
-	 *   - sources: An array of URLs to the original source files.
-	 *   - names: An array of identifiers which can be referrenced by individual mappings.
-	 *   - sourceRoot: Optional. The URL root from which all sources are relative.
-	 *   - sourcesContent: Optional. An array of contents of the original source files.
-	 *   - mappings: A string of base64 VLQs which contain the actual mappings.
-	 *   - file: Optional. The generated file this source map is associated with.
-	 *
-	 * Here is an example source map, taken from the source map spec[0]:
-	 *
-	 *     {
-	 *       version : 3,
-	 *       file: "out.js",
-	 *       sourceRoot : "",
-	 *       sources: ["foo.js", "bar.js"],
-	 *       names: ["src", "maps", "are", "fun"],
-	 *       mappings: "AA,AB;;ABCDE;"
-	 *     }
-	 *
-	 * [0]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit?pli=1#
-	 */
-	function BasicSourceMapConsumer(aSourceMap) {
-	  var sourceMap = aSourceMap;
-	  if (typeof aSourceMap === 'string') {
-	    sourceMap = JSON.parse(aSourceMap.replace(/^\)\]\}'/, ''));
-	  }
-
-	  var version = util.getArg(sourceMap, 'version');
-	  var sources = util.getArg(sourceMap, 'sources');
-	  // Sass 3.3 leaves out the 'names' array, so we deviate from the spec (which
-	  // requires the array) to play nice here.
-	  var names = util.getArg(sourceMap, 'names', []);
-	  var sourceRoot = util.getArg(sourceMap, 'sourceRoot', null);
-	  var sourcesContent = util.getArg(sourceMap, 'sourcesContent', null);
-	  var mappings = util.getArg(sourceMap, 'mappings');
-	  var file = util.getArg(sourceMap, 'file', null);
-
-	  // Once again, Sass deviates from the spec and supplies the version as a
-	  // string rather than a number, so we use loose equality checking here.
-	  if (version != this._version) {
-	    throw new Error('Unsupported version: ' + version);
-	  }
-
-	  sources = sources
-	    .map(String)
-	    // Some source maps produce relative source paths like "./foo.js" instead of
-	    // "foo.js".  Normalize these first so that future comparisons will succeed.
-	    // See bugzil.la/1090768.
-	    .map(util.normalize)
-	    // Always ensure that absolute sources are internally stored relative to
-	    // the source root, if the source root is absolute. Not doing this would
-	    // be particularly problematic when the source root is a prefix of the
-	    // source (valid, but why??). See github issue #199 and bugzil.la/1188982.
-	    .map(function (source) {
-	      return sourceRoot && util.isAbsolute(sourceRoot) && util.isAbsolute(source)
-	        ? util.relative(sourceRoot, source)
-	        : source;
-	    });
-
-	  // Pass `true` below to allow duplicate names and sources. While source maps
-	  // are intended to be compressed and deduplicated, the TypeScript compiler
-	  // sometimes generates source maps with duplicates in them. See Github issue
-	  // #72 and bugzil.la/889492.
-	  this._names = ArraySet.fromArray(names.map(String), true);
-	  this._sources = ArraySet.fromArray(sources, true);
-
-	  this.sourceRoot = sourceRoot;
-	  this.sourcesContent = sourcesContent;
-	  this._mappings = mappings;
-	  this.file = file;
-	}
-
-	BasicSourceMapConsumer.prototype = Object.create(SourceMapConsumer.prototype);
-	BasicSourceMapConsumer.prototype.consumer = SourceMapConsumer;
-
-	/**
-	 * Create a BasicSourceMapConsumer from a SourceMapGenerator.
-	 *
-	 * @param SourceMapGenerator aSourceMap
-	 *        The source map that will be consumed.
-	 * @returns BasicSourceMapConsumer
-	 */
-	BasicSourceMapConsumer.fromSourceMap =
-	  function SourceMapConsumer_fromSourceMap(aSourceMap) {
-	    var smc = Object.create(BasicSourceMapConsumer.prototype);
-
-	    var names = smc._names = ArraySet.fromArray(aSourceMap._names.toArray(), true);
-	    var sources = smc._sources = ArraySet.fromArray(aSourceMap._sources.toArray(), true);
-	    smc.sourceRoot = aSourceMap._sourceRoot;
-	    smc.sourcesContent = aSourceMap._generateSourcesContent(smc._sources.toArray(),
-	                                                            smc.sourceRoot);
-	    smc.file = aSourceMap._file;
-
-	    // Because we are modifying the entries (by converting string sources and
-	    // names to indices into the sources and names ArraySets), we have to make
-	    // a copy of the entry or else bad things happen. Shared mutable state
-	    // strikes again! See github issue #191.
-
-	    var generatedMappings = aSourceMap._mappings.toArray().slice();
-	    var destGeneratedMappings = smc.__generatedMappings = [];
-	    var destOriginalMappings = smc.__originalMappings = [];
-
-	    for (var i = 0, length = generatedMappings.length; i < length; i++) {
-	      var srcMapping = generatedMappings[i];
-	      var destMapping = new Mapping;
-	      destMapping.generatedLine = srcMapping.generatedLine;
-	      destMapping.generatedColumn = srcMapping.generatedColumn;
-
-	      if (srcMapping.source) {
-	        destMapping.source = sources.indexOf(srcMapping.source);
-	        destMapping.originalLine = srcMapping.originalLine;
-	        destMapping.originalColumn = srcMapping.originalColumn;
-
-	        if (srcMapping.name) {
-	          destMapping.name = names.indexOf(srcMapping.name);
-	        }
-
-	        destOriginalMappings.push(destMapping);
-	      }
-
-	      destGeneratedMappings.push(destMapping);
-	    }
-
-	    quickSort(smc.__originalMappings, util.compareByOriginalPositions);
-
-	    return smc;
-	  };
-
-	/**
-	 * The version of the source mapping spec that we are consuming.
-	 */
-	BasicSourceMapConsumer.prototype._version = 3;
-
-	/**
-	 * The list of original sources.
-	 */
-	Object.defineProperty(BasicSourceMapConsumer.prototype, 'sources', {
-	  get: function () {
-	    return this._sources.toArray().map(function (s) {
-	      return this.sourceRoot != null ? util.join(this.sourceRoot, s) : s;
-	    }, this);
-	  }
-	});
-
-	/**
-	 * Provide the JIT with a nice shape / hidden class.
-	 */
-	function Mapping() {
-	  this.generatedLine = 0;
-	  this.generatedColumn = 0;
-	  this.source = null;
-	  this.originalLine = null;
-	  this.originalColumn = null;
-	  this.name = null;
-	}
-
-	/**
-	 * Parse the mappings in a string in to a data structure which we can easily
-	 * query (the ordered arrays in the `this.__generatedMappings` and
-	 * `this.__originalMappings` properties).
-	 */
-	BasicSourceMapConsumer.prototype._parseMappings =
-	  function SourceMapConsumer_parseMappings(aStr, aSourceRoot) {
-	    var generatedLine = 1;
-	    var previousGeneratedColumn = 0;
-	    var previousOriginalLine = 0;
-	    var previousOriginalColumn = 0;
-	    var previousSource = 0;
-	    var previousName = 0;
-	    var length = aStr.length;
-	    var index = 0;
-	    var cachedSegments = {};
-	    var temp = {};
-	    var originalMappings = [];
-	    var generatedMappings = [];
-	    var mapping, str, segment, end, value;
-
-	    while (index < length) {
-	      if (aStr.charAt(index) === ';') {
-	        generatedLine++;
-	        index++;
-	        previousGeneratedColumn = 0;
-	      }
-	      else if (aStr.charAt(index) === ',') {
-	        index++;
-	      }
-	      else {
-	        mapping = new Mapping();
-	        mapping.generatedLine = generatedLine;
-
-	        // Because each offset is encoded relative to the previous one,
-	        // many segments often have the same encoding. We can exploit this
-	        // fact by caching the parsed variable length fields of each segment,
-	        // allowing us to avoid a second parse if we encounter the same
-	        // segment again.
-	        for (end = index; end < length; end++) {
-	          if (this._charIsMappingSeparator(aStr, end)) {
-	            break;
-	          }
-	        }
-	        str = aStr.slice(index, end);
-
-	        segment = cachedSegments[str];
-	        if (segment) {
-	          index += str.length;
-	        } else {
-	          segment = [];
-	          while (index < end) {
-	            base64VLQ.decode(aStr, index, temp);
-	            value = temp.value;
-	            index = temp.rest;
-	            segment.push(value);
-	          }
-
-	          if (segment.length === 2) {
-	            throw new Error('Found a source, but no line and column');
-	          }
-
-	          if (segment.length === 3) {
-	            throw new Error('Found a source and line, but no column');
-	          }
-
-	          cachedSegments[str] = segment;
-	        }
-
-	        // Generated column.
-	        mapping.generatedColumn = previousGeneratedColumn + segment[0];
-	        previousGeneratedColumn = mapping.generatedColumn;
-
-	        if (segment.length > 1) {
-	          // Original source.
-	          mapping.source = previousSource + segment[1];
-	          previousSource += segment[1];
-
-	          // Original line.
-	          mapping.originalLine = previousOriginalLine + segment[2];
-	          previousOriginalLine = mapping.originalLine;
-	          // Lines are stored 0-based
-	          mapping.originalLine += 1;
-
-	          // Original column.
-	          mapping.originalColumn = previousOriginalColumn + segment[3];
-	          previousOriginalColumn = mapping.originalColumn;
-
-	          if (segment.length > 4) {
-	            // Original name.
-	            mapping.name = previousName + segment[4];
-	            previousName += segment[4];
-	          }
-	        }
-
-	        generatedMappings.push(mapping);
-	        if (typeof mapping.originalLine === 'number') {
-	          originalMappings.push(mapping);
-	        }
-	      }
-	    }
-
-	    quickSort(generatedMappings, util.compareByGeneratedPositionsDeflated);
-	    this.__generatedMappings = generatedMappings;
-
-	    quickSort(originalMappings, util.compareByOriginalPositions);
-	    this.__originalMappings = originalMappings;
-	  };
-
-	/**
-	 * Find the mapping that best matches the hypothetical "needle" mapping that
-	 * we are searching for in the given "haystack" of mappings.
-	 */
-	BasicSourceMapConsumer.prototype._findMapping =
-	  function SourceMapConsumer_findMapping(aNeedle, aMappings, aLineName,
-	                                         aColumnName, aComparator, aBias) {
-	    // To return the position we are searching for, we must first find the
-	    // mapping for the given position and then return the opposite position it
-	    // points to. Because the mappings are sorted, we can use binary search to
-	    // find the best mapping.
-
-	    if (aNeedle[aLineName] <= 0) {
-	      throw new TypeError('Line must be greater than or equal to 1, got '
-	                          + aNeedle[aLineName]);
-	    }
-	    if (aNeedle[aColumnName] < 0) {
-	      throw new TypeError('Column must be greater than or equal to 0, got '
-	                          + aNeedle[aColumnName]);
-	    }
-
-	    return binarySearch.search(aNeedle, aMappings, aComparator, aBias);
-	  };
-
-	/**
-	 * Compute the last column for each generated mapping. The last column is
-	 * inclusive.
-	 */
-	BasicSourceMapConsumer.prototype.computeColumnSpans =
-	  function SourceMapConsumer_computeColumnSpans() {
-	    for (var index = 0; index < this._generatedMappings.length; ++index) {
-	      var mapping = this._generatedMappings[index];
-
-	      // Mappings do not contain a field for the last generated columnt. We
-	      // can come up with an optimistic estimate, however, by assuming that
-	      // mappings are contiguous (i.e. given two consecutive mappings, the
-	      // first mapping ends where the second one starts).
-	      if (index + 1 < this._generatedMappings.length) {
-	        var nextMapping = this._generatedMappings[index + 1];
-
-	        if (mapping.generatedLine === nextMapping.generatedLine) {
-	          mapping.lastGeneratedColumn = nextMapping.generatedColumn - 1;
-	          continue;
-	        }
-	      }
-
-	      // The last mapping for each line spans the entire line.
-	      mapping.lastGeneratedColumn = Infinity;
-	    }
-	  };
-
-	/**
-	 * Returns the original source, line, and column information for the generated
-	 * source's line and column positions provided. The only argument is an object
-	 * with the following properties:
-	 *
-	 *   - line: The line number in the generated source.
-	 *   - column: The column number in the generated source.
-	 *   - bias: Either 'SourceMapConsumer.GREATEST_LOWER_BOUND' or
-	 *     'SourceMapConsumer.LEAST_UPPER_BOUND'. Specifies whether to return the
-	 *     closest element that is smaller than or greater than the one we are
-	 *     searching for, respectively, if the exact element cannot be found.
-	 *     Defaults to 'SourceMapConsumer.GREATEST_LOWER_BOUND'.
-	 *
-	 * and an object is returned with the following properties:
-	 *
-	 *   - source: The original source file, or null.
-	 *   - line: The line number in the original source, or null.
-	 *   - column: The column number in the original source, or null.
-	 *   - name: The original identifier, or null.
-	 */
-	BasicSourceMapConsumer.prototype.originalPositionFor =
-	  function SourceMapConsumer_originalPositionFor(aArgs) {
-	    var needle = {
-	      generatedLine: util.getArg(aArgs, 'line'),
-	      generatedColumn: util.getArg(aArgs, 'column')
-	    };
-
-	    var index = this._findMapping(
-	      needle,
-	      this._generatedMappings,
-	      "generatedLine",
-	      "generatedColumn",
-	      util.compareByGeneratedPositionsDeflated,
-	      util.getArg(aArgs, 'bias', SourceMapConsumer.GREATEST_LOWER_BOUND)
-	    );
-
-	    if (index >= 0) {
-	      var mapping = this._generatedMappings[index];
-
-	      if (mapping.generatedLine === needle.generatedLine) {
-	        var source = util.getArg(mapping, 'source', null);
-	        if (source !== null) {
-	          source = this._sources.at(source);
-	          if (this.sourceRoot != null) {
-	            source = util.join(this.sourceRoot, source);
-	          }
-	        }
-	        var name = util.getArg(mapping, 'name', null);
-	        if (name !== null) {
-	          name = this._names.at(name);
-	        }
-	        return {
-	          source: source,
-	          line: util.getArg(mapping, 'originalLine', null),
-	          column: util.getArg(mapping, 'originalColumn', null),
-	          name: name
-	        };
-	      }
-	    }
-
-	    return {
-	      source: null,
-	      line: null,
-	      column: null,
-	      name: null
-	    };
-	  };
-
-	/**
-	 * Return true if we have the source content for every source in the source
-	 * map, false otherwise.
-	 */
-	BasicSourceMapConsumer.prototype.hasContentsOfAllSources =
-	  function BasicSourceMapConsumer_hasContentsOfAllSources() {
-	    if (!this.sourcesContent) {
-	      return false;
-	    }
-	    return this.sourcesContent.length >= this._sources.size() &&
-	      !this.sourcesContent.some(function (sc) { return sc == null; });
-	  };
-
-	/**
-	 * Returns the original source content. The only argument is the url of the
-	 * original source file. Returns null if no original source content is
-	 * available.
-	 */
-	BasicSourceMapConsumer.prototype.sourceContentFor =
-	  function SourceMapConsumer_sourceContentFor(aSource, nullOnMissing) {
-	    if (!this.sourcesContent) {
-	      return null;
-	    }
-
-	    if (this.sourceRoot != null) {
-	      aSource = util.relative(this.sourceRoot, aSource);
-	    }
-
-	    if (this._sources.has(aSource)) {
-	      return this.sourcesContent[this._sources.indexOf(aSource)];
-	    }
-
-	    var url;
-	    if (this.sourceRoot != null
-	        && (url = util.urlParse(this.sourceRoot))) {
-	      // XXX: file:// URIs and absolute paths lead to unexpected behavior for
-	      // many users. We can help them out when they expect file:// URIs to
-	      // behave like it would if they were running a local HTTP server. See
-	      // https://bugzilla.mozilla.org/show_bug.cgi?id=885597.
-	      var fileUriAbsPath = aSource.replace(/^file:\/\//, "");
-	      if (url.scheme == "file"
-	          && this._sources.has(fileUriAbsPath)) {
-	        return this.sourcesContent[this._sources.indexOf(fileUriAbsPath)]
-	      }
-
-	      if ((!url.path || url.path == "/")
-	          && this._sources.has("/" + aSource)) {
-	        return this.sourcesContent[this._sources.indexOf("/" + aSource)];
-	      }
-	    }
-
-	    // This function is used recursively from
-	    // IndexedSourceMapConsumer.prototype.sourceContentFor. In that case, we
-	    // don't want to throw if we can't find the source - we just want to
-	    // return null, so we provide a flag to exit gracefully.
-	    if (nullOnMissing) {
-	      return null;
-	    }
-	    else {
-	      throw new Error('"' + aSource + '" is not in the SourceMap.');
-	    }
-	  };
-
-	/**
-	 * Returns the generated line and column information for the original source,
-	 * line, and column positions provided. The only argument is an object with
-	 * the following properties:
-	 *
-	 *   - source: The filename of the original source.
-	 *   - line: The line number in the original source.
-	 *   - column: The column number in the original source.
-	 *   - bias: Either 'SourceMapConsumer.GREATEST_LOWER_BOUND' or
-	 *     'SourceMapConsumer.LEAST_UPPER_BOUND'. Specifies whether to return the
-	 *     closest element that is smaller than or greater than the one we are
-	 *     searching for, respectively, if the exact element cannot be found.
-	 *     Defaults to 'SourceMapConsumer.GREATEST_LOWER_BOUND'.
-	 *
-	 * and an object is returned with the following properties:
-	 *
-	 *   - line: The line number in the generated source, or null.
-	 *   - column: The column number in the generated source, or null.
-	 */
-	BasicSourceMapConsumer.prototype.generatedPositionFor =
-	  function SourceMapConsumer_generatedPositionFor(aArgs) {
-	    var source = util.getArg(aArgs, 'source');
-	    if (this.sourceRoot != null) {
-	      source = util.relative(this.sourceRoot, source);
-	    }
-	    if (!this._sources.has(source)) {
-	      return {
-	        line: null,
-	        column: null,
-	        lastColumn: null
-	      };
-	    }
-	    source = this._sources.indexOf(source);
-
-	    var needle = {
-	      source: source,
-	      originalLine: util.getArg(aArgs, 'line'),
-	      originalColumn: util.getArg(aArgs, 'column')
-	    };
-
-	    var index = this._findMapping(
-	      needle,
-	      this._originalMappings,
-	      "originalLine",
-	      "originalColumn",
-	      util.compareByOriginalPositions,
-	      util.getArg(aArgs, 'bias', SourceMapConsumer.GREATEST_LOWER_BOUND)
-	    );
-
-	    if (index >= 0) {
-	      var mapping = this._originalMappings[index];
-
-	      if (mapping.source === needle.source) {
-	        return {
-	          line: util.getArg(mapping, 'generatedLine', null),
-	          column: util.getArg(mapping, 'generatedColumn', null),
-	          lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null)
-	        };
-	      }
-	    }
-
-	    return {
-	      line: null,
-	      column: null,
-	      lastColumn: null
-	    };
-	  };
-
-	exports.BasicSourceMapConsumer = BasicSourceMapConsumer;
-
-	/**
-	 * An IndexedSourceMapConsumer instance represents a parsed source map which
-	 * we can query for information. It differs from BasicSourceMapConsumer in
-	 * that it takes "indexed" source maps (i.e. ones with a "sections" field) as
-	 * input.
-	 *
-	 * The only parameter is a raw source map (either as a JSON string, or already
-	 * parsed to an object). According to the spec for indexed source maps, they
-	 * have the following attributes:
-	 *
-	 *   - version: Which version of the source map spec this map is following.
-	 *   - file: Optional. The generated file this source map is associated with.
-	 *   - sections: A list of section definitions.
-	 *
-	 * Each value under the "sections" field has two fields:
-	 *   - offset: The offset into the original specified at which this section
-	 *       begins to apply, defined as an object with a "line" and "column"
-	 *       field.
-	 *   - map: A source map definition. This source map could also be indexed,
-	 *       but doesn't have to be.
-	 *
-	 * Instead of the "map" field, it's also possible to have a "url" field
-	 * specifying a URL to retrieve a source map from, but that's currently
-	 * unsupported.
-	 *
-	 * Here's an example source map, taken from the source map spec[0], but
-	 * modified to omit a section which uses the "url" field.
-	 *
-	 *  {
-	 *    version : 3,
-	 *    file: "app.js",
-	 *    sections: [{
-	 *      offset: {line:100, column:10},
-	 *      map: {
-	 *        version : 3,
-	 *        file: "section.js",
-	 *        sources: ["foo.js", "bar.js"],
-	 *        names: ["src", "maps", "are", "fun"],
-	 *        mappings: "AAAA,E;;ABCDE;"
-	 *      }
-	 *    }],
-	 *  }
-	 *
-	 * [0]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit#heading=h.535es3xeprgt
-	 */
-	function IndexedSourceMapConsumer(aSourceMap) {
-	  var sourceMap = aSourceMap;
-	  if (typeof aSourceMap === 'string') {
-	    sourceMap = JSON.parse(aSourceMap.replace(/^\)\]\}'/, ''));
-	  }
-
-	  var version = util.getArg(sourceMap, 'version');
-	  var sections = util.getArg(sourceMap, 'sections');
-
-	  if (version != this._version) {
-	    throw new Error('Unsupported version: ' + version);
-	  }
-
-	  this._sources = new ArraySet();
-	  this._names = new ArraySet();
-
-	  var lastOffset = {
-	    line: -1,
-	    column: 0
-	  };
-	  this._sections = sections.map(function (s) {
-	    if (s.url) {
-	      // The url field will require support for asynchronicity.
-	      // See https://github.com/mozilla/source-map/issues/16
-	      throw new Error('Support for url field in sections not implemented.');
-	    }
-	    var offset = util.getArg(s, 'offset');
-	    var offsetLine = util.getArg(offset, 'line');
-	    var offsetColumn = util.getArg(offset, 'column');
-
-	    if (offsetLine < lastOffset.line ||
-	        (offsetLine === lastOffset.line && offsetColumn < lastOffset.column)) {
-	      throw new Error('Section offsets must be ordered and non-overlapping.');
-	    }
-	    lastOffset = offset;
-
-	    return {
-	      generatedOffset: {
-	        // The offset fields are 0-based, but we use 1-based indices when
-	        // encoding/decoding from VLQ.
-	        generatedLine: offsetLine + 1,
-	        generatedColumn: offsetColumn + 1
-	      },
-	      consumer: new SourceMapConsumer(util.getArg(s, 'map'))
-	    }
-	  });
-	}
-
-	IndexedSourceMapConsumer.prototype = Object.create(SourceMapConsumer.prototype);
-	IndexedSourceMapConsumer.prototype.constructor = SourceMapConsumer;
-
-	/**
-	 * The version of the source mapping spec that we are consuming.
-	 */
-	IndexedSourceMapConsumer.prototype._version = 3;
-
-	/**
-	 * The list of original sources.
-	 */
-	Object.defineProperty(IndexedSourceMapConsumer.prototype, 'sources', {
-	  get: function () {
-	    var sources = [];
-	    for (var i = 0; i < this._sections.length; i++) {
-	      for (var j = 0; j < this._sections[i].consumer.sources.length; j++) {
-	        sources.push(this._sections[i].consumer.sources[j]);
-	      }
-	    }
-	    return sources;
-	  }
-	});
-
-	/**
-	 * Returns the original source, line, and column information for the generated
-	 * source's line and column positions provided. The only argument is an object
-	 * with the following properties:
-	 *
-	 *   - line: The line number in the generated source.
-	 *   - column: The column number in the generated source.
-	 *
-	 * and an object is returned with the following properties:
-	 *
-	 *   - source: The original source file, or null.
-	 *   - line: The line number in the original source, or null.
-	 *   - column: The column number in the original source, or null.
-	 *   - name: The original identifier, or null.
-	 */
-	IndexedSourceMapConsumer.prototype.originalPositionFor =
-	  function IndexedSourceMapConsumer_originalPositionFor(aArgs) {
-	    var needle = {
-	      generatedLine: util.getArg(aArgs, 'line'),
-	      generatedColumn: util.getArg(aArgs, 'column')
-	    };
-
-	    // Find the section containing the generated position we're trying to map
-	    // to an original position.
-	    var sectionIndex = binarySearch.search(needle, this._sections,
-	      function(needle, section) {
-	        var cmp = needle.generatedLine - section.generatedOffset.generatedLine;
-	        if (cmp) {
-	          return cmp;
-	        }
-
-	        return (needle.generatedColumn -
-	                section.generatedOffset.generatedColumn);
-	      });
-	    var section = this._sections[sectionIndex];
-
-	    if (!section) {
-	      return {
-	        source: null,
-	        line: null,
-	        column: null,
-	        name: null
-	      };
-	    }
-
-	    return section.consumer.originalPositionFor({
-	      line: needle.generatedLine -
-	        (section.generatedOffset.generatedLine - 1),
-	      column: needle.generatedColumn -
-	        (section.generatedOffset.generatedLine === needle.generatedLine
-	         ? section.generatedOffset.generatedColumn - 1
-	         : 0),
-	      bias: aArgs.bias
-	    });
-	  };
-
-	/**
-	 * Return true if we have the source content for every source in the source
-	 * map, false otherwise.
-	 */
-	IndexedSourceMapConsumer.prototype.hasContentsOfAllSources =
-	  function IndexedSourceMapConsumer_hasContentsOfAllSources() {
-	    return this._sections.every(function (s) {
-	      return s.consumer.hasContentsOfAllSources();
-	    });
-	  };
-
-	/**
-	 * Returns the original source content. The only argument is the url of the
-	 * original source file. Returns null if no original source content is
-	 * available.
-	 */
-	IndexedSourceMapConsumer.prototype.sourceContentFor =
-	  function IndexedSourceMapConsumer_sourceContentFor(aSource, nullOnMissing) {
-	    for (var i = 0; i < this._sections.length; i++) {
-	      var section = this._sections[i];
-
-	      var content = section.consumer.sourceContentFor(aSource, true);
-	      if (content) {
-	        return content;
-	      }
-	    }
-	    if (nullOnMissing) {
-	      return null;
-	    }
-	    else {
-	      throw new Error('"' + aSource + '" is not in the SourceMap.');
-	    }
-	  };
-
-	/**
-	 * Returns the generated line and column information for the original source,
-	 * line, and column positions provided. The only argument is an object with
-	 * the following properties:
-	 *
-	 *   - source: The filename of the original source.
-	 *   - line: The line number in the original source.
-	 *   - column: The column number in the original source.
-	 *
-	 * and an object is returned with the following properties:
-	 *
-	 *   - line: The line number in the generated source, or null.
-	 *   - column: The column number in the generated source, or null.
-	 */
-	IndexedSourceMapConsumer.prototype.generatedPositionFor =
-	  function IndexedSourceMapConsumer_generatedPositionFor(aArgs) {
-	    for (var i = 0; i < this._sections.length; i++) {
-	      var section = this._sections[i];
-
-	      // Only consider this section if the requested source is in the list of
-	      // sources of the consumer.
-	      if (section.consumer.sources.indexOf(util.getArg(aArgs, 'source')) === -1) {
-	        continue;
-	      }
-	      var generatedPosition = section.consumer.generatedPositionFor(aArgs);
-	      if (generatedPosition) {
-	        var ret = {
-	          line: generatedPosition.line +
-	            (section.generatedOffset.generatedLine - 1),
-	          column: generatedPosition.column +
-	            (section.generatedOffset.generatedLine === generatedPosition.line
-	             ? section.generatedOffset.generatedColumn - 1
-	             : 0)
-	        };
-	        return ret;
-	      }
-	    }
-
-	    return {
-	      line: null,
-	      column: null
-	    };
-	  };
-
-	/**
-	 * Parse the mappings in a string in to a data structure which we can easily
-	 * query (the ordered arrays in the `this.__generatedMappings` and
-	 * `this.__originalMappings` properties).
-	 */
-	IndexedSourceMapConsumer.prototype._parseMappings =
-	  function IndexedSourceMapConsumer_parseMappings(aStr, aSourceRoot) {
-	    this.__generatedMappings = [];
-	    this.__originalMappings = [];
-	    for (var i = 0; i < this._sections.length; i++) {
-	      var section = this._sections[i];
-	      var sectionMappings = section.consumer._generatedMappings;
-	      for (var j = 0; j < sectionMappings.length; j++) {
-	        var mapping = sectionMappings[j];
-
-	        var source = section.consumer._sources.at(mapping.source);
-	        if (section.consumer.sourceRoot !== null) {
-	          source = util.join(section.consumer.sourceRoot, source);
-	        }
-	        this._sources.add(source);
-	        source = this._sources.indexOf(source);
-
-	        var name = section.consumer._names.at(mapping.name);
-	        this._names.add(name);
-	        name = this._names.indexOf(name);
-
-	        // The mappings coming from the consumer for the section have
-	        // generated positions relative to the start of the section, so we
-	        // need to offset them to be relative to the start of the concatenated
-	        // generated file.
-	        var adjustedMapping = {
-	          source: source,
-	          generatedLine: mapping.generatedLine +
-	            (section.generatedOffset.generatedLine - 1),
-	          generatedColumn: mapping.generatedColumn +
-	            (section.generatedOffset.generatedLine === mapping.generatedLine
-	            ? section.generatedOffset.generatedColumn - 1
-	            : 0),
-	          originalLine: mapping.originalLine,
-	          originalColumn: mapping.originalColumn,
-	          name: name
-	        };
-
-	        this.__generatedMappings.push(adjustedMapping);
-	        if (typeof adjustedMapping.originalLine === 'number') {
-	          this.__originalMappings.push(adjustedMapping);
-	        }
-	      }
-	    }
-
-	    quickSort(this.__generatedMappings, util.compareByGeneratedPositionsDeflated);
-	    quickSort(this.__originalMappings, util.compareByOriginalPositions);
-	  };
-
-	exports.IndexedSourceMapConsumer = IndexedSourceMapConsumer;
-
-
-/***/ }),
-/* 8 */
-/***/ (function(module, exports) {
-
-	/* -*- Mode: js; js-indent-level: 2; -*- */
-	/*
-	 * Copyright 2011 Mozilla Foundation and contributors
-	 * Licensed under the New BSD license. See LICENSE or:
-	 * http://opensource.org/licenses/BSD-3-Clause
-	 */
-
-	exports.GREATEST_LOWER_BOUND = 1;
-	exports.LEAST_UPPER_BOUND = 2;
-
-	/**
-	 * Recursive implementation of binary search.
-	 *
-	 * @param aLow Indices here and lower do not contain the needle.
-	 * @param aHigh Indices here and higher do not contain the needle.
-	 * @param aNeedle The element being searched for.
-	 * @param aHaystack The non-empty array being searched.
-	 * @param aCompare Function which takes two elements and returns -1, 0, or 1.
-	 * @param aBias Either 'binarySearch.GREATEST_LOWER_BOUND' or
-	 *     'binarySearch.LEAST_UPPER_BOUND'. Specifies whether to return the
-	 *     closest element that is smaller than or greater than the one we are
-	 *     searching for, respectively, if the exact element cannot be found.
-	 */
-	function recursiveSearch(aLow, aHigh, aNeedle, aHaystack, aCompare, aBias) {
-	  // This function terminates when one of the following is true:
-	  //
-	  //   1. We find the exact element we are looking for.
-	  //
-	  //   2. We did not find the exact element, but we can return the index of
-	  //      the next-closest element.
-	  //
-	  //   3. We did not find the exact element, and there is no next-closest
-	  //      element than the one we are searching for, so we return -1.
-	  var mid = Math.floor((aHigh - aLow) / 2) + aLow;
-	  var cmp = aCompare(aNeedle, aHaystack[mid], true);
-	  if (cmp === 0) {
-	    // Found the element we are looking for.
-	    return mid;
-	  }
-	  else if (cmp > 0) {
-	    // Our needle is greater than aHaystack[mid].
-	    if (aHigh - mid > 1) {
-	      // The element is in the upper half.
-	      return recursiveSearch(mid, aHigh, aNeedle, aHaystack, aCompare, aBias);
-	    }
-
-	    // The exact needle element was not found in this haystack. Determine if
-	    // we are in termination case (3) or (2) and return the appropriate thing.
-	    if (aBias == exports.LEAST_UPPER_BOUND) {
-	      return aHigh < aHaystack.length ? aHigh : -1;
-	    } else {
-	      return mid;
-	    }
-	  }
-	  else {
-	    // Our needle is less than aHaystack[mid].
-	    if (mid - aLow > 1) {
-	      // The element is in the lower half.
-	      return recursiveSearch(aLow, mid, aNeedle, aHaystack, aCompare, aBias);
-	    }
-
-	    // we are in termination case (3) or (2) and return the appropriate thing.
-	    if (aBias == exports.LEAST_UPPER_BOUND) {
-	      return mid;
-	    } else {
-	      return aLow < 0 ? -1 : aLow;
-	    }
-	  }
-	}
-
-	/**
-	 * This is an implementation of binary search which will always try and return
-	 * the index of the closest element if there is no exact hit. This is because
-	 * mappings between original and generated line/col pairs are single points,
-	 * and there is an implicit region between each of them, so a miss just means
-	 * that you aren't on the very start of a region.
-	 *
-	 * @param aNeedle The element you are looking for.
-	 * @param aHaystack The array that is being searched.
-	 * @param aCompare A function which takes the needle and an element in the
-	 *     array and returns -1, 0, or 1 depending on whether the needle is less
-	 *     than, equal to, or greater than the element, respectively.
-	 * @param aBias Either 'binarySearch.GREATEST_LOWER_BOUND' or
-	 *     'binarySearch.LEAST_UPPER_BOUND'. Specifies whether to return the
-	 *     closest element that is smaller than or greater than the one we are
-	 *     searching for, respectively, if the exact element cannot be found.
-	 *     Defaults to 'binarySearch.GREATEST_LOWER_BOUND'.
-	 */
-	exports.search = function search(aNeedle, aHaystack, aCompare, aBias) {
-	  if (aHaystack.length === 0) {
-	    return -1;
-	  }
-
-	  var index = recursiveSearch(-1, aHaystack.length, aNeedle, aHaystack,
-	                              aCompare, aBias || exports.GREATEST_LOWER_BOUND);
-	  if (index < 0) {
-	    return -1;
-	  }
-
-	  // We have found either the exact element, or the next-closest element than
-	  // the one we are searching for. However, there may be more than one such
-	  // element. Make sure we always return the smallest of these.
-	  while (index - 1 >= 0) {
-	    if (aCompare(aHaystack[index], aHaystack[index - 1], true) !== 0) {
-	      break;
-	    }
-	    --index;
-	  }
-
-	  return index;
-	};
-
-
-/***/ }),
-/* 9 */
-/***/ (function(module, exports) {
-
-	/* -*- Mode: js; js-indent-level: 2; -*- */
-	/*
-	 * Copyright 2011 Mozilla Foundation and contributors
-	 * Licensed under the New BSD license. See LICENSE or:
-	 * http://opensource.org/licenses/BSD-3-Clause
-	 */
-
-	// It turns out that some (most?) JavaScript engines don't self-host
-	// `Array.prototype.sort`. This makes sense because C++ will likely remain
-	// faster than JS when doing raw CPU-intensive sorting. However, when using a
-	// custom comparator function, calling back and forth between the VM's C++ and
-	// JIT'd JS is rather slow *and* loses JIT type information, resulting in
-	// worse generated code for the comparator function than would be optimal. In
-	// fact, when sorting with a comparator, these costs outweigh the benefits of
-	// sorting in C++. By using our own JS-implemented Quick Sort (below), we get
-	// a ~3500ms mean speed-up in `bench/bench.html`.
-
-	/**
-	 * Swap the elements indexed by `x` and `y` in the array `ary`.
-	 *
-	 * @param {Array} ary
-	 *        The array.
-	 * @param {Number} x
-	 *        The index of the first item.
-	 * @param {Number} y
-	 *        The index of the second item.
-	 */
-	function swap(ary, x, y) {
-	  var temp = ary[x];
-	  ary[x] = ary[y];
-	  ary[y] = temp;
-	}
-
-	/**
-	 * Returns a random integer within the range `low .. high` inclusive.
-	 *
-	 * @param {Number} low
-	 *        The lower bound on the range.
-	 * @param {Number} high
-	 *        The upper bound on the range.
-	 */
-	function randomIntInRange(low, high) {
-	  return Math.round(low + (Math.random() * (high - low)));
-	}
-
-	/**
-	 * The Quick Sort algorithm.
-	 *
-	 * @param {Array} ary
-	 *        An array to sort.
-	 * @param {function} comparator
-	 *        Function to use to compare two items.
-	 * @param {Number} p
-	 *        Start index of the array
-	 * @param {Number} r
-	 *        End index of the array
-	 */
-	function doQuickSort(ary, comparator, p, r) {
-	  // If our lower bound is less than our upper bound, we (1) partition the
-	  // array into two pieces and (2) recurse on each half. If it is not, this is
-	  // the empty array and our base case.
-
-	  if (p < r) {
-	    // (1) Partitioning.
-	    //
-	    // The partitioning chooses a pivot between `p` and `r` and moves all
-	    // elements that are less than or equal to the pivot to the before it, and
-	    // all the elements that are greater than it after it. The effect is that
-	    // once partition is done, the pivot is in the exact place it will be when
-	    // the array is put in sorted order, and it will not need to be moved
-	    // again. This runs in O(n) time.
-
-	    // Always choose a random pivot so that an input array which is reverse
-	    // sorted does not cause O(n^2) running time.
-	    var pivotIndex = randomIntInRange(p, r);
-	    var i = p - 1;
-
-	    swap(ary, pivotIndex, r);
-	    var pivot = ary[r];
-
-	    // Immediately after `j` is incremented in this loop, the following hold
-	    // true:
-	    //
-	    //   * Every element in `ary[p .. i]` is less than or equal to the pivot.
-	    //
-	    //   * Every element in `ary[i+1 .. j-1]` is greater than the pivot.
-	    for (var j = p; j < r; j++) {
-	      if (comparator(ary[j], pivot) <= 0) {
-	        i += 1;
-	        swap(ary, i, j);
-	      }
-	    }
-
-	    swap(ary, i + 1, j);
-	    var q = i + 1;
-
-	    // (2) Recurse on each half.
-
-	    doQuickSort(ary, comparator, p, q - 1);
-	    doQuickSort(ary, comparator, q + 1, r);
-	  }
-	}
-
-	/**
-	 * Sort the given array in-place with the given comparator function.
-	 *
-	 * @param {Array} ary
-	 *        An array to sort.
-	 * @param {function} comparator
-	 *        Function to use to compare two items.
-	 */
-	exports.quickSort = function (ary, comparator) {
-	  doQuickSort(ary, comparator, 0, ary.length - 1);
-	};
-
-
-/***/ }),
-/* 10 */
-/***/ (function(module, exports, __webpack_require__) {
-
-	/* -*- Mode: js; js-indent-level: 2; -*- */
-	/*
-	 * Copyright 2011 Mozilla Foundation and contributors
-	 * Licensed under the New BSD license. See LICENSE or:
-	 * http://opensource.org/licenses/BSD-3-Clause
-	 */
-
-	var SourceMapGenerator = __webpack_require__(1).SourceMapGenerator;
-	var util = __webpack_require__(4);
-
-	// Matches a Windows-style `\r\n` newline or a `\n` newline used by all other
-	// operating systems these days (capturing the result).
-	var REGEX_NEWLINE = /(\r?\n)/;
-
-	// Newline character code for charCodeAt() comparisons
-	var NEWLINE_CODE = 10;
-
-	// Private symbol for identifying `SourceNode`s when multiple versions of
-	// the source-map library are loaded. This MUST NOT CHANGE across
-	// versions!
-	var isSourceNode = "$$$isSourceNode$$$";
-
-	/**
-	 * SourceNodes provide a way to abstract over interpolating/concatenating
-	 * snippets of generated JavaScript source code while maintaining the line and
-	 * column information associated with the original source code.
-	 *
-	 * @param aLine The original line number.
-	 * @param aColumn The original column number.
-	 * @param aSource The original source's filename.
-	 * @param aChunks Optional. An array of strings which are snippets of
-	 *        generated JS, or other SourceNodes.
-	 * @param aName The original identifier.
-	 */
-	function SourceNode(aLine, aColumn, aSource, aChunks, aName) {
-	  this.children = [];
-	  this.sourceContents = {};
-	  this.line = aLine == null ? null : aLine;
-	  this.column = aColumn == null ? null : aColumn;
-	  this.source = aSource == null ? null : aSource;
-	  this.name = aName == null ? null : aName;
-	  this[isSourceNode] = true;
-	  if (aChunks != null) this.add(aChunks);
-	}
-
-	/**
-	 * Creates a SourceNode from generated code and a SourceMapConsumer.
-	 *
-	 * @param aGeneratedCode The generated code
-	 * @param aSourceMapConsumer The SourceMap for the generated code
-	 * @param aRelativePath Optional. The path that relative sources in the
-	 *        SourceMapConsumer should be relative to.
-	 */
-	SourceNode.fromStringWithSourceMap =
-	  function SourceNode_fromStringWithSourceMap(aGeneratedCode, aSourceMapConsumer, aRelativePath) {
-	    // The SourceNode we want to fill with the generated code
-	    // and the SourceMap
-	    var node = new SourceNode();
-
-	    // All even indices of this array are one line of the generated code,
-	    // while all odd indices are the newlines between two adjacent lines
-	    // (since `REGEX_NEWLINE` captures its match).
-	    // Processed fragments are accessed by calling `shiftNextLine`.
-	    var remainingLines = aGeneratedCode.split(REGEX_NEWLINE);
-	    var remainingLinesIndex = 0;
-	    var shiftNextLine = function() {
-	      var lineContents = getNextLine();
-	      // The last line of a file might not have a newline.
-	      var newLine = getNextLine() || "";
-	      return lineContents + newLine;
-
-	      function getNextLine() {
-	        return remainingLinesIndex < remainingLines.length ?
-	            remainingLines[remainingLinesIndex++] : undefined;
-	      }
-	    };
-
-	    // We need to remember the position of "remainingLines"
-	    var lastGeneratedLine = 1, lastGeneratedColumn = 0;
-
-	    // The generate SourceNodes we need a code range.
-	    // To extract it current and last mapping is used.
-	    // Here we store the last mapping.
-	    var lastMapping = null;
-
-	    aSourceMapConsumer.eachMapping(function (mapping) {
-	      if (lastMapping !== null) {
-	        // We add the code from "lastMapping" to "mapping":
-	        // First check if there is a new line in between.
-	        if (lastGeneratedLine < mapping.generatedLine) {
-	          // Associate first line with "lastMapping"
-	          addMappingWithCode(lastMapping, shiftNextLine());
-	          lastGeneratedLine++;
-	          lastGeneratedColumn = 0;
-	          // The remaining code is added without mapping
-	        } else {
-	          // There is no new line in between.
-	          // Associate the code between "lastGeneratedColumn" and
-	          // "mapping.generatedColumn" with "lastMapping"
-	          var nextLine = remainingLines[remainingLinesIndex];
-	          var code = nextLine.substr(0, mapping.generatedColumn -
-	                                        lastGeneratedColumn);
-	          remainingLines[remainingLinesIndex] = nextLine.substr(mapping.generatedColumn -
-	                                              lastGeneratedColumn);
-	          lastGeneratedColumn = mapping.generatedColumn;
-	          addMappingWithCode(lastMapping, code);
-	          // No more remaining code, continue
-	          lastMapping = mapping;
-	          return;
-	        }
-	      }
-	      // We add the generated code until the first mapping
-	      // to the SourceNode without any mapping.
-	      // Each line is added as separate string.
-	      while (lastGeneratedLine < mapping.generatedLine) {
-	        node.add(shiftNextLine());
-	        lastGeneratedLine++;
-	      }
-	      if (lastGeneratedColumn < mapping.generatedColumn) {
-	        var nextLine = remainingLines[remainingLinesIndex];
-	        node.add(nextLine.substr(0, mapping.generatedColumn));
-	        remainingLines[remainingLinesIndex] = nextLine.substr(mapping.generatedColumn);
-	        lastGeneratedColumn = mapping.generatedColumn;
-	      }
-	      lastMapping = mapping;
-	    }, this);
-	    // We have processed all mappings.
-	    if (remainingLinesIndex < remainingLines.length) {
-	      if (lastMapping) {
-	        // Associate the remaining code in the current line with "lastMapping"
-	        addMappingWithCode(lastMapping, shiftNextLine());
-	      }
-	      // and add the remaining lines without any mapping
-	      node.add(remainingLines.splice(remainingLinesIndex).join(""));
-	    }
-
-	    // Copy sourcesContent into SourceNode
-	    aSourceMapConsumer.sources.forEach(function (sourceFile) {
-	      var content = aSourceMapConsumer.sourceContentFor(sourceFile);
-	      if (content != null) {
-	        if (aRelativePath != null) {
-	          sourceFile = util.join(aRelativePath, sourceFile);
-	        }
-	        node.setSourceContent(sourceFile, content);
-	      }
-	    });
-
-	    return node;
-
-	    function addMappingWithCode(mapping, code) {
-	      if (mapping === null || mapping.source === undefined) {
-	        node.add(code);
-	      } else {
-	        var source = aRelativePath
-	          ? util.join(aRelativePath, mapping.source)
-	          : mapping.source;
-	        node.add(new SourceNode(mapping.originalLine,
-	                                mapping.originalColumn,
-	                                source,
-	                                code,
-	                                mapping.name));
-	      }
-	    }
-	  };
-
-	/**
-	 * Add a chunk of generated JS to this source node.
-	 *
-	 * @param aChunk A string snippet of generated JS code, another instance of
-	 *        SourceNode, or an array where each member is one of those things.
-	 */
-	SourceNode.prototype.add = function SourceNode_add(aChunk) {
-	  if (Array.isArray(aChunk)) {
-	    aChunk.forEach(function (chunk) {
-	      this.add(chunk);
-	    }, this);
-	  }
-	  else if (aChunk[isSourceNode] || typeof aChunk === "string") {
-	    if (aChunk) {
-	      this.children.push(aChunk);
-	    }
-	  }
-	  else {
-	    throw new TypeError(
-	      "Expected a SourceNode, string, or an array of SourceNodes and strings. Got " + aChunk
-	    );
-	  }
-	  return this;
-	};
-
-	/**
-	 * Add a chunk of generated JS to the beginning of this source node.
-	 *
-	 * @param aChunk A string snippet of generated JS code, another instance of
-	 *        SourceNode, or an array where each member is one of those things.
-	 */
-	SourceNode.prototype.prepend = function SourceNode_prepend(aChunk) {
-	  if (Array.isArray(aChunk)) {
-	    for (var i = aChunk.length-1; i >= 0; i--) {
-	      this.prepend(aChunk[i]);
-	    }
-	  }
-	  else if (aChunk[isSourceNode] || typeof aChunk === "string") {
-	    this.children.unshift(aChunk);
-	  }
-	  else {
-	    throw new TypeError(
-	      "Expected a SourceNode, string, or an array of SourceNodes and strings. Got " + aChunk
-	    );
-	  }
-	  return this;
-	};
-
-	/**
-	 * Walk over the tree of JS snippets in this node and its children. The
-	 * walking function is called once for each snippet of JS and is passed that
-	 * snippet and the its original associated source's line/column location.
-	 *
-	 * @param aFn The traversal function.
-	 */
-	SourceNode.prototype.walk = function SourceNode_walk(aFn) {
-	  var chunk;
-	  for (var i = 0, len = this.children.length; i < len; i++) {
-	    chunk = this.children[i];
-	    if (chunk[isSourceNode]) {
-	      chunk.walk(aFn);
-	    }
-	    else {
-	      if (chunk !== '') {
-	        aFn(chunk, { source: this.source,
-	                     line: this.line,
-	                     column: this.column,
-	                     name: this.name });
-	      }
-	    }
-	  }
-	};
-
-	/**
-	 * Like `String.prototype.join` except for SourceNodes. Inserts `aStr` between
-	 * each of `this.children`.
-	 *
-	 * @param aSep The separator.
-	 */
-	SourceNode.prototype.join = function SourceNode_join(aSep) {
-	  var newChildren;
-	  var i;
-	  var len = this.children.length;
-	  if (len > 0) {
-	    newChildren = [];
-	    for (i = 0; i < len-1; i++) {
-	      newChildren.push(this.children[i]);
-	      newChildren.push(aSep);
-	    }
-	    newChildren.push(this.children[i]);
-	    this.children = newChildren;
-	  }
-	  return this;
-	};
-
-	/**
-	 * Call String.prototype.replace on the very right-most source snippet. Useful
-	 * for trimming whitespace from the end of a source node, etc.
-	 *
-	 * @param aPattern The pattern to replace.
-	 * @param aReplacement The thing to replace the pattern with.
-	 */
-	SourceNode.prototype.replaceRight = function SourceNode_replaceRight(aPattern, aReplacement) {
-	  var lastChild = this.children[this.children.length - 1];
-	  if (lastChild[isSourceNode]) {
-	    lastChild.replaceRight(aPattern, aReplacement);
-	  }
-	  else if (typeof lastChild === 'string') {
-	    this.children[this.children.length - 1] = lastChild.replace(aPattern, aReplacement);
-	  }
-	  else {
-	    this.children.push(''.replace(aPattern, aReplacement));
-	  }
-	  return this;
-	};
-
-	/**
-	 * Set the source content for a source file. This will be added to the SourceMapGenerator
-	 * in the sourcesContent field.
-	 *
-	 * @param aSourceFile The filename of the source file
-	 * @param aSourceContent The content of the source file
-	 */
-	SourceNode.prototype.setSourceContent =
-	  function SourceNode_setSourceContent(aSourceFile, aSourceContent) {
-	    this.sourceContents[util.toSetString(aSourceFile)] = aSourceContent;
-	  };
-
-	/**
-	 * Walk over the tree of SourceNodes. The walking function is called for each
-	 * source file content and is passed the filename and source content.
-	 *
-	 * @param aFn The traversal function.
-	 */
-	SourceNode.prototype.walkSourceContents =
-	  function SourceNode_walkSourceContents(aFn) {
-	    for (var i = 0, len = this.children.length; i < len; i++) {
-	      if (this.children[i][isSourceNode]) {
-	        this.children[i].walkSourceContents(aFn);
-	      }
-	    }
-
-	    var sources = Object.keys(this.sourceContents);
-	    for (var i = 0, len = sources.length; i < len; i++) {
-	      aFn(util.fromSetString(sources[i]), this.sourceContents[sources[i]]);
-	    }
-	  };
-
-	/**
-	 * Return the string representation of this source node. Walks over the tree
-	 * and concatenates all the various snippets together to one string.
-	 */
-	SourceNode.prototype.toString = function SourceNode_toString() {
-	  var str = "";
-	  this.walk(function (chunk) {
-	    str += chunk;
-	  });
-	  return str;
-	};
-
-	/**
-	 * Returns the string representation of this source node along with a source
-	 * map.
-	 */
-	SourceNode.prototype.toStringWithSourceMap = function SourceNode_toStringWithSourceMap(aArgs) {
-	  var generated = {
-	    code: "",
-	    line: 1,
-	    column: 0
-	  };
-	  var map = new SourceMapGenerator(aArgs);
-	  var sourceMappingActive = false;
-	  var lastOriginalSource = null;
-	  var lastOriginalLine = null;
-	  var lastOriginalColumn = null;
-	  var lastOriginalName = null;
-	  this.walk(function (chunk, original) {
-	    generated.code += chunk;
-	    if (original.source !== null
-	        && original.line !== null
-	        && original.column !== null) {
-	      if(lastOriginalSource !== original.source
-	         || lastOriginalLine !== original.line
-	         || lastOriginalColumn !== original.column
-	         || lastOriginalName !== original.name) {
-	        map.addMapping({
-	          source: original.source,
-	          original: {
-	            line: original.line,
-	            column: original.column
-	          },
-	          generated: {
-	            line: generated.line,
-	            column: generated.column
-	          },
-	          name: original.name
-	        });
-	      }
-	      lastOriginalSource = original.source;
-	      lastOriginalLine = original.line;
-	      lastOriginalColumn = original.column;
-	      lastOriginalName = original.name;
-	      sourceMappingActive = true;
-	    } else if (sourceMappingActive) {
-	      map.addMapping({
-	        generated: {
-	          line: generated.line,
-	          column: generated.column
-	        }
-	      });
-	      lastOriginalSource = null;
-	      sourceMappingActive = false;
-	    }
-	    for (var idx = 0, length = chunk.length; idx < length; idx++) {
-	      if (chunk.charCodeAt(idx) === NEWLINE_CODE) {
-	        generated.line++;
-	        generated.column = 0;
-	        // Mappings end at eol
-	        if (idx + 1 === length) {
-	          lastOriginalSource = null;
-	          sourceMappingActive = false;
-	        } else if (sourceMappingActive) {
-	          map.addMapping({
-	            source: original.source,
-	            original: {
-	              line: original.line,
-	              column: original.column
-	            },
-	            generated: {
-	              line: generated.line,
-	              column: generated.column
-	            },
-	            name: original.name
-	          });
-	        }
-	      } else {
-	        generated.column++;
-	      }
-	    }
-	  });
-	  this.walkSourceContents(function (sourceFile, sourceContent) {
-	    map.setSourceContent(sourceFile, sourceContent);
-	  });
-
-	  return { code: generated.code, map: map };
-	};
-
-	exports.SourceNode = SourceNode;
-
-
-/***/ })
-/******/ ])
-});
-;
\ No newline at end of file
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-coverage/node_modules/source-map/dist/source-map.min.js b/src/cobalt/debug/remote/devtools/node_modules/karma-coverage/node_modules/source-map/dist/source-map.min.js
deleted file mode 100644
index f2a46bd..0000000
--- a/src/cobalt/debug/remote/devtools/node_modules/karma-coverage/node_modules/source-map/dist/source-map.min.js
+++ /dev/null
@@ -1,2 +0,0 @@
-!function(e,n){"object"==typeof exports&&"object"==typeof module?module.exports=n():"function"==typeof define&&define.amd?define([],n):"object"==typeof exports?exports.sourceMap=n():e.sourceMap=n()}(this,function(){return function(e){function n(t){if(r[t])return r[t].exports;var o=r[t]={exports:{},id:t,loaded:!1};return e[t].call(o.exports,o,o.exports,n),o.loaded=!0,o.exports}var r={};return n.m=e,n.c=r,n.p="",n(0)}([function(e,n,r){n.SourceMapGenerator=r(1).SourceMapGenerator,n.SourceMapConsumer=r(7).SourceMapConsumer,n.SourceNode=r(10).SourceNode},function(e,n,r){function t(e){e||(e={}),this._file=i.getArg(e,"file",null),this._sourceRoot=i.getArg(e,"sourceRoot",null),this._skipValidation=i.getArg(e,"skipValidation",!1),this._sources=new s,this._names=new s,this._mappings=new a,this._sourcesContents=null}var o=r(2),i=r(4),s=r(5).ArraySet,a=r(6).MappingList;t.prototype._version=3,t.fromSourceMap=function(e){var n=e.sourceRoot,r=new t({file:e.file,sourceRoot:n});return e.eachMapping(function(e){var t={generated:{line:e.generatedLine,column:e.generatedColumn}};null!=e.source&&(t.source=e.source,null!=n&&(t.source=i.relative(n,t.source)),t.original={line:e.originalLine,column:e.originalColumn},null!=e.name&&(t.name=e.name)),r.addMapping(t)}),e.sources.forEach(function(n){var t=e.sourceContentFor(n);null!=t&&r.setSourceContent(n,t)}),r},t.prototype.addMapping=function(e){var n=i.getArg(e,"generated"),r=i.getArg(e,"original",null),t=i.getArg(e,"source",null),o=i.getArg(e,"name",null);this._skipValidation||this._validateMapping(n,r,t,o),null!=t&&(t=String(t),this._sources.has(t)||this._sources.add(t)),null!=o&&(o=String(o),this._names.has(o)||this._names.add(o)),this._mappings.add({generatedLine:n.line,generatedColumn:n.column,originalLine:null!=r&&r.line,originalColumn:null!=r&&r.column,source:t,name:o})},t.prototype.setSourceContent=function(e,n){var r=e;null!=this._sourceRoot&&(r=i.relative(this._sourceRoot,r)),null!=n?(this._sourcesContents||(this._sourcesContents=Object.create(null)),this._sourcesContents[i.toSetString(r)]=n):this._sourcesContents&&(delete this._sourcesContents[i.toSetString(r)],0===Object.keys(this._sourcesContents).length&&(this._sourcesContents=null))},t.prototype.applySourceMap=function(e,n,r){var t=n;if(null==n){if(null==e.file)throw new Error('SourceMapGenerator.prototype.applySourceMap requires either an explicit source file, or the source map\'s "file" property. Both were omitted.');t=e.file}var o=this._sourceRoot;null!=o&&(t=i.relative(o,t));var a=new s,u=new s;this._mappings.unsortedForEach(function(n){if(n.source===t&&null!=n.originalLine){var s=e.originalPositionFor({line:n.originalLine,column:n.originalColumn});null!=s.source&&(n.source=s.source,null!=r&&(n.source=i.join(r,n.source)),null!=o&&(n.source=i.relative(o,n.source)),n.originalLine=s.line,n.originalColumn=s.column,null!=s.name&&(n.name=s.name))}var l=n.source;null==l||a.has(l)||a.add(l);var c=n.name;null==c||u.has(c)||u.add(c)},this),this._sources=a,this._names=u,e.sources.forEach(function(n){var t=e.sourceContentFor(n);null!=t&&(null!=r&&(n=i.join(r,n)),null!=o&&(n=i.relative(o,n)),this.setSourceContent(n,t))},this)},t.prototype._validateMapping=function(e,n,r,t){if(n&&"number"!=typeof n.line&&"number"!=typeof n.column)throw new Error("original.line and original.column are not numbers -- you probably meant to omit the original mapping entirely and only map the generated position. If so, pass null for the original mapping instead of an object with empty or null values.");if((!(e&&"line"in e&&"column"in e&&e.line>0&&e.column>=0)||n||r||t)&&!(e&&"line"in e&&"column"in e&&n&&"line"in n&&"column"in n&&e.line>0&&e.column>=0&&n.line>0&&n.column>=0&&r))throw new Error("Invalid mapping: "+JSON.stringify({generated:e,source:r,original:n,name:t}))},t.prototype._serializeMappings=function(){for(var e,n,r,t,s=0,a=1,u=0,l=0,c=0,g=0,p="",h=this._mappings.toArray(),f=0,d=h.length;f<d;f++){if(n=h[f],e="",n.generatedLine!==a)for(s=0;n.generatedLine!==a;)e+=";",a++;else if(f>0){if(!i.compareByGeneratedPositionsInflated(n,h[f-1]))continue;e+=","}e+=o.encode(n.generatedColumn-s),s=n.generatedColumn,null!=n.source&&(t=this._sources.indexOf(n.source),e+=o.encode(t-g),g=t,e+=o.encode(n.originalLine-1-l),l=n.originalLine-1,e+=o.encode(n.originalColumn-u),u=n.originalColumn,null!=n.name&&(r=this._names.indexOf(n.name),e+=o.encode(r-c),c=r)),p+=e}return p},t.prototype._generateSourcesContent=function(e,n){return e.map(function(e){if(!this._sourcesContents)return null;null!=n&&(e=i.relative(n,e));var r=i.toSetString(e);return Object.prototype.hasOwnProperty.call(this._sourcesContents,r)?this._sourcesContents[r]:null},this)},t.prototype.toJSON=function(){var e={version:this._version,sources:this._sources.toArray(),names:this._names.toArray(),mappings:this._serializeMappings()};return null!=this._file&&(e.file=this._file),null!=this._sourceRoot&&(e.sourceRoot=this._sourceRoot),this._sourcesContents&&(e.sourcesContent=this._generateSourcesContent(e.sources,e.sourceRoot)),e},t.prototype.toString=function(){return JSON.stringify(this.toJSON())},n.SourceMapGenerator=t},function(e,n,r){function t(e){return e<0?(-e<<1)+1:(e<<1)+0}function o(e){var n=1===(1&e),r=e>>1;return n?-r:r}var i=r(3),s=5,a=1<<s,u=a-1,l=a;n.encode=function(e){var n,r="",o=t(e);do n=o&u,o>>>=s,o>0&&(n|=l),r+=i.encode(n);while(o>0);return r},n.decode=function(e,n,r){var t,a,c=e.length,g=0,p=0;do{if(n>=c)throw new Error("Expected more digits in base 64 VLQ value.");if(a=i.decode(e.charCodeAt(n++)),a===-1)throw new Error("Invalid base64 digit: "+e.charAt(n-1));t=!!(a&l),a&=u,g+=a<<p,p+=s}while(t);r.value=o(g),r.rest=n}},function(e,n){var r="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split("");n.encode=function(e){if(0<=e&&e<r.length)return r[e];throw new TypeError("Must be between 0 and 63: "+e)},n.decode=function(e){var n=65,r=90,t=97,o=122,i=48,s=57,a=43,u=47,l=26,c=52;return n<=e&&e<=r?e-n:t<=e&&e<=o?e-t+l:i<=e&&e<=s?e-i+c:e==a?62:e==u?63:-1}},function(e,n){function r(e,n,r){if(n in e)return e[n];if(3===arguments.length)return r;throw new Error('"'+n+'" is a required argument.')}function t(e){var n=e.match(m);return n?{scheme:n[1],auth:n[2],host:n[3],port:n[4],path:n[5]}:null}function o(e){var n="";return e.scheme&&(n+=e.scheme+":"),n+="//",e.auth&&(n+=e.auth+"@"),e.host&&(n+=e.host),e.port&&(n+=":"+e.port),e.path&&(n+=e.path),n}function i(e){var r=e,i=t(e);if(i){if(!i.path)return e;r=i.path}for(var s,a=n.isAbsolute(r),u=r.split(/\/+/),l=0,c=u.length-1;c>=0;c--)s=u[c],"."===s?u.splice(c,1):".."===s?l++:l>0&&(""===s?(u.splice(c+1,l),l=0):(u.splice(c,2),l--));return r=u.join("/"),""===r&&(r=a?"/":"."),i?(i.path=r,o(i)):r}function s(e,n){""===e&&(e="."),""===n&&(n=".");var r=t(n),s=t(e);if(s&&(e=s.path||"/"),r&&!r.scheme)return s&&(r.scheme=s.scheme),o(r);if(r||n.match(_))return n;if(s&&!s.host&&!s.path)return s.host=n,o(s);var a="/"===n.charAt(0)?n:i(e.replace(/\/+$/,"")+"/"+n);return s?(s.path=a,o(s)):a}function a(e,n){""===e&&(e="."),e=e.replace(/\/$/,"");for(var r=0;0!==n.indexOf(e+"/");){var t=e.lastIndexOf("/");if(t<0)return n;if(e=e.slice(0,t),e.match(/^([^\/]+:\/)?\/*$/))return n;++r}return Array(r+1).join("../")+n.substr(e.length+1)}function u(e){return e}function l(e){return g(e)?"$"+e:e}function c(e){return g(e)?e.slice(1):e}function g(e){if(!e)return!1;var n=e.length;if(n<9)return!1;if(95!==e.charCodeAt(n-1)||95!==e.charCodeAt(n-2)||111!==e.charCodeAt(n-3)||116!==e.charCodeAt(n-4)||111!==e.charCodeAt(n-5)||114!==e.charCodeAt(n-6)||112!==e.charCodeAt(n-7)||95!==e.charCodeAt(n-8)||95!==e.charCodeAt(n-9))return!1;for(var r=n-10;r>=0;r--)if(36!==e.charCodeAt(r))return!1;return!0}function p(e,n,r){var t=e.source-n.source;return 0!==t?t:(t=e.originalLine-n.originalLine,0!==t?t:(t=e.originalColumn-n.originalColumn,0!==t||r?t:(t=e.generatedColumn-n.generatedColumn,0!==t?t:(t=e.generatedLine-n.generatedLine,0!==t?t:e.name-n.name))))}function h(e,n,r){var t=e.generatedLine-n.generatedLine;return 0!==t?t:(t=e.generatedColumn-n.generatedColumn,0!==t||r?t:(t=e.source-n.source,0!==t?t:(t=e.originalLine-n.originalLine,0!==t?t:(t=e.originalColumn-n.originalColumn,0!==t?t:e.name-n.name))))}function f(e,n){return e===n?0:e>n?1:-1}function d(e,n){var r=e.generatedLine-n.generatedLine;return 0!==r?r:(r=e.generatedColumn-n.generatedColumn,0!==r?r:(r=f(e.source,n.source),0!==r?r:(r=e.originalLine-n.originalLine,0!==r?r:(r=e.originalColumn-n.originalColumn,0!==r?r:f(e.name,n.name)))))}n.getArg=r;var m=/^(?:([\w+\-.]+):)?\/\/(?:(\w+:\w+)@)?([\w.]*)(?::(\d+))?(\S*)$/,_=/^data:.+\,.+$/;n.urlParse=t,n.urlGenerate=o,n.normalize=i,n.join=s,n.isAbsolute=function(e){return"/"===e.charAt(0)||!!e.match(m)},n.relative=a;var v=function(){var e=Object.create(null);return!("__proto__"in e)}();n.toSetString=v?u:l,n.fromSetString=v?u:c,n.compareByOriginalPositions=p,n.compareByGeneratedPositionsDeflated=h,n.compareByGeneratedPositionsInflated=d},function(e,n,r){function t(){this._array=[],this._set=s?new Map:Object.create(null)}var o=r(4),i=Object.prototype.hasOwnProperty,s="undefined"!=typeof Map;t.fromArray=function(e,n){for(var r=new t,o=0,i=e.length;o<i;o++)r.add(e[o],n);return r},t.prototype.size=function(){return s?this._set.size:Object.getOwnPropertyNames(this._set).length},t.prototype.add=function(e,n){var r=s?e:o.toSetString(e),t=s?this.has(e):i.call(this._set,r),a=this._array.length;t&&!n||this._array.push(e),t||(s?this._set.set(e,a):this._set[r]=a)},t.prototype.has=function(e){if(s)return this._set.has(e);var n=o.toSetString(e);return i.call(this._set,n)},t.prototype.indexOf=function(e){if(s){var n=this._set.get(e);if(n>=0)return n}else{var r=o.toSetString(e);if(i.call(this._set,r))return this._set[r]}throw new Error('"'+e+'" is not in the set.')},t.prototype.at=function(e){if(e>=0&&e<this._array.length)return this._array[e];throw new Error("No element indexed by "+e)},t.prototype.toArray=function(){return this._array.slice()},n.ArraySet=t},function(e,n,r){function t(e,n){var r=e.generatedLine,t=n.generatedLine,o=e.generatedColumn,s=n.generatedColumn;return t>r||t==r&&s>=o||i.compareByGeneratedPositionsInflated(e,n)<=0}function o(){this._array=[],this._sorted=!0,this._last={generatedLine:-1,generatedColumn:0}}var i=r(4);o.prototype.unsortedForEach=function(e,n){this._array.forEach(e,n)},o.prototype.add=function(e){t(this._last,e)?(this._last=e,this._array.push(e)):(this._sorted=!1,this._array.push(e))},o.prototype.toArray=function(){return this._sorted||(this._array.sort(i.compareByGeneratedPositionsInflated),this._sorted=!0),this._array},n.MappingList=o},function(e,n,r){function t(e){var n=e;return"string"==typeof e&&(n=JSON.parse(e.replace(/^\)\]\}'/,""))),null!=n.sections?new s(n):new o(n)}function o(e){var n=e;"string"==typeof e&&(n=JSON.parse(e.replace(/^\)\]\}'/,"")));var r=a.getArg(n,"version"),t=a.getArg(n,"sources"),o=a.getArg(n,"names",[]),i=a.getArg(n,"sourceRoot",null),s=a.getArg(n,"sourcesContent",null),u=a.getArg(n,"mappings"),c=a.getArg(n,"file",null);if(r!=this._version)throw new Error("Unsupported version: "+r);t=t.map(String).map(a.normalize).map(function(e){return i&&a.isAbsolute(i)&&a.isAbsolute(e)?a.relative(i,e):e}),this._names=l.fromArray(o.map(String),!0),this._sources=l.fromArray(t,!0),this.sourceRoot=i,this.sourcesContent=s,this._mappings=u,this.file=c}function i(){this.generatedLine=0,this.generatedColumn=0,this.source=null,this.originalLine=null,this.originalColumn=null,this.name=null}function s(e){var n=e;"string"==typeof e&&(n=JSON.parse(e.replace(/^\)\]\}'/,"")));var r=a.getArg(n,"version"),o=a.getArg(n,"sections");if(r!=this._version)throw new Error("Unsupported version: "+r);this._sources=new l,this._names=new l;var i={line:-1,column:0};this._sections=o.map(function(e){if(e.url)throw new Error("Support for url field in sections not implemented.");var n=a.getArg(e,"offset"),r=a.getArg(n,"line"),o=a.getArg(n,"column");if(r<i.line||r===i.line&&o<i.column)throw new Error("Section offsets must be ordered and non-overlapping.");return i=n,{generatedOffset:{generatedLine:r+1,generatedColumn:o+1},consumer:new t(a.getArg(e,"map"))}})}var a=r(4),u=r(8),l=r(5).ArraySet,c=r(2),g=r(9).quickSort;t.fromSourceMap=function(e){return o.fromSourceMap(e)},t.prototype._version=3,t.prototype.__generatedMappings=null,Object.defineProperty(t.prototype,"_generatedMappings",{get:function(){return this.__generatedMappings||this._parseMappings(this._mappings,this.sourceRoot),this.__generatedMappings}}),t.prototype.__originalMappings=null,Object.defineProperty(t.prototype,"_originalMappings",{get:function(){return this.__originalMappings||this._parseMappings(this._mappings,this.sourceRoot),this.__originalMappings}}),t.prototype._charIsMappingSeparator=function(e,n){var r=e.charAt(n);return";"===r||","===r},t.prototype._parseMappings=function(e,n){throw new Error("Subclasses must implement _parseMappings")},t.GENERATED_ORDER=1,t.ORIGINAL_ORDER=2,t.GREATEST_LOWER_BOUND=1,t.LEAST_UPPER_BOUND=2,t.prototype.eachMapping=function(e,n,r){var o,i=n||null,s=r||t.GENERATED_ORDER;switch(s){case t.GENERATED_ORDER:o=this._generatedMappings;break;case t.ORIGINAL_ORDER:o=this._originalMappings;break;default:throw new Error("Unknown order of iteration.")}var u=this.sourceRoot;o.map(function(e){var n=null===e.source?null:this._sources.at(e.source);return null!=n&&null!=u&&(n=a.join(u,n)),{source:n,generatedLine:e.generatedLine,generatedColumn:e.generatedColumn,originalLine:e.originalLine,originalColumn:e.originalColumn,name:null===e.name?null:this._names.at(e.name)}},this).forEach(e,i)},t.prototype.allGeneratedPositionsFor=function(e){var n=a.getArg(e,"line"),r={source:a.getArg(e,"source"),originalLine:n,originalColumn:a.getArg(e,"column",0)};if(null!=this.sourceRoot&&(r.source=a.relative(this.sourceRoot,r.source)),!this._sources.has(r.source))return[];r.source=this._sources.indexOf(r.source);var t=[],o=this._findMapping(r,this._originalMappings,"originalLine","originalColumn",a.compareByOriginalPositions,u.LEAST_UPPER_BOUND);if(o>=0){var i=this._originalMappings[o];if(void 0===e.column)for(var s=i.originalLine;i&&i.originalLine===s;)t.push({line:a.getArg(i,"generatedLine",null),column:a.getArg(i,"generatedColumn",null),lastColumn:a.getArg(i,"lastGeneratedColumn",null)}),i=this._originalMappings[++o];else for(var l=i.originalColumn;i&&i.originalLine===n&&i.originalColumn==l;)t.push({line:a.getArg(i,"generatedLine",null),column:a.getArg(i,"generatedColumn",null),lastColumn:a.getArg(i,"lastGeneratedColumn",null)}),i=this._originalMappings[++o]}return t},n.SourceMapConsumer=t,o.prototype=Object.create(t.prototype),o.prototype.consumer=t,o.fromSourceMap=function(e){var n=Object.create(o.prototype),r=n._names=l.fromArray(e._names.toArray(),!0),t=n._sources=l.fromArray(e._sources.toArray(),!0);n.sourceRoot=e._sourceRoot,n.sourcesContent=e._generateSourcesContent(n._sources.toArray(),n.sourceRoot),n.file=e._file;for(var s=e._mappings.toArray().slice(),u=n.__generatedMappings=[],c=n.__originalMappings=[],p=0,h=s.length;p<h;p++){var f=s[p],d=new i;d.generatedLine=f.generatedLine,d.generatedColumn=f.generatedColumn,f.source&&(d.source=t.indexOf(f.source),d.originalLine=f.originalLine,d.originalColumn=f.originalColumn,f.name&&(d.name=r.indexOf(f.name)),c.push(d)),u.push(d)}return g(n.__originalMappings,a.compareByOriginalPositions),n},o.prototype._version=3,Object.defineProperty(o.prototype,"sources",{get:function(){return this._sources.toArray().map(function(e){return null!=this.sourceRoot?a.join(this.sourceRoot,e):e},this)}}),o.prototype._parseMappings=function(e,n){for(var r,t,o,s,u,l=1,p=0,h=0,f=0,d=0,m=0,_=e.length,v=0,y={},C={},A=[],S=[];v<_;)if(";"===e.charAt(v))l++,v++,p=0;else if(","===e.charAt(v))v++;else{for(r=new i,r.generatedLine=l,s=v;s<_&&!this._charIsMappingSeparator(e,s);s++);if(t=e.slice(v,s),o=y[t])v+=t.length;else{for(o=[];v<s;)c.decode(e,v,C),u=C.value,v=C.rest,o.push(u);if(2===o.length)throw new Error("Found a source, but no line and column");if(3===o.length)throw new Error("Found a source and line, but no column");y[t]=o}r.generatedColumn=p+o[0],p=r.generatedColumn,o.length>1&&(r.source=d+o[1],d+=o[1],r.originalLine=h+o[2],h=r.originalLine,r.originalLine+=1,r.originalColumn=f+o[3],f=r.originalColumn,o.length>4&&(r.name=m+o[4],m+=o[4])),S.push(r),"number"==typeof r.originalLine&&A.push(r)}g(S,a.compareByGeneratedPositionsDeflated),this.__generatedMappings=S,g(A,a.compareByOriginalPositions),this.__originalMappings=A},o.prototype._findMapping=function(e,n,r,t,o,i){if(e[r]<=0)throw new TypeError("Line must be greater than or equal to 1, got "+e[r]);if(e[t]<0)throw new TypeError("Column must be greater than or equal to 0, got "+e[t]);return u.search(e,n,o,i)},o.prototype.computeColumnSpans=function(){for(var e=0;e<this._generatedMappings.length;++e){var n=this._generatedMappings[e];if(e+1<this._generatedMappings.length){var r=this._generatedMappings[e+1];if(n.generatedLine===r.generatedLine){n.lastGeneratedColumn=r.generatedColumn-1;continue}}n.lastGeneratedColumn=1/0}},o.prototype.originalPositionFor=function(e){var n={generatedLine:a.getArg(e,"line"),generatedColumn:a.getArg(e,"column")},r=this._findMapping(n,this._generatedMappings,"generatedLine","generatedColumn",a.compareByGeneratedPositionsDeflated,a.getArg(e,"bias",t.GREATEST_LOWER_BOUND));if(r>=0){var o=this._generatedMappings[r];if(o.generatedLine===n.generatedLine){var i=a.getArg(o,"source",null);null!==i&&(i=this._sources.at(i),null!=this.sourceRoot&&(i=a.join(this.sourceRoot,i)));var s=a.getArg(o,"name",null);return null!==s&&(s=this._names.at(s)),{source:i,line:a.getArg(o,"originalLine",null),column:a.getArg(o,"originalColumn",null),name:s}}}return{source:null,line:null,column:null,name:null}},o.prototype.hasContentsOfAllSources=function(){return!!this.sourcesContent&&(this.sourcesContent.length>=this._sources.size()&&!this.sourcesContent.some(function(e){return null==e}))},o.prototype.sourceContentFor=function(e,n){if(!this.sourcesContent)return null;if(null!=this.sourceRoot&&(e=a.relative(this.sourceRoot,e)),this._sources.has(e))return this.sourcesContent[this._sources.indexOf(e)];var r;if(null!=this.sourceRoot&&(r=a.urlParse(this.sourceRoot))){var t=e.replace(/^file:\/\//,"");if("file"==r.scheme&&this._sources.has(t))return this.sourcesContent[this._sources.indexOf(t)];if((!r.path||"/"==r.path)&&this._sources.has("/"+e))return this.sourcesContent[this._sources.indexOf("/"+e)]}if(n)return null;throw new Error('"'+e+'" is not in the SourceMap.')},o.prototype.generatedPositionFor=function(e){var n=a.getArg(e,"source");if(null!=this.sourceRoot&&(n=a.relative(this.sourceRoot,n)),!this._sources.has(n))return{line:null,column:null,lastColumn:null};n=this._sources.indexOf(n);var r={source:n,originalLine:a.getArg(e,"line"),originalColumn:a.getArg(e,"column")},o=this._findMapping(r,this._originalMappings,"originalLine","originalColumn",a.compareByOriginalPositions,a.getArg(e,"bias",t.GREATEST_LOWER_BOUND));if(o>=0){var i=this._originalMappings[o];if(i.source===r.source)return{line:a.getArg(i,"generatedLine",null),column:a.getArg(i,"generatedColumn",null),lastColumn:a.getArg(i,"lastGeneratedColumn",null)}}return{line:null,column:null,lastColumn:null}},n.BasicSourceMapConsumer=o,s.prototype=Object.create(t.prototype),s.prototype.constructor=t,s.prototype._version=3,Object.defineProperty(s.prototype,"sources",{get:function(){for(var e=[],n=0;n<this._sections.length;n++)for(var r=0;r<this._sections[n].consumer.sources.length;r++)e.push(this._sections[n].consumer.sources[r]);return e}}),s.prototype.originalPositionFor=function(e){var n={generatedLine:a.getArg(e,"line"),generatedColumn:a.getArg(e,"column")},r=u.search(n,this._sections,function(e,n){var r=e.generatedLine-n.generatedOffset.generatedLine;return r?r:e.generatedColumn-n.generatedOffset.generatedColumn}),t=this._sections[r];return t?t.consumer.originalPositionFor({line:n.generatedLine-(t.generatedOffset.generatedLine-1),column:n.generatedColumn-(t.generatedOffset.generatedLine===n.generatedLine?t.generatedOffset.generatedColumn-1:0),bias:e.bias}):{source:null,line:null,column:null,name:null}},s.prototype.hasContentsOfAllSources=function(){return this._sections.every(function(e){return e.consumer.hasContentsOfAllSources()})},s.prototype.sourceContentFor=function(e,n){for(var r=0;r<this._sections.length;r++){var t=this._sections[r],o=t.consumer.sourceContentFor(e,!0);if(o)return o}if(n)return null;throw new Error('"'+e+'" is not in the SourceMap.')},s.prototype.generatedPositionFor=function(e){for(var n=0;n<this._sections.length;n++){var r=this._sections[n];if(r.consumer.sources.indexOf(a.getArg(e,"source"))!==-1){var t=r.consumer.generatedPositionFor(e);if(t){var o={line:t.line+(r.generatedOffset.generatedLine-1),column:t.column+(r.generatedOffset.generatedLine===t.line?r.generatedOffset.generatedColumn-1:0)};return o}}}return{line:null,column:null}},s.prototype._parseMappings=function(e,n){this.__generatedMappings=[],this.__originalMappings=[];for(var r=0;r<this._sections.length;r++)for(var t=this._sections[r],o=t.consumer._generatedMappings,i=0;i<o.length;i++){var s=o[i],u=t.consumer._sources.at(s.source);null!==t.consumer.sourceRoot&&(u=a.join(t.consumer.sourceRoot,u)),this._sources.add(u),u=this._sources.indexOf(u);var l=t.consumer._names.at(s.name);this._names.add(l),l=this._names.indexOf(l);var c={source:u,generatedLine:s.generatedLine+(t.generatedOffset.generatedLine-1),generatedColumn:s.generatedColumn+(t.generatedOffset.generatedLine===s.generatedLine?t.generatedOffset.generatedColumn-1:0),originalLine:s.originalLine,originalColumn:s.originalColumn,name:l};this.__generatedMappings.push(c),"number"==typeof c.originalLine&&this.__originalMappings.push(c)}g(this.__generatedMappings,a.compareByGeneratedPositionsDeflated),g(this.__originalMappings,a.compareByOriginalPositions)},n.IndexedSourceMapConsumer=s},function(e,n){function r(e,t,o,i,s,a){var u=Math.floor((t-e)/2)+e,l=s(o,i[u],!0);return 0===l?u:l>0?t-u>1?r(u,t,o,i,s,a):a==n.LEAST_UPPER_BOUND?t<i.length?t:-1:u:u-e>1?r(e,u,o,i,s,a):a==n.LEAST_UPPER_BOUND?u:e<0?-1:e}n.GREATEST_LOWER_BOUND=1,n.LEAST_UPPER_BOUND=2,n.search=function(e,t,o,i){if(0===t.length)return-1;var s=r(-1,t.length,e,t,o,i||n.GREATEST_LOWER_BOUND);if(s<0)return-1;for(;s-1>=0&&0===o(t[s],t[s-1],!0);)--s;return s}},function(e,n){function r(e,n,r){var t=e[n];e[n]=e[r],e[r]=t}function t(e,n){return Math.round(e+Math.random()*(n-e))}function o(e,n,i,s){if(i<s){var a=t(i,s),u=i-1;r(e,a,s);for(var l=e[s],c=i;c<s;c++)n(e[c],l)<=0&&(u+=1,r(e,u,c));r(e,u+1,c);var g=u+1;o(e,n,i,g-1),o(e,n,g+1,s)}}n.quickSort=function(e,n){o(e,n,0,e.length-1)}},function(e,n,r){function t(e,n,r,t,o){this.children=[],this.sourceContents={},this.line=null==e?null:e,this.column=null==n?null:n,this.source=null==r?null:r,this.name=null==o?null:o,this[u]=!0,null!=t&&this.add(t)}var o=r(1).SourceMapGenerator,i=r(4),s=/(\r?\n)/,a=10,u="$$$isSourceNode$$$";t.fromStringWithSourceMap=function(e,n,r){function o(e,n){if(null===e||void 0===e.source)a.add(n);else{var o=r?i.join(r,e.source):e.source;a.add(new t(e.originalLine,e.originalColumn,o,n,e.name))}}var a=new t,u=e.split(s),l=0,c=function(){function e(){return l<u.length?u[l++]:void 0}var n=e(),r=e()||"";return n+r},g=1,p=0,h=null;return n.eachMapping(function(e){if(null!==h){if(!(g<e.generatedLine)){var n=u[l],r=n.substr(0,e.generatedColumn-p);return u[l]=n.substr(e.generatedColumn-p),p=e.generatedColumn,o(h,r),void(h=e)}o(h,c()),g++,p=0}for(;g<e.generatedLine;)a.add(c()),g++;if(p<e.generatedColumn){var n=u[l];a.add(n.substr(0,e.generatedColumn)),u[l]=n.substr(e.generatedColumn),p=e.generatedColumn}h=e},this),l<u.length&&(h&&o(h,c()),a.add(u.splice(l).join(""))),n.sources.forEach(function(e){var t=n.sourceContentFor(e);null!=t&&(null!=r&&(e=i.join(r,e)),a.setSourceContent(e,t))}),a},t.prototype.add=function(e){if(Array.isArray(e))e.forEach(function(e){this.add(e)},this);else{if(!e[u]&&"string"!=typeof e)throw new TypeError("Expected a SourceNode, string, or an array of SourceNodes and strings. Got "+e);e&&this.children.push(e)}return this},t.prototype.prepend=function(e){if(Array.isArray(e))for(var n=e.length-1;n>=0;n--)this.prepend(e[n]);else{if(!e[u]&&"string"!=typeof e)throw new TypeError("Expected a SourceNode, string, or an array of SourceNodes and strings. Got "+e);this.children.unshift(e)}return this},t.prototype.walk=function(e){for(var n,r=0,t=this.children.length;r<t;r++)n=this.children[r],n[u]?n.walk(e):""!==n&&e(n,{source:this.source,line:this.line,column:this.column,name:this.name})},t.prototype.join=function(e){var n,r,t=this.children.length;if(t>0){for(n=[],r=0;r<t-1;r++)n.push(this.children[r]),n.push(e);n.push(this.children[r]),this.children=n}return this},t.prototype.replaceRight=function(e,n){var r=this.children[this.children.length-1];return r[u]?r.replaceRight(e,n):"string"==typeof r?this.children[this.children.length-1]=r.replace(e,n):this.children.push("".replace(e,n)),this},t.prototype.setSourceContent=function(e,n){this.sourceContents[i.toSetString(e)]=n},t.prototype.walkSourceContents=function(e){for(var n=0,r=this.children.length;n<r;n++)this.children[n][u]&&this.children[n].walkSourceContents(e);for(var t=Object.keys(this.sourceContents),n=0,r=t.length;n<r;n++)e(i.fromSetString(t[n]),this.sourceContents[t[n]])},t.prototype.toString=function(){var e="";return this.walk(function(n){e+=n}),e},t.prototype.toStringWithSourceMap=function(e){var n={code:"",line:1,column:0},r=new o(e),t=!1,i=null,s=null,u=null,l=null;return this.walk(function(e,o){n.code+=e,null!==o.source&&null!==o.line&&null!==o.column?(i===o.source&&s===o.line&&u===o.column&&l===o.name||r.addMapping({source:o.source,original:{line:o.line,column:o.column},generated:{line:n.line,column:n.column},name:o.name}),i=o.source,s=o.line,u=o.column,l=o.name,t=!0):t&&(r.addMapping({generated:{line:n.line,column:n.column}}),i=null,t=!1);for(var c=0,g=e.length;c<g;c++)e.charCodeAt(c)===a?(n.line++,n.column=0,c+1===g?(i=null,t=!1):t&&r.addMapping({source:o.source,original:{line:o.line,column:o.column},generated:{line:n.line,column:n.column},name:o.name})):n.column++}),this.walkSourceContents(function(e,n){r.setSourceContent(e,n)}),{code:n.code,map:r}},n.SourceNode=t}])});
-//# sourceMappingURL=source-map.min.js.map
\ No newline at end of file
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-coverage/node_modules/source-map/dist/source-map.min.js.map b/src/cobalt/debug/remote/devtools/node_modules/karma-coverage/node_modules/source-map/dist/source-map.min.js.map
deleted file mode 100644
index 588b70c..0000000
--- a/src/cobalt/debug/remote/devtools/node_modules/karma-coverage/node_modules/source-map/dist/source-map.min.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///source-map.min.js","webpack:///webpack/bootstrap 42c329f865e32e011afb","webpack:///./source-map.js","webpack:///./lib/source-map-generator.js","webpack:///./lib/base64-vlq.js","webpack:///./lib/base64.js","webpack:///./lib/util.js","webpack:///./lib/array-set.js","webpack:///./lib/mapping-list.js","webpack:///./lib/source-map-consumer.js","webpack:///./lib/binary-search.js","webpack:///./lib/quick-sort.js","webpack:///./lib/source-node.js"],"names":["root","factory","exports","module","define","amd","this","modules","__webpack_require__","moduleId","installedModules","id","loaded","call","m","c","p","SourceMapGenerator","SourceMapConsumer","SourceNode","aArgs","_file","util","getArg","_sourceRoot","_skipValidation","_sources","ArraySet","_names","_mappings","MappingList","_sourcesContents","base64VLQ","prototype","_version","fromSourceMap","aSourceMapConsumer","sourceRoot","generator","file","eachMapping","mapping","newMapping","generated","line","generatedLine","column","generatedColumn","source","relative","original","originalLine","originalColumn","name","addMapping","sources","forEach","sourceFile","content","sourceContentFor","setSourceContent","_validateMapping","String","has","add","aSourceFile","aSourceContent","Object","create","toSetString","keys","length","applySourceMap","aSourceMapPath","Error","newSources","newNames","unsortedForEach","originalPositionFor","join","aGenerated","aOriginal","aSource","aName","JSON","stringify","_serializeMappings","next","nameIdx","sourceIdx","previousGeneratedColumn","previousGeneratedLine","previousOriginalColumn","previousOriginalLine","previousName","previousSource","result","mappings","toArray","i","len","compareByGeneratedPositionsInflated","encode","indexOf","_generateSourcesContent","aSources","aSourceRoot","map","key","hasOwnProperty","toJSON","version","names","sourcesContent","toString","toVLQSigned","aValue","fromVLQSigned","isNegative","shifted","base64","VLQ_BASE_SHIFT","VLQ_BASE","VLQ_BASE_MASK","VLQ_CONTINUATION_BIT","digit","encoded","vlq","decode","aStr","aIndex","aOutParam","continuation","strLen","shift","charCodeAt","charAt","value","rest","intToCharMap","split","number","TypeError","charCode","bigA","bigZ","littleA","littleZ","zero","nine","plus","slash","littleOffset","numberOffset","aDefaultValue","arguments","urlParse","aUrl","match","urlRegexp","scheme","auth","host","port","path","urlGenerate","aParsedUrl","url","normalize","aPath","part","isAbsolute","parts","up","splice","aRoot","aPathUrl","aRootUrl","dataUrlRegexp","joined","replace","level","index","lastIndexOf","slice","Array","substr","identity","s","isProtoString","fromSetString","compareByOriginalPositions","mappingA","mappingB","onlyCompareOriginal","cmp","compareByGeneratedPositionsDeflated","onlyCompareGenerated","strcmp","aStr1","aStr2","supportsNullProto","obj","_array","_set","hasNativeMap","Map","fromArray","aArray","aAllowDuplicates","set","size","getOwnPropertyNames","sStr","isDuplicate","idx","push","get","at","aIdx","generatedPositionAfter","lineA","lineB","columnA","columnB","_sorted","_last","aCallback","aThisArg","aMapping","sort","aSourceMap","sourceMap","parse","sections","IndexedSourceMapConsumer","BasicSourceMapConsumer","Mapping","lastOffset","_sections","offset","offsetLine","offsetColumn","generatedOffset","consumer","binarySearch","quickSort","__generatedMappings","defineProperty","_parseMappings","__originalMappings","_charIsMappingSeparator","GENERATED_ORDER","ORIGINAL_ORDER","GREATEST_LOWER_BOUND","LEAST_UPPER_BOUND","aContext","aOrder","context","order","_generatedMappings","_originalMappings","allGeneratedPositionsFor","needle","_findMapping","undefined","lastColumn","smc","generatedMappings","destGeneratedMappings","destOriginalMappings","srcMapping","destMapping","str","segment","end","cachedSegments","temp","originalMappings","aNeedle","aMappings","aLineName","aColumnName","aComparator","aBias","search","computeColumnSpans","nextMapping","lastGeneratedColumn","Infinity","hasContentsOfAllSources","some","sc","nullOnMissing","fileUriAbsPath","generatedPositionFor","constructor","j","sectionIndex","section","bias","every","generatedPosition","ret","sectionMappings","adjustedMapping","recursiveSearch","aLow","aHigh","aHaystack","aCompare","mid","Math","floor","swap","ary","x","y","randomIntInRange","low","high","round","random","doQuickSort","comparator","r","pivotIndex","pivot","q","aLine","aColumn","aChunks","children","sourceContents","isSourceNode","REGEX_NEWLINE","NEWLINE_CODE","fromStringWithSourceMap","aGeneratedCode","aRelativePath","addMappingWithCode","code","node","remainingLines","remainingLinesIndex","shiftNextLine","getNextLine","lineContents","newLine","lastGeneratedLine","lastMapping","nextLine","aChunk","isArray","chunk","prepend","unshift","walk","aFn","aSep","newChildren","replaceRight","aPattern","aReplacement","lastChild","walkSourceContents","toStringWithSourceMap","sourceMappingActive","lastOriginalSource","lastOriginalLine","lastOriginalColumn","lastOriginalName","sourceContent"],"mappings":"CAAA,SAAAA,EAAAC,GACA,gBAAAC,UAAA,gBAAAC,QACAA,OAAAD,QAAAD,IACA,kBAAAG,gBAAAC,IACAD,UAAAH,GACA,gBAAAC,SACAA,QAAA,UAAAD,IAEAD,EAAA,UAAAC,KACCK,KAAA,WACD,MCAgB,UAAUC,GCN1B,QAAAC,GAAAC,GAGA,GAAAC,EAAAD,GACA,MAAAC,GAAAD,GAAAP,OAGA,IAAAC,GAAAO,EAAAD,IACAP,WACAS,GAAAF,EACAG,QAAA,EAUA,OANAL,GAAAE,GAAAI,KAAAV,EAAAD,QAAAC,IAAAD,QAAAM,GAGAL,EAAAS,QAAA,EAGAT,EAAAD,QAvBA,GAAAQ,KAqCA,OATAF,GAAAM,EAAAP,EAGAC,EAAAO,EAAAL,EAGAF,EAAAQ,EAAA,GAGAR,EAAA,KDgBM,SAAUL,EAAQD,EAASM,GEjDjCN,EAAAe,mBAAAT,EAAA,GAAAS,mBACAf,EAAAgB,kBAAAV,EAAA,GAAAU,kBACAhB,EAAAiB,WAAAX,EAAA,IAAAW,YF6DM,SAAUhB,EAAQD,EAASM,GGhDjC,QAAAS,GAAAG,GACAA,IACAA,MAEAd,KAAAe,MAAAC,EAAAC,OAAAH,EAAA,aACAd,KAAAkB,YAAAF,EAAAC,OAAAH,EAAA,mBACAd,KAAAmB,gBAAAH,EAAAC,OAAAH,EAAA,qBACAd,KAAAoB,SAAA,GAAAC,GACArB,KAAAsB,OAAA,GAAAD,GACArB,KAAAuB,UAAA,GAAAC,GACAxB,KAAAyB,iBAAA,KAvBA,GAAAC,GAAAxB,EAAA,GACAc,EAAAd,EAAA,GACAmB,EAAAnB,EAAA,GAAAmB,SACAG,EAAAtB,EAAA,GAAAsB,WAuBAb,GAAAgB,UAAAC,SAAA,EAOAjB,EAAAkB,cACA,SAAAC,GACA,GAAAC,GAAAD,EAAAC,WACAC,EAAA,GAAArB,IACAsB,KAAAH,EAAAG,KACAF,cAkCA,OAhCAD,GAAAI,YAAA,SAAAC,GACA,GAAAC,IACAC,WACAC,KAAAH,EAAAI,cACAC,OAAAL,EAAAM,iBAIA,OAAAN,EAAAO,SACAN,EAAAM,OAAAP,EAAAO,OACA,MAAAX,IACAK,EAAAM,OAAA1B,EAAA2B,SAAAZ,EAAAK,EAAAM,SAGAN,EAAAQ,UACAN,KAAAH,EAAAU,aACAL,OAAAL,EAAAW,gBAGA,MAAAX,EAAAY,OACAX,EAAAW,KAAAZ,EAAAY,OAIAf,EAAAgB,WAAAZ,KAEAN,EAAAmB,QAAAC,QAAA,SAAAC,GACA,GAAAC,GAAAtB,EAAAuB,iBAAAF,EACA,OAAAC,GACApB,EAAAsB,iBAAAH,EAAAC,KAGApB,GAaArB,EAAAgB,UAAAqB,WACA,SAAAlC,GACA,GAAAuB,GAAArB,EAAAC,OAAAH,EAAA,aACA8B,EAAA5B,EAAAC,OAAAH,EAAA,iBACA4B,EAAA1B,EAAAC,OAAAH,EAAA,eACAiC,EAAA/B,EAAAC,OAAAH,EAAA,YAEAd,MAAAmB,iBACAnB,KAAAuD,iBAAAlB,EAAAO,EAAAF,EAAAK,GAGA,MAAAL,IACAA,EAAAc,OAAAd,GACA1C,KAAAoB,SAAAqC,IAAAf,IACA1C,KAAAoB,SAAAsC,IAAAhB,IAIA,MAAAK,IACAA,EAAAS,OAAAT,GACA/C,KAAAsB,OAAAmC,IAAAV,IACA/C,KAAAsB,OAAAoC,IAAAX,IAIA/C,KAAAuB,UAAAmC,KACAnB,cAAAF,EAAAC,KACAG,gBAAAJ,EAAAG,OACAK,aAAA,MAAAD,KAAAN,KACAQ,eAAA,MAAAF,KAAAJ,OACAE,SACAK,UAOApC,EAAAgB,UAAA2B,iBACA,SAAAK,EAAAC,GACA,GAAAlB,GAAAiB,CACA,OAAA3D,KAAAkB,cACAwB,EAAA1B,EAAA2B,SAAA3C,KAAAkB,YAAAwB,IAGA,MAAAkB,GAGA5D,KAAAyB,mBACAzB,KAAAyB,iBAAAoC,OAAAC,OAAA,OAEA9D,KAAAyB,iBAAAT,EAAA+C,YAAArB,IAAAkB,GACK5D,KAAAyB,yBAGLzB,MAAAyB,iBAAAT,EAAA+C,YAAArB,IACA,IAAAmB,OAAAG,KAAAhE,KAAAyB,kBAAAwC,SACAjE,KAAAyB,iBAAA,QAqBAd,EAAAgB,UAAAuC,eACA,SAAApC,EAAA6B,EAAAQ,GACA,GAAAhB,GAAAQ,CAEA,UAAAA,EAAA,CACA,SAAA7B,EAAAG,KACA,SAAAmC,OACA,gJAIAjB,GAAArB,EAAAG,KAEA,GAAAF,GAAA/B,KAAAkB,WAEA,OAAAa,IACAoB,EAAAnC,EAAA2B,SAAAZ,EAAAoB,GAIA,IAAAkB,GAAA,GAAAhD,GACAiD,EAAA,GAAAjD,EAGArB,MAAAuB,UAAAgD,gBAAA,SAAApC,GACA,GAAAA,EAAAO,SAAAS,GAAA,MAAAhB,EAAAU,aAAA,CAEA,GAAAD,GAAAd,EAAA0C,qBACAlC,KAAAH,EAAAU,aACAL,OAAAL,EAAAW,gBAEA,OAAAF,EAAAF,SAEAP,EAAAO,OAAAE,EAAAF,OACA,MAAAyB,IACAhC,EAAAO,OAAA1B,EAAAyD,KAAAN,EAAAhC,EAAAO,SAEA,MAAAX,IACAI,EAAAO,OAAA1B,EAAA2B,SAAAZ,EAAAI,EAAAO,SAEAP,EAAAU,aAAAD,EAAAN,KACAH,EAAAW,eAAAF,EAAAJ,OACA,MAAAI,EAAAG,OACAZ,EAAAY,KAAAH,EAAAG,OAKA,GAAAL,GAAAP,EAAAO,MACA,OAAAA,GAAA2B,EAAAZ,IAAAf,IACA2B,EAAAX,IAAAhB,EAGA,IAAAK,GAAAZ,EAAAY,IACA,OAAAA,GAAAuB,EAAAb,IAAAV,IACAuB,EAAAZ,IAAAX,IAGK/C,MACLA,KAAAoB,SAAAiD,EACArE,KAAAsB,OAAAgD,EAGAxC,EAAAmB,QAAAC,QAAA,SAAAC,GACA,GAAAC,GAAAtB,EAAAuB,iBAAAF,EACA,OAAAC,IACA,MAAAe,IACAhB,EAAAnC,EAAAyD,KAAAN,EAAAhB,IAEA,MAAApB,IACAoB,EAAAnC,EAAA2B,SAAAZ,EAAAoB,IAEAnD,KAAAsD,iBAAAH,EAAAC,KAEKpD,OAcLW,EAAAgB,UAAA4B,iBACA,SAAAmB,EAAAC,EAAAC,EACAC,GAKA,GAAAF,GAAA,gBAAAA,GAAArC,MAAA,gBAAAqC,GAAAnC,OACA,SAAA4B,OACA,+OAMA,OAAAM,GAAA,QAAAA,IAAA,UAAAA,IACAA,EAAApC,KAAA,GAAAoC,EAAAlC,QAAA,IACAmC,GAAAC,GAAAC,MAIAH,GAAA,QAAAA,IAAA,UAAAA,IACAC,GAAA,QAAAA,IAAA,UAAAA,IACAD,EAAApC,KAAA,GAAAoC,EAAAlC,QAAA,GACAmC,EAAArC,KAAA,GAAAqC,EAAAnC,QAAA,GACAoC,GAKA,SAAAR,OAAA,oBAAAU,KAAAC,WACA1C,UAAAqC,EACAhC,OAAAkC,EACAhC,SAAA+B,EACA5B,KAAA8B,MASAlE,EAAAgB,UAAAqD,mBACA,WAcA,OANAC,GACA9C,EACA+C,EACAC,EAVAC,EAAA,EACAC,EAAA,EACAC,EAAA,EACAC,EAAA,EACAC,EAAA,EACAC,EAAA,EACAC,EAAA,GAMAC,EAAA3F,KAAAuB,UAAAqE,UACAC,EAAA,EAAAC,EAAAH,EAAA1B,OAA0C4B,EAAAC,EAASD,IAAA,CAInD,GAHA1D,EAAAwD,EAAAE,GACAZ,EAAA,GAEA9C,EAAAI,gBAAA8C,EAEA,IADAD,EAAA,EACAjD,EAAAI,gBAAA8C,GACAJ,GAAA,IACAI,QAIA,IAAAQ,EAAA,GACA,IAAA7E,EAAA+E,oCAAA5D,EAAAwD,EAAAE,EAAA,IACA,QAEAZ,IAAA,IAIAA,GAAAvD,EAAAsE,OAAA7D,EAAAM,gBACA2C,GACAA,EAAAjD,EAAAM,gBAEA,MAAAN,EAAAO,SACAyC,EAAAnF,KAAAoB,SAAA6E,QAAA9D,EAAAO,QACAuC,GAAAvD,EAAAsE,OAAAb,EAAAM,GACAA,EAAAN,EAGAF,GAAAvD,EAAAsE,OAAA7D,EAAAU,aAAA,EACA0C,GACAA,EAAApD,EAAAU,aAAA,EAEAoC,GAAAvD,EAAAsE,OAAA7D,EAAAW,eACAwC,GACAA,EAAAnD,EAAAW,eAEA,MAAAX,EAAAY,OACAmC,EAAAlF,KAAAsB,OAAA2E,QAAA9D,EAAAY,MACAkC,GAAAvD,EAAAsE,OAAAd,EAAAM,GACAA,EAAAN,IAIAQ,GAAAT,EAGA,MAAAS,IAGA/E,EAAAgB,UAAAuE,wBACA,SAAAC,EAAAC,GACA,MAAAD,GAAAE,IAAA,SAAA3D,GACA,IAAA1C,KAAAyB,iBACA,WAEA,OAAA2E,IACA1D,EAAA1B,EAAA2B,SAAAyD,EAAA1D,GAEA,IAAA4D,GAAAtF,EAAA+C,YAAArB,EACA,OAAAmB,QAAAlC,UAAA4E,eAAAhG,KAAAP,KAAAyB,iBAAA6E,GACAtG,KAAAyB,iBAAA6E,GACA,MACKtG,OAMLW,EAAAgB,UAAA6E,OACA,WACA,GAAAH,IACAI,QAAAzG,KAAA4B,SACAqB,QAAAjD,KAAAoB,SAAAwE,UACAc,MAAA1G,KAAAsB,OAAAsE,UACAD,SAAA3F,KAAAgF,qBAYA,OAVA,OAAAhF,KAAAe,QACAsF,EAAApE,KAAAjC,KAAAe,OAEA,MAAAf,KAAAkB,cACAmF,EAAAtE,WAAA/B,KAAAkB,aAEAlB,KAAAyB,mBACA4E,EAAAM,eAAA3G,KAAAkG,wBAAAG,EAAApD,QAAAoD,EAAAtE,aAGAsE,GAMA1F,EAAAgB,UAAAiF,SACA,WACA,MAAA9B,MAAAC,UAAA/E,KAAAwG,WAGA5G,EAAAe,sBH2EM,SAAUd,EAAQD,EAASM,GItajC,QAAA2G,GAAAC,GACA,MAAAA,GAAA,IACAA,GAAA,MACAA,GAAA,KASA,QAAAC,GAAAD,GACA,GAAAE,GAAA,OAAAF,GACAG,EAAAH,GAAA,CACA,OAAAE,IACAC,EACAA,EAhDA,GAAAC,GAAAhH,EAAA,GAcAiH,EAAA,EAGAC,EAAA,GAAAD,EAGAE,EAAAD,EAAA,EAGAE,EAAAF,CA+BAxH,GAAAoG,OAAA,SAAAc,GACA,GACAS,GADAC,EAAA,GAGAC,EAAAZ,EAAAC,EAEA,GACAS,GAAAE,EAAAJ,EACAI,KAAAN,EACAM,EAAA,IAGAF,GAAAD,GAEAE,GAAAN,EAAAlB,OAAAuB,SACGE,EAAA,EAEH,OAAAD,IAOA5H,EAAA8H,OAAA,SAAAC,EAAAC,EAAAC,GACA,GAGAC,GAAAP,EAHAQ,EAAAJ,EAAA1D,OACAyB,EAAA,EACAsC,EAAA,CAGA,IACA,GAAAJ,GAAAG,EACA,SAAA3D,OAAA,6CAIA,IADAmD,EAAAL,EAAAQ,OAAAC,EAAAM,WAAAL,MACAL,KAAA,EACA,SAAAnD,OAAA,yBAAAuD,EAAAO,OAAAN,EAAA,GAGAE,MAAAP,EAAAD,GACAC,GAAAF,EACA3B,GAAA6B,GAAAS,EACAA,GAAAb,QACGW,EAEHD,GAAAM,MAAApB,EAAArB,GACAmC,EAAAO,KAAAR,IJkfM,SAAU/H,EAAQD,GKrnBxB,GAAAyI,GAAA,mEAAAC,MAAA,GAKA1I,GAAAoG,OAAA,SAAAuC,GACA,MAAAA,KAAAF,EAAApE,OACA,MAAAoE,GAAAE,EAEA,UAAAC,WAAA,6BAAAD,IAOA3I,EAAA8H,OAAA,SAAAe,GACA,GAAAC,GAAA,GACAC,EAAA,GAEAC,EAAA,GACAC,EAAA,IAEAC,EAAA,GACAC,EAAA,GAEAC,EAAA,GACAC,EAAA,GAEAC,EAAA,GACAC,EAAA,EAGA,OAAAT,IAAAD,MAAAE,EACAF,EAAAC,EAIAE,GAAAH,MAAAI,EACAJ,EAAAG,EAAAM,EAIAJ,GAAAL,MAAAM,EACAN,EAAAK,EAAAK,EAIAV,GAAAO,EACA,GAIAP,GAAAQ,EACA,IAIA,ILooBM,SAAUpJ,EAAQD,GMprBxB,QAAAqB,GAAAH,EAAA+D,EAAAuE,GACA,GAAAvE,IAAA/D,GACA,MAAAA,GAAA+D,EACG,QAAAwE,UAAApF,OACH,MAAAmF,EAEA,UAAAhF,OAAA,IAAAS,EAAA,6BAQA,QAAAyE,GAAAC,GACA,GAAAC,GAAAD,EAAAC,MAAAC,EACA,OAAAD,IAIAE,OAAAF,EAAA,GACAG,KAAAH,EAAA,GACAI,KAAAJ,EAAA,GACAK,KAAAL,EAAA,GACAM,KAAAN,EAAA,IAPA,KAYA,QAAAO,GAAAC,GACA,GAAAC,GAAA,EAiBA,OAhBAD,GAAAN,SACAO,GAAAD,EAAAN,OAAA,KAEAO,GAAA,KACAD,EAAAL,OACAM,GAAAD,EAAAL,KAAA,KAEAK,EAAAJ,OACAK,GAAAD,EAAAJ,MAEAI,EAAAH,OACAI,GAAA,IAAAD,EAAAH,MAEAG,EAAAF,OACAG,GAAAD,EAAAF,MAEAG,EAeA,QAAAC,GAAAC,GACA,GAAAL,GAAAK,EACAF,EAAAX,EAAAa,EACA,IAAAF,EAAA,CACA,IAAAA,EAAAH,KACA,MAAAK,EAEAL,GAAAG,EAAAH,KAKA,OAAAM,GAHAC,EAAAzK,EAAAyK,WAAAP,GAEAQ,EAAAR,EAAAxB,MAAA,OACAiC,EAAA,EAAA1E,EAAAyE,EAAArG,OAAA,EAA8C4B,GAAA,EAAQA,IACtDuE,EAAAE,EAAAzE,GACA,MAAAuE,EACAE,EAAAE,OAAA3E,EAAA,GACK,OAAAuE,EACLG,IACKA,EAAA,IACL,KAAAH,GAIAE,EAAAE,OAAA3E,EAAA,EAAA0E,GACAA,EAAA,IAEAD,EAAAE,OAAA3E,EAAA,GACA0E,KAUA,OANAT,GAAAQ,EAAA7F,KAAA,KAEA,KAAAqF,IACAA,EAAAO,EAAA,SAGAJ,GACAA,EAAAH,OACAC,EAAAE,IAEAH,EAoBA,QAAArF,GAAAgG,EAAAN,GACA,KAAAM,IACAA,EAAA,KAEA,KAAAN,IACAA,EAAA,IAEA,IAAAO,GAAApB,EAAAa,GACAQ,EAAArB,EAAAmB,EAMA,IALAE,IACAF,EAAAE,EAAAb,MAAA,KAIAY,MAAAhB,OAIA,MAHAiB,KACAD,EAAAhB,OAAAiB,EAAAjB,QAEAK,EAAAW,EAGA,IAAAA,GAAAP,EAAAX,MAAAoB,GACA,MAAAT,EAIA,IAAAQ,MAAAf,OAAAe,EAAAb,KAEA,MADAa,GAAAf,KAAAO,EACAJ,EAAAY,EAGA,IAAAE,GAAA,MAAAV,EAAAjC,OAAA,GACAiC,EACAD,EAAAO,EAAAK,QAAA,eAAAX,EAEA,OAAAQ,IACAA,EAAAb,KAAAe,EACAd,EAAAY,IAEAE,EAcA,QAAAlI,GAAA8H,EAAAN,GACA,KAAAM,IACAA,EAAA,KAGAA,IAAAK,QAAA,SAOA,KADA,GAAAC,GAAA,EACA,IAAAZ,EAAAlE,QAAAwE,EAAA,OACA,GAAAO,GAAAP,EAAAQ,YAAA,IACA,IAAAD,EAAA,EACA,MAAAb,EAOA,IADAM,IAAAS,MAAA,EAAAF,GACAP,EAAAjB,MAAA,qBACA,MAAAW,KAGAY,EAIA,MAAAI,OAAAJ,EAAA,GAAAtG,KAAA,OAAA0F,EAAAiB,OAAAX,EAAAxG,OAAA,GASA,QAAAoH,GAAAC,GACA,MAAAA,GAYA,QAAAvH,GAAA4D,GACA,MAAA4D,GAAA5D,GACA,IAAAA,EAGAA,EAIA,QAAA6D,GAAA7D,GACA,MAAA4D,GAAA5D,GACAA,EAAAuD,MAAA,GAGAvD,EAIA,QAAA4D,GAAAD,GACA,IAAAA,EACA,QAGA,IAAArH,GAAAqH,EAAArH,MAEA,IAAAA,EAAA,EACA,QAGA,SAAAqH,EAAArD,WAAAhE,EAAA,IACA,KAAAqH,EAAArD,WAAAhE,EAAA,IACA,MAAAqH,EAAArD,WAAAhE,EAAA,IACA,MAAAqH,EAAArD,WAAAhE,EAAA,IACA,MAAAqH,EAAArD,WAAAhE,EAAA,IACA,MAAAqH,EAAArD,WAAAhE,EAAA,IACA,MAAAqH,EAAArD,WAAAhE,EAAA,IACA,KAAAqH,EAAArD,WAAAhE,EAAA,IACA,KAAAqH,EAAArD,WAAAhE,EAAA,GACA,QAGA,QAAA4B,GAAA5B,EAAA,GAA2B4B,GAAA,EAAQA,IACnC,QAAAyF,EAAArD,WAAApC,GACA,QAIA,UAWA,QAAA4F,GAAAC,EAAAC,EAAAC,GACA,GAAAC,GAAAH,EAAAhJ,OAAAiJ,EAAAjJ,MACA,YAAAmJ,EACAA,GAGAA,EAAAH,EAAA7I,aAAA8I,EAAA9I,aACA,IAAAgJ,EACAA,GAGAA,EAAAH,EAAA5I,eAAA6I,EAAA7I,eACA,IAAA+I,GAAAD,EACAC,GAGAA,EAAAH,EAAAjJ,gBAAAkJ,EAAAlJ,gBACA,IAAAoJ,EACAA,GAGAA,EAAAH,EAAAnJ,cAAAoJ,EAAApJ,cACA,IAAAsJ,EACAA,EAGAH,EAAA3I,KAAA4I,EAAA5I,SAaA,QAAA+I,GAAAJ,EAAAC,EAAAI,GACA,GAAAF,GAAAH,EAAAnJ,cAAAoJ,EAAApJ,aACA,YAAAsJ,EACAA,GAGAA,EAAAH,EAAAjJ,gBAAAkJ,EAAAlJ,gBACA,IAAAoJ,GAAAE,EACAF,GAGAA,EAAAH,EAAAhJ,OAAAiJ,EAAAjJ,OACA,IAAAmJ,EACAA,GAGAA,EAAAH,EAAA7I,aAAA8I,EAAA9I,aACA,IAAAgJ,EACAA,GAGAA,EAAAH,EAAA5I,eAAA6I,EAAA7I,eACA,IAAA+I,EACAA,EAGAH,EAAA3I,KAAA4I,EAAA5I,SAIA,QAAAiJ,GAAAC,EAAAC,GACA,MAAAD,KAAAC,EACA,EAGAD,EAAAC,EACA,GAGA,EAOA,QAAAnG,GAAA2F,EAAAC,GACA,GAAAE,GAAAH,EAAAnJ,cAAAoJ,EAAApJ,aACA,YAAAsJ,EACAA,GAGAA,EAAAH,EAAAjJ,gBAAAkJ,EAAAlJ,gBACA,IAAAoJ,EACAA,GAGAA,EAAAG,EAAAN,EAAAhJ,OAAAiJ,EAAAjJ,QACA,IAAAmJ,EACAA,GAGAA,EAAAH,EAAA7I,aAAA8I,EAAA9I,aACA,IAAAgJ,EACAA,GAGAA,EAAAH,EAAA5I,eAAA6I,EAAA7I,eACA,IAAA+I,EACAA,EAGAG,EAAAN,EAAA3I,KAAA4I,EAAA5I,UApYAnD,EAAAqB,QAEA,IAAAwI,GAAA,iEACAmB,EAAA,eAeAhL,GAAA0J,WAsBA1J,EAAAmK,cAwDAnK,EAAAsK,YA2DAtK,EAAA6E,OAEA7E,EAAAyK,WAAA,SAAAF,GACA,YAAAA,EAAAjC,OAAA,MAAAiC,EAAAX,MAAAC,IAyCA7J,EAAA+C,UAEA,IAAAwJ,GAAA,WACA,GAAAC,GAAAvI,OAAAC,OAAA,KACA,sBAAAsI,MAuBAxM,GAAAmE,YAAAoI,EAAAd,EAAAtH,EASAnE,EAAA4L,cAAAW,EAAAd,EAAAG,EAsEA5L,EAAA6L,6BAuCA7L,EAAAkM,sCA8CAlM,EAAAmG,uCN4sBM,SAAUlG,EAAQD,EAASM,GO3lCjC,QAAAmB,KACArB,KAAAqM,UACArM,KAAAsM,KAAAC,EAAA,GAAAC,KAAA3I,OAAAC,OAAA,MAZA,GAAA9C,GAAAd,EAAA,GACAuD,EAAAI,OAAAlC,UAAA4E,eACAgG,EAAA,mBAAAC,IAgBAnL,GAAAoL,UAAA,SAAAC,EAAAC,GAEA,OADAC,GAAA,GAAAvL,GACAwE,EAAA,EAAAC,EAAA4G,EAAAzI,OAAsC4B,EAAAC,EAASD,IAC/C+G,EAAAlJ,IAAAgJ,EAAA7G,GAAA8G,EAEA,OAAAC,IASAvL,EAAAM,UAAAkL,KAAA,WACA,MAAAN,GAAAvM,KAAAsM,KAAAO,KAAAhJ,OAAAiJ,oBAAA9M,KAAAsM,MAAArI,QAQA5C,EAAAM,UAAA+B,IAAA,SAAAiE,EAAAgF,GACA,GAAAI,GAAAR,EAAA5E,EAAA3G,EAAA+C,YAAA4D,GACAqF,EAAAT,EAAAvM,KAAAyD,IAAAkE,GAAAlE,EAAAlD,KAAAP,KAAAsM,KAAAS,GACAE,EAAAjN,KAAAqM,OAAApI,MACA+I,KAAAL,GACA3M,KAAAqM,OAAAa,KAAAvF,GAEAqF,IACAT,EACAvM,KAAAsM,KAAAM,IAAAjF,EAAAsF,GAEAjN,KAAAsM,KAAAS,GAAAE,IAUA5L,EAAAM,UAAA8B,IAAA,SAAAkE,GACA,GAAA4E,EACA,MAAAvM,MAAAsM,KAAA7I,IAAAkE,EAEA,IAAAoF,GAAA/L,EAAA+C,YAAA4D,EACA,OAAAlE,GAAAlD,KAAAP,KAAAsM,KAAAS,IASA1L,EAAAM,UAAAsE,QAAA,SAAA0B,GACA,GAAA4E,EAAA,CACA,GAAAU,GAAAjN,KAAAsM,KAAAa,IAAAxF,EACA,IAAAsF,GAAA,EACA,MAAAA,OAEG,CACH,GAAAF,GAAA/L,EAAA+C,YAAA4D,EACA,IAAAlE,EAAAlD,KAAAP,KAAAsM,KAAAS,GACA,MAAA/M,MAAAsM,KAAAS,GAIA,SAAA3I,OAAA,IAAAuD,EAAA,yBAQAtG,EAAAM,UAAAyL,GAAA,SAAAC,GACA,GAAAA,GAAA,GAAAA,EAAArN,KAAAqM,OAAApI,OACA,MAAAjE,MAAAqM,OAAAgB,EAEA,UAAAjJ,OAAA,yBAAAiJ,IAQAhM,EAAAM,UAAAiE,QAAA,WACA,MAAA5F,MAAAqM,OAAAnB,SAGAtL,EAAAyB,YPmnCM,SAAUxB,EAAQD,EAASM,GQ9tCjC,QAAAoN,GAAA5B,EAAAC,GAEA,GAAA4B,GAAA7B,EAAAnJ,cACAiL,EAAA7B,EAAApJ,cACAkL,EAAA/B,EAAAjJ,gBACAiL,EAAA/B,EAAAlJ,eACA,OAAA+K,GAAAD,GAAAC,GAAAD,GAAAG,GAAAD,GACAzM,EAAA+E,oCAAA2F,EAAAC,IAAA,EAQA,QAAAnK,KACAxB,KAAAqM,UACArM,KAAA2N,SAAA,EAEA3N,KAAA4N,OAAgBrL,eAAA,EAAAE,gBAAA,GAzBhB,GAAAzB,GAAAd,EAAA,EAkCAsB,GAAAG,UAAA4C,gBACA,SAAAsJ,EAAAC,GACA9N,KAAAqM,OAAAnJ,QAAA2K,EAAAC,IAQAtM,EAAAG,UAAA+B,IAAA,SAAAqK,GACAT,EAAAtN,KAAA4N,MAAAG,IACA/N,KAAA4N,MAAAG,EACA/N,KAAAqM,OAAAa,KAAAa,KAEA/N,KAAA2N,SAAA,EACA3N,KAAAqM,OAAAa,KAAAa,KAaAvM,EAAAG,UAAAiE,QAAA,WAKA,MAJA5F,MAAA2N,UACA3N,KAAAqM,OAAA2B,KAAAhN,EAAA+E,qCACA/F,KAAA2N,SAAA,GAEA3N,KAAAqM,QAGAzM,EAAA4B,eRkvCM,SAAU3B,EAAQD,EAASM,GSnzCjC,QAAAU,GAAAqN,GACA,GAAAC,GAAAD,CAKA,OAJA,gBAAAA,KACAC,EAAApJ,KAAAqJ,MAAAF,EAAAnD,QAAA,WAAsD,MAGtD,MAAAoD,EAAAE,SACA,GAAAC,GAAAH,GACA,GAAAI,GAAAJ,GAoQA,QAAAI,GAAAL,GACA,GAAAC,GAAAD,CACA,iBAAAA,KACAC,EAAApJ,KAAAqJ,MAAAF,EAAAnD,QAAA,WAAsD,KAGtD,IAAArE,GAAAzF,EAAAC,OAAAiN,EAAA,WACAjL,EAAAjC,EAAAC,OAAAiN,EAAA,WAGAxH,EAAA1F,EAAAC,OAAAiN,EAAA,YACAnM,EAAAf,EAAAC,OAAAiN,EAAA,mBACAvH,EAAA3F,EAAAC,OAAAiN,EAAA,uBACAvI,EAAA3E,EAAAC,OAAAiN,EAAA,YACAjM,EAAAjB,EAAAC,OAAAiN,EAAA,YAIA,IAAAzH,GAAAzG,KAAA4B,SACA,SAAAwC,OAAA,wBAAAqC,EAGAxD,KACAoD,IAAA7C,QAIA6C,IAAArF,EAAAkJ,WAKA7D,IAAA,SAAA3D,GACA,MAAAX,IAAAf,EAAAqJ,WAAAtI,IAAAf,EAAAqJ,WAAA3H,GACA1B,EAAA2B,SAAAZ,EAAAW,GACAA,IAOA1C,KAAAsB,OAAAD,EAAAoL,UAAA/F,EAAAL,IAAA7C,SAAA,GACAxD,KAAAoB,SAAAC,EAAAoL,UAAAxJ,GAAA,GAEAjD,KAAA+B,aACA/B,KAAA2G,iBACA3G,KAAAuB,UAAAoE,EACA3F,KAAAiC,OA8EA,QAAAsM,KACAvO,KAAAuC,cAAA,EACAvC,KAAAyC,gBAAA,EACAzC,KAAA0C,OAAA,KACA1C,KAAA6C,aAAA,KACA7C,KAAA8C,eAAA,KACA9C,KAAA+C,KAAA,KAyZA,QAAAsL,GAAAJ,GACA,GAAAC,GAAAD,CACA,iBAAAA,KACAC,EAAApJ,KAAAqJ,MAAAF,EAAAnD,QAAA,WAAsD,KAGtD,IAAArE,GAAAzF,EAAAC,OAAAiN,EAAA,WACAE,EAAApN,EAAAC,OAAAiN,EAAA,WAEA,IAAAzH,GAAAzG,KAAA4B,SACA,SAAAwC,OAAA,wBAAAqC,EAGAzG,MAAAoB,SAAA,GAAAC,GACArB,KAAAsB,OAAA,GAAAD,EAEA,IAAAmN,IACAlM,MAAA,EACAE,OAAA,EAEAxC,MAAAyO,UAAAL,EAAA/H,IAAA,SAAAiF,GACA,GAAAA,EAAArB,IAGA,SAAA7F,OAAA,qDAEA,IAAAsK,GAAA1N,EAAAC,OAAAqK,EAAA,UACAqD,EAAA3N,EAAAC,OAAAyN,EAAA,QACAE,EAAA5N,EAAAC,OAAAyN,EAAA,SAEA,IAAAC,EAAAH,EAAAlM,MACAqM,IAAAH,EAAAlM,MAAAsM,EAAAJ,EAAAhM,OACA,SAAA4B,OAAA,uDAIA,OAFAoK,GAAAE,GAGAG,iBAGAtM,cAAAoM,EAAA,EACAlM,gBAAAmM,EAAA,GAEAE,SAAA,GAAAlO,GAAAI,EAAAC,OAAAqK,EAAA,WA11BA,GAAAtK,GAAAd,EAAA,GACA6O,EAAA7O,EAAA,GACAmB,EAAAnB,EAAA,GAAAmB,SACAK,EAAAxB,EAAA,GACA8O,EAAA9O,EAAA,GAAA8O,SAaApO,GAAAiB,cAAA,SAAAoM,GACA,MAAAK,GAAAzM,cAAAoM,IAMArN,EAAAe,UAAAC,SAAA,EAgCAhB,EAAAe,UAAAsN,oBAAA,KACApL,OAAAqL,eAAAtO,EAAAe,UAAA,sBACAwL,IAAA,WAKA,MAJAnN,MAAAiP,qBACAjP,KAAAmP,eAAAnP,KAAAuB,UAAAvB,KAAA+B,YAGA/B,KAAAiP,uBAIArO,EAAAe,UAAAyN,mBAAA,KACAvL,OAAAqL,eAAAtO,EAAAe,UAAA,qBACAwL,IAAA,WAKA,MAJAnN,MAAAoP,oBACApP,KAAAmP,eAAAnP,KAAAuB,UAAAvB,KAAA+B,YAGA/B,KAAAoP,sBAIAxO,EAAAe,UAAA0N,wBACA,SAAA1H,EAAAqD,GACA,GAAAvK,GAAAkH,EAAAO,OAAA8C,EACA,aAAAvK,GAAmB,MAAAA,GAQnBG,EAAAe,UAAAwN,eACA,SAAAxH,EAAAvB,GACA,SAAAhC,OAAA,6CAGAxD,EAAA0O,gBAAA,EACA1O,EAAA2O,eAAA,EAEA3O,EAAA4O,qBAAA,EACA5O,EAAA6O,kBAAA,EAkBA7O,EAAAe,UAAAO,YACA,SAAA2L,EAAA6B,EAAAC,GACA,GAGAhK,GAHAiK,EAAAF,GAAA,KACAG,EAAAF,GAAA/O,EAAA0O,eAGA,QAAAO,GACA,IAAAjP,GAAA0O,gBACA3J,EAAA3F,KAAA8P,kBACA,MACA,KAAAlP,GAAA2O,eACA5J,EAAA3F,KAAA+P,iBACA,MACA,SACA,SAAA3L,OAAA,+BAGA,GAAArC,GAAA/B,KAAA+B,UACA4D,GAAAU,IAAA,SAAAlE,GACA,GAAAO,GAAA,OAAAP,EAAAO,OAAA,KAAA1C,KAAAoB,SAAAgM,GAAAjL,EAAAO,OAIA,OAHA,OAAAA,GAAA,MAAAX,IACAW,EAAA1B,EAAAyD,KAAA1C,EAAAW,KAGAA,SACAH,cAAAJ,EAAAI,cACAE,gBAAAN,EAAAM,gBACAI,aAAAV,EAAAU,aACAC,eAAAX,EAAAW,eACAC,KAAA,OAAAZ,EAAAY,KAAA,KAAA/C,KAAAsB,OAAA8L,GAAAjL,EAAAY,QAEK/C,MAAAkD,QAAA2K,EAAA+B,IAsBLhP,EAAAe,UAAAqO,yBACA,SAAAlP,GACA,GAAAwB,GAAAtB,EAAAC,OAAAH,EAAA,QAMAmP,GACAvN,OAAA1B,EAAAC,OAAAH,EAAA,UACA+B,aAAAP,EACAQ,eAAA9B,EAAAC,OAAAH,EAAA,YAMA,IAHA,MAAAd,KAAA+B,aACAkO,EAAAvN,OAAA1B,EAAA2B,SAAA3C,KAAA+B,WAAAkO,EAAAvN,UAEA1C,KAAAoB,SAAAqC,IAAAwM,EAAAvN,QACA,QAEAuN,GAAAvN,OAAA1C,KAAAoB,SAAA6E,QAAAgK,EAAAvN,OAEA,IAAAiD,MAEAqF,EAAAhL,KAAAkQ,aAAAD,EACAjQ,KAAA+P,kBACA,eACA,iBACA/O,EAAAyK,2BACAsD,EAAAU,kBACA,IAAAzE,GAAA,GACA,GAAA7I,GAAAnC,KAAA+P,kBAAA/E,EAEA,IAAAmF,SAAArP,EAAA0B,OAOA,IANA,GAAAK,GAAAV,EAAAU,aAMAV,KAAAU,kBACA8C,EAAAuH,MACA5K,KAAAtB,EAAAC,OAAAkB,EAAA,sBACAK,OAAAxB,EAAAC,OAAAkB,EAAA,wBACAiO,WAAApP,EAAAC,OAAAkB,EAAA,8BAGAA,EAAAnC,KAAA+P,oBAAA/E,OASA,KANA,GAAAlI,GAAAX,EAAAW,eAMAX,GACAA,EAAAU,eAAAP,GACAH,EAAAW,mBACA6C,EAAAuH,MACA5K,KAAAtB,EAAAC,OAAAkB,EAAA,sBACAK,OAAAxB,EAAAC,OAAAkB,EAAA,wBACAiO,WAAApP,EAAAC,OAAAkB,EAAA,8BAGAA,EAAAnC,KAAA+P,oBAAA/E,GAKA,MAAArF,IAGA/F,EAAAgB,oBAmFA0N,EAAA3M,UAAAkC,OAAAC,OAAAlD,EAAAe,WACA2M,EAAA3M,UAAAmN,SAAAlO,EASA0N,EAAAzM,cACA,SAAAoM,GACA,GAAAoC,GAAAxM,OAAAC,OAAAwK,EAAA3M,WAEA+E,EAAA2J,EAAA/O,OAAAD,EAAAoL,UAAAwB,EAAA3M,OAAAsE,WAAA,GACA3C,EAAAoN,EAAAjP,SAAAC,EAAAoL,UAAAwB,EAAA7M,SAAAwE,WAAA,EACAyK,GAAAtO,WAAAkM,EAAA/M,YACAmP,EAAA1J,eAAAsH,EAAA/H,wBAAAmK,EAAAjP,SAAAwE,UACAyK,EAAAtO,YACAsO,EAAApO,KAAAgM,EAAAlN,KAWA,QAJAuP,GAAArC,EAAA1M,UAAAqE,UAAAsF,QACAqF,EAAAF,EAAApB,uBACAuB,EAAAH,EAAAjB,sBAEAvJ,EAAA,EAAA5B,EAAAqM,EAAArM,OAAsD4B,EAAA5B,EAAY4B,IAAA,CAClE,GAAA4K,GAAAH,EAAAzK,GACA6K,EAAA,GAAAnC,EACAmC,GAAAnO,cAAAkO,EAAAlO,cACAmO,EAAAjO,gBAAAgO,EAAAhO,gBAEAgO,EAAA/N,SACAgO,EAAAhO,OAAAO,EAAAgD,QAAAwK,EAAA/N,QACAgO,EAAA7N,aAAA4N,EAAA5N,aACA6N,EAAA5N,eAAA2N,EAAA3N,eAEA2N,EAAA1N,OACA2N,EAAA3N,KAAA2D,EAAAT,QAAAwK,EAAA1N,OAGAyN,EAAAtD,KAAAwD,IAGAH,EAAArD,KAAAwD,GAKA,MAFA1B,GAAAqB,EAAAjB,mBAAApO,EAAAyK,4BAEA4E,GAMA/B,EAAA3M,UAAAC,SAAA,EAKAiC,OAAAqL,eAAAZ,EAAA3M,UAAA,WACAwL,IAAA,WACA,MAAAnN,MAAAoB,SAAAwE,UAAAS,IAAA,SAAAiF,GACA,aAAAtL,KAAA+B,WAAAf,EAAAyD,KAAAzE,KAAA+B,WAAAuJ,MACKtL,SAqBLsO,EAAA3M,UAAAwN,eACA,SAAAxH,EAAAvB,GAeA,IAdA,GAYAjE,GAAAwO,EAAAC,EAAAC,EAAA1I,EAZA5F,EAAA,EACA6C,EAAA,EACAG,EAAA,EACAD,EAAA,EACAG,EAAA,EACAD,EAAA,EACAvB,EAAA0D,EAAA1D,OACA+G,EAAA,EACA8F,KACAC,KACAC,KACAV,KAGAtF,EAAA/G,GACA,SAAA0D,EAAAO,OAAA8C,GACAzI,IACAyI,IACA5F,EAAA,MAEA,UAAAuC,EAAAO,OAAA8C,GACAA,QAEA,CASA,IARA7I,EAAA,GAAAoM,GACApM,EAAAI,gBAOAsO,EAAA7F,EAAyB6F,EAAA5M,IACzBjE,KAAAqP,wBAAA1H,EAAAkJ,GADuCA,KAQvC,GAHAF,EAAAhJ,EAAAuD,MAAAF,EAAA6F,GAEAD,EAAAE,EAAAH,GAEA3F,GAAA2F,EAAA1M,WACS,CAET,IADA2M,KACA5F,EAAA6F,GACAnP,EAAAgG,OAAAC,EAAAqD,EAAA+F,GACA5I,EAAA4I,EAAA5I,MACA6C,EAAA+F,EAAA3I,KACAwI,EAAA1D,KAAA/E,EAGA,QAAAyI,EAAA3M,OACA,SAAAG,OAAA,yCAGA,QAAAwM,EAAA3M,OACA,SAAAG,OAAA,yCAGA0M,GAAAH,GAAAC,EAIAzO,EAAAM,gBAAA2C,EAAAwL,EAAA,GACAxL,EAAAjD,EAAAM,gBAEAmO,EAAA3M,OAAA,IAEA9B,EAAAO,OAAA+C,EAAAmL,EAAA,GACAnL,GAAAmL,EAAA,GAGAzO,EAAAU,aAAA0C,EAAAqL,EAAA,GACArL,EAAApD,EAAAU,aAEAV,EAAAU,cAAA,EAGAV,EAAAW,eAAAwC,EAAAsL,EAAA,GACAtL,EAAAnD,EAAAW,eAEA8N,EAAA3M,OAAA,IAEA9B,EAAAY,KAAAyC,EAAAoL,EAAA,GACApL,GAAAoL,EAAA,KAIAN,EAAApD,KAAA/K,GACA,gBAAAA,GAAAU,cACAmO,EAAA9D,KAAA/K,GAKA6M,EAAAsB,EAAAtP,EAAA8K,qCACA9L,KAAAiP,oBAAAqB,EAEAtB,EAAAgC,EAAAhQ,EAAAyK,4BACAzL,KAAAoP,mBAAA4B,GAOA1C,EAAA3M,UAAAuO,aACA,SAAAe,EAAAC,EAAAC,EACAC,EAAAC,EAAAC,GAMA,GAAAL,EAAAE,IAAA,EACA,SAAA3I,WAAA,gDACAyI,EAAAE,GAEA,IAAAF,EAAAG,GAAA,EACA,SAAA5I,WAAA,kDACAyI,EAAAG,GAGA,OAAArC,GAAAwC,OAAAN,EAAAC,EAAAG,EAAAC,IAOAhD,EAAA3M,UAAA6P,mBACA,WACA,OAAAxG,GAAA,EAAuBA,EAAAhL,KAAA8P,mBAAA7L,SAAwC+G,EAAA,CAC/D,GAAA7I,GAAAnC,KAAA8P,mBAAA9E,EAMA,IAAAA,EAAA,EAAAhL,KAAA8P,mBAAA7L,OAAA,CACA,GAAAwN,GAAAzR,KAAA8P,mBAAA9E,EAAA,EAEA,IAAA7I,EAAAI,gBAAAkP,EAAAlP,cAAA,CACAJ,EAAAuP,oBAAAD,EAAAhP,gBAAA,CACA,WAKAN,EAAAuP,oBAAAC,MAwBArD,EAAA3M,UAAA6C,oBACA,SAAA1D,GACA,GAAAmP,IACA1N,cAAAvB,EAAAC,OAAAH,EAAA,QACA2B,gBAAAzB,EAAAC,OAAAH,EAAA,WAGAkK,EAAAhL,KAAAkQ,aACAD,EACAjQ,KAAA8P,mBACA,gBACA,kBACA9O,EAAA8K,oCACA9K,EAAAC,OAAAH,EAAA,OAAAF,EAAA4O,sBAGA,IAAAxE,GAAA,GACA,GAAA7I,GAAAnC,KAAA8P,mBAAA9E,EAEA,IAAA7I,EAAAI,gBAAA0N,EAAA1N,cAAA,CACA,GAAAG,GAAA1B,EAAAC,OAAAkB,EAAA,cACA,QAAAO,IACAA,EAAA1C,KAAAoB,SAAAgM,GAAA1K,GACA,MAAA1C,KAAA+B,aACAW,EAAA1B,EAAAyD,KAAAzE,KAAA+B,WAAAW,IAGA,IAAAK,GAAA/B,EAAAC,OAAAkB,EAAA,YAIA,OAHA,QAAAY,IACAA,EAAA/C,KAAAsB,OAAA8L,GAAArK,KAGAL,SACAJ,KAAAtB,EAAAC,OAAAkB,EAAA,qBACAK,OAAAxB,EAAAC,OAAAkB,EAAA,uBACAY,SAKA,OACAL,OAAA,KACAJ,KAAA,KACAE,OAAA,KACAO,KAAA,OAQAuL,EAAA3M,UAAAiQ,wBACA,WACA,QAAA5R,KAAA2G,iBAGA3G,KAAA2G,eAAA1C,QAAAjE,KAAAoB,SAAAyL,SACA7M,KAAA2G,eAAAkL,KAAA,SAAAC,GAA+C,aAAAA,MAQ/CxD,EAAA3M,UAAA0B,iBACA,SAAAuB,EAAAmN,GACA,IAAA/R,KAAA2G,eACA,WAOA,IAJA,MAAA3G,KAAA+B,aACA6C,EAAA5D,EAAA2B,SAAA3C,KAAA+B,WAAA6C,IAGA5E,KAAAoB,SAAAqC,IAAAmB,GACA,MAAA5E,MAAA2G,eAAA3G,KAAAoB,SAAA6E,QAAArB,GAGA,IAAAqF,EACA,UAAAjK,KAAA+B,aACAkI,EAAAjJ,EAAAsI,SAAAtJ,KAAA+B,aAAA,CAKA,GAAAiQ,GAAApN,EAAAkG,QAAA,gBACA,YAAAb,EAAAP,QACA1J,KAAAoB,SAAAqC,IAAAuO,GACA,MAAAhS,MAAA2G,eAAA3G,KAAAoB,SAAA6E,QAAA+L,GAGA,MAAA/H,EAAAH,MAAA,KAAAG,EAAAH,OACA9J,KAAAoB,SAAAqC,IAAA,IAAAmB,GACA,MAAA5E,MAAA2G,eAAA3G,KAAAoB,SAAA6E,QAAA,IAAArB,IAQA,GAAAmN,EACA,WAGA,UAAA3N,OAAA,IAAAQ,EAAA,+BAuBA0J,EAAA3M,UAAAsQ,qBACA,SAAAnR,GACA,GAAA4B,GAAA1B,EAAAC,OAAAH,EAAA,SAIA,IAHA,MAAAd,KAAA+B,aACAW,EAAA1B,EAAA2B,SAAA3C,KAAA+B,WAAAW,KAEA1C,KAAAoB,SAAAqC,IAAAf,GACA,OACAJ,KAAA,KACAE,OAAA,KACA4N,WAAA,KAGA1N,GAAA1C,KAAAoB,SAAA6E,QAAAvD,EAEA,IAAAuN,IACAvN,SACAG,aAAA7B,EAAAC,OAAAH,EAAA,QACAgC,eAAA9B,EAAAC,OAAAH,EAAA,WAGAkK,EAAAhL,KAAAkQ,aACAD,EACAjQ,KAAA+P,kBACA,eACA,iBACA/O,EAAAyK,2BACAzK,EAAAC,OAAAH,EAAA,OAAAF,EAAA4O,sBAGA,IAAAxE,GAAA,GACA,GAAA7I,GAAAnC,KAAA+P,kBAAA/E,EAEA,IAAA7I,EAAAO,SAAAuN,EAAAvN,OACA,OACAJ,KAAAtB,EAAAC,OAAAkB,EAAA,sBACAK,OAAAxB,EAAAC,OAAAkB,EAAA,wBACAiO,WAAApP,EAAAC,OAAAkB,EAAA,6BAKA,OACAG,KAAA,KACAE,OAAA,KACA4N,WAAA,OAIAxQ,EAAA0O,yBA+FAD,EAAA1M,UAAAkC,OAAAC,OAAAlD,EAAAe,WACA0M,EAAA1M,UAAAuQ,YAAAtR,EAKAyN,EAAA1M,UAAAC,SAAA,EAKAiC,OAAAqL,eAAAb,EAAA1M,UAAA,WACAwL,IAAA,WAEA,OADAlK,MACA4C,EAAA,EAAmBA,EAAA7F,KAAAyO,UAAAxK,OAA2B4B,IAC9C,OAAAsM,GAAA,EAAqBA,EAAAnS,KAAAyO,UAAA5I,GAAAiJ,SAAA7L,QAAAgB,OAA+CkO,IACpElP,EAAAiK,KAAAlN,KAAAyO,UAAA5I,GAAAiJ,SAAA7L,QAAAkP,GAGA,OAAAlP,MAmBAoL,EAAA1M,UAAA6C,oBACA,SAAA1D,GACA,GAAAmP,IACA1N,cAAAvB,EAAAC,OAAAH,EAAA,QACA2B,gBAAAzB,EAAAC,OAAAH,EAAA,WAKAsR,EAAArD,EAAAwC,OAAAtB,EAAAjQ,KAAAyO,UACA,SAAAwB,EAAAoC,GACA,GAAAxG,GAAAoE,EAAA1N,cAAA8P,EAAAxD,gBAAAtM,aACA,OAAAsJ,GACAA,EAGAoE,EAAAxN,gBACA4P,EAAAxD,gBAAApM,kBAEA4P,EAAArS,KAAAyO,UAAA2D,EAEA,OAAAC,GASAA,EAAAvD,SAAAtK,qBACAlC,KAAA2N,EAAA1N,eACA8P,EAAAxD,gBAAAtM,cAAA,GACAC,OAAAyN,EAAAxN,iBACA4P,EAAAxD,gBAAAtM,gBAAA0N,EAAA1N,cACA8P,EAAAxD,gBAAApM,gBAAA,EACA,GACA6P,KAAAxR,EAAAwR,QAdA5P,OAAA,KACAJ,KAAA,KACAE,OAAA,KACAO,KAAA,OAmBAsL,EAAA1M,UAAAiQ,wBACA,WACA,MAAA5R,MAAAyO,UAAA8D,MAAA,SAAAjH,GACA,MAAAA,GAAAwD,SAAA8C,6BASAvD,EAAA1M,UAAA0B,iBACA,SAAAuB,EAAAmN,GACA,OAAAlM,GAAA,EAAmBA,EAAA7F,KAAAyO,UAAAxK,OAA2B4B,IAAA,CAC9C,GAAAwM,GAAArS,KAAAyO,UAAA5I,GAEAzC,EAAAiP,EAAAvD,SAAAzL,iBAAAuB,GAAA,EACA,IAAAxB,EACA,MAAAA,GAGA,GAAA2O,EACA,WAGA,UAAA3N,OAAA,IAAAQ,EAAA,+BAkBAyJ,EAAA1M,UAAAsQ,qBACA,SAAAnR,GACA,OAAA+E,GAAA,EAAmBA,EAAA7F,KAAAyO,UAAAxK,OAA2B4B,IAAA,CAC9C,GAAAwM,GAAArS,KAAAyO,UAAA5I,EAIA,IAAAwM,EAAAvD,SAAA7L,QAAAgD,QAAAjF,EAAAC,OAAAH,EAAA,iBAGA,GAAA0R,GAAAH,EAAAvD,SAAAmD,qBAAAnR,EACA,IAAA0R,EAAA,CACA,GAAAC,IACAnQ,KAAAkQ,EAAAlQ,MACA+P,EAAAxD,gBAAAtM,cAAA,GACAC,OAAAgQ,EAAAhQ,QACA6P,EAAAxD,gBAAAtM,gBAAAiQ,EAAAlQ,KACA+P,EAAAxD,gBAAApM,gBAAA,EACA,GAEA,OAAAgQ,KAIA,OACAnQ,KAAA,KACAE,OAAA,OASA6L,EAAA1M,UAAAwN,eACA,SAAAxH,EAAAvB,GACApG,KAAAiP,uBACAjP,KAAAoP,qBACA,QAAAvJ,GAAA,EAAmBA,EAAA7F,KAAAyO,UAAAxK,OAA2B4B,IAG9C,OAFAwM,GAAArS,KAAAyO,UAAA5I,GACA6M,EAAAL,EAAAvD,SAAAgB,mBACAqC,EAAA,EAAqBA,EAAAO,EAAAzO,OAA4BkO,IAAA,CACjD,GAAAhQ,GAAAuQ,EAAAP,GAEAzP,EAAA2P,EAAAvD,SAAA1N,SAAAgM,GAAAjL,EAAAO,OACA,QAAA2P,EAAAvD,SAAA/M,aACAW,EAAA1B,EAAAyD,KAAA4N,EAAAvD,SAAA/M,WAAAW,IAEA1C,KAAAoB,SAAAsC,IAAAhB,GACAA,EAAA1C,KAAAoB,SAAA6E,QAAAvD,EAEA,IAAAK,GAAAsP,EAAAvD,SAAAxN,OAAA8L,GAAAjL,EAAAY,KACA/C,MAAAsB,OAAAoC,IAAAX,GACAA,EAAA/C,KAAAsB,OAAA2E,QAAAlD,EAMA,IAAA4P,IACAjQ,SACAH,cAAAJ,EAAAI,eACA8P,EAAAxD,gBAAAtM,cAAA,GACAE,gBAAAN,EAAAM,iBACA4P,EAAAxD,gBAAAtM,gBAAAJ,EAAAI,cACA8P,EAAAxD,gBAAApM,gBAAA,EACA,GACAI,aAAAV,EAAAU,aACAC,eAAAX,EAAAW,eACAC,OAGA/C,MAAAiP,oBAAA/B,KAAAyF,GACA,gBAAAA,GAAA9P,cACA7C,KAAAoP,mBAAAlC,KAAAyF,GAKA3D,EAAAhP,KAAAiP,oBAAAjO,EAAA8K,qCACAkD,EAAAhP,KAAAoP,mBAAApO,EAAAyK,6BAGA7L,EAAAyO,4BTu0CM,SAAUxO,EAAQD,GUz2ExB,QAAAgT,GAAAC,EAAAC,EAAA7B,EAAA8B,EAAAC,EAAA1B,GAUA,GAAA2B,GAAAC,KAAAC,OAAAL,EAAAD,GAAA,GAAAA,EACAhH,EAAAmH,EAAA/B,EAAA8B,EAAAE,IAAA,EACA,YAAApH,EAEAoH,EAEApH,EAAA,EAEAiH,EAAAG,EAAA,EAEAL,EAAAK,EAAAH,EAAA7B,EAAA8B,EAAAC,EAAA1B,GAKAA,GAAA1R,EAAA6P,kBACAqD,EAAAC,EAAA9O,OAAA6O,GAAA,EAEAG,EAKAA,EAAAJ,EAAA,EAEAD,EAAAC,EAAAI,EAAAhC,EAAA8B,EAAAC,EAAA1B,GAIAA,GAAA1R,EAAA6P,kBACAwD,EAEAJ,EAAA,KAAAA,EA1DAjT,EAAA4P,qBAAA,EACA5P,EAAA6P,kBAAA,EAgFA7P,EAAA2R,OAAA,SAAAN,EAAA8B,EAAAC,EAAA1B,GACA,OAAAyB,EAAA9O,OACA,QAGA,IAAA+G,GAAA4H,GAAA,EAAAG,EAAA9O,OAAAgN,EAAA8B,EACAC,EAAA1B,GAAA1R,EAAA4P,qBACA,IAAAxE,EAAA,EACA,QAMA,MAAAA,EAAA,MACA,IAAAgI,EAAAD,EAAA/H,GAAA+H,EAAA/H,EAAA,UAGAA,CAGA,OAAAA,KVw4EM,SAAUnL,EAAQD,GW19ExB,QAAAwT,GAAAC,EAAAC,EAAAC,GACA,GAAAxC,GAAAsC,EAAAC,EACAD,GAAAC,GAAAD,EAAAE,GACAF,EAAAE,GAAAxC,EAWA,QAAAyC,GAAAC,EAAAC,GACA,MAAAR,MAAAS,MAAAF,EAAAP,KAAAU,UAAAF,EAAAD,IAeA,QAAAI,GAAAR,EAAAS,EAAApT,EAAAqT,GAKA,GAAArT,EAAAqT,EAAA,CAYA,GAAAC,GAAAR,EAAA9S,EAAAqT,GACAlO,EAAAnF,EAAA,CAEA0S,GAAAC,EAAAW,EAAAD,EASA,QARAE,GAAAZ,EAAAU,GAQA5B,EAAAzR,EAAmByR,EAAA4B,EAAO5B,IAC1B2B,EAAAT,EAAAlB,GAAA8B,IAAA,IACApO,GAAA,EACAuN,EAAAC,EAAAxN,EAAAsM,GAIAiB,GAAAC,EAAAxN,EAAA,EAAAsM,EACA,IAAA+B,GAAArO,EAAA,CAIAgO,GAAAR,EAAAS,EAAApT,EAAAwT,EAAA,GACAL,EAAAR,EAAAS,EAAAI,EAAA,EAAAH,IAYAnU,EAAAoP,UAAA,SAAAqE,EAAAS,GACAD,EAAAR,EAAAS,EAAA,EAAAT,EAAApP,OAAA,KX6/EM,SAAUpE,EAAQD,EAASM,GY3kFjC,QAAAW,GAAAsT,EAAAC,EAAAxP,EAAAyP,EAAAxP,GACA7E,KAAAsU,YACAtU,KAAAuU,kBACAvU,KAAAsC,KAAA,MAAA6R,EAAA,KAAAA,EACAnU,KAAAwC,OAAA,MAAA4R,EAAA,KAAAA,EACApU,KAAA0C,OAAA,MAAAkC,EAAA,KAAAA,EACA5E,KAAA+C,KAAA,MAAA8B,EAAA,KAAAA,EACA7E,KAAAwU,IAAA,EACA,MAAAH,GAAArU,KAAA0D,IAAA2Q,GAnCA,GAAA1T,GAAAT,EAAA,GAAAS,mBACAK,EAAAd,EAAA,GAIAuU,EAAA,UAGAC,EAAA,GAKAF,EAAA,oBAiCA3T,GAAA8T,wBACA,SAAAC,EAAA9S,EAAA+S,GA+FA,QAAAC,GAAA3S,EAAA4S,GACA,UAAA5S,GAAAgO,SAAAhO,EAAAO,OACAsS,EAAAtR,IAAAqR,OACO,CACP,GAAArS,GAAAmS,EACA7T,EAAAyD,KAAAoQ,EAAA1S,EAAAO,QACAP,EAAAO,MACAsS,GAAAtR,IAAA,GAAA7C,GAAAsB,EAAAU,aACAV,EAAAW,eACAJ,EACAqS,EACA5S,EAAAY,QAvGA,GAAAiS,GAAA,GAAAnU,GAMAoU,EAAAL,EAAAtM,MAAAmM,GACAS,EAAA,EACAC,EAAA,WAMA,QAAAC,KACA,MAAAF,GAAAD,EAAAhR,OACAgR,EAAAC,KAAA/E,OAPA,GAAAkF,GAAAD,IAEAE,EAAAF,KAAA,EACA,OAAAC,GAAAC,GASAC,EAAA,EAAA7D,EAAA,EAKA8D,EAAA,IAgEA,OA9DA1T,GAAAI,YAAA,SAAAC,GACA,UAAAqT,EAAA,CAGA,KAAAD,EAAApT,EAAAI,eAMS,CAIT,GAAAkT,GAAAR,EAAAC,GACAH,EAAAU,EAAArK,OAAA,EAAAjJ,EAAAM,gBACAiP,EAOA,OANAuD,GAAAC,GAAAO,EAAArK,OAAAjJ,EAAAM,gBACAiP,GACAA,EAAAvP,EAAAM,gBACAqS,EAAAU,EAAAT,QAEAS,EAAArT,GAhBA2S,EAAAU,EAAAL,KACAI,IACA7D,EAAA,EAqBA,KAAA6D,EAAApT,EAAAI,eACAyS,EAAAtR,IAAAyR,KACAI,GAEA,IAAA7D,EAAAvP,EAAAM,gBAAA,CACA,GAAAgT,GAAAR,EAAAC,EACAF,GAAAtR,IAAA+R,EAAArK,OAAA,EAAAjJ,EAAAM,kBACAwS,EAAAC,GAAAO,EAAArK,OAAAjJ,EAAAM,iBACAiP,EAAAvP,EAAAM,gBAEA+S,EAAArT,GACKnC,MAELkV,EAAAD,EAAAhR,SACAuR,GAEAV,EAAAU,EAAAL,KAGAH,EAAAtR,IAAAuR,EAAAzK,OAAA0K,GAAAzQ,KAAA,MAIA3C,EAAAmB,QAAAC,QAAA,SAAAC,GACA,GAAAC,GAAAtB,EAAAuB,iBAAAF,EACA,OAAAC,IACA,MAAAyR,IACA1R,EAAAnC,EAAAyD,KAAAoQ,EAAA1R,IAEA6R,EAAA1R,iBAAAH,EAAAC,MAIA4R,GAwBAnU,EAAAc,UAAA+B,IAAA,SAAAgS,GACA,GAAAvK,MAAAwK,QAAAD,GACAA,EAAAxS,QAAA,SAAA0S,GACA5V,KAAA0D,IAAAkS,IACK5V,UAEL,KAAA0V,EAAAlB,IAAA,gBAAAkB,GAMA,SAAAlN,WACA,8EAAAkN,EANAA,IACA1V,KAAAsU,SAAApH,KAAAwI,GAQA,MAAA1V,OASAa,EAAAc,UAAAkU,QAAA,SAAAH,GACA,GAAAvK,MAAAwK,QAAAD,GACA,OAAA7P,GAAA6P,EAAAzR,OAAA,EAAiC4B,GAAA,EAAQA,IACzC7F,KAAA6V,QAAAH,EAAA7P,QAGA,KAAA6P,EAAAlB,IAAA,gBAAAkB,GAIA,SAAAlN,WACA,8EAAAkN,EAJA1V,MAAAsU,SAAAwB,QAAAJ,GAOA,MAAA1V,OAUAa,EAAAc,UAAAoU,KAAA,SAAAC,GAEA,OADAJ,GACA/P,EAAA,EAAAC,EAAA9F,KAAAsU,SAAArQ,OAA6C4B,EAAAC,EAASD,IACtD+P,EAAA5V,KAAAsU,SAAAzO,GACA+P,EAAApB,GACAoB,EAAAG,KAAAC,GAGA,KAAAJ,GACAI,EAAAJ,GAAoBlT,OAAA1C,KAAA0C,OACpBJ,KAAAtC,KAAAsC,KACAE,OAAAxC,KAAAwC,OACAO,KAAA/C,KAAA+C,QAYAlC,EAAAc,UAAA8C,KAAA,SAAAwR,GACA,GAAAC,GACArQ,EACAC,EAAA9F,KAAAsU,SAAArQ,MACA,IAAA6B,EAAA,GAEA,IADAoQ,KACArQ,EAAA,EAAeA,EAAAC,EAAA,EAAWD,IAC1BqQ,EAAAhJ,KAAAlN,KAAAsU,SAAAzO,IACAqQ,EAAAhJ,KAAA+I,EAEAC,GAAAhJ,KAAAlN,KAAAsU,SAAAzO,IACA7F,KAAAsU,SAAA4B,EAEA,MAAAlW,OAUAa,EAAAc,UAAAwU,aAAA,SAAAC,EAAAC,GACA,GAAAC,GAAAtW,KAAAsU,SAAAtU,KAAAsU,SAAArQ,OAAA,EAUA,OATAqS,GAAA9B,GACA8B,EAAAH,aAAAC,EAAAC,GAEA,gBAAAC,GACAtW,KAAAsU,SAAAtU,KAAAsU,SAAArQ,OAAA,GAAAqS,EAAAxL,QAAAsL,EAAAC,GAGArW,KAAAsU,SAAApH,KAAA,GAAApC,QAAAsL,EAAAC,IAEArW,MAUAa,EAAAc,UAAA2B,iBACA,SAAAK,EAAAC,GACA5D,KAAAuU,eAAAvT,EAAA+C,YAAAJ,IAAAC,GASA/C,EAAAc,UAAA4U,mBACA,SAAAP,GACA,OAAAnQ,GAAA,EAAAC,EAAA9F,KAAAsU,SAAArQ,OAA+C4B,EAAAC,EAASD,IACxD7F,KAAAsU,SAAAzO,GAAA2O,IACAxU,KAAAsU,SAAAzO,GAAA0Q,mBAAAP,EAKA,QADA/S,GAAAY,OAAAG,KAAAhE,KAAAuU,gBACA1O,EAAA,EAAAC,EAAA7C,EAAAgB,OAAyC4B,EAAAC,EAASD,IAClDmQ,EAAAhV,EAAAwK,cAAAvI,EAAA4C,IAAA7F,KAAAuU,eAAAtR,EAAA4C,MAQAhF,EAAAc,UAAAiF,SAAA,WACA,GAAA+J,GAAA,EAIA,OAHA3Q,MAAA+V,KAAA,SAAAH,GACAjF,GAAAiF,IAEAjF,GAOA9P,EAAAc,UAAA6U,sBAAA,SAAA1V,GACA,GAAAuB,IACA0S,KAAA,GACAzS,KAAA,EACAE,OAAA,GAEA6D,EAAA,GAAA1F,GAAAG,GACA2V,GAAA,EACAC,EAAA,KACAC,EAAA,KACAC,EAAA,KACAC,EAAA,IAqEA,OApEA7W,MAAA+V,KAAA,SAAAH,EAAAhT,GACAP,EAAA0S,MAAAa,EACA,OAAAhT,EAAAF,QACA,OAAAE,EAAAN,MACA,OAAAM,EAAAJ,QACAkU,IAAA9T,EAAAF,QACAiU,IAAA/T,EAAAN,MACAsU,IAAAhU,EAAAJ,QACAqU,IAAAjU,EAAAG,MACAsD,EAAArD,YACAN,OAAAE,EAAAF,OACAE,UACAN,KAAAM,EAAAN,KACAE,OAAAI,EAAAJ,QAEAH,WACAC,KAAAD,EAAAC,KACAE,OAAAH,EAAAG,QAEAO,KAAAH,EAAAG,OAGA2T,EAAA9T,EAAAF,OACAiU,EAAA/T,EAAAN,KACAsU,EAAAhU,EAAAJ,OACAqU,EAAAjU,EAAAG,KACA0T,GAAA,GACKA,IACLpQ,EAAArD,YACAX,WACAC,KAAAD,EAAAC,KACAE,OAAAH,EAAAG,UAGAkU,EAAA,KACAD,GAAA,EAEA,QAAAxJ,GAAA,EAAAhJ,EAAA2R,EAAA3R,OAA4CgJ,EAAAhJ,EAAcgJ,IAC1D2I,EAAA3N,WAAAgF,KAAAyH,GACArS,EAAAC,OACAD,EAAAG,OAAA,EAEAyK,EAAA,IAAAhJ,GACAyS,EAAA,KACAD,GAAA,GACSA,GACTpQ,EAAArD,YACAN,OAAAE,EAAAF,OACAE,UACAN,KAAAM,EAAAN,KACAE,OAAAI,EAAAJ,QAEAH,WACAC,KAAAD,EAAAC,KACAE,OAAAH,EAAAG,QAEAO,KAAAH,EAAAG,QAIAV,EAAAG,WAIAxC,KAAAuW,mBAAA,SAAApT,EAAA2T,GACAzQ,EAAA/C,iBAAAH,EAAA2T,MAGU/B,KAAA1S,EAAA0S,KAAA1O,QAGVzG,EAAAiB","file":"source-map.min.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"sourceMap\"] = factory();\n\telse\n\t\troot[\"sourceMap\"] = factory();\n})(this, function() {\nreturn \n\n\n// WEBPACK FOOTER //\n// webpack/universalModuleDefinition","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"sourceMap\"] = factory();\n\telse\n\t\troot[\"sourceMap\"] = factory();\n})(this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/*\n\t * Copyright 2009-2011 Mozilla Foundation and contributors\n\t * Licensed under the New BSD license. See LICENSE.txt or:\n\t * http://opensource.org/licenses/BSD-3-Clause\n\t */\n\texports.SourceMapGenerator = __webpack_require__(1).SourceMapGenerator;\n\texports.SourceMapConsumer = __webpack_require__(7).SourceMapConsumer;\n\texports.SourceNode = __webpack_require__(10).SourceNode;\n\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/* -*- Mode: js; js-indent-level: 2; -*- */\n\t/*\n\t * Copyright 2011 Mozilla Foundation and contributors\n\t * Licensed under the New BSD license. See LICENSE or:\n\t * http://opensource.org/licenses/BSD-3-Clause\n\t */\n\t\n\tvar base64VLQ = __webpack_require__(2);\n\tvar util = __webpack_require__(4);\n\tvar ArraySet = __webpack_require__(5).ArraySet;\n\tvar MappingList = __webpack_require__(6).MappingList;\n\t\n\t/**\n\t * An instance of the SourceMapGenerator represents a source map which is\n\t * being built incrementally. You may pass an object with the following\n\t * properties:\n\t *\n\t *   - file: The filename of the generated source.\n\t *   - sourceRoot: A root for all relative URLs in this source map.\n\t */\n\tfunction SourceMapGenerator(aArgs) {\n\t  if (!aArgs) {\n\t    aArgs = {};\n\t  }\n\t  this._file = util.getArg(aArgs, 'file', null);\n\t  this._sourceRoot = util.getArg(aArgs, 'sourceRoot', null);\n\t  this._skipValidation = util.getArg(aArgs, 'skipValidation', false);\n\t  this._sources = new ArraySet();\n\t  this._names = new ArraySet();\n\t  this._mappings = new MappingList();\n\t  this._sourcesContents = null;\n\t}\n\t\n\tSourceMapGenerator.prototype._version = 3;\n\t\n\t/**\n\t * Creates a new SourceMapGenerator based on a SourceMapConsumer\n\t *\n\t * @param aSourceMapConsumer The SourceMap.\n\t */\n\tSourceMapGenerator.fromSourceMap =\n\t  function SourceMapGenerator_fromSourceMap(aSourceMapConsumer) {\n\t    var sourceRoot = aSourceMapConsumer.sourceRoot;\n\t    var generator = new SourceMapGenerator({\n\t      file: aSourceMapConsumer.file,\n\t      sourceRoot: sourceRoot\n\t    });\n\t    aSourceMapConsumer.eachMapping(function (mapping) {\n\t      var newMapping = {\n\t        generated: {\n\t          line: mapping.generatedLine,\n\t          column: mapping.generatedColumn\n\t        }\n\t      };\n\t\n\t      if (mapping.source != null) {\n\t        newMapping.source = mapping.source;\n\t        if (sourceRoot != null) {\n\t          newMapping.source = util.relative(sourceRoot, newMapping.source);\n\t        }\n\t\n\t        newMapping.original = {\n\t          line: mapping.originalLine,\n\t          column: mapping.originalColumn\n\t        };\n\t\n\t        if (mapping.name != null) {\n\t          newMapping.name = mapping.name;\n\t        }\n\t      }\n\t\n\t      generator.addMapping(newMapping);\n\t    });\n\t    aSourceMapConsumer.sources.forEach(function (sourceFile) {\n\t      var content = aSourceMapConsumer.sourceContentFor(sourceFile);\n\t      if (content != null) {\n\t        generator.setSourceContent(sourceFile, content);\n\t      }\n\t    });\n\t    return generator;\n\t  };\n\t\n\t/**\n\t * Add a single mapping from original source line and column to the generated\n\t * source's line and column for this source map being created. The mapping\n\t * object should have the following properties:\n\t *\n\t *   - generated: An object with the generated line and column positions.\n\t *   - original: An object with the original line and column positions.\n\t *   - source: The original source file (relative to the sourceRoot).\n\t *   - name: An optional original token name for this mapping.\n\t */\n\tSourceMapGenerator.prototype.addMapping =\n\t  function SourceMapGenerator_addMapping(aArgs) {\n\t    var generated = util.getArg(aArgs, 'generated');\n\t    var original = util.getArg(aArgs, 'original', null);\n\t    var source = util.getArg(aArgs, 'source', null);\n\t    var name = util.getArg(aArgs, 'name', null);\n\t\n\t    if (!this._skipValidation) {\n\t      this._validateMapping(generated, original, source, name);\n\t    }\n\t\n\t    if (source != null) {\n\t      source = String(source);\n\t      if (!this._sources.has(source)) {\n\t        this._sources.add(source);\n\t      }\n\t    }\n\t\n\t    if (name != null) {\n\t      name = String(name);\n\t      if (!this._names.has(name)) {\n\t        this._names.add(name);\n\t      }\n\t    }\n\t\n\t    this._mappings.add({\n\t      generatedLine: generated.line,\n\t      generatedColumn: generated.column,\n\t      originalLine: original != null && original.line,\n\t      originalColumn: original != null && original.column,\n\t      source: source,\n\t      name: name\n\t    });\n\t  };\n\t\n\t/**\n\t * Set the source content for a source file.\n\t */\n\tSourceMapGenerator.prototype.setSourceContent =\n\t  function SourceMapGenerator_setSourceContent(aSourceFile, aSourceContent) {\n\t    var source = aSourceFile;\n\t    if (this._sourceRoot != null) {\n\t      source = util.relative(this._sourceRoot, source);\n\t    }\n\t\n\t    if (aSourceContent != null) {\n\t      // Add the source content to the _sourcesContents map.\n\t      // Create a new _sourcesContents map if the property is null.\n\t      if (!this._sourcesContents) {\n\t        this._sourcesContents = Object.create(null);\n\t      }\n\t      this._sourcesContents[util.toSetString(source)] = aSourceContent;\n\t    } else if (this._sourcesContents) {\n\t      // Remove the source file from the _sourcesContents map.\n\t      // If the _sourcesContents map is empty, set the property to null.\n\t      delete this._sourcesContents[util.toSetString(source)];\n\t      if (Object.keys(this._sourcesContents).length === 0) {\n\t        this._sourcesContents = null;\n\t      }\n\t    }\n\t  };\n\t\n\t/**\n\t * Applies the mappings of a sub-source-map for a specific source file to the\n\t * source map being generated. Each mapping to the supplied source file is\n\t * rewritten using the supplied source map. Note: The resolution for the\n\t * resulting mappings is the minimium of this map and the supplied map.\n\t *\n\t * @param aSourceMapConsumer The source map to be applied.\n\t * @param aSourceFile Optional. The filename of the source file.\n\t *        If omitted, SourceMapConsumer's file property will be used.\n\t * @param aSourceMapPath Optional. The dirname of the path to the source map\n\t *        to be applied. If relative, it is relative to the SourceMapConsumer.\n\t *        This parameter is needed when the two source maps aren't in the same\n\t *        directory, and the source map to be applied contains relative source\n\t *        paths. If so, those relative source paths need to be rewritten\n\t *        relative to the SourceMapGenerator.\n\t */\n\tSourceMapGenerator.prototype.applySourceMap =\n\t  function SourceMapGenerator_applySourceMap(aSourceMapConsumer, aSourceFile, aSourceMapPath) {\n\t    var sourceFile = aSourceFile;\n\t    // If aSourceFile is omitted, we will use the file property of the SourceMap\n\t    if (aSourceFile == null) {\n\t      if (aSourceMapConsumer.file == null) {\n\t        throw new Error(\n\t          'SourceMapGenerator.prototype.applySourceMap requires either an explicit source file, ' +\n\t          'or the source map\\'s \"file\" property. Both were omitted.'\n\t        );\n\t      }\n\t      sourceFile = aSourceMapConsumer.file;\n\t    }\n\t    var sourceRoot = this._sourceRoot;\n\t    // Make \"sourceFile\" relative if an absolute Url is passed.\n\t    if (sourceRoot != null) {\n\t      sourceFile = util.relative(sourceRoot, sourceFile);\n\t    }\n\t    // Applying the SourceMap can add and remove items from the sources and\n\t    // the names array.\n\t    var newSources = new ArraySet();\n\t    var newNames = new ArraySet();\n\t\n\t    // Find mappings for the \"sourceFile\"\n\t    this._mappings.unsortedForEach(function (mapping) {\n\t      if (mapping.source === sourceFile && mapping.originalLine != null) {\n\t        // Check if it can be mapped by the source map, then update the mapping.\n\t        var original = aSourceMapConsumer.originalPositionFor({\n\t          line: mapping.originalLine,\n\t          column: mapping.originalColumn\n\t        });\n\t        if (original.source != null) {\n\t          // Copy mapping\n\t          mapping.source = original.source;\n\t          if (aSourceMapPath != null) {\n\t            mapping.source = util.join(aSourceMapPath, mapping.source)\n\t          }\n\t          if (sourceRoot != null) {\n\t            mapping.source = util.relative(sourceRoot, mapping.source);\n\t          }\n\t          mapping.originalLine = original.line;\n\t          mapping.originalColumn = original.column;\n\t          if (original.name != null) {\n\t            mapping.name = original.name;\n\t          }\n\t        }\n\t      }\n\t\n\t      var source = mapping.source;\n\t      if (source != null && !newSources.has(source)) {\n\t        newSources.add(source);\n\t      }\n\t\n\t      var name = mapping.name;\n\t      if (name != null && !newNames.has(name)) {\n\t        newNames.add(name);\n\t      }\n\t\n\t    }, this);\n\t    this._sources = newSources;\n\t    this._names = newNames;\n\t\n\t    // Copy sourcesContents of applied map.\n\t    aSourceMapConsumer.sources.forEach(function (sourceFile) {\n\t      var content = aSourceMapConsumer.sourceContentFor(sourceFile);\n\t      if (content != null) {\n\t        if (aSourceMapPath != null) {\n\t          sourceFile = util.join(aSourceMapPath, sourceFile);\n\t        }\n\t        if (sourceRoot != null) {\n\t          sourceFile = util.relative(sourceRoot, sourceFile);\n\t        }\n\t        this.setSourceContent(sourceFile, content);\n\t      }\n\t    }, this);\n\t  };\n\t\n\t/**\n\t * A mapping can have one of the three levels of data:\n\t *\n\t *   1. Just the generated position.\n\t *   2. The Generated position, original position, and original source.\n\t *   3. Generated and original position, original source, as well as a name\n\t *      token.\n\t *\n\t * To maintain consistency, we validate that any new mapping being added falls\n\t * in to one of these categories.\n\t */\n\tSourceMapGenerator.prototype._validateMapping =\n\t  function SourceMapGenerator_validateMapping(aGenerated, aOriginal, aSource,\n\t                                              aName) {\n\t    // When aOriginal is truthy but has empty values for .line and .column,\n\t    // it is most likely a programmer error. In this case we throw a very\n\t    // specific error message to try to guide them the right way.\n\t    // For example: https://github.com/Polymer/polymer-bundler/pull/519\n\t    if (aOriginal && typeof aOriginal.line !== 'number' && typeof aOriginal.column !== 'number') {\n\t        throw new Error(\n\t            'original.line and original.column are not numbers -- you probably meant to omit ' +\n\t            'the original mapping entirely and only map the generated position. If so, pass ' +\n\t            'null for the original mapping instead of an object with empty or null values.'\n\t        );\n\t    }\n\t\n\t    if (aGenerated && 'line' in aGenerated && 'column' in aGenerated\n\t        && aGenerated.line > 0 && aGenerated.column >= 0\n\t        && !aOriginal && !aSource && !aName) {\n\t      // Case 1.\n\t      return;\n\t    }\n\t    else if (aGenerated && 'line' in aGenerated && 'column' in aGenerated\n\t             && aOriginal && 'line' in aOriginal && 'column' in aOriginal\n\t             && aGenerated.line > 0 && aGenerated.column >= 0\n\t             && aOriginal.line > 0 && aOriginal.column >= 0\n\t             && aSource) {\n\t      // Cases 2 and 3.\n\t      return;\n\t    }\n\t    else {\n\t      throw new Error('Invalid mapping: ' + JSON.stringify({\n\t        generated: aGenerated,\n\t        source: aSource,\n\t        original: aOriginal,\n\t        name: aName\n\t      }));\n\t    }\n\t  };\n\t\n\t/**\n\t * Serialize the accumulated mappings in to the stream of base 64 VLQs\n\t * specified by the source map format.\n\t */\n\tSourceMapGenerator.prototype._serializeMappings =\n\t  function SourceMapGenerator_serializeMappings() {\n\t    var previousGeneratedColumn = 0;\n\t    var previousGeneratedLine = 1;\n\t    var previousOriginalColumn = 0;\n\t    var previousOriginalLine = 0;\n\t    var previousName = 0;\n\t    var previousSource = 0;\n\t    var result = '';\n\t    var next;\n\t    var mapping;\n\t    var nameIdx;\n\t    var sourceIdx;\n\t\n\t    var mappings = this._mappings.toArray();\n\t    for (var i = 0, len = mappings.length; i < len; i++) {\n\t      mapping = mappings[i];\n\t      next = ''\n\t\n\t      if (mapping.generatedLine !== previousGeneratedLine) {\n\t        previousGeneratedColumn = 0;\n\t        while (mapping.generatedLine !== previousGeneratedLine) {\n\t          next += ';';\n\t          previousGeneratedLine++;\n\t        }\n\t      }\n\t      else {\n\t        if (i > 0) {\n\t          if (!util.compareByGeneratedPositionsInflated(mapping, mappings[i - 1])) {\n\t            continue;\n\t          }\n\t          next += ',';\n\t        }\n\t      }\n\t\n\t      next += base64VLQ.encode(mapping.generatedColumn\n\t                                 - previousGeneratedColumn);\n\t      previousGeneratedColumn = mapping.generatedColumn;\n\t\n\t      if (mapping.source != null) {\n\t        sourceIdx = this._sources.indexOf(mapping.source);\n\t        next += base64VLQ.encode(sourceIdx - previousSource);\n\t        previousSource = sourceIdx;\n\t\n\t        // lines are stored 0-based in SourceMap spec version 3\n\t        next += base64VLQ.encode(mapping.originalLine - 1\n\t                                   - previousOriginalLine);\n\t        previousOriginalLine = mapping.originalLine - 1;\n\t\n\t        next += base64VLQ.encode(mapping.originalColumn\n\t                                   - previousOriginalColumn);\n\t        previousOriginalColumn = mapping.originalColumn;\n\t\n\t        if (mapping.name != null) {\n\t          nameIdx = this._names.indexOf(mapping.name);\n\t          next += base64VLQ.encode(nameIdx - previousName);\n\t          previousName = nameIdx;\n\t        }\n\t      }\n\t\n\t      result += next;\n\t    }\n\t\n\t    return result;\n\t  };\n\t\n\tSourceMapGenerator.prototype._generateSourcesContent =\n\t  function SourceMapGenerator_generateSourcesContent(aSources, aSourceRoot) {\n\t    return aSources.map(function (source) {\n\t      if (!this._sourcesContents) {\n\t        return null;\n\t      }\n\t      if (aSourceRoot != null) {\n\t        source = util.relative(aSourceRoot, source);\n\t      }\n\t      var key = util.toSetString(source);\n\t      return Object.prototype.hasOwnProperty.call(this._sourcesContents, key)\n\t        ? this._sourcesContents[key]\n\t        : null;\n\t    }, this);\n\t  };\n\t\n\t/**\n\t * Externalize the source map.\n\t */\n\tSourceMapGenerator.prototype.toJSON =\n\t  function SourceMapGenerator_toJSON() {\n\t    var map = {\n\t      version: this._version,\n\t      sources: this._sources.toArray(),\n\t      names: this._names.toArray(),\n\t      mappings: this._serializeMappings()\n\t    };\n\t    if (this._file != null) {\n\t      map.file = this._file;\n\t    }\n\t    if (this._sourceRoot != null) {\n\t      map.sourceRoot = this._sourceRoot;\n\t    }\n\t    if (this._sourcesContents) {\n\t      map.sourcesContent = this._generateSourcesContent(map.sources, map.sourceRoot);\n\t    }\n\t\n\t    return map;\n\t  };\n\t\n\t/**\n\t * Render the source map being generated to a string.\n\t */\n\tSourceMapGenerator.prototype.toString =\n\t  function SourceMapGenerator_toString() {\n\t    return JSON.stringify(this.toJSON());\n\t  };\n\t\n\texports.SourceMapGenerator = SourceMapGenerator;\n\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/* -*- Mode: js; js-indent-level: 2; -*- */\n\t/*\n\t * Copyright 2011 Mozilla Foundation and contributors\n\t * Licensed under the New BSD license. See LICENSE or:\n\t * http://opensource.org/licenses/BSD-3-Clause\n\t *\n\t * Based on the Base 64 VLQ implementation in Closure Compiler:\n\t * https://code.google.com/p/closure-compiler/source/browse/trunk/src/com/google/debugging/sourcemap/Base64VLQ.java\n\t *\n\t * Copyright 2011 The Closure Compiler Authors. All rights reserved.\n\t * Redistribution and use in source and binary forms, with or without\n\t * modification, are permitted provided that the following conditions are\n\t * met:\n\t *\n\t *  * Redistributions of source code must retain the above copyright\n\t *    notice, this list of conditions and the following disclaimer.\n\t *  * Redistributions in binary form must reproduce the above\n\t *    copyright notice, this list of conditions and the following\n\t *    disclaimer in the documentation and/or other materials provided\n\t *    with the distribution.\n\t *  * Neither the name of Google Inc. nor the names of its\n\t *    contributors may be used to endorse or promote products derived\n\t *    from this software without specific prior written permission.\n\t *\n\t * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n\t * \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n\t * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n\t * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n\t * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n\t * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n\t * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n\t * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n\t * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n\t * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n\t * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\t */\n\t\n\tvar base64 = __webpack_require__(3);\n\t\n\t// A single base 64 digit can contain 6 bits of data. For the base 64 variable\n\t// length quantities we use in the source map spec, the first bit is the sign,\n\t// the next four bits are the actual value, and the 6th bit is the\n\t// continuation bit. The continuation bit tells us whether there are more\n\t// digits in this value following this digit.\n\t//\n\t//   Continuation\n\t//   |    Sign\n\t//   |    |\n\t//   V    V\n\t//   101011\n\t\n\tvar VLQ_BASE_SHIFT = 5;\n\t\n\t// binary: 100000\n\tvar VLQ_BASE = 1 << VLQ_BASE_SHIFT;\n\t\n\t// binary: 011111\n\tvar VLQ_BASE_MASK = VLQ_BASE - 1;\n\t\n\t// binary: 100000\n\tvar VLQ_CONTINUATION_BIT = VLQ_BASE;\n\t\n\t/**\n\t * Converts from a two-complement value to a value where the sign bit is\n\t * placed in the least significant bit.  For example, as decimals:\n\t *   1 becomes 2 (10 binary), -1 becomes 3 (11 binary)\n\t *   2 becomes 4 (100 binary), -2 becomes 5 (101 binary)\n\t */\n\tfunction toVLQSigned(aValue) {\n\t  return aValue < 0\n\t    ? ((-aValue) << 1) + 1\n\t    : (aValue << 1) + 0;\n\t}\n\t\n\t/**\n\t * Converts to a two-complement value from a value where the sign bit is\n\t * placed in the least significant bit.  For example, as decimals:\n\t *   2 (10 binary) becomes 1, 3 (11 binary) becomes -1\n\t *   4 (100 binary) becomes 2, 5 (101 binary) becomes -2\n\t */\n\tfunction fromVLQSigned(aValue) {\n\t  var isNegative = (aValue & 1) === 1;\n\t  var shifted = aValue >> 1;\n\t  return isNegative\n\t    ? -shifted\n\t    : shifted;\n\t}\n\t\n\t/**\n\t * Returns the base 64 VLQ encoded value.\n\t */\n\texports.encode = function base64VLQ_encode(aValue) {\n\t  var encoded = \"\";\n\t  var digit;\n\t\n\t  var vlq = toVLQSigned(aValue);\n\t\n\t  do {\n\t    digit = vlq & VLQ_BASE_MASK;\n\t    vlq >>>= VLQ_BASE_SHIFT;\n\t    if (vlq > 0) {\n\t      // There are still more digits in this value, so we must make sure the\n\t      // continuation bit is marked.\n\t      digit |= VLQ_CONTINUATION_BIT;\n\t    }\n\t    encoded += base64.encode(digit);\n\t  } while (vlq > 0);\n\t\n\t  return encoded;\n\t};\n\t\n\t/**\n\t * Decodes the next base 64 VLQ value from the given string and returns the\n\t * value and the rest of the string via the out parameter.\n\t */\n\texports.decode = function base64VLQ_decode(aStr, aIndex, aOutParam) {\n\t  var strLen = aStr.length;\n\t  var result = 0;\n\t  var shift = 0;\n\t  var continuation, digit;\n\t\n\t  do {\n\t    if (aIndex >= strLen) {\n\t      throw new Error(\"Expected more digits in base 64 VLQ value.\");\n\t    }\n\t\n\t    digit = base64.decode(aStr.charCodeAt(aIndex++));\n\t    if (digit === -1) {\n\t      throw new Error(\"Invalid base64 digit: \" + aStr.charAt(aIndex - 1));\n\t    }\n\t\n\t    continuation = !!(digit & VLQ_CONTINUATION_BIT);\n\t    digit &= VLQ_BASE_MASK;\n\t    result = result + (digit << shift);\n\t    shift += VLQ_BASE_SHIFT;\n\t  } while (continuation);\n\t\n\t  aOutParam.value = fromVLQSigned(result);\n\t  aOutParam.rest = aIndex;\n\t};\n\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports) {\n\n\t/* -*- Mode: js; js-indent-level: 2; -*- */\n\t/*\n\t * Copyright 2011 Mozilla Foundation and contributors\n\t * Licensed under the New BSD license. See LICENSE or:\n\t * http://opensource.org/licenses/BSD-3-Clause\n\t */\n\t\n\tvar intToCharMap = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'.split('');\n\t\n\t/**\n\t * Encode an integer in the range of 0 to 63 to a single base 64 digit.\n\t */\n\texports.encode = function (number) {\n\t  if (0 <= number && number < intToCharMap.length) {\n\t    return intToCharMap[number];\n\t  }\n\t  throw new TypeError(\"Must be between 0 and 63: \" + number);\n\t};\n\t\n\t/**\n\t * Decode a single base 64 character code digit to an integer. Returns -1 on\n\t * failure.\n\t */\n\texports.decode = function (charCode) {\n\t  var bigA = 65;     // 'A'\n\t  var bigZ = 90;     // 'Z'\n\t\n\t  var littleA = 97;  // 'a'\n\t  var littleZ = 122; // 'z'\n\t\n\t  var zero = 48;     // '0'\n\t  var nine = 57;     // '9'\n\t\n\t  var plus = 43;     // '+'\n\t  var slash = 47;    // '/'\n\t\n\t  var littleOffset = 26;\n\t  var numberOffset = 52;\n\t\n\t  // 0 - 25: ABCDEFGHIJKLMNOPQRSTUVWXYZ\n\t  if (bigA <= charCode && charCode <= bigZ) {\n\t    return (charCode - bigA);\n\t  }\n\t\n\t  // 26 - 51: abcdefghijklmnopqrstuvwxyz\n\t  if (littleA <= charCode && charCode <= littleZ) {\n\t    return (charCode - littleA + littleOffset);\n\t  }\n\t\n\t  // 52 - 61: 0123456789\n\t  if (zero <= charCode && charCode <= nine) {\n\t    return (charCode - zero + numberOffset);\n\t  }\n\t\n\t  // 62: +\n\t  if (charCode == plus) {\n\t    return 62;\n\t  }\n\t\n\t  // 63: /\n\t  if (charCode == slash) {\n\t    return 63;\n\t  }\n\t\n\t  // Invalid base64 digit.\n\t  return -1;\n\t};\n\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports) {\n\n\t/* -*- Mode: js; js-indent-level: 2; -*- */\n\t/*\n\t * Copyright 2011 Mozilla Foundation and contributors\n\t * Licensed under the New BSD license. See LICENSE or:\n\t * http://opensource.org/licenses/BSD-3-Clause\n\t */\n\t\n\t/**\n\t * This is a helper function for getting values from parameter/options\n\t * objects.\n\t *\n\t * @param args The object we are extracting values from\n\t * @param name The name of the property we are getting.\n\t * @param defaultValue An optional value to return if the property is missing\n\t * from the object. If this is not specified and the property is missing, an\n\t * error will be thrown.\n\t */\n\tfunction getArg(aArgs, aName, aDefaultValue) {\n\t  if (aName in aArgs) {\n\t    return aArgs[aName];\n\t  } else if (arguments.length === 3) {\n\t    return aDefaultValue;\n\t  } else {\n\t    throw new Error('\"' + aName + '\" is a required argument.');\n\t  }\n\t}\n\texports.getArg = getArg;\n\t\n\tvar urlRegexp = /^(?:([\\w+\\-.]+):)?\\/\\/(?:(\\w+:\\w+)@)?([\\w.]*)(?::(\\d+))?(\\S*)$/;\n\tvar dataUrlRegexp = /^data:.+\\,.+$/;\n\t\n\tfunction urlParse(aUrl) {\n\t  var match = aUrl.match(urlRegexp);\n\t  if (!match) {\n\t    return null;\n\t  }\n\t  return {\n\t    scheme: match[1],\n\t    auth: match[2],\n\t    host: match[3],\n\t    port: match[4],\n\t    path: match[5]\n\t  };\n\t}\n\texports.urlParse = urlParse;\n\t\n\tfunction urlGenerate(aParsedUrl) {\n\t  var url = '';\n\t  if (aParsedUrl.scheme) {\n\t    url += aParsedUrl.scheme + ':';\n\t  }\n\t  url += '//';\n\t  if (aParsedUrl.auth) {\n\t    url += aParsedUrl.auth + '@';\n\t  }\n\t  if (aParsedUrl.host) {\n\t    url += aParsedUrl.host;\n\t  }\n\t  if (aParsedUrl.port) {\n\t    url += \":\" + aParsedUrl.port\n\t  }\n\t  if (aParsedUrl.path) {\n\t    url += aParsedUrl.path;\n\t  }\n\t  return url;\n\t}\n\texports.urlGenerate = urlGenerate;\n\t\n\t/**\n\t * Normalizes a path, or the path portion of a URL:\n\t *\n\t * - Replaces consecutive slashes with one slash.\n\t * - Removes unnecessary '.' parts.\n\t * - Removes unnecessary '<dir>/..' parts.\n\t *\n\t * Based on code in the Node.js 'path' core module.\n\t *\n\t * @param aPath The path or url to normalize.\n\t */\n\tfunction normalize(aPath) {\n\t  var path = aPath;\n\t  var url = urlParse(aPath);\n\t  if (url) {\n\t    if (!url.path) {\n\t      return aPath;\n\t    }\n\t    path = url.path;\n\t  }\n\t  var isAbsolute = exports.isAbsolute(path);\n\t\n\t  var parts = path.split(/\\/+/);\n\t  for (var part, up = 0, i = parts.length - 1; i >= 0; i--) {\n\t    part = parts[i];\n\t    if (part === '.') {\n\t      parts.splice(i, 1);\n\t    } else if (part === '..') {\n\t      up++;\n\t    } else if (up > 0) {\n\t      if (part === '') {\n\t        // The first part is blank if the path is absolute. Trying to go\n\t        // above the root is a no-op. Therefore we can remove all '..' parts\n\t        // directly after the root.\n\t        parts.splice(i + 1, up);\n\t        up = 0;\n\t      } else {\n\t        parts.splice(i, 2);\n\t        up--;\n\t      }\n\t    }\n\t  }\n\t  path = parts.join('/');\n\t\n\t  if (path === '') {\n\t    path = isAbsolute ? '/' : '.';\n\t  }\n\t\n\t  if (url) {\n\t    url.path = path;\n\t    return urlGenerate(url);\n\t  }\n\t  return path;\n\t}\n\texports.normalize = normalize;\n\t\n\t/**\n\t * Joins two paths/URLs.\n\t *\n\t * @param aRoot The root path or URL.\n\t * @param aPath The path or URL to be joined with the root.\n\t *\n\t * - If aPath is a URL or a data URI, aPath is returned, unless aPath is a\n\t *   scheme-relative URL: Then the scheme of aRoot, if any, is prepended\n\t *   first.\n\t * - Otherwise aPath is a path. If aRoot is a URL, then its path portion\n\t *   is updated with the result and aRoot is returned. Otherwise the result\n\t *   is returned.\n\t *   - If aPath is absolute, the result is aPath.\n\t *   - Otherwise the two paths are joined with a slash.\n\t * - Joining for example 'http://' and 'www.example.com' is also supported.\n\t */\n\tfunction join(aRoot, aPath) {\n\t  if (aRoot === \"\") {\n\t    aRoot = \".\";\n\t  }\n\t  if (aPath === \"\") {\n\t    aPath = \".\";\n\t  }\n\t  var aPathUrl = urlParse(aPath);\n\t  var aRootUrl = urlParse(aRoot);\n\t  if (aRootUrl) {\n\t    aRoot = aRootUrl.path || '/';\n\t  }\n\t\n\t  // `join(foo, '//www.example.org')`\n\t  if (aPathUrl && !aPathUrl.scheme) {\n\t    if (aRootUrl) {\n\t      aPathUrl.scheme = aRootUrl.scheme;\n\t    }\n\t    return urlGenerate(aPathUrl);\n\t  }\n\t\n\t  if (aPathUrl || aPath.match(dataUrlRegexp)) {\n\t    return aPath;\n\t  }\n\t\n\t  // `join('http://', 'www.example.com')`\n\t  if (aRootUrl && !aRootUrl.host && !aRootUrl.path) {\n\t    aRootUrl.host = aPath;\n\t    return urlGenerate(aRootUrl);\n\t  }\n\t\n\t  var joined = aPath.charAt(0) === '/'\n\t    ? aPath\n\t    : normalize(aRoot.replace(/\\/+$/, '') + '/' + aPath);\n\t\n\t  if (aRootUrl) {\n\t    aRootUrl.path = joined;\n\t    return urlGenerate(aRootUrl);\n\t  }\n\t  return joined;\n\t}\n\texports.join = join;\n\t\n\texports.isAbsolute = function (aPath) {\n\t  return aPath.charAt(0) === '/' || !!aPath.match(urlRegexp);\n\t};\n\t\n\t/**\n\t * Make a path relative to a URL or another path.\n\t *\n\t * @param aRoot The root path or URL.\n\t * @param aPath The path or URL to be made relative to aRoot.\n\t */\n\tfunction relative(aRoot, aPath) {\n\t  if (aRoot === \"\") {\n\t    aRoot = \".\";\n\t  }\n\t\n\t  aRoot = aRoot.replace(/\\/$/, '');\n\t\n\t  // It is possible for the path to be above the root. In this case, simply\n\t  // checking whether the root is a prefix of the path won't work. Instead, we\n\t  // need to remove components from the root one by one, until either we find\n\t  // a prefix that fits, or we run out of components to remove.\n\t  var level = 0;\n\t  while (aPath.indexOf(aRoot + '/') !== 0) {\n\t    var index = aRoot.lastIndexOf(\"/\");\n\t    if (index < 0) {\n\t      return aPath;\n\t    }\n\t\n\t    // If the only part of the root that is left is the scheme (i.e. http://,\n\t    // file:///, etc.), one or more slashes (/), or simply nothing at all, we\n\t    // have exhausted all components, so the path is not relative to the root.\n\t    aRoot = aRoot.slice(0, index);\n\t    if (aRoot.match(/^([^\\/]+:\\/)?\\/*$/)) {\n\t      return aPath;\n\t    }\n\t\n\t    ++level;\n\t  }\n\t\n\t  // Make sure we add a \"../\" for each component we removed from the root.\n\t  return Array(level + 1).join(\"../\") + aPath.substr(aRoot.length + 1);\n\t}\n\texports.relative = relative;\n\t\n\tvar supportsNullProto = (function () {\n\t  var obj = Object.create(null);\n\t  return !('__proto__' in obj);\n\t}());\n\t\n\tfunction identity (s) {\n\t  return s;\n\t}\n\t\n\t/**\n\t * Because behavior goes wacky when you set `__proto__` on objects, we\n\t * have to prefix all the strings in our set with an arbitrary character.\n\t *\n\t * See https://github.com/mozilla/source-map/pull/31 and\n\t * https://github.com/mozilla/source-map/issues/30\n\t *\n\t * @param String aStr\n\t */\n\tfunction toSetString(aStr) {\n\t  if (isProtoString(aStr)) {\n\t    return '$' + aStr;\n\t  }\n\t\n\t  return aStr;\n\t}\n\texports.toSetString = supportsNullProto ? identity : toSetString;\n\t\n\tfunction fromSetString(aStr) {\n\t  if (isProtoString(aStr)) {\n\t    return aStr.slice(1);\n\t  }\n\t\n\t  return aStr;\n\t}\n\texports.fromSetString = supportsNullProto ? identity : fromSetString;\n\t\n\tfunction isProtoString(s) {\n\t  if (!s) {\n\t    return false;\n\t  }\n\t\n\t  var length = s.length;\n\t\n\t  if (length < 9 /* \"__proto__\".length */) {\n\t    return false;\n\t  }\n\t\n\t  if (s.charCodeAt(length - 1) !== 95  /* '_' */ ||\n\t      s.charCodeAt(length - 2) !== 95  /* '_' */ ||\n\t      s.charCodeAt(length - 3) !== 111 /* 'o' */ ||\n\t      s.charCodeAt(length - 4) !== 116 /* 't' */ ||\n\t      s.charCodeAt(length - 5) !== 111 /* 'o' */ ||\n\t      s.charCodeAt(length - 6) !== 114 /* 'r' */ ||\n\t      s.charCodeAt(length - 7) !== 112 /* 'p' */ ||\n\t      s.charCodeAt(length - 8) !== 95  /* '_' */ ||\n\t      s.charCodeAt(length - 9) !== 95  /* '_' */) {\n\t    return false;\n\t  }\n\t\n\t  for (var i = length - 10; i >= 0; i--) {\n\t    if (s.charCodeAt(i) !== 36 /* '$' */) {\n\t      return false;\n\t    }\n\t  }\n\t\n\t  return true;\n\t}\n\t\n\t/**\n\t * Comparator between two mappings where the original positions are compared.\n\t *\n\t * Optionally pass in `true` as `onlyCompareGenerated` to consider two\n\t * mappings with the same original source/line/column, but different generated\n\t * line and column the same. Useful when searching for a mapping with a\n\t * stubbed out mapping.\n\t */\n\tfunction compareByOriginalPositions(mappingA, mappingB, onlyCompareOriginal) {\n\t  var cmp = mappingA.source - mappingB.source;\n\t  if (cmp !== 0) {\n\t    return cmp;\n\t  }\n\t\n\t  cmp = mappingA.originalLine - mappingB.originalLine;\n\t  if (cmp !== 0) {\n\t    return cmp;\n\t  }\n\t\n\t  cmp = mappingA.originalColumn - mappingB.originalColumn;\n\t  if (cmp !== 0 || onlyCompareOriginal) {\n\t    return cmp;\n\t  }\n\t\n\t  cmp = mappingA.generatedColumn - mappingB.generatedColumn;\n\t  if (cmp !== 0) {\n\t    return cmp;\n\t  }\n\t\n\t  cmp = mappingA.generatedLine - mappingB.generatedLine;\n\t  if (cmp !== 0) {\n\t    return cmp;\n\t  }\n\t\n\t  return mappingA.name - mappingB.name;\n\t}\n\texports.compareByOriginalPositions = compareByOriginalPositions;\n\t\n\t/**\n\t * Comparator between two mappings with deflated source and name indices where\n\t * the generated positions are compared.\n\t *\n\t * Optionally pass in `true` as `onlyCompareGenerated` to consider two\n\t * mappings with the same generated line and column, but different\n\t * source/name/original line and column the same. Useful when searching for a\n\t * mapping with a stubbed out mapping.\n\t */\n\tfunction compareByGeneratedPositionsDeflated(mappingA, mappingB, onlyCompareGenerated) {\n\t  var cmp = mappingA.generatedLine - mappingB.generatedLine;\n\t  if (cmp !== 0) {\n\t    return cmp;\n\t  }\n\t\n\t  cmp = mappingA.generatedColumn - mappingB.generatedColumn;\n\t  if (cmp !== 0 || onlyCompareGenerated) {\n\t    return cmp;\n\t  }\n\t\n\t  cmp = mappingA.source - mappingB.source;\n\t  if (cmp !== 0) {\n\t    return cmp;\n\t  }\n\t\n\t  cmp = mappingA.originalLine - mappingB.originalLine;\n\t  if (cmp !== 0) {\n\t    return cmp;\n\t  }\n\t\n\t  cmp = mappingA.originalColumn - mappingB.originalColumn;\n\t  if (cmp !== 0) {\n\t    return cmp;\n\t  }\n\t\n\t  return mappingA.name - mappingB.name;\n\t}\n\texports.compareByGeneratedPositionsDeflated = compareByGeneratedPositionsDeflated;\n\t\n\tfunction strcmp(aStr1, aStr2) {\n\t  if (aStr1 === aStr2) {\n\t    return 0;\n\t  }\n\t\n\t  if (aStr1 > aStr2) {\n\t    return 1;\n\t  }\n\t\n\t  return -1;\n\t}\n\t\n\t/**\n\t * Comparator between two mappings with inflated source and name strings where\n\t * the generated positions are compared.\n\t */\n\tfunction compareByGeneratedPositionsInflated(mappingA, mappingB) {\n\t  var cmp = mappingA.generatedLine - mappingB.generatedLine;\n\t  if (cmp !== 0) {\n\t    return cmp;\n\t  }\n\t\n\t  cmp = mappingA.generatedColumn - mappingB.generatedColumn;\n\t  if (cmp !== 0) {\n\t    return cmp;\n\t  }\n\t\n\t  cmp = strcmp(mappingA.source, mappingB.source);\n\t  if (cmp !== 0) {\n\t    return cmp;\n\t  }\n\t\n\t  cmp = mappingA.originalLine - mappingB.originalLine;\n\t  if (cmp !== 0) {\n\t    return cmp;\n\t  }\n\t\n\t  cmp = mappingA.originalColumn - mappingB.originalColumn;\n\t  if (cmp !== 0) {\n\t    return cmp;\n\t  }\n\t\n\t  return strcmp(mappingA.name, mappingB.name);\n\t}\n\texports.compareByGeneratedPositionsInflated = compareByGeneratedPositionsInflated;\n\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/* -*- Mode: js; js-indent-level: 2; -*- */\n\t/*\n\t * Copyright 2011 Mozilla Foundation and contributors\n\t * Licensed under the New BSD license. See LICENSE or:\n\t * http://opensource.org/licenses/BSD-3-Clause\n\t */\n\t\n\tvar util = __webpack_require__(4);\n\tvar has = Object.prototype.hasOwnProperty;\n\tvar hasNativeMap = typeof Map !== \"undefined\";\n\t\n\t/**\n\t * A data structure which is a combination of an array and a set. Adding a new\n\t * member is O(1), testing for membership is O(1), and finding the index of an\n\t * element is O(1). Removing elements from the set is not supported. Only\n\t * strings are supported for membership.\n\t */\n\tfunction ArraySet() {\n\t  this._array = [];\n\t  this._set = hasNativeMap ? new Map() : Object.create(null);\n\t}\n\t\n\t/**\n\t * Static method for creating ArraySet instances from an existing array.\n\t */\n\tArraySet.fromArray = function ArraySet_fromArray(aArray, aAllowDuplicates) {\n\t  var set = new ArraySet();\n\t  for (var i = 0, len = aArray.length; i < len; i++) {\n\t    set.add(aArray[i], aAllowDuplicates);\n\t  }\n\t  return set;\n\t};\n\t\n\t/**\n\t * Return how many unique items are in this ArraySet. If duplicates have been\n\t * added, than those do not count towards the size.\n\t *\n\t * @returns Number\n\t */\n\tArraySet.prototype.size = function ArraySet_size() {\n\t  return hasNativeMap ? this._set.size : Object.getOwnPropertyNames(this._set).length;\n\t};\n\t\n\t/**\n\t * Add the given string to this set.\n\t *\n\t * @param String aStr\n\t */\n\tArraySet.prototype.add = function ArraySet_add(aStr, aAllowDuplicates) {\n\t  var sStr = hasNativeMap ? aStr : util.toSetString(aStr);\n\t  var isDuplicate = hasNativeMap ? this.has(aStr) : has.call(this._set, sStr);\n\t  var idx = this._array.length;\n\t  if (!isDuplicate || aAllowDuplicates) {\n\t    this._array.push(aStr);\n\t  }\n\t  if (!isDuplicate) {\n\t    if (hasNativeMap) {\n\t      this._set.set(aStr, idx);\n\t    } else {\n\t      this._set[sStr] = idx;\n\t    }\n\t  }\n\t};\n\t\n\t/**\n\t * Is the given string a member of this set?\n\t *\n\t * @param String aStr\n\t */\n\tArraySet.prototype.has = function ArraySet_has(aStr) {\n\t  if (hasNativeMap) {\n\t    return this._set.has(aStr);\n\t  } else {\n\t    var sStr = util.toSetString(aStr);\n\t    return has.call(this._set, sStr);\n\t  }\n\t};\n\t\n\t/**\n\t * What is the index of the given string in the array?\n\t *\n\t * @param String aStr\n\t */\n\tArraySet.prototype.indexOf = function ArraySet_indexOf(aStr) {\n\t  if (hasNativeMap) {\n\t    var idx = this._set.get(aStr);\n\t    if (idx >= 0) {\n\t        return idx;\n\t    }\n\t  } else {\n\t    var sStr = util.toSetString(aStr);\n\t    if (has.call(this._set, sStr)) {\n\t      return this._set[sStr];\n\t    }\n\t  }\n\t\n\t  throw new Error('\"' + aStr + '\" is not in the set.');\n\t};\n\t\n\t/**\n\t * What is the element at the given index?\n\t *\n\t * @param Number aIdx\n\t */\n\tArraySet.prototype.at = function ArraySet_at(aIdx) {\n\t  if (aIdx >= 0 && aIdx < this._array.length) {\n\t    return this._array[aIdx];\n\t  }\n\t  throw new Error('No element indexed by ' + aIdx);\n\t};\n\t\n\t/**\n\t * Returns the array representation of this set (which has the proper indices\n\t * indicated by indexOf). Note that this is a copy of the internal array used\n\t * for storing the members so that no one can mess with internal state.\n\t */\n\tArraySet.prototype.toArray = function ArraySet_toArray() {\n\t  return this._array.slice();\n\t};\n\t\n\texports.ArraySet = ArraySet;\n\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/* -*- Mode: js; js-indent-level: 2; -*- */\n\t/*\n\t * Copyright 2014 Mozilla Foundation and contributors\n\t * Licensed under the New BSD license. See LICENSE or:\n\t * http://opensource.org/licenses/BSD-3-Clause\n\t */\n\t\n\tvar util = __webpack_require__(4);\n\t\n\t/**\n\t * Determine whether mappingB is after mappingA with respect to generated\n\t * position.\n\t */\n\tfunction generatedPositionAfter(mappingA, mappingB) {\n\t  // Optimized for most common case\n\t  var lineA = mappingA.generatedLine;\n\t  var lineB = mappingB.generatedLine;\n\t  var columnA = mappingA.generatedColumn;\n\t  var columnB = mappingB.generatedColumn;\n\t  return lineB > lineA || lineB == lineA && columnB >= columnA ||\n\t         util.compareByGeneratedPositionsInflated(mappingA, mappingB) <= 0;\n\t}\n\t\n\t/**\n\t * A data structure to provide a sorted view of accumulated mappings in a\n\t * performance conscious manner. It trades a neglibable overhead in general\n\t * case for a large speedup in case of mappings being added in order.\n\t */\n\tfunction MappingList() {\n\t  this._array = [];\n\t  this._sorted = true;\n\t  // Serves as infimum\n\t  this._last = {generatedLine: -1, generatedColumn: 0};\n\t}\n\t\n\t/**\n\t * Iterate through internal items. This method takes the same arguments that\n\t * `Array.prototype.forEach` takes.\n\t *\n\t * NOTE: The order of the mappings is NOT guaranteed.\n\t */\n\tMappingList.prototype.unsortedForEach =\n\t  function MappingList_forEach(aCallback, aThisArg) {\n\t    this._array.forEach(aCallback, aThisArg);\n\t  };\n\t\n\t/**\n\t * Add the given source mapping.\n\t *\n\t * @param Object aMapping\n\t */\n\tMappingList.prototype.add = function MappingList_add(aMapping) {\n\t  if (generatedPositionAfter(this._last, aMapping)) {\n\t    this._last = aMapping;\n\t    this._array.push(aMapping);\n\t  } else {\n\t    this._sorted = false;\n\t    this._array.push(aMapping);\n\t  }\n\t};\n\t\n\t/**\n\t * Returns the flat, sorted array of mappings. The mappings are sorted by\n\t * generated position.\n\t *\n\t * WARNING: This method returns internal data without copying, for\n\t * performance. The return value must NOT be mutated, and should be treated as\n\t * an immutable borrow. If you want to take ownership, you must make your own\n\t * copy.\n\t */\n\tMappingList.prototype.toArray = function MappingList_toArray() {\n\t  if (!this._sorted) {\n\t    this._array.sort(util.compareByGeneratedPositionsInflated);\n\t    this._sorted = true;\n\t  }\n\t  return this._array;\n\t};\n\t\n\texports.MappingList = MappingList;\n\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/* -*- Mode: js; js-indent-level: 2; -*- */\n\t/*\n\t * Copyright 2011 Mozilla Foundation and contributors\n\t * Licensed under the New BSD license. See LICENSE or:\n\t * http://opensource.org/licenses/BSD-3-Clause\n\t */\n\t\n\tvar util = __webpack_require__(4);\n\tvar binarySearch = __webpack_require__(8);\n\tvar ArraySet = __webpack_require__(5).ArraySet;\n\tvar base64VLQ = __webpack_require__(2);\n\tvar quickSort = __webpack_require__(9).quickSort;\n\t\n\tfunction SourceMapConsumer(aSourceMap) {\n\t  var sourceMap = aSourceMap;\n\t  if (typeof aSourceMap === 'string') {\n\t    sourceMap = JSON.parse(aSourceMap.replace(/^\\)\\]\\}'/, ''));\n\t  }\n\t\n\t  return sourceMap.sections != null\n\t    ? new IndexedSourceMapConsumer(sourceMap)\n\t    : new BasicSourceMapConsumer(sourceMap);\n\t}\n\t\n\tSourceMapConsumer.fromSourceMap = function(aSourceMap) {\n\t  return BasicSourceMapConsumer.fromSourceMap(aSourceMap);\n\t}\n\t\n\t/**\n\t * The version of the source mapping spec that we are consuming.\n\t */\n\tSourceMapConsumer.prototype._version = 3;\n\t\n\t// `__generatedMappings` and `__originalMappings` are arrays that hold the\n\t// parsed mapping coordinates from the source map's \"mappings\" attribute. They\n\t// are lazily instantiated, accessed via the `_generatedMappings` and\n\t// `_originalMappings` getters respectively, and we only parse the mappings\n\t// and create these arrays once queried for a source location. We jump through\n\t// these hoops because there can be many thousands of mappings, and parsing\n\t// them is expensive, so we only want to do it if we must.\n\t//\n\t// Each object in the arrays is of the form:\n\t//\n\t//     {\n\t//       generatedLine: The line number in the generated code,\n\t//       generatedColumn: The column number in the generated code,\n\t//       source: The path to the original source file that generated this\n\t//               chunk of code,\n\t//       originalLine: The line number in the original source that\n\t//                     corresponds to this chunk of generated code,\n\t//       originalColumn: The column number in the original source that\n\t//                       corresponds to this chunk of generated code,\n\t//       name: The name of the original symbol which generated this chunk of\n\t//             code.\n\t//     }\n\t//\n\t// All properties except for `generatedLine` and `generatedColumn` can be\n\t// `null`.\n\t//\n\t// `_generatedMappings` is ordered by the generated positions.\n\t//\n\t// `_originalMappings` is ordered by the original positions.\n\t\n\tSourceMapConsumer.prototype.__generatedMappings = null;\n\tObject.defineProperty(SourceMapConsumer.prototype, '_generatedMappings', {\n\t  get: function () {\n\t    if (!this.__generatedMappings) {\n\t      this._parseMappings(this._mappings, this.sourceRoot);\n\t    }\n\t\n\t    return this.__generatedMappings;\n\t  }\n\t});\n\t\n\tSourceMapConsumer.prototype.__originalMappings = null;\n\tObject.defineProperty(SourceMapConsumer.prototype, '_originalMappings', {\n\t  get: function () {\n\t    if (!this.__originalMappings) {\n\t      this._parseMappings(this._mappings, this.sourceRoot);\n\t    }\n\t\n\t    return this.__originalMappings;\n\t  }\n\t});\n\t\n\tSourceMapConsumer.prototype._charIsMappingSeparator =\n\t  function SourceMapConsumer_charIsMappingSeparator(aStr, index) {\n\t    var c = aStr.charAt(index);\n\t    return c === \";\" || c === \",\";\n\t  };\n\t\n\t/**\n\t * Parse the mappings in a string in to a data structure which we can easily\n\t * query (the ordered arrays in the `this.__generatedMappings` and\n\t * `this.__originalMappings` properties).\n\t */\n\tSourceMapConsumer.prototype._parseMappings =\n\t  function SourceMapConsumer_parseMappings(aStr, aSourceRoot) {\n\t    throw new Error(\"Subclasses must implement _parseMappings\");\n\t  };\n\t\n\tSourceMapConsumer.GENERATED_ORDER = 1;\n\tSourceMapConsumer.ORIGINAL_ORDER = 2;\n\t\n\tSourceMapConsumer.GREATEST_LOWER_BOUND = 1;\n\tSourceMapConsumer.LEAST_UPPER_BOUND = 2;\n\t\n\t/**\n\t * Iterate over each mapping between an original source/line/column and a\n\t * generated line/column in this source map.\n\t *\n\t * @param Function aCallback\n\t *        The function that is called with each mapping.\n\t * @param Object aContext\n\t *        Optional. If specified, this object will be the value of `this` every\n\t *        time that `aCallback` is called.\n\t * @param aOrder\n\t *        Either `SourceMapConsumer.GENERATED_ORDER` or\n\t *        `SourceMapConsumer.ORIGINAL_ORDER`. Specifies whether you want to\n\t *        iterate over the mappings sorted by the generated file's line/column\n\t *        order or the original's source/line/column order, respectively. Defaults to\n\t *        `SourceMapConsumer.GENERATED_ORDER`.\n\t */\n\tSourceMapConsumer.prototype.eachMapping =\n\t  function SourceMapConsumer_eachMapping(aCallback, aContext, aOrder) {\n\t    var context = aContext || null;\n\t    var order = aOrder || SourceMapConsumer.GENERATED_ORDER;\n\t\n\t    var mappings;\n\t    switch (order) {\n\t    case SourceMapConsumer.GENERATED_ORDER:\n\t      mappings = this._generatedMappings;\n\t      break;\n\t    case SourceMapConsumer.ORIGINAL_ORDER:\n\t      mappings = this._originalMappings;\n\t      break;\n\t    default:\n\t      throw new Error(\"Unknown order of iteration.\");\n\t    }\n\t\n\t    var sourceRoot = this.sourceRoot;\n\t    mappings.map(function (mapping) {\n\t      var source = mapping.source === null ? null : this._sources.at(mapping.source);\n\t      if (source != null && sourceRoot != null) {\n\t        source = util.join(sourceRoot, source);\n\t      }\n\t      return {\n\t        source: source,\n\t        generatedLine: mapping.generatedLine,\n\t        generatedColumn: mapping.generatedColumn,\n\t        originalLine: mapping.originalLine,\n\t        originalColumn: mapping.originalColumn,\n\t        name: mapping.name === null ? null : this._names.at(mapping.name)\n\t      };\n\t    }, this).forEach(aCallback, context);\n\t  };\n\t\n\t/**\n\t * Returns all generated line and column information for the original source,\n\t * line, and column provided. If no column is provided, returns all mappings\n\t * corresponding to a either the line we are searching for or the next\n\t * closest line that has any mappings. Otherwise, returns all mappings\n\t * corresponding to the given line and either the column we are searching for\n\t * or the next closest column that has any offsets.\n\t *\n\t * The only argument is an object with the following properties:\n\t *\n\t *   - source: The filename of the original source.\n\t *   - line: The line number in the original source.\n\t *   - column: Optional. the column number in the original source.\n\t *\n\t * and an array of objects is returned, each with the following properties:\n\t *\n\t *   - line: The line number in the generated source, or null.\n\t *   - column: The column number in the generated source, or null.\n\t */\n\tSourceMapConsumer.prototype.allGeneratedPositionsFor =\n\t  function SourceMapConsumer_allGeneratedPositionsFor(aArgs) {\n\t    var line = util.getArg(aArgs, 'line');\n\t\n\t    // When there is no exact match, BasicSourceMapConsumer.prototype._findMapping\n\t    // returns the index of the closest mapping less than the needle. By\n\t    // setting needle.originalColumn to 0, we thus find the last mapping for\n\t    // the given line, provided such a mapping exists.\n\t    var needle = {\n\t      source: util.getArg(aArgs, 'source'),\n\t      originalLine: line,\n\t      originalColumn: util.getArg(aArgs, 'column', 0)\n\t    };\n\t\n\t    if (this.sourceRoot != null) {\n\t      needle.source = util.relative(this.sourceRoot, needle.source);\n\t    }\n\t    if (!this._sources.has(needle.source)) {\n\t      return [];\n\t    }\n\t    needle.source = this._sources.indexOf(needle.source);\n\t\n\t    var mappings = [];\n\t\n\t    var index = this._findMapping(needle,\n\t                                  this._originalMappings,\n\t                                  \"originalLine\",\n\t                                  \"originalColumn\",\n\t                                  util.compareByOriginalPositions,\n\t                                  binarySearch.LEAST_UPPER_BOUND);\n\t    if (index >= 0) {\n\t      var mapping = this._originalMappings[index];\n\t\n\t      if (aArgs.column === undefined) {\n\t        var originalLine = mapping.originalLine;\n\t\n\t        // Iterate until either we run out of mappings, or we run into\n\t        // a mapping for a different line than the one we found. Since\n\t        // mappings are sorted, this is guaranteed to find all mappings for\n\t        // the line we found.\n\t        while (mapping && mapping.originalLine === originalLine) {\n\t          mappings.push({\n\t            line: util.getArg(mapping, 'generatedLine', null),\n\t            column: util.getArg(mapping, 'generatedColumn', null),\n\t            lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null)\n\t          });\n\t\n\t          mapping = this._originalMappings[++index];\n\t        }\n\t      } else {\n\t        var originalColumn = mapping.originalColumn;\n\t\n\t        // Iterate until either we run out of mappings, or we run into\n\t        // a mapping for a different line than the one we were searching for.\n\t        // Since mappings are sorted, this is guaranteed to find all mappings for\n\t        // the line we are searching for.\n\t        while (mapping &&\n\t               mapping.originalLine === line &&\n\t               mapping.originalColumn == originalColumn) {\n\t          mappings.push({\n\t            line: util.getArg(mapping, 'generatedLine', null),\n\t            column: util.getArg(mapping, 'generatedColumn', null),\n\t            lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null)\n\t          });\n\t\n\t          mapping = this._originalMappings[++index];\n\t        }\n\t      }\n\t    }\n\t\n\t    return mappings;\n\t  };\n\t\n\texports.SourceMapConsumer = SourceMapConsumer;\n\t\n\t/**\n\t * A BasicSourceMapConsumer instance represents a parsed source map which we can\n\t * query for information about the original file positions by giving it a file\n\t * position in the generated source.\n\t *\n\t * The only parameter is the raw source map (either as a JSON string, or\n\t * already parsed to an object). According to the spec, source maps have the\n\t * following attributes:\n\t *\n\t *   - version: Which version of the source map spec this map is following.\n\t *   - sources: An array of URLs to the original source files.\n\t *   - names: An array of identifiers which can be referrenced by individual mappings.\n\t *   - sourceRoot: Optional. The URL root from which all sources are relative.\n\t *   - sourcesContent: Optional. An array of contents of the original source files.\n\t *   - mappings: A string of base64 VLQs which contain the actual mappings.\n\t *   - file: Optional. The generated file this source map is associated with.\n\t *\n\t * Here is an example source map, taken from the source map spec[0]:\n\t *\n\t *     {\n\t *       version : 3,\n\t *       file: \"out.js\",\n\t *       sourceRoot : \"\",\n\t *       sources: [\"foo.js\", \"bar.js\"],\n\t *       names: [\"src\", \"maps\", \"are\", \"fun\"],\n\t *       mappings: \"AA,AB;;ABCDE;\"\n\t *     }\n\t *\n\t * [0]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit?pli=1#\n\t */\n\tfunction BasicSourceMapConsumer(aSourceMap) {\n\t  var sourceMap = aSourceMap;\n\t  if (typeof aSourceMap === 'string') {\n\t    sourceMap = JSON.parse(aSourceMap.replace(/^\\)\\]\\}'/, ''));\n\t  }\n\t\n\t  var version = util.getArg(sourceMap, 'version');\n\t  var sources = util.getArg(sourceMap, 'sources');\n\t  // Sass 3.3 leaves out the 'names' array, so we deviate from the spec (which\n\t  // requires the array) to play nice here.\n\t  var names = util.getArg(sourceMap, 'names', []);\n\t  var sourceRoot = util.getArg(sourceMap, 'sourceRoot', null);\n\t  var sourcesContent = util.getArg(sourceMap, 'sourcesContent', null);\n\t  var mappings = util.getArg(sourceMap, 'mappings');\n\t  var file = util.getArg(sourceMap, 'file', null);\n\t\n\t  // Once again, Sass deviates from the spec and supplies the version as a\n\t  // string rather than a number, so we use loose equality checking here.\n\t  if (version != this._version) {\n\t    throw new Error('Unsupported version: ' + version);\n\t  }\n\t\n\t  sources = sources\n\t    .map(String)\n\t    // Some source maps produce relative source paths like \"./foo.js\" instead of\n\t    // \"foo.js\".  Normalize these first so that future comparisons will succeed.\n\t    // See bugzil.la/1090768.\n\t    .map(util.normalize)\n\t    // Always ensure that absolute sources are internally stored relative to\n\t    // the source root, if the source root is absolute. Not doing this would\n\t    // be particularly problematic when the source root is a prefix of the\n\t    // source (valid, but why??). See github issue #199 and bugzil.la/1188982.\n\t    .map(function (source) {\n\t      return sourceRoot && util.isAbsolute(sourceRoot) && util.isAbsolute(source)\n\t        ? util.relative(sourceRoot, source)\n\t        : source;\n\t    });\n\t\n\t  // Pass `true` below to allow duplicate names and sources. While source maps\n\t  // are intended to be compressed and deduplicated, the TypeScript compiler\n\t  // sometimes generates source maps with duplicates in them. See Github issue\n\t  // #72 and bugzil.la/889492.\n\t  this._names = ArraySet.fromArray(names.map(String), true);\n\t  this._sources = ArraySet.fromArray(sources, true);\n\t\n\t  this.sourceRoot = sourceRoot;\n\t  this.sourcesContent = sourcesContent;\n\t  this._mappings = mappings;\n\t  this.file = file;\n\t}\n\t\n\tBasicSourceMapConsumer.prototype = Object.create(SourceMapConsumer.prototype);\n\tBasicSourceMapConsumer.prototype.consumer = SourceMapConsumer;\n\t\n\t/**\n\t * Create a BasicSourceMapConsumer from a SourceMapGenerator.\n\t *\n\t * @param SourceMapGenerator aSourceMap\n\t *        The source map that will be consumed.\n\t * @returns BasicSourceMapConsumer\n\t */\n\tBasicSourceMapConsumer.fromSourceMap =\n\t  function SourceMapConsumer_fromSourceMap(aSourceMap) {\n\t    var smc = Object.create(BasicSourceMapConsumer.prototype);\n\t\n\t    var names = smc._names = ArraySet.fromArray(aSourceMap._names.toArray(), true);\n\t    var sources = smc._sources = ArraySet.fromArray(aSourceMap._sources.toArray(), true);\n\t    smc.sourceRoot = aSourceMap._sourceRoot;\n\t    smc.sourcesContent = aSourceMap._generateSourcesContent(smc._sources.toArray(),\n\t                                                            smc.sourceRoot);\n\t    smc.file = aSourceMap._file;\n\t\n\t    // Because we are modifying the entries (by converting string sources and\n\t    // names to indices into the sources and names ArraySets), we have to make\n\t    // a copy of the entry or else bad things happen. Shared mutable state\n\t    // strikes again! See github issue #191.\n\t\n\t    var generatedMappings = aSourceMap._mappings.toArray().slice();\n\t    var destGeneratedMappings = smc.__generatedMappings = [];\n\t    var destOriginalMappings = smc.__originalMappings = [];\n\t\n\t    for (var i = 0, length = generatedMappings.length; i < length; i++) {\n\t      var srcMapping = generatedMappings[i];\n\t      var destMapping = new Mapping;\n\t      destMapping.generatedLine = srcMapping.generatedLine;\n\t      destMapping.generatedColumn = srcMapping.generatedColumn;\n\t\n\t      if (srcMapping.source) {\n\t        destMapping.source = sources.indexOf(srcMapping.source);\n\t        destMapping.originalLine = srcMapping.originalLine;\n\t        destMapping.originalColumn = srcMapping.originalColumn;\n\t\n\t        if (srcMapping.name) {\n\t          destMapping.name = names.indexOf(srcMapping.name);\n\t        }\n\t\n\t        destOriginalMappings.push(destMapping);\n\t      }\n\t\n\t      destGeneratedMappings.push(destMapping);\n\t    }\n\t\n\t    quickSort(smc.__originalMappings, util.compareByOriginalPositions);\n\t\n\t    return smc;\n\t  };\n\t\n\t/**\n\t * The version of the source mapping spec that we are consuming.\n\t */\n\tBasicSourceMapConsumer.prototype._version = 3;\n\t\n\t/**\n\t * The list of original sources.\n\t */\n\tObject.defineProperty(BasicSourceMapConsumer.prototype, 'sources', {\n\t  get: function () {\n\t    return this._sources.toArray().map(function (s) {\n\t      return this.sourceRoot != null ? util.join(this.sourceRoot, s) : s;\n\t    }, this);\n\t  }\n\t});\n\t\n\t/**\n\t * Provide the JIT with a nice shape / hidden class.\n\t */\n\tfunction Mapping() {\n\t  this.generatedLine = 0;\n\t  this.generatedColumn = 0;\n\t  this.source = null;\n\t  this.originalLine = null;\n\t  this.originalColumn = null;\n\t  this.name = null;\n\t}\n\t\n\t/**\n\t * Parse the mappings in a string in to a data structure which we can easily\n\t * query (the ordered arrays in the `this.__generatedMappings` and\n\t * `this.__originalMappings` properties).\n\t */\n\tBasicSourceMapConsumer.prototype._parseMappings =\n\t  function SourceMapConsumer_parseMappings(aStr, aSourceRoot) {\n\t    var generatedLine = 1;\n\t    var previousGeneratedColumn = 0;\n\t    var previousOriginalLine = 0;\n\t    var previousOriginalColumn = 0;\n\t    var previousSource = 0;\n\t    var previousName = 0;\n\t    var length = aStr.length;\n\t    var index = 0;\n\t    var cachedSegments = {};\n\t    var temp = {};\n\t    var originalMappings = [];\n\t    var generatedMappings = [];\n\t    var mapping, str, segment, end, value;\n\t\n\t    while (index < length) {\n\t      if (aStr.charAt(index) === ';') {\n\t        generatedLine++;\n\t        index++;\n\t        previousGeneratedColumn = 0;\n\t      }\n\t      else if (aStr.charAt(index) === ',') {\n\t        index++;\n\t      }\n\t      else {\n\t        mapping = new Mapping();\n\t        mapping.generatedLine = generatedLine;\n\t\n\t        // Because each offset is encoded relative to the previous one,\n\t        // many segments often have the same encoding. We can exploit this\n\t        // fact by caching the parsed variable length fields of each segment,\n\t        // allowing us to avoid a second parse if we encounter the same\n\t        // segment again.\n\t        for (end = index; end < length; end++) {\n\t          if (this._charIsMappingSeparator(aStr, end)) {\n\t            break;\n\t          }\n\t        }\n\t        str = aStr.slice(index, end);\n\t\n\t        segment = cachedSegments[str];\n\t        if (segment) {\n\t          index += str.length;\n\t        } else {\n\t          segment = [];\n\t          while (index < end) {\n\t            base64VLQ.decode(aStr, index, temp);\n\t            value = temp.value;\n\t            index = temp.rest;\n\t            segment.push(value);\n\t          }\n\t\n\t          if (segment.length === 2) {\n\t            throw new Error('Found a source, but no line and column');\n\t          }\n\t\n\t          if (segment.length === 3) {\n\t            throw new Error('Found a source and line, but no column');\n\t          }\n\t\n\t          cachedSegments[str] = segment;\n\t        }\n\t\n\t        // Generated column.\n\t        mapping.generatedColumn = previousGeneratedColumn + segment[0];\n\t        previousGeneratedColumn = mapping.generatedColumn;\n\t\n\t        if (segment.length > 1) {\n\t          // Original source.\n\t          mapping.source = previousSource + segment[1];\n\t          previousSource += segment[1];\n\t\n\t          // Original line.\n\t          mapping.originalLine = previousOriginalLine + segment[2];\n\t          previousOriginalLine = mapping.originalLine;\n\t          // Lines are stored 0-based\n\t          mapping.originalLine += 1;\n\t\n\t          // Original column.\n\t          mapping.originalColumn = previousOriginalColumn + segment[3];\n\t          previousOriginalColumn = mapping.originalColumn;\n\t\n\t          if (segment.length > 4) {\n\t            // Original name.\n\t            mapping.name = previousName + segment[4];\n\t            previousName += segment[4];\n\t          }\n\t        }\n\t\n\t        generatedMappings.push(mapping);\n\t        if (typeof mapping.originalLine === 'number') {\n\t          originalMappings.push(mapping);\n\t        }\n\t      }\n\t    }\n\t\n\t    quickSort(generatedMappings, util.compareByGeneratedPositionsDeflated);\n\t    this.__generatedMappings = generatedMappings;\n\t\n\t    quickSort(originalMappings, util.compareByOriginalPositions);\n\t    this.__originalMappings = originalMappings;\n\t  };\n\t\n\t/**\n\t * Find the mapping that best matches the hypothetical \"needle\" mapping that\n\t * we are searching for in the given \"haystack\" of mappings.\n\t */\n\tBasicSourceMapConsumer.prototype._findMapping =\n\t  function SourceMapConsumer_findMapping(aNeedle, aMappings, aLineName,\n\t                                         aColumnName, aComparator, aBias) {\n\t    // To return the position we are searching for, we must first find the\n\t    // mapping for the given position and then return the opposite position it\n\t    // points to. Because the mappings are sorted, we can use binary search to\n\t    // find the best mapping.\n\t\n\t    if (aNeedle[aLineName] <= 0) {\n\t      throw new TypeError('Line must be greater than or equal to 1, got '\n\t                          + aNeedle[aLineName]);\n\t    }\n\t    if (aNeedle[aColumnName] < 0) {\n\t      throw new TypeError('Column must be greater than or equal to 0, got '\n\t                          + aNeedle[aColumnName]);\n\t    }\n\t\n\t    return binarySearch.search(aNeedle, aMappings, aComparator, aBias);\n\t  };\n\t\n\t/**\n\t * Compute the last column for each generated mapping. The last column is\n\t * inclusive.\n\t */\n\tBasicSourceMapConsumer.prototype.computeColumnSpans =\n\t  function SourceMapConsumer_computeColumnSpans() {\n\t    for (var index = 0; index < this._generatedMappings.length; ++index) {\n\t      var mapping = this._generatedMappings[index];\n\t\n\t      // Mappings do not contain a field for the last generated columnt. We\n\t      // can come up with an optimistic estimate, however, by assuming that\n\t      // mappings are contiguous (i.e. given two consecutive mappings, the\n\t      // first mapping ends where the second one starts).\n\t      if (index + 1 < this._generatedMappings.length) {\n\t        var nextMapping = this._generatedMappings[index + 1];\n\t\n\t        if (mapping.generatedLine === nextMapping.generatedLine) {\n\t          mapping.lastGeneratedColumn = nextMapping.generatedColumn - 1;\n\t          continue;\n\t        }\n\t      }\n\t\n\t      // The last mapping for each line spans the entire line.\n\t      mapping.lastGeneratedColumn = Infinity;\n\t    }\n\t  };\n\t\n\t/**\n\t * Returns the original source, line, and column information for the generated\n\t * source's line and column positions provided. The only argument is an object\n\t * with the following properties:\n\t *\n\t *   - line: The line number in the generated source.\n\t *   - column: The column number in the generated source.\n\t *   - bias: Either 'SourceMapConsumer.GREATEST_LOWER_BOUND' or\n\t *     'SourceMapConsumer.LEAST_UPPER_BOUND'. Specifies whether to return the\n\t *     closest element that is smaller than or greater than the one we are\n\t *     searching for, respectively, if the exact element cannot be found.\n\t *     Defaults to 'SourceMapConsumer.GREATEST_LOWER_BOUND'.\n\t *\n\t * and an object is returned with the following properties:\n\t *\n\t *   - source: The original source file, or null.\n\t *   - line: The line number in the original source, or null.\n\t *   - column: The column number in the original source, or null.\n\t *   - name: The original identifier, or null.\n\t */\n\tBasicSourceMapConsumer.prototype.originalPositionFor =\n\t  function SourceMapConsumer_originalPositionFor(aArgs) {\n\t    var needle = {\n\t      generatedLine: util.getArg(aArgs, 'line'),\n\t      generatedColumn: util.getArg(aArgs, 'column')\n\t    };\n\t\n\t    var index = this._findMapping(\n\t      needle,\n\t      this._generatedMappings,\n\t      \"generatedLine\",\n\t      \"generatedColumn\",\n\t      util.compareByGeneratedPositionsDeflated,\n\t      util.getArg(aArgs, 'bias', SourceMapConsumer.GREATEST_LOWER_BOUND)\n\t    );\n\t\n\t    if (index >= 0) {\n\t      var mapping = this._generatedMappings[index];\n\t\n\t      if (mapping.generatedLine === needle.generatedLine) {\n\t        var source = util.getArg(mapping, 'source', null);\n\t        if (source !== null) {\n\t          source = this._sources.at(source);\n\t          if (this.sourceRoot != null) {\n\t            source = util.join(this.sourceRoot, source);\n\t          }\n\t        }\n\t        var name = util.getArg(mapping, 'name', null);\n\t        if (name !== null) {\n\t          name = this._names.at(name);\n\t        }\n\t        return {\n\t          source: source,\n\t          line: util.getArg(mapping, 'originalLine', null),\n\t          column: util.getArg(mapping, 'originalColumn', null),\n\t          name: name\n\t        };\n\t      }\n\t    }\n\t\n\t    return {\n\t      source: null,\n\t      line: null,\n\t      column: null,\n\t      name: null\n\t    };\n\t  };\n\t\n\t/**\n\t * Return true if we have the source content for every source in the source\n\t * map, false otherwise.\n\t */\n\tBasicSourceMapConsumer.prototype.hasContentsOfAllSources =\n\t  function BasicSourceMapConsumer_hasContentsOfAllSources() {\n\t    if (!this.sourcesContent) {\n\t      return false;\n\t    }\n\t    return this.sourcesContent.length >= this._sources.size() &&\n\t      !this.sourcesContent.some(function (sc) { return sc == null; });\n\t  };\n\t\n\t/**\n\t * Returns the original source content. The only argument is the url of the\n\t * original source file. Returns null if no original source content is\n\t * available.\n\t */\n\tBasicSourceMapConsumer.prototype.sourceContentFor =\n\t  function SourceMapConsumer_sourceContentFor(aSource, nullOnMissing) {\n\t    if (!this.sourcesContent) {\n\t      return null;\n\t    }\n\t\n\t    if (this.sourceRoot != null) {\n\t      aSource = util.relative(this.sourceRoot, aSource);\n\t    }\n\t\n\t    if (this._sources.has(aSource)) {\n\t      return this.sourcesContent[this._sources.indexOf(aSource)];\n\t    }\n\t\n\t    var url;\n\t    if (this.sourceRoot != null\n\t        && (url = util.urlParse(this.sourceRoot))) {\n\t      // XXX: file:// URIs and absolute paths lead to unexpected behavior for\n\t      // many users. We can help them out when they expect file:// URIs to\n\t      // behave like it would if they were running a local HTTP server. See\n\t      // https://bugzilla.mozilla.org/show_bug.cgi?id=885597.\n\t      var fileUriAbsPath = aSource.replace(/^file:\\/\\//, \"\");\n\t      if (url.scheme == \"file\"\n\t          && this._sources.has(fileUriAbsPath)) {\n\t        return this.sourcesContent[this._sources.indexOf(fileUriAbsPath)]\n\t      }\n\t\n\t      if ((!url.path || url.path == \"/\")\n\t          && this._sources.has(\"/\" + aSource)) {\n\t        return this.sourcesContent[this._sources.indexOf(\"/\" + aSource)];\n\t      }\n\t    }\n\t\n\t    // This function is used recursively from\n\t    // IndexedSourceMapConsumer.prototype.sourceContentFor. In that case, we\n\t    // don't want to throw if we can't find the source - we just want to\n\t    // return null, so we provide a flag to exit gracefully.\n\t    if (nullOnMissing) {\n\t      return null;\n\t    }\n\t    else {\n\t      throw new Error('\"' + aSource + '\" is not in the SourceMap.');\n\t    }\n\t  };\n\t\n\t/**\n\t * Returns the generated line and column information for the original source,\n\t * line, and column positions provided. The only argument is an object with\n\t * the following properties:\n\t *\n\t *   - source: The filename of the original source.\n\t *   - line: The line number in the original source.\n\t *   - column: The column number in the original source.\n\t *   - bias: Either 'SourceMapConsumer.GREATEST_LOWER_BOUND' or\n\t *     'SourceMapConsumer.LEAST_UPPER_BOUND'. Specifies whether to return the\n\t *     closest element that is smaller than or greater than the one we are\n\t *     searching for, respectively, if the exact element cannot be found.\n\t *     Defaults to 'SourceMapConsumer.GREATEST_LOWER_BOUND'.\n\t *\n\t * and an object is returned with the following properties:\n\t *\n\t *   - line: The line number in the generated source, or null.\n\t *   - column: The column number in the generated source, or null.\n\t */\n\tBasicSourceMapConsumer.prototype.generatedPositionFor =\n\t  function SourceMapConsumer_generatedPositionFor(aArgs) {\n\t    var source = util.getArg(aArgs, 'source');\n\t    if (this.sourceRoot != null) {\n\t      source = util.relative(this.sourceRoot, source);\n\t    }\n\t    if (!this._sources.has(source)) {\n\t      return {\n\t        line: null,\n\t        column: null,\n\t        lastColumn: null\n\t      };\n\t    }\n\t    source = this._sources.indexOf(source);\n\t\n\t    var needle = {\n\t      source: source,\n\t      originalLine: util.getArg(aArgs, 'line'),\n\t      originalColumn: util.getArg(aArgs, 'column')\n\t    };\n\t\n\t    var index = this._findMapping(\n\t      needle,\n\t      this._originalMappings,\n\t      \"originalLine\",\n\t      \"originalColumn\",\n\t      util.compareByOriginalPositions,\n\t      util.getArg(aArgs, 'bias', SourceMapConsumer.GREATEST_LOWER_BOUND)\n\t    );\n\t\n\t    if (index >= 0) {\n\t      var mapping = this._originalMappings[index];\n\t\n\t      if (mapping.source === needle.source) {\n\t        return {\n\t          line: util.getArg(mapping, 'generatedLine', null),\n\t          column: util.getArg(mapping, 'generatedColumn', null),\n\t          lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null)\n\t        };\n\t      }\n\t    }\n\t\n\t    return {\n\t      line: null,\n\t      column: null,\n\t      lastColumn: null\n\t    };\n\t  };\n\t\n\texports.BasicSourceMapConsumer = BasicSourceMapConsumer;\n\t\n\t/**\n\t * An IndexedSourceMapConsumer instance represents a parsed source map which\n\t * we can query for information. It differs from BasicSourceMapConsumer in\n\t * that it takes \"indexed\" source maps (i.e. ones with a \"sections\" field) as\n\t * input.\n\t *\n\t * The only parameter is a raw source map (either as a JSON string, or already\n\t * parsed to an object). According to the spec for indexed source maps, they\n\t * have the following attributes:\n\t *\n\t *   - version: Which version of the source map spec this map is following.\n\t *   - file: Optional. The generated file this source map is associated with.\n\t *   - sections: A list of section definitions.\n\t *\n\t * Each value under the \"sections\" field has two fields:\n\t *   - offset: The offset into the original specified at which this section\n\t *       begins to apply, defined as an object with a \"line\" and \"column\"\n\t *       field.\n\t *   - map: A source map definition. This source map could also be indexed,\n\t *       but doesn't have to be.\n\t *\n\t * Instead of the \"map\" field, it's also possible to have a \"url\" field\n\t * specifying a URL to retrieve a source map from, but that's currently\n\t * unsupported.\n\t *\n\t * Here's an example source map, taken from the source map spec[0], but\n\t * modified to omit a section which uses the \"url\" field.\n\t *\n\t *  {\n\t *    version : 3,\n\t *    file: \"app.js\",\n\t *    sections: [{\n\t *      offset: {line:100, column:10},\n\t *      map: {\n\t *        version : 3,\n\t *        file: \"section.js\",\n\t *        sources: [\"foo.js\", \"bar.js\"],\n\t *        names: [\"src\", \"maps\", \"are\", \"fun\"],\n\t *        mappings: \"AAAA,E;;ABCDE;\"\n\t *      }\n\t *    }],\n\t *  }\n\t *\n\t * [0]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit#heading=h.535es3xeprgt\n\t */\n\tfunction IndexedSourceMapConsumer(aSourceMap) {\n\t  var sourceMap = aSourceMap;\n\t  if (typeof aSourceMap === 'string') {\n\t    sourceMap = JSON.parse(aSourceMap.replace(/^\\)\\]\\}'/, ''));\n\t  }\n\t\n\t  var version = util.getArg(sourceMap, 'version');\n\t  var sections = util.getArg(sourceMap, 'sections');\n\t\n\t  if (version != this._version) {\n\t    throw new Error('Unsupported version: ' + version);\n\t  }\n\t\n\t  this._sources = new ArraySet();\n\t  this._names = new ArraySet();\n\t\n\t  var lastOffset = {\n\t    line: -1,\n\t    column: 0\n\t  };\n\t  this._sections = sections.map(function (s) {\n\t    if (s.url) {\n\t      // The url field will require support for asynchronicity.\n\t      // See https://github.com/mozilla/source-map/issues/16\n\t      throw new Error('Support for url field in sections not implemented.');\n\t    }\n\t    var offset = util.getArg(s, 'offset');\n\t    var offsetLine = util.getArg(offset, 'line');\n\t    var offsetColumn = util.getArg(offset, 'column');\n\t\n\t    if (offsetLine < lastOffset.line ||\n\t        (offsetLine === lastOffset.line && offsetColumn < lastOffset.column)) {\n\t      throw new Error('Section offsets must be ordered and non-overlapping.');\n\t    }\n\t    lastOffset = offset;\n\t\n\t    return {\n\t      generatedOffset: {\n\t        // The offset fields are 0-based, but we use 1-based indices when\n\t        // encoding/decoding from VLQ.\n\t        generatedLine: offsetLine + 1,\n\t        generatedColumn: offsetColumn + 1\n\t      },\n\t      consumer: new SourceMapConsumer(util.getArg(s, 'map'))\n\t    }\n\t  });\n\t}\n\t\n\tIndexedSourceMapConsumer.prototype = Object.create(SourceMapConsumer.prototype);\n\tIndexedSourceMapConsumer.prototype.constructor = SourceMapConsumer;\n\t\n\t/**\n\t * The version of the source mapping spec that we are consuming.\n\t */\n\tIndexedSourceMapConsumer.prototype._version = 3;\n\t\n\t/**\n\t * The list of original sources.\n\t */\n\tObject.defineProperty(IndexedSourceMapConsumer.prototype, 'sources', {\n\t  get: function () {\n\t    var sources = [];\n\t    for (var i = 0; i < this._sections.length; i++) {\n\t      for (var j = 0; j < this._sections[i].consumer.sources.length; j++) {\n\t        sources.push(this._sections[i].consumer.sources[j]);\n\t      }\n\t    }\n\t    return sources;\n\t  }\n\t});\n\t\n\t/**\n\t * Returns the original source, line, and column information for the generated\n\t * source's line and column positions provided. The only argument is an object\n\t * with the following properties:\n\t *\n\t *   - line: The line number in the generated source.\n\t *   - column: The column number in the generated source.\n\t *\n\t * and an object is returned with the following properties:\n\t *\n\t *   - source: The original source file, or null.\n\t *   - line: The line number in the original source, or null.\n\t *   - column: The column number in the original source, or null.\n\t *   - name: The original identifier, or null.\n\t */\n\tIndexedSourceMapConsumer.prototype.originalPositionFor =\n\t  function IndexedSourceMapConsumer_originalPositionFor(aArgs) {\n\t    var needle = {\n\t      generatedLine: util.getArg(aArgs, 'line'),\n\t      generatedColumn: util.getArg(aArgs, 'column')\n\t    };\n\t\n\t    // Find the section containing the generated position we're trying to map\n\t    // to an original position.\n\t    var sectionIndex = binarySearch.search(needle, this._sections,\n\t      function(needle, section) {\n\t        var cmp = needle.generatedLine - section.generatedOffset.generatedLine;\n\t        if (cmp) {\n\t          return cmp;\n\t        }\n\t\n\t        return (needle.generatedColumn -\n\t                section.generatedOffset.generatedColumn);\n\t      });\n\t    var section = this._sections[sectionIndex];\n\t\n\t    if (!section) {\n\t      return {\n\t        source: null,\n\t        line: null,\n\t        column: null,\n\t        name: null\n\t      };\n\t    }\n\t\n\t    return section.consumer.originalPositionFor({\n\t      line: needle.generatedLine -\n\t        (section.generatedOffset.generatedLine - 1),\n\t      column: needle.generatedColumn -\n\t        (section.generatedOffset.generatedLine === needle.generatedLine\n\t         ? section.generatedOffset.generatedColumn - 1\n\t         : 0),\n\t      bias: aArgs.bias\n\t    });\n\t  };\n\t\n\t/**\n\t * Return true if we have the source content for every source in the source\n\t * map, false otherwise.\n\t */\n\tIndexedSourceMapConsumer.prototype.hasContentsOfAllSources =\n\t  function IndexedSourceMapConsumer_hasContentsOfAllSources() {\n\t    return this._sections.every(function (s) {\n\t      return s.consumer.hasContentsOfAllSources();\n\t    });\n\t  };\n\t\n\t/**\n\t * Returns the original source content. The only argument is the url of the\n\t * original source file. Returns null if no original source content is\n\t * available.\n\t */\n\tIndexedSourceMapConsumer.prototype.sourceContentFor =\n\t  function IndexedSourceMapConsumer_sourceContentFor(aSource, nullOnMissing) {\n\t    for (var i = 0; i < this._sections.length; i++) {\n\t      var section = this._sections[i];\n\t\n\t      var content = section.consumer.sourceContentFor(aSource, true);\n\t      if (content) {\n\t        return content;\n\t      }\n\t    }\n\t    if (nullOnMissing) {\n\t      return null;\n\t    }\n\t    else {\n\t      throw new Error('\"' + aSource + '\" is not in the SourceMap.');\n\t    }\n\t  };\n\t\n\t/**\n\t * Returns the generated line and column information for the original source,\n\t * line, and column positions provided. The only argument is an object with\n\t * the following properties:\n\t *\n\t *   - source: The filename of the original source.\n\t *   - line: The line number in the original source.\n\t *   - column: The column number in the original source.\n\t *\n\t * and an object is returned with the following properties:\n\t *\n\t *   - line: The line number in the generated source, or null.\n\t *   - column: The column number in the generated source, or null.\n\t */\n\tIndexedSourceMapConsumer.prototype.generatedPositionFor =\n\t  function IndexedSourceMapConsumer_generatedPositionFor(aArgs) {\n\t    for (var i = 0; i < this._sections.length; i++) {\n\t      var section = this._sections[i];\n\t\n\t      // Only consider this section if the requested source is in the list of\n\t      // sources of the consumer.\n\t      if (section.consumer.sources.indexOf(util.getArg(aArgs, 'source')) === -1) {\n\t        continue;\n\t      }\n\t      var generatedPosition = section.consumer.generatedPositionFor(aArgs);\n\t      if (generatedPosition) {\n\t        var ret = {\n\t          line: generatedPosition.line +\n\t            (section.generatedOffset.generatedLine - 1),\n\t          column: generatedPosition.column +\n\t            (section.generatedOffset.generatedLine === generatedPosition.line\n\t             ? section.generatedOffset.generatedColumn - 1\n\t             : 0)\n\t        };\n\t        return ret;\n\t      }\n\t    }\n\t\n\t    return {\n\t      line: null,\n\t      column: null\n\t    };\n\t  };\n\t\n\t/**\n\t * Parse the mappings in a string in to a data structure which we can easily\n\t * query (the ordered arrays in the `this.__generatedMappings` and\n\t * `this.__originalMappings` properties).\n\t */\n\tIndexedSourceMapConsumer.prototype._parseMappings =\n\t  function IndexedSourceMapConsumer_parseMappings(aStr, aSourceRoot) {\n\t    this.__generatedMappings = [];\n\t    this.__originalMappings = [];\n\t    for (var i = 0; i < this._sections.length; i++) {\n\t      var section = this._sections[i];\n\t      var sectionMappings = section.consumer._generatedMappings;\n\t      for (var j = 0; j < sectionMappings.length; j++) {\n\t        var mapping = sectionMappings[j];\n\t\n\t        var source = section.consumer._sources.at(mapping.source);\n\t        if (section.consumer.sourceRoot !== null) {\n\t          source = util.join(section.consumer.sourceRoot, source);\n\t        }\n\t        this._sources.add(source);\n\t        source = this._sources.indexOf(source);\n\t\n\t        var name = section.consumer._names.at(mapping.name);\n\t        this._names.add(name);\n\t        name = this._names.indexOf(name);\n\t\n\t        // The mappings coming from the consumer for the section have\n\t        // generated positions relative to the start of the section, so we\n\t        // need to offset them to be relative to the start of the concatenated\n\t        // generated file.\n\t        var adjustedMapping = {\n\t          source: source,\n\t          generatedLine: mapping.generatedLine +\n\t            (section.generatedOffset.generatedLine - 1),\n\t          generatedColumn: mapping.generatedColumn +\n\t            (section.generatedOffset.generatedLine === mapping.generatedLine\n\t            ? section.generatedOffset.generatedColumn - 1\n\t            : 0),\n\t          originalLine: mapping.originalLine,\n\t          originalColumn: mapping.originalColumn,\n\t          name: name\n\t        };\n\t\n\t        this.__generatedMappings.push(adjustedMapping);\n\t        if (typeof adjustedMapping.originalLine === 'number') {\n\t          this.__originalMappings.push(adjustedMapping);\n\t        }\n\t      }\n\t    }\n\t\n\t    quickSort(this.__generatedMappings, util.compareByGeneratedPositionsDeflated);\n\t    quickSort(this.__originalMappings, util.compareByOriginalPositions);\n\t  };\n\t\n\texports.IndexedSourceMapConsumer = IndexedSourceMapConsumer;\n\n\n/***/ }),\n/* 8 */\n/***/ (function(module, exports) {\n\n\t/* -*- Mode: js; js-indent-level: 2; -*- */\n\t/*\n\t * Copyright 2011 Mozilla Foundation and contributors\n\t * Licensed under the New BSD license. See LICENSE or:\n\t * http://opensource.org/licenses/BSD-3-Clause\n\t */\n\t\n\texports.GREATEST_LOWER_BOUND = 1;\n\texports.LEAST_UPPER_BOUND = 2;\n\t\n\t/**\n\t * Recursive implementation of binary search.\n\t *\n\t * @param aLow Indices here and lower do not contain the needle.\n\t * @param aHigh Indices here and higher do not contain the needle.\n\t * @param aNeedle The element being searched for.\n\t * @param aHaystack The non-empty array being searched.\n\t * @param aCompare Function which takes two elements and returns -1, 0, or 1.\n\t * @param aBias Either 'binarySearch.GREATEST_LOWER_BOUND' or\n\t *     'binarySearch.LEAST_UPPER_BOUND'. Specifies whether to return the\n\t *     closest element that is smaller than or greater than the one we are\n\t *     searching for, respectively, if the exact element cannot be found.\n\t */\n\tfunction recursiveSearch(aLow, aHigh, aNeedle, aHaystack, aCompare, aBias) {\n\t  // This function terminates when one of the following is true:\n\t  //\n\t  //   1. We find the exact element we are looking for.\n\t  //\n\t  //   2. We did not find the exact element, but we can return the index of\n\t  //      the next-closest element.\n\t  //\n\t  //   3. We did not find the exact element, and there is no next-closest\n\t  //      element than the one we are searching for, so we return -1.\n\t  var mid = Math.floor((aHigh - aLow) / 2) + aLow;\n\t  var cmp = aCompare(aNeedle, aHaystack[mid], true);\n\t  if (cmp === 0) {\n\t    // Found the element we are looking for.\n\t    return mid;\n\t  }\n\t  else if (cmp > 0) {\n\t    // Our needle is greater than aHaystack[mid].\n\t    if (aHigh - mid > 1) {\n\t      // The element is in the upper half.\n\t      return recursiveSearch(mid, aHigh, aNeedle, aHaystack, aCompare, aBias);\n\t    }\n\t\n\t    // The exact needle element was not found in this haystack. Determine if\n\t    // we are in termination case (3) or (2) and return the appropriate thing.\n\t    if (aBias == exports.LEAST_UPPER_BOUND) {\n\t      return aHigh < aHaystack.length ? aHigh : -1;\n\t    } else {\n\t      return mid;\n\t    }\n\t  }\n\t  else {\n\t    // Our needle is less than aHaystack[mid].\n\t    if (mid - aLow > 1) {\n\t      // The element is in the lower half.\n\t      return recursiveSearch(aLow, mid, aNeedle, aHaystack, aCompare, aBias);\n\t    }\n\t\n\t    // we are in termination case (3) or (2) and return the appropriate thing.\n\t    if (aBias == exports.LEAST_UPPER_BOUND) {\n\t      return mid;\n\t    } else {\n\t      return aLow < 0 ? -1 : aLow;\n\t    }\n\t  }\n\t}\n\t\n\t/**\n\t * This is an implementation of binary search which will always try and return\n\t * the index of the closest element if there is no exact hit. This is because\n\t * mappings between original and generated line/col pairs are single points,\n\t * and there is an implicit region between each of them, so a miss just means\n\t * that you aren't on the very start of a region.\n\t *\n\t * @param aNeedle The element you are looking for.\n\t * @param aHaystack The array that is being searched.\n\t * @param aCompare A function which takes the needle and an element in the\n\t *     array and returns -1, 0, or 1 depending on whether the needle is less\n\t *     than, equal to, or greater than the element, respectively.\n\t * @param aBias Either 'binarySearch.GREATEST_LOWER_BOUND' or\n\t *     'binarySearch.LEAST_UPPER_BOUND'. Specifies whether to return the\n\t *     closest element that is smaller than or greater than the one we are\n\t *     searching for, respectively, if the exact element cannot be found.\n\t *     Defaults to 'binarySearch.GREATEST_LOWER_BOUND'.\n\t */\n\texports.search = function search(aNeedle, aHaystack, aCompare, aBias) {\n\t  if (aHaystack.length === 0) {\n\t    return -1;\n\t  }\n\t\n\t  var index = recursiveSearch(-1, aHaystack.length, aNeedle, aHaystack,\n\t                              aCompare, aBias || exports.GREATEST_LOWER_BOUND);\n\t  if (index < 0) {\n\t    return -1;\n\t  }\n\t\n\t  // We have found either the exact element, or the next-closest element than\n\t  // the one we are searching for. However, there may be more than one such\n\t  // element. Make sure we always return the smallest of these.\n\t  while (index - 1 >= 0) {\n\t    if (aCompare(aHaystack[index], aHaystack[index - 1], true) !== 0) {\n\t      break;\n\t    }\n\t    --index;\n\t  }\n\t\n\t  return index;\n\t};\n\n\n/***/ }),\n/* 9 */\n/***/ (function(module, exports) {\n\n\t/* -*- Mode: js; js-indent-level: 2; -*- */\n\t/*\n\t * Copyright 2011 Mozilla Foundation and contributors\n\t * Licensed under the New BSD license. See LICENSE or:\n\t * http://opensource.org/licenses/BSD-3-Clause\n\t */\n\t\n\t// It turns out that some (most?) JavaScript engines don't self-host\n\t// `Array.prototype.sort`. This makes sense because C++ will likely remain\n\t// faster than JS when doing raw CPU-intensive sorting. However, when using a\n\t// custom comparator function, calling back and forth between the VM's C++ and\n\t// JIT'd JS is rather slow *and* loses JIT type information, resulting in\n\t// worse generated code for the comparator function than would be optimal. In\n\t// fact, when sorting with a comparator, these costs outweigh the benefits of\n\t// sorting in C++. By using our own JS-implemented Quick Sort (below), we get\n\t// a ~3500ms mean speed-up in `bench/bench.html`.\n\t\n\t/**\n\t * Swap the elements indexed by `x` and `y` in the array `ary`.\n\t *\n\t * @param {Array} ary\n\t *        The array.\n\t * @param {Number} x\n\t *        The index of the first item.\n\t * @param {Number} y\n\t *        The index of the second item.\n\t */\n\tfunction swap(ary, x, y) {\n\t  var temp = ary[x];\n\t  ary[x] = ary[y];\n\t  ary[y] = temp;\n\t}\n\t\n\t/**\n\t * Returns a random integer within the range `low .. high` inclusive.\n\t *\n\t * @param {Number} low\n\t *        The lower bound on the range.\n\t * @param {Number} high\n\t *        The upper bound on the range.\n\t */\n\tfunction randomIntInRange(low, high) {\n\t  return Math.round(low + (Math.random() * (high - low)));\n\t}\n\t\n\t/**\n\t * The Quick Sort algorithm.\n\t *\n\t * @param {Array} ary\n\t *        An array to sort.\n\t * @param {function} comparator\n\t *        Function to use to compare two items.\n\t * @param {Number} p\n\t *        Start index of the array\n\t * @param {Number} r\n\t *        End index of the array\n\t */\n\tfunction doQuickSort(ary, comparator, p, r) {\n\t  // If our lower bound is less than our upper bound, we (1) partition the\n\t  // array into two pieces and (2) recurse on each half. If it is not, this is\n\t  // the empty array and our base case.\n\t\n\t  if (p < r) {\n\t    // (1) Partitioning.\n\t    //\n\t    // The partitioning chooses a pivot between `p` and `r` and moves all\n\t    // elements that are less than or equal to the pivot to the before it, and\n\t    // all the elements that are greater than it after it. The effect is that\n\t    // once partition is done, the pivot is in the exact place it will be when\n\t    // the array is put in sorted order, and it will not need to be moved\n\t    // again. This runs in O(n) time.\n\t\n\t    // Always choose a random pivot so that an input array which is reverse\n\t    // sorted does not cause O(n^2) running time.\n\t    var pivotIndex = randomIntInRange(p, r);\n\t    var i = p - 1;\n\t\n\t    swap(ary, pivotIndex, r);\n\t    var pivot = ary[r];\n\t\n\t    // Immediately after `j` is incremented in this loop, the following hold\n\t    // true:\n\t    //\n\t    //   * Every element in `ary[p .. i]` is less than or equal to the pivot.\n\t    //\n\t    //   * Every element in `ary[i+1 .. j-1]` is greater than the pivot.\n\t    for (var j = p; j < r; j++) {\n\t      if (comparator(ary[j], pivot) <= 0) {\n\t        i += 1;\n\t        swap(ary, i, j);\n\t      }\n\t    }\n\t\n\t    swap(ary, i + 1, j);\n\t    var q = i + 1;\n\t\n\t    // (2) Recurse on each half.\n\t\n\t    doQuickSort(ary, comparator, p, q - 1);\n\t    doQuickSort(ary, comparator, q + 1, r);\n\t  }\n\t}\n\t\n\t/**\n\t * Sort the given array in-place with the given comparator function.\n\t *\n\t * @param {Array} ary\n\t *        An array to sort.\n\t * @param {function} comparator\n\t *        Function to use to compare two items.\n\t */\n\texports.quickSort = function (ary, comparator) {\n\t  doQuickSort(ary, comparator, 0, ary.length - 1);\n\t};\n\n\n/***/ }),\n/* 10 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/* -*- Mode: js; js-indent-level: 2; -*- */\n\t/*\n\t * Copyright 2011 Mozilla Foundation and contributors\n\t * Licensed under the New BSD license. See LICENSE or:\n\t * http://opensource.org/licenses/BSD-3-Clause\n\t */\n\t\n\tvar SourceMapGenerator = __webpack_require__(1).SourceMapGenerator;\n\tvar util = __webpack_require__(4);\n\t\n\t// Matches a Windows-style `\\r\\n` newline or a `\\n` newline used by all other\n\t// operating systems these days (capturing the result).\n\tvar REGEX_NEWLINE = /(\\r?\\n)/;\n\t\n\t// Newline character code for charCodeAt() comparisons\n\tvar NEWLINE_CODE = 10;\n\t\n\t// Private symbol for identifying `SourceNode`s when multiple versions of\n\t// the source-map library are loaded. This MUST NOT CHANGE across\n\t// versions!\n\tvar isSourceNode = \"$$$isSourceNode$$$\";\n\t\n\t/**\n\t * SourceNodes provide a way to abstract over interpolating/concatenating\n\t * snippets of generated JavaScript source code while maintaining the line and\n\t * column information associated with the original source code.\n\t *\n\t * @param aLine The original line number.\n\t * @param aColumn The original column number.\n\t * @param aSource The original source's filename.\n\t * @param aChunks Optional. An array of strings which are snippets of\n\t *        generated JS, or other SourceNodes.\n\t * @param aName The original identifier.\n\t */\n\tfunction SourceNode(aLine, aColumn, aSource, aChunks, aName) {\n\t  this.children = [];\n\t  this.sourceContents = {};\n\t  this.line = aLine == null ? null : aLine;\n\t  this.column = aColumn == null ? null : aColumn;\n\t  this.source = aSource == null ? null : aSource;\n\t  this.name = aName == null ? null : aName;\n\t  this[isSourceNode] = true;\n\t  if (aChunks != null) this.add(aChunks);\n\t}\n\t\n\t/**\n\t * Creates a SourceNode from generated code and a SourceMapConsumer.\n\t *\n\t * @param aGeneratedCode The generated code\n\t * @param aSourceMapConsumer The SourceMap for the generated code\n\t * @param aRelativePath Optional. The path that relative sources in the\n\t *        SourceMapConsumer should be relative to.\n\t */\n\tSourceNode.fromStringWithSourceMap =\n\t  function SourceNode_fromStringWithSourceMap(aGeneratedCode, aSourceMapConsumer, aRelativePath) {\n\t    // The SourceNode we want to fill with the generated code\n\t    // and the SourceMap\n\t    var node = new SourceNode();\n\t\n\t    // All even indices of this array are one line of the generated code,\n\t    // while all odd indices are the newlines between two adjacent lines\n\t    // (since `REGEX_NEWLINE` captures its match).\n\t    // Processed fragments are accessed by calling `shiftNextLine`.\n\t    var remainingLines = aGeneratedCode.split(REGEX_NEWLINE);\n\t    var remainingLinesIndex = 0;\n\t    var shiftNextLine = function() {\n\t      var lineContents = getNextLine();\n\t      // The last line of a file might not have a newline.\n\t      var newLine = getNextLine() || \"\";\n\t      return lineContents + newLine;\n\t\n\t      function getNextLine() {\n\t        return remainingLinesIndex < remainingLines.length ?\n\t            remainingLines[remainingLinesIndex++] : undefined;\n\t      }\n\t    };\n\t\n\t    // We need to remember the position of \"remainingLines\"\n\t    var lastGeneratedLine = 1, lastGeneratedColumn = 0;\n\t\n\t    // The generate SourceNodes we need a code range.\n\t    // To extract it current and last mapping is used.\n\t    // Here we store the last mapping.\n\t    var lastMapping = null;\n\t\n\t    aSourceMapConsumer.eachMapping(function (mapping) {\n\t      if (lastMapping !== null) {\n\t        // We add the code from \"lastMapping\" to \"mapping\":\n\t        // First check if there is a new line in between.\n\t        if (lastGeneratedLine < mapping.generatedLine) {\n\t          // Associate first line with \"lastMapping\"\n\t          addMappingWithCode(lastMapping, shiftNextLine());\n\t          lastGeneratedLine++;\n\t          lastGeneratedColumn = 0;\n\t          // The remaining code is added without mapping\n\t        } else {\n\t          // There is no new line in between.\n\t          // Associate the code between \"lastGeneratedColumn\" and\n\t          // \"mapping.generatedColumn\" with \"lastMapping\"\n\t          var nextLine = remainingLines[remainingLinesIndex];\n\t          var code = nextLine.substr(0, mapping.generatedColumn -\n\t                                        lastGeneratedColumn);\n\t          remainingLines[remainingLinesIndex] = nextLine.substr(mapping.generatedColumn -\n\t                                              lastGeneratedColumn);\n\t          lastGeneratedColumn = mapping.generatedColumn;\n\t          addMappingWithCode(lastMapping, code);\n\t          // No more remaining code, continue\n\t          lastMapping = mapping;\n\t          return;\n\t        }\n\t      }\n\t      // We add the generated code until the first mapping\n\t      // to the SourceNode without any mapping.\n\t      // Each line is added as separate string.\n\t      while (lastGeneratedLine < mapping.generatedLine) {\n\t        node.add(shiftNextLine());\n\t        lastGeneratedLine++;\n\t      }\n\t      if (lastGeneratedColumn < mapping.generatedColumn) {\n\t        var nextLine = remainingLines[remainingLinesIndex];\n\t        node.add(nextLine.substr(0, mapping.generatedColumn));\n\t        remainingLines[remainingLinesIndex] = nextLine.substr(mapping.generatedColumn);\n\t        lastGeneratedColumn = mapping.generatedColumn;\n\t      }\n\t      lastMapping = mapping;\n\t    }, this);\n\t    // We have processed all mappings.\n\t    if (remainingLinesIndex < remainingLines.length) {\n\t      if (lastMapping) {\n\t        // Associate the remaining code in the current line with \"lastMapping\"\n\t        addMappingWithCode(lastMapping, shiftNextLine());\n\t      }\n\t      // and add the remaining lines without any mapping\n\t      node.add(remainingLines.splice(remainingLinesIndex).join(\"\"));\n\t    }\n\t\n\t    // Copy sourcesContent into SourceNode\n\t    aSourceMapConsumer.sources.forEach(function (sourceFile) {\n\t      var content = aSourceMapConsumer.sourceContentFor(sourceFile);\n\t      if (content != null) {\n\t        if (aRelativePath != null) {\n\t          sourceFile = util.join(aRelativePath, sourceFile);\n\t        }\n\t        node.setSourceContent(sourceFile, content);\n\t      }\n\t    });\n\t\n\t    return node;\n\t\n\t    function addMappingWithCode(mapping, code) {\n\t      if (mapping === null || mapping.source === undefined) {\n\t        node.add(code);\n\t      } else {\n\t        var source = aRelativePath\n\t          ? util.join(aRelativePath, mapping.source)\n\t          : mapping.source;\n\t        node.add(new SourceNode(mapping.originalLine,\n\t                                mapping.originalColumn,\n\t                                source,\n\t                                code,\n\t                                mapping.name));\n\t      }\n\t    }\n\t  };\n\t\n\t/**\n\t * Add a chunk of generated JS to this source node.\n\t *\n\t * @param aChunk A string snippet of generated JS code, another instance of\n\t *        SourceNode, or an array where each member is one of those things.\n\t */\n\tSourceNode.prototype.add = function SourceNode_add(aChunk) {\n\t  if (Array.isArray(aChunk)) {\n\t    aChunk.forEach(function (chunk) {\n\t      this.add(chunk);\n\t    }, this);\n\t  }\n\t  else if (aChunk[isSourceNode] || typeof aChunk === \"string\") {\n\t    if (aChunk) {\n\t      this.children.push(aChunk);\n\t    }\n\t  }\n\t  else {\n\t    throw new TypeError(\n\t      \"Expected a SourceNode, string, or an array of SourceNodes and strings. Got \" + aChunk\n\t    );\n\t  }\n\t  return this;\n\t};\n\t\n\t/**\n\t * Add a chunk of generated JS to the beginning of this source node.\n\t *\n\t * @param aChunk A string snippet of generated JS code, another instance of\n\t *        SourceNode, or an array where each member is one of those things.\n\t */\n\tSourceNode.prototype.prepend = function SourceNode_prepend(aChunk) {\n\t  if (Array.isArray(aChunk)) {\n\t    for (var i = aChunk.length-1; i >= 0; i--) {\n\t      this.prepend(aChunk[i]);\n\t    }\n\t  }\n\t  else if (aChunk[isSourceNode] || typeof aChunk === \"string\") {\n\t    this.children.unshift(aChunk);\n\t  }\n\t  else {\n\t    throw new TypeError(\n\t      \"Expected a SourceNode, string, or an array of SourceNodes and strings. Got \" + aChunk\n\t    );\n\t  }\n\t  return this;\n\t};\n\t\n\t/**\n\t * Walk over the tree of JS snippets in this node and its children. The\n\t * walking function is called once for each snippet of JS and is passed that\n\t * snippet and the its original associated source's line/column location.\n\t *\n\t * @param aFn The traversal function.\n\t */\n\tSourceNode.prototype.walk = function SourceNode_walk(aFn) {\n\t  var chunk;\n\t  for (var i = 0, len = this.children.length; i < len; i++) {\n\t    chunk = this.children[i];\n\t    if (chunk[isSourceNode]) {\n\t      chunk.walk(aFn);\n\t    }\n\t    else {\n\t      if (chunk !== '') {\n\t        aFn(chunk, { source: this.source,\n\t                     line: this.line,\n\t                     column: this.column,\n\t                     name: this.name });\n\t      }\n\t    }\n\t  }\n\t};\n\t\n\t/**\n\t * Like `String.prototype.join` except for SourceNodes. Inserts `aStr` between\n\t * each of `this.children`.\n\t *\n\t * @param aSep The separator.\n\t */\n\tSourceNode.prototype.join = function SourceNode_join(aSep) {\n\t  var newChildren;\n\t  var i;\n\t  var len = this.children.length;\n\t  if (len > 0) {\n\t    newChildren = [];\n\t    for (i = 0; i < len-1; i++) {\n\t      newChildren.push(this.children[i]);\n\t      newChildren.push(aSep);\n\t    }\n\t    newChildren.push(this.children[i]);\n\t    this.children = newChildren;\n\t  }\n\t  return this;\n\t};\n\t\n\t/**\n\t * Call String.prototype.replace on the very right-most source snippet. Useful\n\t * for trimming whitespace from the end of a source node, etc.\n\t *\n\t * @param aPattern The pattern to replace.\n\t * @param aReplacement The thing to replace the pattern with.\n\t */\n\tSourceNode.prototype.replaceRight = function SourceNode_replaceRight(aPattern, aReplacement) {\n\t  var lastChild = this.children[this.children.length - 1];\n\t  if (lastChild[isSourceNode]) {\n\t    lastChild.replaceRight(aPattern, aReplacement);\n\t  }\n\t  else if (typeof lastChild === 'string') {\n\t    this.children[this.children.length - 1] = lastChild.replace(aPattern, aReplacement);\n\t  }\n\t  else {\n\t    this.children.push(''.replace(aPattern, aReplacement));\n\t  }\n\t  return this;\n\t};\n\t\n\t/**\n\t * Set the source content for a source file. This will be added to the SourceMapGenerator\n\t * in the sourcesContent field.\n\t *\n\t * @param aSourceFile The filename of the source file\n\t * @param aSourceContent The content of the source file\n\t */\n\tSourceNode.prototype.setSourceContent =\n\t  function SourceNode_setSourceContent(aSourceFile, aSourceContent) {\n\t    this.sourceContents[util.toSetString(aSourceFile)] = aSourceContent;\n\t  };\n\t\n\t/**\n\t * Walk over the tree of SourceNodes. The walking function is called for each\n\t * source file content and is passed the filename and source content.\n\t *\n\t * @param aFn The traversal function.\n\t */\n\tSourceNode.prototype.walkSourceContents =\n\t  function SourceNode_walkSourceContents(aFn) {\n\t    for (var i = 0, len = this.children.length; i < len; i++) {\n\t      if (this.children[i][isSourceNode]) {\n\t        this.children[i].walkSourceContents(aFn);\n\t      }\n\t    }\n\t\n\t    var sources = Object.keys(this.sourceContents);\n\t    for (var i = 0, len = sources.length; i < len; i++) {\n\t      aFn(util.fromSetString(sources[i]), this.sourceContents[sources[i]]);\n\t    }\n\t  };\n\t\n\t/**\n\t * Return the string representation of this source node. Walks over the tree\n\t * and concatenates all the various snippets together to one string.\n\t */\n\tSourceNode.prototype.toString = function SourceNode_toString() {\n\t  var str = \"\";\n\t  this.walk(function (chunk) {\n\t    str += chunk;\n\t  });\n\t  return str;\n\t};\n\t\n\t/**\n\t * Returns the string representation of this source node along with a source\n\t * map.\n\t */\n\tSourceNode.prototype.toStringWithSourceMap = function SourceNode_toStringWithSourceMap(aArgs) {\n\t  var generated = {\n\t    code: \"\",\n\t    line: 1,\n\t    column: 0\n\t  };\n\t  var map = new SourceMapGenerator(aArgs);\n\t  var sourceMappingActive = false;\n\t  var lastOriginalSource = null;\n\t  var lastOriginalLine = null;\n\t  var lastOriginalColumn = null;\n\t  var lastOriginalName = null;\n\t  this.walk(function (chunk, original) {\n\t    generated.code += chunk;\n\t    if (original.source !== null\n\t        && original.line !== null\n\t        && original.column !== null) {\n\t      if(lastOriginalSource !== original.source\n\t         || lastOriginalLine !== original.line\n\t         || lastOriginalColumn !== original.column\n\t         || lastOriginalName !== original.name) {\n\t        map.addMapping({\n\t          source: original.source,\n\t          original: {\n\t            line: original.line,\n\t            column: original.column\n\t          },\n\t          generated: {\n\t            line: generated.line,\n\t            column: generated.column\n\t          },\n\t          name: original.name\n\t        });\n\t      }\n\t      lastOriginalSource = original.source;\n\t      lastOriginalLine = original.line;\n\t      lastOriginalColumn = original.column;\n\t      lastOriginalName = original.name;\n\t      sourceMappingActive = true;\n\t    } else if (sourceMappingActive) {\n\t      map.addMapping({\n\t        generated: {\n\t          line: generated.line,\n\t          column: generated.column\n\t        }\n\t      });\n\t      lastOriginalSource = null;\n\t      sourceMappingActive = false;\n\t    }\n\t    for (var idx = 0, length = chunk.length; idx < length; idx++) {\n\t      if (chunk.charCodeAt(idx) === NEWLINE_CODE) {\n\t        generated.line++;\n\t        generated.column = 0;\n\t        // Mappings end at eol\n\t        if (idx + 1 === length) {\n\t          lastOriginalSource = null;\n\t          sourceMappingActive = false;\n\t        } else if (sourceMappingActive) {\n\t          map.addMapping({\n\t            source: original.source,\n\t            original: {\n\t              line: original.line,\n\t              column: original.column\n\t            },\n\t            generated: {\n\t              line: generated.line,\n\t              column: generated.column\n\t            },\n\t            name: original.name\n\t          });\n\t        }\n\t      } else {\n\t        generated.column++;\n\t      }\n\t    }\n\t  });\n\t  this.walkSourceContents(function (sourceFile, sourceContent) {\n\t    map.setSourceContent(sourceFile, sourceContent);\n\t  });\n\t\n\t  return { code: generated.code, map: map };\n\t};\n\t\n\texports.SourceNode = SourceNode;\n\n\n/***/ })\n/******/ ])\n});\n;\n\n\n// WEBPACK FOOTER //\n// source-map.min.js"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 42c329f865e32e011afb","/*\n * Copyright 2009-2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE.txt or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\nexports.SourceMapGenerator = require('./lib/source-map-generator').SourceMapGenerator;\nexports.SourceMapConsumer = require('./lib/source-map-consumer').SourceMapConsumer;\nexports.SourceNode = require('./lib/source-node').SourceNode;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./source-map.js\n// module id = 0\n// module chunks = 0","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nvar base64VLQ = require('./base64-vlq');\nvar util = require('./util');\nvar ArraySet = require('./array-set').ArraySet;\nvar MappingList = require('./mapping-list').MappingList;\n\n/**\n * An instance of the SourceMapGenerator represents a source map which is\n * being built incrementally. You may pass an object with the following\n * properties:\n *\n *   - file: The filename of the generated source.\n *   - sourceRoot: A root for all relative URLs in this source map.\n */\nfunction SourceMapGenerator(aArgs) {\n  if (!aArgs) {\n    aArgs = {};\n  }\n  this._file = util.getArg(aArgs, 'file', null);\n  this._sourceRoot = util.getArg(aArgs, 'sourceRoot', null);\n  this._skipValidation = util.getArg(aArgs, 'skipValidation', false);\n  this._sources = new ArraySet();\n  this._names = new ArraySet();\n  this._mappings = new MappingList();\n  this._sourcesContents = null;\n}\n\nSourceMapGenerator.prototype._version = 3;\n\n/**\n * Creates a new SourceMapGenerator based on a SourceMapConsumer\n *\n * @param aSourceMapConsumer The SourceMap.\n */\nSourceMapGenerator.fromSourceMap =\n  function SourceMapGenerator_fromSourceMap(aSourceMapConsumer) {\n    var sourceRoot = aSourceMapConsumer.sourceRoot;\n    var generator = new SourceMapGenerator({\n      file: aSourceMapConsumer.file,\n      sourceRoot: sourceRoot\n    });\n    aSourceMapConsumer.eachMapping(function (mapping) {\n      var newMapping = {\n        generated: {\n          line: mapping.generatedLine,\n          column: mapping.generatedColumn\n        }\n      };\n\n      if (mapping.source != null) {\n        newMapping.source = mapping.source;\n        if (sourceRoot != null) {\n          newMapping.source = util.relative(sourceRoot, newMapping.source);\n        }\n\n        newMapping.original = {\n          line: mapping.originalLine,\n          column: mapping.originalColumn\n        };\n\n        if (mapping.name != null) {\n          newMapping.name = mapping.name;\n        }\n      }\n\n      generator.addMapping(newMapping);\n    });\n    aSourceMapConsumer.sources.forEach(function (sourceFile) {\n      var content = aSourceMapConsumer.sourceContentFor(sourceFile);\n      if (content != null) {\n        generator.setSourceContent(sourceFile, content);\n      }\n    });\n    return generator;\n  };\n\n/**\n * Add a single mapping from original source line and column to the generated\n * source's line and column for this source map being created. The mapping\n * object should have the following properties:\n *\n *   - generated: An object with the generated line and column positions.\n *   - original: An object with the original line and column positions.\n *   - source: The original source file (relative to the sourceRoot).\n *   - name: An optional original token name for this mapping.\n */\nSourceMapGenerator.prototype.addMapping =\n  function SourceMapGenerator_addMapping(aArgs) {\n    var generated = util.getArg(aArgs, 'generated');\n    var original = util.getArg(aArgs, 'original', null);\n    var source = util.getArg(aArgs, 'source', null);\n    var name = util.getArg(aArgs, 'name', null);\n\n    if (!this._skipValidation) {\n      this._validateMapping(generated, original, source, name);\n    }\n\n    if (source != null) {\n      source = String(source);\n      if (!this._sources.has(source)) {\n        this._sources.add(source);\n      }\n    }\n\n    if (name != null) {\n      name = String(name);\n      if (!this._names.has(name)) {\n        this._names.add(name);\n      }\n    }\n\n    this._mappings.add({\n      generatedLine: generated.line,\n      generatedColumn: generated.column,\n      originalLine: original != null && original.line,\n      originalColumn: original != null && original.column,\n      source: source,\n      name: name\n    });\n  };\n\n/**\n * Set the source content for a source file.\n */\nSourceMapGenerator.prototype.setSourceContent =\n  function SourceMapGenerator_setSourceContent(aSourceFile, aSourceContent) {\n    var source = aSourceFile;\n    if (this._sourceRoot != null) {\n      source = util.relative(this._sourceRoot, source);\n    }\n\n    if (aSourceContent != null) {\n      // Add the source content to the _sourcesContents map.\n      // Create a new _sourcesContents map if the property is null.\n      if (!this._sourcesContents) {\n        this._sourcesContents = Object.create(null);\n      }\n      this._sourcesContents[util.toSetString(source)] = aSourceContent;\n    } else if (this._sourcesContents) {\n      // Remove the source file from the _sourcesContents map.\n      // If the _sourcesContents map is empty, set the property to null.\n      delete this._sourcesContents[util.toSetString(source)];\n      if (Object.keys(this._sourcesContents).length === 0) {\n        this._sourcesContents = null;\n      }\n    }\n  };\n\n/**\n * Applies the mappings of a sub-source-map for a specific source file to the\n * source map being generated. Each mapping to the supplied source file is\n * rewritten using the supplied source map. Note: The resolution for the\n * resulting mappings is the minimium of this map and the supplied map.\n *\n * @param aSourceMapConsumer The source map to be applied.\n * @param aSourceFile Optional. The filename of the source file.\n *        If omitted, SourceMapConsumer's file property will be used.\n * @param aSourceMapPath Optional. The dirname of the path to the source map\n *        to be applied. If relative, it is relative to the SourceMapConsumer.\n *        This parameter is needed when the two source maps aren't in the same\n *        directory, and the source map to be applied contains relative source\n *        paths. If so, those relative source paths need to be rewritten\n *        relative to the SourceMapGenerator.\n */\nSourceMapGenerator.prototype.applySourceMap =\n  function SourceMapGenerator_applySourceMap(aSourceMapConsumer, aSourceFile, aSourceMapPath) {\n    var sourceFile = aSourceFile;\n    // If aSourceFile is omitted, we will use the file property of the SourceMap\n    if (aSourceFile == null) {\n      if (aSourceMapConsumer.file == null) {\n        throw new Error(\n          'SourceMapGenerator.prototype.applySourceMap requires either an explicit source file, ' +\n          'or the source map\\'s \"file\" property. Both were omitted.'\n        );\n      }\n      sourceFile = aSourceMapConsumer.file;\n    }\n    var sourceRoot = this._sourceRoot;\n    // Make \"sourceFile\" relative if an absolute Url is passed.\n    if (sourceRoot != null) {\n      sourceFile = util.relative(sourceRoot, sourceFile);\n    }\n    // Applying the SourceMap can add and remove items from the sources and\n    // the names array.\n    var newSources = new ArraySet();\n    var newNames = new ArraySet();\n\n    // Find mappings for the \"sourceFile\"\n    this._mappings.unsortedForEach(function (mapping) {\n      if (mapping.source === sourceFile && mapping.originalLine != null) {\n        // Check if it can be mapped by the source map, then update the mapping.\n        var original = aSourceMapConsumer.originalPositionFor({\n          line: mapping.originalLine,\n          column: mapping.originalColumn\n        });\n        if (original.source != null) {\n          // Copy mapping\n          mapping.source = original.source;\n          if (aSourceMapPath != null) {\n            mapping.source = util.join(aSourceMapPath, mapping.source)\n          }\n          if (sourceRoot != null) {\n            mapping.source = util.relative(sourceRoot, mapping.source);\n          }\n          mapping.originalLine = original.line;\n          mapping.originalColumn = original.column;\n          if (original.name != null) {\n            mapping.name = original.name;\n          }\n        }\n      }\n\n      var source = mapping.source;\n      if (source != null && !newSources.has(source)) {\n        newSources.add(source);\n      }\n\n      var name = mapping.name;\n      if (name != null && !newNames.has(name)) {\n        newNames.add(name);\n      }\n\n    }, this);\n    this._sources = newSources;\n    this._names = newNames;\n\n    // Copy sourcesContents of applied map.\n    aSourceMapConsumer.sources.forEach(function (sourceFile) {\n      var content = aSourceMapConsumer.sourceContentFor(sourceFile);\n      if (content != null) {\n        if (aSourceMapPath != null) {\n          sourceFile = util.join(aSourceMapPath, sourceFile);\n        }\n        if (sourceRoot != null) {\n          sourceFile = util.relative(sourceRoot, sourceFile);\n        }\n        this.setSourceContent(sourceFile, content);\n      }\n    }, this);\n  };\n\n/**\n * A mapping can have one of the three levels of data:\n *\n *   1. Just the generated position.\n *   2. The Generated position, original position, and original source.\n *   3. Generated and original position, original source, as well as a name\n *      token.\n *\n * To maintain consistency, we validate that any new mapping being added falls\n * in to one of these categories.\n */\nSourceMapGenerator.prototype._validateMapping =\n  function SourceMapGenerator_validateMapping(aGenerated, aOriginal, aSource,\n                                              aName) {\n    // When aOriginal is truthy but has empty values for .line and .column,\n    // it is most likely a programmer error. In this case we throw a very\n    // specific error message to try to guide them the right way.\n    // For example: https://github.com/Polymer/polymer-bundler/pull/519\n    if (aOriginal && typeof aOriginal.line !== 'number' && typeof aOriginal.column !== 'number') {\n        throw new Error(\n            'original.line and original.column are not numbers -- you probably meant to omit ' +\n            'the original mapping entirely and only map the generated position. If so, pass ' +\n            'null for the original mapping instead of an object with empty or null values.'\n        );\n    }\n\n    if (aGenerated && 'line' in aGenerated && 'column' in aGenerated\n        && aGenerated.line > 0 && aGenerated.column >= 0\n        && !aOriginal && !aSource && !aName) {\n      // Case 1.\n      return;\n    }\n    else if (aGenerated && 'line' in aGenerated && 'column' in aGenerated\n             && aOriginal && 'line' in aOriginal && 'column' in aOriginal\n             && aGenerated.line > 0 && aGenerated.column >= 0\n             && aOriginal.line > 0 && aOriginal.column >= 0\n             && aSource) {\n      // Cases 2 and 3.\n      return;\n    }\n    else {\n      throw new Error('Invalid mapping: ' + JSON.stringify({\n        generated: aGenerated,\n        source: aSource,\n        original: aOriginal,\n        name: aName\n      }));\n    }\n  };\n\n/**\n * Serialize the accumulated mappings in to the stream of base 64 VLQs\n * specified by the source map format.\n */\nSourceMapGenerator.prototype._serializeMappings =\n  function SourceMapGenerator_serializeMappings() {\n    var previousGeneratedColumn = 0;\n    var previousGeneratedLine = 1;\n    var previousOriginalColumn = 0;\n    var previousOriginalLine = 0;\n    var previousName = 0;\n    var previousSource = 0;\n    var result = '';\n    var next;\n    var mapping;\n    var nameIdx;\n    var sourceIdx;\n\n    var mappings = this._mappings.toArray();\n    for (var i = 0, len = mappings.length; i < len; i++) {\n      mapping = mappings[i];\n      next = ''\n\n      if (mapping.generatedLine !== previousGeneratedLine) {\n        previousGeneratedColumn = 0;\n        while (mapping.generatedLine !== previousGeneratedLine) {\n          next += ';';\n          previousGeneratedLine++;\n        }\n      }\n      else {\n        if (i > 0) {\n          if (!util.compareByGeneratedPositionsInflated(mapping, mappings[i - 1])) {\n            continue;\n          }\n          next += ',';\n        }\n      }\n\n      next += base64VLQ.encode(mapping.generatedColumn\n                                 - previousGeneratedColumn);\n      previousGeneratedColumn = mapping.generatedColumn;\n\n      if (mapping.source != null) {\n        sourceIdx = this._sources.indexOf(mapping.source);\n        next += base64VLQ.encode(sourceIdx - previousSource);\n        previousSource = sourceIdx;\n\n        // lines are stored 0-based in SourceMap spec version 3\n        next += base64VLQ.encode(mapping.originalLine - 1\n                                   - previousOriginalLine);\n        previousOriginalLine = mapping.originalLine - 1;\n\n        next += base64VLQ.encode(mapping.originalColumn\n                                   - previousOriginalColumn);\n        previousOriginalColumn = mapping.originalColumn;\n\n        if (mapping.name != null) {\n          nameIdx = this._names.indexOf(mapping.name);\n          next += base64VLQ.encode(nameIdx - previousName);\n          previousName = nameIdx;\n        }\n      }\n\n      result += next;\n    }\n\n    return result;\n  };\n\nSourceMapGenerator.prototype._generateSourcesContent =\n  function SourceMapGenerator_generateSourcesContent(aSources, aSourceRoot) {\n    return aSources.map(function (source) {\n      if (!this._sourcesContents) {\n        return null;\n      }\n      if (aSourceRoot != null) {\n        source = util.relative(aSourceRoot, source);\n      }\n      var key = util.toSetString(source);\n      return Object.prototype.hasOwnProperty.call(this._sourcesContents, key)\n        ? this._sourcesContents[key]\n        : null;\n    }, this);\n  };\n\n/**\n * Externalize the source map.\n */\nSourceMapGenerator.prototype.toJSON =\n  function SourceMapGenerator_toJSON() {\n    var map = {\n      version: this._version,\n      sources: this._sources.toArray(),\n      names: this._names.toArray(),\n      mappings: this._serializeMappings()\n    };\n    if (this._file != null) {\n      map.file = this._file;\n    }\n    if (this._sourceRoot != null) {\n      map.sourceRoot = this._sourceRoot;\n    }\n    if (this._sourcesContents) {\n      map.sourcesContent = this._generateSourcesContent(map.sources, map.sourceRoot);\n    }\n\n    return map;\n  };\n\n/**\n * Render the source map being generated to a string.\n */\nSourceMapGenerator.prototype.toString =\n  function SourceMapGenerator_toString() {\n    return JSON.stringify(this.toJSON());\n  };\n\nexports.SourceMapGenerator = SourceMapGenerator;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/source-map-generator.js\n// module id = 1\n// module chunks = 0","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n *\n * Based on the Base 64 VLQ implementation in Closure Compiler:\n * https://code.google.com/p/closure-compiler/source/browse/trunk/src/com/google/debugging/sourcemap/Base64VLQ.java\n *\n * Copyright 2011 The Closure Compiler Authors. All rights reserved.\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are\n * met:\n *\n *  * Redistributions of source code must retain the above copyright\n *    notice, this list of conditions and the following disclaimer.\n *  * Redistributions in binary form must reproduce the above\n *    copyright notice, this list of conditions and the following\n *    disclaimer in the documentation and/or other materials provided\n *    with the distribution.\n *  * Neither the name of Google Inc. nor the names of its\n *    contributors may be used to endorse or promote products derived\n *    from this software without specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n * \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\nvar base64 = require('./base64');\n\n// A single base 64 digit can contain 6 bits of data. For the base 64 variable\n// length quantities we use in the source map spec, the first bit is the sign,\n// the next four bits are the actual value, and the 6th bit is the\n// continuation bit. The continuation bit tells us whether there are more\n// digits in this value following this digit.\n//\n//   Continuation\n//   |    Sign\n//   |    |\n//   V    V\n//   101011\n\nvar VLQ_BASE_SHIFT = 5;\n\n// binary: 100000\nvar VLQ_BASE = 1 << VLQ_BASE_SHIFT;\n\n// binary: 011111\nvar VLQ_BASE_MASK = VLQ_BASE - 1;\n\n// binary: 100000\nvar VLQ_CONTINUATION_BIT = VLQ_BASE;\n\n/**\n * Converts from a two-complement value to a value where the sign bit is\n * placed in the least significant bit.  For example, as decimals:\n *   1 becomes 2 (10 binary), -1 becomes 3 (11 binary)\n *   2 becomes 4 (100 binary), -2 becomes 5 (101 binary)\n */\nfunction toVLQSigned(aValue) {\n  return aValue < 0\n    ? ((-aValue) << 1) + 1\n    : (aValue << 1) + 0;\n}\n\n/**\n * Converts to a two-complement value from a value where the sign bit is\n * placed in the least significant bit.  For example, as decimals:\n *   2 (10 binary) becomes 1, 3 (11 binary) becomes -1\n *   4 (100 binary) becomes 2, 5 (101 binary) becomes -2\n */\nfunction fromVLQSigned(aValue) {\n  var isNegative = (aValue & 1) === 1;\n  var shifted = aValue >> 1;\n  return isNegative\n    ? -shifted\n    : shifted;\n}\n\n/**\n * Returns the base 64 VLQ encoded value.\n */\nexports.encode = function base64VLQ_encode(aValue) {\n  var encoded = \"\";\n  var digit;\n\n  var vlq = toVLQSigned(aValue);\n\n  do {\n    digit = vlq & VLQ_BASE_MASK;\n    vlq >>>= VLQ_BASE_SHIFT;\n    if (vlq > 0) {\n      // There are still more digits in this value, so we must make sure the\n      // continuation bit is marked.\n      digit |= VLQ_CONTINUATION_BIT;\n    }\n    encoded += base64.encode(digit);\n  } while (vlq > 0);\n\n  return encoded;\n};\n\n/**\n * Decodes the next base 64 VLQ value from the given string and returns the\n * value and the rest of the string via the out parameter.\n */\nexports.decode = function base64VLQ_decode(aStr, aIndex, aOutParam) {\n  var strLen = aStr.length;\n  var result = 0;\n  var shift = 0;\n  var continuation, digit;\n\n  do {\n    if (aIndex >= strLen) {\n      throw new Error(\"Expected more digits in base 64 VLQ value.\");\n    }\n\n    digit = base64.decode(aStr.charCodeAt(aIndex++));\n    if (digit === -1) {\n      throw new Error(\"Invalid base64 digit: \" + aStr.charAt(aIndex - 1));\n    }\n\n    continuation = !!(digit & VLQ_CONTINUATION_BIT);\n    digit &= VLQ_BASE_MASK;\n    result = result + (digit << shift);\n    shift += VLQ_BASE_SHIFT;\n  } while (continuation);\n\n  aOutParam.value = fromVLQSigned(result);\n  aOutParam.rest = aIndex;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/base64-vlq.js\n// module id = 2\n// module chunks = 0","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nvar intToCharMap = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'.split('');\n\n/**\n * Encode an integer in the range of 0 to 63 to a single base 64 digit.\n */\nexports.encode = function (number) {\n  if (0 <= number && number < intToCharMap.length) {\n    return intToCharMap[number];\n  }\n  throw new TypeError(\"Must be between 0 and 63: \" + number);\n};\n\n/**\n * Decode a single base 64 character code digit to an integer. Returns -1 on\n * failure.\n */\nexports.decode = function (charCode) {\n  var bigA = 65;     // 'A'\n  var bigZ = 90;     // 'Z'\n\n  var littleA = 97;  // 'a'\n  var littleZ = 122; // 'z'\n\n  var zero = 48;     // '0'\n  var nine = 57;     // '9'\n\n  var plus = 43;     // '+'\n  var slash = 47;    // '/'\n\n  var littleOffset = 26;\n  var numberOffset = 52;\n\n  // 0 - 25: ABCDEFGHIJKLMNOPQRSTUVWXYZ\n  if (bigA <= charCode && charCode <= bigZ) {\n    return (charCode - bigA);\n  }\n\n  // 26 - 51: abcdefghijklmnopqrstuvwxyz\n  if (littleA <= charCode && charCode <= littleZ) {\n    return (charCode - littleA + littleOffset);\n  }\n\n  // 52 - 61: 0123456789\n  if (zero <= charCode && charCode <= nine) {\n    return (charCode - zero + numberOffset);\n  }\n\n  // 62: +\n  if (charCode == plus) {\n    return 62;\n  }\n\n  // 63: /\n  if (charCode == slash) {\n    return 63;\n  }\n\n  // Invalid base64 digit.\n  return -1;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/base64.js\n// module id = 3\n// module chunks = 0","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\n/**\n * This is a helper function for getting values from parameter/options\n * objects.\n *\n * @param args The object we are extracting values from\n * @param name The name of the property we are getting.\n * @param defaultValue An optional value to return if the property is missing\n * from the object. If this is not specified and the property is missing, an\n * error will be thrown.\n */\nfunction getArg(aArgs, aName, aDefaultValue) {\n  if (aName in aArgs) {\n    return aArgs[aName];\n  } else if (arguments.length === 3) {\n    return aDefaultValue;\n  } else {\n    throw new Error('\"' + aName + '\" is a required argument.');\n  }\n}\nexports.getArg = getArg;\n\nvar urlRegexp = /^(?:([\\w+\\-.]+):)?\\/\\/(?:(\\w+:\\w+)@)?([\\w.]*)(?::(\\d+))?(\\S*)$/;\nvar dataUrlRegexp = /^data:.+\\,.+$/;\n\nfunction urlParse(aUrl) {\n  var match = aUrl.match(urlRegexp);\n  if (!match) {\n    return null;\n  }\n  return {\n    scheme: match[1],\n    auth: match[2],\n    host: match[3],\n    port: match[4],\n    path: match[5]\n  };\n}\nexports.urlParse = urlParse;\n\nfunction urlGenerate(aParsedUrl) {\n  var url = '';\n  if (aParsedUrl.scheme) {\n    url += aParsedUrl.scheme + ':';\n  }\n  url += '//';\n  if (aParsedUrl.auth) {\n    url += aParsedUrl.auth + '@';\n  }\n  if (aParsedUrl.host) {\n    url += aParsedUrl.host;\n  }\n  if (aParsedUrl.port) {\n    url += \":\" + aParsedUrl.port\n  }\n  if (aParsedUrl.path) {\n    url += aParsedUrl.path;\n  }\n  return url;\n}\nexports.urlGenerate = urlGenerate;\n\n/**\n * Normalizes a path, or the path portion of a URL:\n *\n * - Replaces consecutive slashes with one slash.\n * - Removes unnecessary '.' parts.\n * - Removes unnecessary '<dir>/..' parts.\n *\n * Based on code in the Node.js 'path' core module.\n *\n * @param aPath The path or url to normalize.\n */\nfunction normalize(aPath) {\n  var path = aPath;\n  var url = urlParse(aPath);\n  if (url) {\n    if (!url.path) {\n      return aPath;\n    }\n    path = url.path;\n  }\n  var isAbsolute = exports.isAbsolute(path);\n\n  var parts = path.split(/\\/+/);\n  for (var part, up = 0, i = parts.length - 1; i >= 0; i--) {\n    part = parts[i];\n    if (part === '.') {\n      parts.splice(i, 1);\n    } else if (part === '..') {\n      up++;\n    } else if (up > 0) {\n      if (part === '') {\n        // The first part is blank if the path is absolute. Trying to go\n        // above the root is a no-op. Therefore we can remove all '..' parts\n        // directly after the root.\n        parts.splice(i + 1, up);\n        up = 0;\n      } else {\n        parts.splice(i, 2);\n        up--;\n      }\n    }\n  }\n  path = parts.join('/');\n\n  if (path === '') {\n    path = isAbsolute ? '/' : '.';\n  }\n\n  if (url) {\n    url.path = path;\n    return urlGenerate(url);\n  }\n  return path;\n}\nexports.normalize = normalize;\n\n/**\n * Joins two paths/URLs.\n *\n * @param aRoot The root path or URL.\n * @param aPath The path or URL to be joined with the root.\n *\n * - If aPath is a URL or a data URI, aPath is returned, unless aPath is a\n *   scheme-relative URL: Then the scheme of aRoot, if any, is prepended\n *   first.\n * - Otherwise aPath is a path. If aRoot is a URL, then its path portion\n *   is updated with the result and aRoot is returned. Otherwise the result\n *   is returned.\n *   - If aPath is absolute, the result is aPath.\n *   - Otherwise the two paths are joined with a slash.\n * - Joining for example 'http://' and 'www.example.com' is also supported.\n */\nfunction join(aRoot, aPath) {\n  if (aRoot === \"\") {\n    aRoot = \".\";\n  }\n  if (aPath === \"\") {\n    aPath = \".\";\n  }\n  var aPathUrl = urlParse(aPath);\n  var aRootUrl = urlParse(aRoot);\n  if (aRootUrl) {\n    aRoot = aRootUrl.path || '/';\n  }\n\n  // `join(foo, '//www.example.org')`\n  if (aPathUrl && !aPathUrl.scheme) {\n    if (aRootUrl) {\n      aPathUrl.scheme = aRootUrl.scheme;\n    }\n    return urlGenerate(aPathUrl);\n  }\n\n  if (aPathUrl || aPath.match(dataUrlRegexp)) {\n    return aPath;\n  }\n\n  // `join('http://', 'www.example.com')`\n  if (aRootUrl && !aRootUrl.host && !aRootUrl.path) {\n    aRootUrl.host = aPath;\n    return urlGenerate(aRootUrl);\n  }\n\n  var joined = aPath.charAt(0) === '/'\n    ? aPath\n    : normalize(aRoot.replace(/\\/+$/, '') + '/' + aPath);\n\n  if (aRootUrl) {\n    aRootUrl.path = joined;\n    return urlGenerate(aRootUrl);\n  }\n  return joined;\n}\nexports.join = join;\n\nexports.isAbsolute = function (aPath) {\n  return aPath.charAt(0) === '/' || !!aPath.match(urlRegexp);\n};\n\n/**\n * Make a path relative to a URL or another path.\n *\n * @param aRoot The root path or URL.\n * @param aPath The path or URL to be made relative to aRoot.\n */\nfunction relative(aRoot, aPath) {\n  if (aRoot === \"\") {\n    aRoot = \".\";\n  }\n\n  aRoot = aRoot.replace(/\\/$/, '');\n\n  // It is possible for the path to be above the root. In this case, simply\n  // checking whether the root is a prefix of the path won't work. Instead, we\n  // need to remove components from the root one by one, until either we find\n  // a prefix that fits, or we run out of components to remove.\n  var level = 0;\n  while (aPath.indexOf(aRoot + '/') !== 0) {\n    var index = aRoot.lastIndexOf(\"/\");\n    if (index < 0) {\n      return aPath;\n    }\n\n    // If the only part of the root that is left is the scheme (i.e. http://,\n    // file:///, etc.), one or more slashes (/), or simply nothing at all, we\n    // have exhausted all components, so the path is not relative to the root.\n    aRoot = aRoot.slice(0, index);\n    if (aRoot.match(/^([^\\/]+:\\/)?\\/*$/)) {\n      return aPath;\n    }\n\n    ++level;\n  }\n\n  // Make sure we add a \"../\" for each component we removed from the root.\n  return Array(level + 1).join(\"../\") + aPath.substr(aRoot.length + 1);\n}\nexports.relative = relative;\n\nvar supportsNullProto = (function () {\n  var obj = Object.create(null);\n  return !('__proto__' in obj);\n}());\n\nfunction identity (s) {\n  return s;\n}\n\n/**\n * Because behavior goes wacky when you set `__proto__` on objects, we\n * have to prefix all the strings in our set with an arbitrary character.\n *\n * See https://github.com/mozilla/source-map/pull/31 and\n * https://github.com/mozilla/source-map/issues/30\n *\n * @param String aStr\n */\nfunction toSetString(aStr) {\n  if (isProtoString(aStr)) {\n    return '$' + aStr;\n  }\n\n  return aStr;\n}\nexports.toSetString = supportsNullProto ? identity : toSetString;\n\nfunction fromSetString(aStr) {\n  if (isProtoString(aStr)) {\n    return aStr.slice(1);\n  }\n\n  return aStr;\n}\nexports.fromSetString = supportsNullProto ? identity : fromSetString;\n\nfunction isProtoString(s) {\n  if (!s) {\n    return false;\n  }\n\n  var length = s.length;\n\n  if (length < 9 /* \"__proto__\".length */) {\n    return false;\n  }\n\n  if (s.charCodeAt(length - 1) !== 95  /* '_' */ ||\n      s.charCodeAt(length - 2) !== 95  /* '_' */ ||\n      s.charCodeAt(length - 3) !== 111 /* 'o' */ ||\n      s.charCodeAt(length - 4) !== 116 /* 't' */ ||\n      s.charCodeAt(length - 5) !== 111 /* 'o' */ ||\n      s.charCodeAt(length - 6) !== 114 /* 'r' */ ||\n      s.charCodeAt(length - 7) !== 112 /* 'p' */ ||\n      s.charCodeAt(length - 8) !== 95  /* '_' */ ||\n      s.charCodeAt(length - 9) !== 95  /* '_' */) {\n    return false;\n  }\n\n  for (var i = length - 10; i >= 0; i--) {\n    if (s.charCodeAt(i) !== 36 /* '$' */) {\n      return false;\n    }\n  }\n\n  return true;\n}\n\n/**\n * Comparator between two mappings where the original positions are compared.\n *\n * Optionally pass in `true` as `onlyCompareGenerated` to consider two\n * mappings with the same original source/line/column, but different generated\n * line and column the same. Useful when searching for a mapping with a\n * stubbed out mapping.\n */\nfunction compareByOriginalPositions(mappingA, mappingB, onlyCompareOriginal) {\n  var cmp = mappingA.source - mappingB.source;\n  if (cmp !== 0) {\n    return cmp;\n  }\n\n  cmp = mappingA.originalLine - mappingB.originalLine;\n  if (cmp !== 0) {\n    return cmp;\n  }\n\n  cmp = mappingA.originalColumn - mappingB.originalColumn;\n  if (cmp !== 0 || onlyCompareOriginal) {\n    return cmp;\n  }\n\n  cmp = mappingA.generatedColumn - mappingB.generatedColumn;\n  if (cmp !== 0) {\n    return cmp;\n  }\n\n  cmp = mappingA.generatedLine - mappingB.generatedLine;\n  if (cmp !== 0) {\n    return cmp;\n  }\n\n  return mappingA.name - mappingB.name;\n}\nexports.compareByOriginalPositions = compareByOriginalPositions;\n\n/**\n * Comparator between two mappings with deflated source and name indices where\n * the generated positions are compared.\n *\n * Optionally pass in `true` as `onlyCompareGenerated` to consider two\n * mappings with the same generated line and column, but different\n * source/name/original line and column the same. Useful when searching for a\n * mapping with a stubbed out mapping.\n */\nfunction compareByGeneratedPositionsDeflated(mappingA, mappingB, onlyCompareGenerated) {\n  var cmp = mappingA.generatedLine - mappingB.generatedLine;\n  if (cmp !== 0) {\n    return cmp;\n  }\n\n  cmp = mappingA.generatedColumn - mappingB.generatedColumn;\n  if (cmp !== 0 || onlyCompareGenerated) {\n    return cmp;\n  }\n\n  cmp = mappingA.source - mappingB.source;\n  if (cmp !== 0) {\n    return cmp;\n  }\n\n  cmp = mappingA.originalLine - mappingB.originalLine;\n  if (cmp !== 0) {\n    return cmp;\n  }\n\n  cmp = mappingA.originalColumn - mappingB.originalColumn;\n  if (cmp !== 0) {\n    return cmp;\n  }\n\n  return mappingA.name - mappingB.name;\n}\nexports.compareByGeneratedPositionsDeflated = compareByGeneratedPositionsDeflated;\n\nfunction strcmp(aStr1, aStr2) {\n  if (aStr1 === aStr2) {\n    return 0;\n  }\n\n  if (aStr1 > aStr2) {\n    return 1;\n  }\n\n  return -1;\n}\n\n/**\n * Comparator between two mappings with inflated source and name strings where\n * the generated positions are compared.\n */\nfunction compareByGeneratedPositionsInflated(mappingA, mappingB) {\n  var cmp = mappingA.generatedLine - mappingB.generatedLine;\n  if (cmp !== 0) {\n    return cmp;\n  }\n\n  cmp = mappingA.generatedColumn - mappingB.generatedColumn;\n  if (cmp !== 0) {\n    return cmp;\n  }\n\n  cmp = strcmp(mappingA.source, mappingB.source);\n  if (cmp !== 0) {\n    return cmp;\n  }\n\n  cmp = mappingA.originalLine - mappingB.originalLine;\n  if (cmp !== 0) {\n    return cmp;\n  }\n\n  cmp = mappingA.originalColumn - mappingB.originalColumn;\n  if (cmp !== 0) {\n    return cmp;\n  }\n\n  return strcmp(mappingA.name, mappingB.name);\n}\nexports.compareByGeneratedPositionsInflated = compareByGeneratedPositionsInflated;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/util.js\n// module id = 4\n// module chunks = 0","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nvar util = require('./util');\nvar has = Object.prototype.hasOwnProperty;\nvar hasNativeMap = typeof Map !== \"undefined\";\n\n/**\n * A data structure which is a combination of an array and a set. Adding a new\n * member is O(1), testing for membership is O(1), and finding the index of an\n * element is O(1). Removing elements from the set is not supported. Only\n * strings are supported for membership.\n */\nfunction ArraySet() {\n  this._array = [];\n  this._set = hasNativeMap ? new Map() : Object.create(null);\n}\n\n/**\n * Static method for creating ArraySet instances from an existing array.\n */\nArraySet.fromArray = function ArraySet_fromArray(aArray, aAllowDuplicates) {\n  var set = new ArraySet();\n  for (var i = 0, len = aArray.length; i < len; i++) {\n    set.add(aArray[i], aAllowDuplicates);\n  }\n  return set;\n};\n\n/**\n * Return how many unique items are in this ArraySet. If duplicates have been\n * added, than those do not count towards the size.\n *\n * @returns Number\n */\nArraySet.prototype.size = function ArraySet_size() {\n  return hasNativeMap ? this._set.size : Object.getOwnPropertyNames(this._set).length;\n};\n\n/**\n * Add the given string to this set.\n *\n * @param String aStr\n */\nArraySet.prototype.add = function ArraySet_add(aStr, aAllowDuplicates) {\n  var sStr = hasNativeMap ? aStr : util.toSetString(aStr);\n  var isDuplicate = hasNativeMap ? this.has(aStr) : has.call(this._set, sStr);\n  var idx = this._array.length;\n  if (!isDuplicate || aAllowDuplicates) {\n    this._array.push(aStr);\n  }\n  if (!isDuplicate) {\n    if (hasNativeMap) {\n      this._set.set(aStr, idx);\n    } else {\n      this._set[sStr] = idx;\n    }\n  }\n};\n\n/**\n * Is the given string a member of this set?\n *\n * @param String aStr\n */\nArraySet.prototype.has = function ArraySet_has(aStr) {\n  if (hasNativeMap) {\n    return this._set.has(aStr);\n  } else {\n    var sStr = util.toSetString(aStr);\n    return has.call(this._set, sStr);\n  }\n};\n\n/**\n * What is the index of the given string in the array?\n *\n * @param String aStr\n */\nArraySet.prototype.indexOf = function ArraySet_indexOf(aStr) {\n  if (hasNativeMap) {\n    var idx = this._set.get(aStr);\n    if (idx >= 0) {\n        return idx;\n    }\n  } else {\n    var sStr = util.toSetString(aStr);\n    if (has.call(this._set, sStr)) {\n      return this._set[sStr];\n    }\n  }\n\n  throw new Error('\"' + aStr + '\" is not in the set.');\n};\n\n/**\n * What is the element at the given index?\n *\n * @param Number aIdx\n */\nArraySet.prototype.at = function ArraySet_at(aIdx) {\n  if (aIdx >= 0 && aIdx < this._array.length) {\n    return this._array[aIdx];\n  }\n  throw new Error('No element indexed by ' + aIdx);\n};\n\n/**\n * Returns the array representation of this set (which has the proper indices\n * indicated by indexOf). Note that this is a copy of the internal array used\n * for storing the members so that no one can mess with internal state.\n */\nArraySet.prototype.toArray = function ArraySet_toArray() {\n  return this._array.slice();\n};\n\nexports.ArraySet = ArraySet;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/array-set.js\n// module id = 5\n// module chunks = 0","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2014 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nvar util = require('./util');\n\n/**\n * Determine whether mappingB is after mappingA with respect to generated\n * position.\n */\nfunction generatedPositionAfter(mappingA, mappingB) {\n  // Optimized for most common case\n  var lineA = mappingA.generatedLine;\n  var lineB = mappingB.generatedLine;\n  var columnA = mappingA.generatedColumn;\n  var columnB = mappingB.generatedColumn;\n  return lineB > lineA || lineB == lineA && columnB >= columnA ||\n         util.compareByGeneratedPositionsInflated(mappingA, mappingB) <= 0;\n}\n\n/**\n * A data structure to provide a sorted view of accumulated mappings in a\n * performance conscious manner. It trades a neglibable overhead in general\n * case for a large speedup in case of mappings being added in order.\n */\nfunction MappingList() {\n  this._array = [];\n  this._sorted = true;\n  // Serves as infimum\n  this._last = {generatedLine: -1, generatedColumn: 0};\n}\n\n/**\n * Iterate through internal items. This method takes the same arguments that\n * `Array.prototype.forEach` takes.\n *\n * NOTE: The order of the mappings is NOT guaranteed.\n */\nMappingList.prototype.unsortedForEach =\n  function MappingList_forEach(aCallback, aThisArg) {\n    this._array.forEach(aCallback, aThisArg);\n  };\n\n/**\n * Add the given source mapping.\n *\n * @param Object aMapping\n */\nMappingList.prototype.add = function MappingList_add(aMapping) {\n  if (generatedPositionAfter(this._last, aMapping)) {\n    this._last = aMapping;\n    this._array.push(aMapping);\n  } else {\n    this._sorted = false;\n    this._array.push(aMapping);\n  }\n};\n\n/**\n * Returns the flat, sorted array of mappings. The mappings are sorted by\n * generated position.\n *\n * WARNING: This method returns internal data without copying, for\n * performance. The return value must NOT be mutated, and should be treated as\n * an immutable borrow. If you want to take ownership, you must make your own\n * copy.\n */\nMappingList.prototype.toArray = function MappingList_toArray() {\n  if (!this._sorted) {\n    this._array.sort(util.compareByGeneratedPositionsInflated);\n    this._sorted = true;\n  }\n  return this._array;\n};\n\nexports.MappingList = MappingList;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/mapping-list.js\n// module id = 6\n// module chunks = 0","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nvar util = require('./util');\nvar binarySearch = require('./binary-search');\nvar ArraySet = require('./array-set').ArraySet;\nvar base64VLQ = require('./base64-vlq');\nvar quickSort = require('./quick-sort').quickSort;\n\nfunction SourceMapConsumer(aSourceMap) {\n  var sourceMap = aSourceMap;\n  if (typeof aSourceMap === 'string') {\n    sourceMap = JSON.parse(aSourceMap.replace(/^\\)\\]\\}'/, ''));\n  }\n\n  return sourceMap.sections != null\n    ? new IndexedSourceMapConsumer(sourceMap)\n    : new BasicSourceMapConsumer(sourceMap);\n}\n\nSourceMapConsumer.fromSourceMap = function(aSourceMap) {\n  return BasicSourceMapConsumer.fromSourceMap(aSourceMap);\n}\n\n/**\n * The version of the source mapping spec that we are consuming.\n */\nSourceMapConsumer.prototype._version = 3;\n\n// `__generatedMappings` and `__originalMappings` are arrays that hold the\n// parsed mapping coordinates from the source map's \"mappings\" attribute. They\n// are lazily instantiated, accessed via the `_generatedMappings` and\n// `_originalMappings` getters respectively, and we only parse the mappings\n// and create these arrays once queried for a source location. We jump through\n// these hoops because there can be many thousands of mappings, and parsing\n// them is expensive, so we only want to do it if we must.\n//\n// Each object in the arrays is of the form:\n//\n//     {\n//       generatedLine: The line number in the generated code,\n//       generatedColumn: The column number in the generated code,\n//       source: The path to the original source file that generated this\n//               chunk of code,\n//       originalLine: The line number in the original source that\n//                     corresponds to this chunk of generated code,\n//       originalColumn: The column number in the original source that\n//                       corresponds to this chunk of generated code,\n//       name: The name of the original symbol which generated this chunk of\n//             code.\n//     }\n//\n// All properties except for `generatedLine` and `generatedColumn` can be\n// `null`.\n//\n// `_generatedMappings` is ordered by the generated positions.\n//\n// `_originalMappings` is ordered by the original positions.\n\nSourceMapConsumer.prototype.__generatedMappings = null;\nObject.defineProperty(SourceMapConsumer.prototype, '_generatedMappings', {\n  get: function () {\n    if (!this.__generatedMappings) {\n      this._parseMappings(this._mappings, this.sourceRoot);\n    }\n\n    return this.__generatedMappings;\n  }\n});\n\nSourceMapConsumer.prototype.__originalMappings = null;\nObject.defineProperty(SourceMapConsumer.prototype, '_originalMappings', {\n  get: function () {\n    if (!this.__originalMappings) {\n      this._parseMappings(this._mappings, this.sourceRoot);\n    }\n\n    return this.__originalMappings;\n  }\n});\n\nSourceMapConsumer.prototype._charIsMappingSeparator =\n  function SourceMapConsumer_charIsMappingSeparator(aStr, index) {\n    var c = aStr.charAt(index);\n    return c === \";\" || c === \",\";\n  };\n\n/**\n * Parse the mappings in a string in to a data structure which we can easily\n * query (the ordered arrays in the `this.__generatedMappings` and\n * `this.__originalMappings` properties).\n */\nSourceMapConsumer.prototype._parseMappings =\n  function SourceMapConsumer_parseMappings(aStr, aSourceRoot) {\n    throw new Error(\"Subclasses must implement _parseMappings\");\n  };\n\nSourceMapConsumer.GENERATED_ORDER = 1;\nSourceMapConsumer.ORIGINAL_ORDER = 2;\n\nSourceMapConsumer.GREATEST_LOWER_BOUND = 1;\nSourceMapConsumer.LEAST_UPPER_BOUND = 2;\n\n/**\n * Iterate over each mapping between an original source/line/column and a\n * generated line/column in this source map.\n *\n * @param Function aCallback\n *        The function that is called with each mapping.\n * @param Object aContext\n *        Optional. If specified, this object will be the value of `this` every\n *        time that `aCallback` is called.\n * @param aOrder\n *        Either `SourceMapConsumer.GENERATED_ORDER` or\n *        `SourceMapConsumer.ORIGINAL_ORDER`. Specifies whether you want to\n *        iterate over the mappings sorted by the generated file's line/column\n *        order or the original's source/line/column order, respectively. Defaults to\n *        `SourceMapConsumer.GENERATED_ORDER`.\n */\nSourceMapConsumer.prototype.eachMapping =\n  function SourceMapConsumer_eachMapping(aCallback, aContext, aOrder) {\n    var context = aContext || null;\n    var order = aOrder || SourceMapConsumer.GENERATED_ORDER;\n\n    var mappings;\n    switch (order) {\n    case SourceMapConsumer.GENERATED_ORDER:\n      mappings = this._generatedMappings;\n      break;\n    case SourceMapConsumer.ORIGINAL_ORDER:\n      mappings = this._originalMappings;\n      break;\n    default:\n      throw new Error(\"Unknown order of iteration.\");\n    }\n\n    var sourceRoot = this.sourceRoot;\n    mappings.map(function (mapping) {\n      var source = mapping.source === null ? null : this._sources.at(mapping.source);\n      if (source != null && sourceRoot != null) {\n        source = util.join(sourceRoot, source);\n      }\n      return {\n        source: source,\n        generatedLine: mapping.generatedLine,\n        generatedColumn: mapping.generatedColumn,\n        originalLine: mapping.originalLine,\n        originalColumn: mapping.originalColumn,\n        name: mapping.name === null ? null : this._names.at(mapping.name)\n      };\n    }, this).forEach(aCallback, context);\n  };\n\n/**\n * Returns all generated line and column information for the original source,\n * line, and column provided. If no column is provided, returns all mappings\n * corresponding to a either the line we are searching for or the next\n * closest line that has any mappings. Otherwise, returns all mappings\n * corresponding to the given line and either the column we are searching for\n * or the next closest column that has any offsets.\n *\n * The only argument is an object with the following properties:\n *\n *   - source: The filename of the original source.\n *   - line: The line number in the original source.\n *   - column: Optional. the column number in the original source.\n *\n * and an array of objects is returned, each with the following properties:\n *\n *   - line: The line number in the generated source, or null.\n *   - column: The column number in the generated source, or null.\n */\nSourceMapConsumer.prototype.allGeneratedPositionsFor =\n  function SourceMapConsumer_allGeneratedPositionsFor(aArgs) {\n    var line = util.getArg(aArgs, 'line');\n\n    // When there is no exact match, BasicSourceMapConsumer.prototype._findMapping\n    // returns the index of the closest mapping less than the needle. By\n    // setting needle.originalColumn to 0, we thus find the last mapping for\n    // the given line, provided such a mapping exists.\n    var needle = {\n      source: util.getArg(aArgs, 'source'),\n      originalLine: line,\n      originalColumn: util.getArg(aArgs, 'column', 0)\n    };\n\n    if (this.sourceRoot != null) {\n      needle.source = util.relative(this.sourceRoot, needle.source);\n    }\n    if (!this._sources.has(needle.source)) {\n      return [];\n    }\n    needle.source = this._sources.indexOf(needle.source);\n\n    var mappings = [];\n\n    var index = this._findMapping(needle,\n                                  this._originalMappings,\n                                  \"originalLine\",\n                                  \"originalColumn\",\n                                  util.compareByOriginalPositions,\n                                  binarySearch.LEAST_UPPER_BOUND);\n    if (index >= 0) {\n      var mapping = this._originalMappings[index];\n\n      if (aArgs.column === undefined) {\n        var originalLine = mapping.originalLine;\n\n        // Iterate until either we run out of mappings, or we run into\n        // a mapping for a different line than the one we found. Since\n        // mappings are sorted, this is guaranteed to find all mappings for\n        // the line we found.\n        while (mapping && mapping.originalLine === originalLine) {\n          mappings.push({\n            line: util.getArg(mapping, 'generatedLine', null),\n            column: util.getArg(mapping, 'generatedColumn', null),\n            lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null)\n          });\n\n          mapping = this._originalMappings[++index];\n        }\n      } else {\n        var originalColumn = mapping.originalColumn;\n\n        // Iterate until either we run out of mappings, or we run into\n        // a mapping for a different line than the one we were searching for.\n        // Since mappings are sorted, this is guaranteed to find all mappings for\n        // the line we are searching for.\n        while (mapping &&\n               mapping.originalLine === line &&\n               mapping.originalColumn == originalColumn) {\n          mappings.push({\n            line: util.getArg(mapping, 'generatedLine', null),\n            column: util.getArg(mapping, 'generatedColumn', null),\n            lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null)\n          });\n\n          mapping = this._originalMappings[++index];\n        }\n      }\n    }\n\n    return mappings;\n  };\n\nexports.SourceMapConsumer = SourceMapConsumer;\n\n/**\n * A BasicSourceMapConsumer instance represents a parsed source map which we can\n * query for information about the original file positions by giving it a file\n * position in the generated source.\n *\n * The only parameter is the raw source map (either as a JSON string, or\n * already parsed to an object). According to the spec, source maps have the\n * following attributes:\n *\n *   - version: Which version of the source map spec this map is following.\n *   - sources: An array of URLs to the original source files.\n *   - names: An array of identifiers which can be referrenced by individual mappings.\n *   - sourceRoot: Optional. The URL root from which all sources are relative.\n *   - sourcesContent: Optional. An array of contents of the original source files.\n *   - mappings: A string of base64 VLQs which contain the actual mappings.\n *   - file: Optional. The generated file this source map is associated with.\n *\n * Here is an example source map, taken from the source map spec[0]:\n *\n *     {\n *       version : 3,\n *       file: \"out.js\",\n *       sourceRoot : \"\",\n *       sources: [\"foo.js\", \"bar.js\"],\n *       names: [\"src\", \"maps\", \"are\", \"fun\"],\n *       mappings: \"AA,AB;;ABCDE;\"\n *     }\n *\n * [0]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit?pli=1#\n */\nfunction BasicSourceMapConsumer(aSourceMap) {\n  var sourceMap = aSourceMap;\n  if (typeof aSourceMap === 'string') {\n    sourceMap = JSON.parse(aSourceMap.replace(/^\\)\\]\\}'/, ''));\n  }\n\n  var version = util.getArg(sourceMap, 'version');\n  var sources = util.getArg(sourceMap, 'sources');\n  // Sass 3.3 leaves out the 'names' array, so we deviate from the spec (which\n  // requires the array) to play nice here.\n  var names = util.getArg(sourceMap, 'names', []);\n  var sourceRoot = util.getArg(sourceMap, 'sourceRoot', null);\n  var sourcesContent = util.getArg(sourceMap, 'sourcesContent', null);\n  var mappings = util.getArg(sourceMap, 'mappings');\n  var file = util.getArg(sourceMap, 'file', null);\n\n  // Once again, Sass deviates from the spec and supplies the version as a\n  // string rather than a number, so we use loose equality checking here.\n  if (version != this._version) {\n    throw new Error('Unsupported version: ' + version);\n  }\n\n  sources = sources\n    .map(String)\n    // Some source maps produce relative source paths like \"./foo.js\" instead of\n    // \"foo.js\".  Normalize these first so that future comparisons will succeed.\n    // See bugzil.la/1090768.\n    .map(util.normalize)\n    // Always ensure that absolute sources are internally stored relative to\n    // the source root, if the source root is absolute. Not doing this would\n    // be particularly problematic when the source root is a prefix of the\n    // source (valid, but why??). See github issue #199 and bugzil.la/1188982.\n    .map(function (source) {\n      return sourceRoot && util.isAbsolute(sourceRoot) && util.isAbsolute(source)\n        ? util.relative(sourceRoot, source)\n        : source;\n    });\n\n  // Pass `true` below to allow duplicate names and sources. While source maps\n  // are intended to be compressed and deduplicated, the TypeScript compiler\n  // sometimes generates source maps with duplicates in them. See Github issue\n  // #72 and bugzil.la/889492.\n  this._names = ArraySet.fromArray(names.map(String), true);\n  this._sources = ArraySet.fromArray(sources, true);\n\n  this.sourceRoot = sourceRoot;\n  this.sourcesContent = sourcesContent;\n  this._mappings = mappings;\n  this.file = file;\n}\n\nBasicSourceMapConsumer.prototype = Object.create(SourceMapConsumer.prototype);\nBasicSourceMapConsumer.prototype.consumer = SourceMapConsumer;\n\n/**\n * Create a BasicSourceMapConsumer from a SourceMapGenerator.\n *\n * @param SourceMapGenerator aSourceMap\n *        The source map that will be consumed.\n * @returns BasicSourceMapConsumer\n */\nBasicSourceMapConsumer.fromSourceMap =\n  function SourceMapConsumer_fromSourceMap(aSourceMap) {\n    var smc = Object.create(BasicSourceMapConsumer.prototype);\n\n    var names = smc._names = ArraySet.fromArray(aSourceMap._names.toArray(), true);\n    var sources = smc._sources = ArraySet.fromArray(aSourceMap._sources.toArray(), true);\n    smc.sourceRoot = aSourceMap._sourceRoot;\n    smc.sourcesContent = aSourceMap._generateSourcesContent(smc._sources.toArray(),\n                                                            smc.sourceRoot);\n    smc.file = aSourceMap._file;\n\n    // Because we are modifying the entries (by converting string sources and\n    // names to indices into the sources and names ArraySets), we have to make\n    // a copy of the entry or else bad things happen. Shared mutable state\n    // strikes again! See github issue #191.\n\n    var generatedMappings = aSourceMap._mappings.toArray().slice();\n    var destGeneratedMappings = smc.__generatedMappings = [];\n    var destOriginalMappings = smc.__originalMappings = [];\n\n    for (var i = 0, length = generatedMappings.length; i < length; i++) {\n      var srcMapping = generatedMappings[i];\n      var destMapping = new Mapping;\n      destMapping.generatedLine = srcMapping.generatedLine;\n      destMapping.generatedColumn = srcMapping.generatedColumn;\n\n      if (srcMapping.source) {\n        destMapping.source = sources.indexOf(srcMapping.source);\n        destMapping.originalLine = srcMapping.originalLine;\n        destMapping.originalColumn = srcMapping.originalColumn;\n\n        if (srcMapping.name) {\n          destMapping.name = names.indexOf(srcMapping.name);\n        }\n\n        destOriginalMappings.push(destMapping);\n      }\n\n      destGeneratedMappings.push(destMapping);\n    }\n\n    quickSort(smc.__originalMappings, util.compareByOriginalPositions);\n\n    return smc;\n  };\n\n/**\n * The version of the source mapping spec that we are consuming.\n */\nBasicSourceMapConsumer.prototype._version = 3;\n\n/**\n * The list of original sources.\n */\nObject.defineProperty(BasicSourceMapConsumer.prototype, 'sources', {\n  get: function () {\n    return this._sources.toArray().map(function (s) {\n      return this.sourceRoot != null ? util.join(this.sourceRoot, s) : s;\n    }, this);\n  }\n});\n\n/**\n * Provide the JIT with a nice shape / hidden class.\n */\nfunction Mapping() {\n  this.generatedLine = 0;\n  this.generatedColumn = 0;\n  this.source = null;\n  this.originalLine = null;\n  this.originalColumn = null;\n  this.name = null;\n}\n\n/**\n * Parse the mappings in a string in to a data structure which we can easily\n * query (the ordered arrays in the `this.__generatedMappings` and\n * `this.__originalMappings` properties).\n */\nBasicSourceMapConsumer.prototype._parseMappings =\n  function SourceMapConsumer_parseMappings(aStr, aSourceRoot) {\n    var generatedLine = 1;\n    var previousGeneratedColumn = 0;\n    var previousOriginalLine = 0;\n    var previousOriginalColumn = 0;\n    var previousSource = 0;\n    var previousName = 0;\n    var length = aStr.length;\n    var index = 0;\n    var cachedSegments = {};\n    var temp = {};\n    var originalMappings = [];\n    var generatedMappings = [];\n    var mapping, str, segment, end, value;\n\n    while (index < length) {\n      if (aStr.charAt(index) === ';') {\n        generatedLine++;\n        index++;\n        previousGeneratedColumn = 0;\n      }\n      else if (aStr.charAt(index) === ',') {\n        index++;\n      }\n      else {\n        mapping = new Mapping();\n        mapping.generatedLine = generatedLine;\n\n        // Because each offset is encoded relative to the previous one,\n        // many segments often have the same encoding. We can exploit this\n        // fact by caching the parsed variable length fields of each segment,\n        // allowing us to avoid a second parse if we encounter the same\n        // segment again.\n        for (end = index; end < length; end++) {\n          if (this._charIsMappingSeparator(aStr, end)) {\n            break;\n          }\n        }\n        str = aStr.slice(index, end);\n\n        segment = cachedSegments[str];\n        if (segment) {\n          index += str.length;\n        } else {\n          segment = [];\n          while (index < end) {\n            base64VLQ.decode(aStr, index, temp);\n            value = temp.value;\n            index = temp.rest;\n            segment.push(value);\n          }\n\n          if (segment.length === 2) {\n            throw new Error('Found a source, but no line and column');\n          }\n\n          if (segment.length === 3) {\n            throw new Error('Found a source and line, but no column');\n          }\n\n          cachedSegments[str] = segment;\n        }\n\n        // Generated column.\n        mapping.generatedColumn = previousGeneratedColumn + segment[0];\n        previousGeneratedColumn = mapping.generatedColumn;\n\n        if (segment.length > 1) {\n          // Original source.\n          mapping.source = previousSource + segment[1];\n          previousSource += segment[1];\n\n          // Original line.\n          mapping.originalLine = previousOriginalLine + segment[2];\n          previousOriginalLine = mapping.originalLine;\n          // Lines are stored 0-based\n          mapping.originalLine += 1;\n\n          // Original column.\n          mapping.originalColumn = previousOriginalColumn + segment[3];\n          previousOriginalColumn = mapping.originalColumn;\n\n          if (segment.length > 4) {\n            // Original name.\n            mapping.name = previousName + segment[4];\n            previousName += segment[4];\n          }\n        }\n\n        generatedMappings.push(mapping);\n        if (typeof mapping.originalLine === 'number') {\n          originalMappings.push(mapping);\n        }\n      }\n    }\n\n    quickSort(generatedMappings, util.compareByGeneratedPositionsDeflated);\n    this.__generatedMappings = generatedMappings;\n\n    quickSort(originalMappings, util.compareByOriginalPositions);\n    this.__originalMappings = originalMappings;\n  };\n\n/**\n * Find the mapping that best matches the hypothetical \"needle\" mapping that\n * we are searching for in the given \"haystack\" of mappings.\n */\nBasicSourceMapConsumer.prototype._findMapping =\n  function SourceMapConsumer_findMapping(aNeedle, aMappings, aLineName,\n                                         aColumnName, aComparator, aBias) {\n    // To return the position we are searching for, we must first find the\n    // mapping for the given position and then return the opposite position it\n    // points to. Because the mappings are sorted, we can use binary search to\n    // find the best mapping.\n\n    if (aNeedle[aLineName] <= 0) {\n      throw new TypeError('Line must be greater than or equal to 1, got '\n                          + aNeedle[aLineName]);\n    }\n    if (aNeedle[aColumnName] < 0) {\n      throw new TypeError('Column must be greater than or equal to 0, got '\n                          + aNeedle[aColumnName]);\n    }\n\n    return binarySearch.search(aNeedle, aMappings, aComparator, aBias);\n  };\n\n/**\n * Compute the last column for each generated mapping. The last column is\n * inclusive.\n */\nBasicSourceMapConsumer.prototype.computeColumnSpans =\n  function SourceMapConsumer_computeColumnSpans() {\n    for (var index = 0; index < this._generatedMappings.length; ++index) {\n      var mapping = this._generatedMappings[index];\n\n      // Mappings do not contain a field for the last generated columnt. We\n      // can come up with an optimistic estimate, however, by assuming that\n      // mappings are contiguous (i.e. given two consecutive mappings, the\n      // first mapping ends where the second one starts).\n      if (index + 1 < this._generatedMappings.length) {\n        var nextMapping = this._generatedMappings[index + 1];\n\n        if (mapping.generatedLine === nextMapping.generatedLine) {\n          mapping.lastGeneratedColumn = nextMapping.generatedColumn - 1;\n          continue;\n        }\n      }\n\n      // The last mapping for each line spans the entire line.\n      mapping.lastGeneratedColumn = Infinity;\n    }\n  };\n\n/**\n * Returns the original source, line, and column information for the generated\n * source's line and column positions provided. The only argument is an object\n * with the following properties:\n *\n *   - line: The line number in the generated source.\n *   - column: The column number in the generated source.\n *   - bias: Either 'SourceMapConsumer.GREATEST_LOWER_BOUND' or\n *     'SourceMapConsumer.LEAST_UPPER_BOUND'. Specifies whether to return the\n *     closest element that is smaller than or greater than the one we are\n *     searching for, respectively, if the exact element cannot be found.\n *     Defaults to 'SourceMapConsumer.GREATEST_LOWER_BOUND'.\n *\n * and an object is returned with the following properties:\n *\n *   - source: The original source file, or null.\n *   - line: The line number in the original source, or null.\n *   - column: The column number in the original source, or null.\n *   - name: The original identifier, or null.\n */\nBasicSourceMapConsumer.prototype.originalPositionFor =\n  function SourceMapConsumer_originalPositionFor(aArgs) {\n    var needle = {\n      generatedLine: util.getArg(aArgs, 'line'),\n      generatedColumn: util.getArg(aArgs, 'column')\n    };\n\n    var index = this._findMapping(\n      needle,\n      this._generatedMappings,\n      \"generatedLine\",\n      \"generatedColumn\",\n      util.compareByGeneratedPositionsDeflated,\n      util.getArg(aArgs, 'bias', SourceMapConsumer.GREATEST_LOWER_BOUND)\n    );\n\n    if (index >= 0) {\n      var mapping = this._generatedMappings[index];\n\n      if (mapping.generatedLine === needle.generatedLine) {\n        var source = util.getArg(mapping, 'source', null);\n        if (source !== null) {\n          source = this._sources.at(source);\n          if (this.sourceRoot != null) {\n            source = util.join(this.sourceRoot, source);\n          }\n        }\n        var name = util.getArg(mapping, 'name', null);\n        if (name !== null) {\n          name = this._names.at(name);\n        }\n        return {\n          source: source,\n          line: util.getArg(mapping, 'originalLine', null),\n          column: util.getArg(mapping, 'originalColumn', null),\n          name: name\n        };\n      }\n    }\n\n    return {\n      source: null,\n      line: null,\n      column: null,\n      name: null\n    };\n  };\n\n/**\n * Return true if we have the source content for every source in the source\n * map, false otherwise.\n */\nBasicSourceMapConsumer.prototype.hasContentsOfAllSources =\n  function BasicSourceMapConsumer_hasContentsOfAllSources() {\n    if (!this.sourcesContent) {\n      return false;\n    }\n    return this.sourcesContent.length >= this._sources.size() &&\n      !this.sourcesContent.some(function (sc) { return sc == null; });\n  };\n\n/**\n * Returns the original source content. The only argument is the url of the\n * original source file. Returns null if no original source content is\n * available.\n */\nBasicSourceMapConsumer.prototype.sourceContentFor =\n  function SourceMapConsumer_sourceContentFor(aSource, nullOnMissing) {\n    if (!this.sourcesContent) {\n      return null;\n    }\n\n    if (this.sourceRoot != null) {\n      aSource = util.relative(this.sourceRoot, aSource);\n    }\n\n    if (this._sources.has(aSource)) {\n      return this.sourcesContent[this._sources.indexOf(aSource)];\n    }\n\n    var url;\n    if (this.sourceRoot != null\n        && (url = util.urlParse(this.sourceRoot))) {\n      // XXX: file:// URIs and absolute paths lead to unexpected behavior for\n      // many users. We can help them out when they expect file:// URIs to\n      // behave like it would if they were running a local HTTP server. See\n      // https://bugzilla.mozilla.org/show_bug.cgi?id=885597.\n      var fileUriAbsPath = aSource.replace(/^file:\\/\\//, \"\");\n      if (url.scheme == \"file\"\n          && this._sources.has(fileUriAbsPath)) {\n        return this.sourcesContent[this._sources.indexOf(fileUriAbsPath)]\n      }\n\n      if ((!url.path || url.path == \"/\")\n          && this._sources.has(\"/\" + aSource)) {\n        return this.sourcesContent[this._sources.indexOf(\"/\" + aSource)];\n      }\n    }\n\n    // This function is used recursively from\n    // IndexedSourceMapConsumer.prototype.sourceContentFor. In that case, we\n    // don't want to throw if we can't find the source - we just want to\n    // return null, so we provide a flag to exit gracefully.\n    if (nullOnMissing) {\n      return null;\n    }\n    else {\n      throw new Error('\"' + aSource + '\" is not in the SourceMap.');\n    }\n  };\n\n/**\n * Returns the generated line and column information for the original source,\n * line, and column positions provided. The only argument is an object with\n * the following properties:\n *\n *   - source: The filename of the original source.\n *   - line: The line number in the original source.\n *   - column: The column number in the original source.\n *   - bias: Either 'SourceMapConsumer.GREATEST_LOWER_BOUND' or\n *     'SourceMapConsumer.LEAST_UPPER_BOUND'. Specifies whether to return the\n *     closest element that is smaller than or greater than the one we are\n *     searching for, respectively, if the exact element cannot be found.\n *     Defaults to 'SourceMapConsumer.GREATEST_LOWER_BOUND'.\n *\n * and an object is returned with the following properties:\n *\n *   - line: The line number in the generated source, or null.\n *   - column: The column number in the generated source, or null.\n */\nBasicSourceMapConsumer.prototype.generatedPositionFor =\n  function SourceMapConsumer_generatedPositionFor(aArgs) {\n    var source = util.getArg(aArgs, 'source');\n    if (this.sourceRoot != null) {\n      source = util.relative(this.sourceRoot, source);\n    }\n    if (!this._sources.has(source)) {\n      return {\n        line: null,\n        column: null,\n        lastColumn: null\n      };\n    }\n    source = this._sources.indexOf(source);\n\n    var needle = {\n      source: source,\n      originalLine: util.getArg(aArgs, 'line'),\n      originalColumn: util.getArg(aArgs, 'column')\n    };\n\n    var index = this._findMapping(\n      needle,\n      this._originalMappings,\n      \"originalLine\",\n      \"originalColumn\",\n      util.compareByOriginalPositions,\n      util.getArg(aArgs, 'bias', SourceMapConsumer.GREATEST_LOWER_BOUND)\n    );\n\n    if (index >= 0) {\n      var mapping = this._originalMappings[index];\n\n      if (mapping.source === needle.source) {\n        return {\n          line: util.getArg(mapping, 'generatedLine', null),\n          column: util.getArg(mapping, 'generatedColumn', null),\n          lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null)\n        };\n      }\n    }\n\n    return {\n      line: null,\n      column: null,\n      lastColumn: null\n    };\n  };\n\nexports.BasicSourceMapConsumer = BasicSourceMapConsumer;\n\n/**\n * An IndexedSourceMapConsumer instance represents a parsed source map which\n * we can query for information. It differs from BasicSourceMapConsumer in\n * that it takes \"indexed\" source maps (i.e. ones with a \"sections\" field) as\n * input.\n *\n * The only parameter is a raw source map (either as a JSON string, or already\n * parsed to an object). According to the spec for indexed source maps, they\n * have the following attributes:\n *\n *   - version: Which version of the source map spec this map is following.\n *   - file: Optional. The generated file this source map is associated with.\n *   - sections: A list of section definitions.\n *\n * Each value under the \"sections\" field has two fields:\n *   - offset: The offset into the original specified at which this section\n *       begins to apply, defined as an object with a \"line\" and \"column\"\n *       field.\n *   - map: A source map definition. This source map could also be indexed,\n *       but doesn't have to be.\n *\n * Instead of the \"map\" field, it's also possible to have a \"url\" field\n * specifying a URL to retrieve a source map from, but that's currently\n * unsupported.\n *\n * Here's an example source map, taken from the source map spec[0], but\n * modified to omit a section which uses the \"url\" field.\n *\n *  {\n *    version : 3,\n *    file: \"app.js\",\n *    sections: [{\n *      offset: {line:100, column:10},\n *      map: {\n *        version : 3,\n *        file: \"section.js\",\n *        sources: [\"foo.js\", \"bar.js\"],\n *        names: [\"src\", \"maps\", \"are\", \"fun\"],\n *        mappings: \"AAAA,E;;ABCDE;\"\n *      }\n *    }],\n *  }\n *\n * [0]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit#heading=h.535es3xeprgt\n */\nfunction IndexedSourceMapConsumer(aSourceMap) {\n  var sourceMap = aSourceMap;\n  if (typeof aSourceMap === 'string') {\n    sourceMap = JSON.parse(aSourceMap.replace(/^\\)\\]\\}'/, ''));\n  }\n\n  var version = util.getArg(sourceMap, 'version');\n  var sections = util.getArg(sourceMap, 'sections');\n\n  if (version != this._version) {\n    throw new Error('Unsupported version: ' + version);\n  }\n\n  this._sources = new ArraySet();\n  this._names = new ArraySet();\n\n  var lastOffset = {\n    line: -1,\n    column: 0\n  };\n  this._sections = sections.map(function (s) {\n    if (s.url) {\n      // The url field will require support for asynchronicity.\n      // See https://github.com/mozilla/source-map/issues/16\n      throw new Error('Support for url field in sections not implemented.');\n    }\n    var offset = util.getArg(s, 'offset');\n    var offsetLine = util.getArg(offset, 'line');\n    var offsetColumn = util.getArg(offset, 'column');\n\n    if (offsetLine < lastOffset.line ||\n        (offsetLine === lastOffset.line && offsetColumn < lastOffset.column)) {\n      throw new Error('Section offsets must be ordered and non-overlapping.');\n    }\n    lastOffset = offset;\n\n    return {\n      generatedOffset: {\n        // The offset fields are 0-based, but we use 1-based indices when\n        // encoding/decoding from VLQ.\n        generatedLine: offsetLine + 1,\n        generatedColumn: offsetColumn + 1\n      },\n      consumer: new SourceMapConsumer(util.getArg(s, 'map'))\n    }\n  });\n}\n\nIndexedSourceMapConsumer.prototype = Object.create(SourceMapConsumer.prototype);\nIndexedSourceMapConsumer.prototype.constructor = SourceMapConsumer;\n\n/**\n * The version of the source mapping spec that we are consuming.\n */\nIndexedSourceMapConsumer.prototype._version = 3;\n\n/**\n * The list of original sources.\n */\nObject.defineProperty(IndexedSourceMapConsumer.prototype, 'sources', {\n  get: function () {\n    var sources = [];\n    for (var i = 0; i < this._sections.length; i++) {\n      for (var j = 0; j < this._sections[i].consumer.sources.length; j++) {\n        sources.push(this._sections[i].consumer.sources[j]);\n      }\n    }\n    return sources;\n  }\n});\n\n/**\n * Returns the original source, line, and column information for the generated\n * source's line and column positions provided. The only argument is an object\n * with the following properties:\n *\n *   - line: The line number in the generated source.\n *   - column: The column number in the generated source.\n *\n * and an object is returned with the following properties:\n *\n *   - source: The original source file, or null.\n *   - line: The line number in the original source, or null.\n *   - column: The column number in the original source, or null.\n *   - name: The original identifier, or null.\n */\nIndexedSourceMapConsumer.prototype.originalPositionFor =\n  function IndexedSourceMapConsumer_originalPositionFor(aArgs) {\n    var needle = {\n      generatedLine: util.getArg(aArgs, 'line'),\n      generatedColumn: util.getArg(aArgs, 'column')\n    };\n\n    // Find the section containing the generated position we're trying to map\n    // to an original position.\n    var sectionIndex = binarySearch.search(needle, this._sections,\n      function(needle, section) {\n        var cmp = needle.generatedLine - section.generatedOffset.generatedLine;\n        if (cmp) {\n          return cmp;\n        }\n\n        return (needle.generatedColumn -\n                section.generatedOffset.generatedColumn);\n      });\n    var section = this._sections[sectionIndex];\n\n    if (!section) {\n      return {\n        source: null,\n        line: null,\n        column: null,\n        name: null\n      };\n    }\n\n    return section.consumer.originalPositionFor({\n      line: needle.generatedLine -\n        (section.generatedOffset.generatedLine - 1),\n      column: needle.generatedColumn -\n        (section.generatedOffset.generatedLine === needle.generatedLine\n         ? section.generatedOffset.generatedColumn - 1\n         : 0),\n      bias: aArgs.bias\n    });\n  };\n\n/**\n * Return true if we have the source content for every source in the source\n * map, false otherwise.\n */\nIndexedSourceMapConsumer.prototype.hasContentsOfAllSources =\n  function IndexedSourceMapConsumer_hasContentsOfAllSources() {\n    return this._sections.every(function (s) {\n      return s.consumer.hasContentsOfAllSources();\n    });\n  };\n\n/**\n * Returns the original source content. The only argument is the url of the\n * original source file. Returns null if no original source content is\n * available.\n */\nIndexedSourceMapConsumer.prototype.sourceContentFor =\n  function IndexedSourceMapConsumer_sourceContentFor(aSource, nullOnMissing) {\n    for (var i = 0; i < this._sections.length; i++) {\n      var section = this._sections[i];\n\n      var content = section.consumer.sourceContentFor(aSource, true);\n      if (content) {\n        return content;\n      }\n    }\n    if (nullOnMissing) {\n      return null;\n    }\n    else {\n      throw new Error('\"' + aSource + '\" is not in the SourceMap.');\n    }\n  };\n\n/**\n * Returns the generated line and column information for the original source,\n * line, and column positions provided. The only argument is an object with\n * the following properties:\n *\n *   - source: The filename of the original source.\n *   - line: The line number in the original source.\n *   - column: The column number in the original source.\n *\n * and an object is returned with the following properties:\n *\n *   - line: The line number in the generated source, or null.\n *   - column: The column number in the generated source, or null.\n */\nIndexedSourceMapConsumer.prototype.generatedPositionFor =\n  function IndexedSourceMapConsumer_generatedPositionFor(aArgs) {\n    for (var i = 0; i < this._sections.length; i++) {\n      var section = this._sections[i];\n\n      // Only consider this section if the requested source is in the list of\n      // sources of the consumer.\n      if (section.consumer.sources.indexOf(util.getArg(aArgs, 'source')) === -1) {\n        continue;\n      }\n      var generatedPosition = section.consumer.generatedPositionFor(aArgs);\n      if (generatedPosition) {\n        var ret = {\n          line: generatedPosition.line +\n            (section.generatedOffset.generatedLine - 1),\n          column: generatedPosition.column +\n            (section.generatedOffset.generatedLine === generatedPosition.line\n             ? section.generatedOffset.generatedColumn - 1\n             : 0)\n        };\n        return ret;\n      }\n    }\n\n    return {\n      line: null,\n      column: null\n    };\n  };\n\n/**\n * Parse the mappings in a string in to a data structure which we can easily\n * query (the ordered arrays in the `this.__generatedMappings` and\n * `this.__originalMappings` properties).\n */\nIndexedSourceMapConsumer.prototype._parseMappings =\n  function IndexedSourceMapConsumer_parseMappings(aStr, aSourceRoot) {\n    this.__generatedMappings = [];\n    this.__originalMappings = [];\n    for (var i = 0; i < this._sections.length; i++) {\n      var section = this._sections[i];\n      var sectionMappings = section.consumer._generatedMappings;\n      for (var j = 0; j < sectionMappings.length; j++) {\n        var mapping = sectionMappings[j];\n\n        var source = section.consumer._sources.at(mapping.source);\n        if (section.consumer.sourceRoot !== null) {\n          source = util.join(section.consumer.sourceRoot, source);\n        }\n        this._sources.add(source);\n        source = this._sources.indexOf(source);\n\n        var name = section.consumer._names.at(mapping.name);\n        this._names.add(name);\n        name = this._names.indexOf(name);\n\n        // The mappings coming from the consumer for the section have\n        // generated positions relative to the start of the section, so we\n        // need to offset them to be relative to the start of the concatenated\n        // generated file.\n        var adjustedMapping = {\n          source: source,\n          generatedLine: mapping.generatedLine +\n            (section.generatedOffset.generatedLine - 1),\n          generatedColumn: mapping.generatedColumn +\n            (section.generatedOffset.generatedLine === mapping.generatedLine\n            ? section.generatedOffset.generatedColumn - 1\n            : 0),\n          originalLine: mapping.originalLine,\n          originalColumn: mapping.originalColumn,\n          name: name\n        };\n\n        this.__generatedMappings.push(adjustedMapping);\n        if (typeof adjustedMapping.originalLine === 'number') {\n          this.__originalMappings.push(adjustedMapping);\n        }\n      }\n    }\n\n    quickSort(this.__generatedMappings, util.compareByGeneratedPositionsDeflated);\n    quickSort(this.__originalMappings, util.compareByOriginalPositions);\n  };\n\nexports.IndexedSourceMapConsumer = IndexedSourceMapConsumer;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/source-map-consumer.js\n// module id = 7\n// module chunks = 0","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nexports.GREATEST_LOWER_BOUND = 1;\nexports.LEAST_UPPER_BOUND = 2;\n\n/**\n * Recursive implementation of binary search.\n *\n * @param aLow Indices here and lower do not contain the needle.\n * @param aHigh Indices here and higher do not contain the needle.\n * @param aNeedle The element being searched for.\n * @param aHaystack The non-empty array being searched.\n * @param aCompare Function which takes two elements and returns -1, 0, or 1.\n * @param aBias Either 'binarySearch.GREATEST_LOWER_BOUND' or\n *     'binarySearch.LEAST_UPPER_BOUND'. Specifies whether to return the\n *     closest element that is smaller than or greater than the one we are\n *     searching for, respectively, if the exact element cannot be found.\n */\nfunction recursiveSearch(aLow, aHigh, aNeedle, aHaystack, aCompare, aBias) {\n  // This function terminates when one of the following is true:\n  //\n  //   1. We find the exact element we are looking for.\n  //\n  //   2. We did not find the exact element, but we can return the index of\n  //      the next-closest element.\n  //\n  //   3. We did not find the exact element, and there is no next-closest\n  //      element than the one we are searching for, so we return -1.\n  var mid = Math.floor((aHigh - aLow) / 2) + aLow;\n  var cmp = aCompare(aNeedle, aHaystack[mid], true);\n  if (cmp === 0) {\n    // Found the element we are looking for.\n    return mid;\n  }\n  else if (cmp > 0) {\n    // Our needle is greater than aHaystack[mid].\n    if (aHigh - mid > 1) {\n      // The element is in the upper half.\n      return recursiveSearch(mid, aHigh, aNeedle, aHaystack, aCompare, aBias);\n    }\n\n    // The exact needle element was not found in this haystack. Determine if\n    // we are in termination case (3) or (2) and return the appropriate thing.\n    if (aBias == exports.LEAST_UPPER_BOUND) {\n      return aHigh < aHaystack.length ? aHigh : -1;\n    } else {\n      return mid;\n    }\n  }\n  else {\n    // Our needle is less than aHaystack[mid].\n    if (mid - aLow > 1) {\n      // The element is in the lower half.\n      return recursiveSearch(aLow, mid, aNeedle, aHaystack, aCompare, aBias);\n    }\n\n    // we are in termination case (3) or (2) and return the appropriate thing.\n    if (aBias == exports.LEAST_UPPER_BOUND) {\n      return mid;\n    } else {\n      return aLow < 0 ? -1 : aLow;\n    }\n  }\n}\n\n/**\n * This is an implementation of binary search which will always try and return\n * the index of the closest element if there is no exact hit. This is because\n * mappings between original and generated line/col pairs are single points,\n * and there is an implicit region between each of them, so a miss just means\n * that you aren't on the very start of a region.\n *\n * @param aNeedle The element you are looking for.\n * @param aHaystack The array that is being searched.\n * @param aCompare A function which takes the needle and an element in the\n *     array and returns -1, 0, or 1 depending on whether the needle is less\n *     than, equal to, or greater than the element, respectively.\n * @param aBias Either 'binarySearch.GREATEST_LOWER_BOUND' or\n *     'binarySearch.LEAST_UPPER_BOUND'. Specifies whether to return the\n *     closest element that is smaller than or greater than the one we are\n *     searching for, respectively, if the exact element cannot be found.\n *     Defaults to 'binarySearch.GREATEST_LOWER_BOUND'.\n */\nexports.search = function search(aNeedle, aHaystack, aCompare, aBias) {\n  if (aHaystack.length === 0) {\n    return -1;\n  }\n\n  var index = recursiveSearch(-1, aHaystack.length, aNeedle, aHaystack,\n                              aCompare, aBias || exports.GREATEST_LOWER_BOUND);\n  if (index < 0) {\n    return -1;\n  }\n\n  // We have found either the exact element, or the next-closest element than\n  // the one we are searching for. However, there may be more than one such\n  // element. Make sure we always return the smallest of these.\n  while (index - 1 >= 0) {\n    if (aCompare(aHaystack[index], aHaystack[index - 1], true) !== 0) {\n      break;\n    }\n    --index;\n  }\n\n  return index;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/binary-search.js\n// module id = 8\n// module chunks = 0","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\n// It turns out that some (most?) JavaScript engines don't self-host\n// `Array.prototype.sort`. This makes sense because C++ will likely remain\n// faster than JS when doing raw CPU-intensive sorting. However, when using a\n// custom comparator function, calling back and forth between the VM's C++ and\n// JIT'd JS is rather slow *and* loses JIT type information, resulting in\n// worse generated code for the comparator function than would be optimal. In\n// fact, when sorting with a comparator, these costs outweigh the benefits of\n// sorting in C++. By using our own JS-implemented Quick Sort (below), we get\n// a ~3500ms mean speed-up in `bench/bench.html`.\n\n/**\n * Swap the elements indexed by `x` and `y` in the array `ary`.\n *\n * @param {Array} ary\n *        The array.\n * @param {Number} x\n *        The index of the first item.\n * @param {Number} y\n *        The index of the second item.\n */\nfunction swap(ary, x, y) {\n  var temp = ary[x];\n  ary[x] = ary[y];\n  ary[y] = temp;\n}\n\n/**\n * Returns a random integer within the range `low .. high` inclusive.\n *\n * @param {Number} low\n *        The lower bound on the range.\n * @param {Number} high\n *        The upper bound on the range.\n */\nfunction randomIntInRange(low, high) {\n  return Math.round(low + (Math.random() * (high - low)));\n}\n\n/**\n * The Quick Sort algorithm.\n *\n * @param {Array} ary\n *        An array to sort.\n * @param {function} comparator\n *        Function to use to compare two items.\n * @param {Number} p\n *        Start index of the array\n * @param {Number} r\n *        End index of the array\n */\nfunction doQuickSort(ary, comparator, p, r) {\n  // If our lower bound is less than our upper bound, we (1) partition the\n  // array into two pieces and (2) recurse on each half. If it is not, this is\n  // the empty array and our base case.\n\n  if (p < r) {\n    // (1) Partitioning.\n    //\n    // The partitioning chooses a pivot between `p` and `r` and moves all\n    // elements that are less than or equal to the pivot to the before it, and\n    // all the elements that are greater than it after it. The effect is that\n    // once partition is done, the pivot is in the exact place it will be when\n    // the array is put in sorted order, and it will not need to be moved\n    // again. This runs in O(n) time.\n\n    // Always choose a random pivot so that an input array which is reverse\n    // sorted does not cause O(n^2) running time.\n    var pivotIndex = randomIntInRange(p, r);\n    var i = p - 1;\n\n    swap(ary, pivotIndex, r);\n    var pivot = ary[r];\n\n    // Immediately after `j` is incremented in this loop, the following hold\n    // true:\n    //\n    //   * Every element in `ary[p .. i]` is less than or equal to the pivot.\n    //\n    //   * Every element in `ary[i+1 .. j-1]` is greater than the pivot.\n    for (var j = p; j < r; j++) {\n      if (comparator(ary[j], pivot) <= 0) {\n        i += 1;\n        swap(ary, i, j);\n      }\n    }\n\n    swap(ary, i + 1, j);\n    var q = i + 1;\n\n    // (2) Recurse on each half.\n\n    doQuickSort(ary, comparator, p, q - 1);\n    doQuickSort(ary, comparator, q + 1, r);\n  }\n}\n\n/**\n * Sort the given array in-place with the given comparator function.\n *\n * @param {Array} ary\n *        An array to sort.\n * @param {function} comparator\n *        Function to use to compare two items.\n */\nexports.quickSort = function (ary, comparator) {\n  doQuickSort(ary, comparator, 0, ary.length - 1);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/quick-sort.js\n// module id = 9\n// module chunks = 0","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nvar SourceMapGenerator = require('./source-map-generator').SourceMapGenerator;\nvar util = require('./util');\n\n// Matches a Windows-style `\\r\\n` newline or a `\\n` newline used by all other\n// operating systems these days (capturing the result).\nvar REGEX_NEWLINE = /(\\r?\\n)/;\n\n// Newline character code for charCodeAt() comparisons\nvar NEWLINE_CODE = 10;\n\n// Private symbol for identifying `SourceNode`s when multiple versions of\n// the source-map library are loaded. This MUST NOT CHANGE across\n// versions!\nvar isSourceNode = \"$$$isSourceNode$$$\";\n\n/**\n * SourceNodes provide a way to abstract over interpolating/concatenating\n * snippets of generated JavaScript source code while maintaining the line and\n * column information associated with the original source code.\n *\n * @param aLine The original line number.\n * @param aColumn The original column number.\n * @param aSource The original source's filename.\n * @param aChunks Optional. An array of strings which are snippets of\n *        generated JS, or other SourceNodes.\n * @param aName The original identifier.\n */\nfunction SourceNode(aLine, aColumn, aSource, aChunks, aName) {\n  this.children = [];\n  this.sourceContents = {};\n  this.line = aLine == null ? null : aLine;\n  this.column = aColumn == null ? null : aColumn;\n  this.source = aSource == null ? null : aSource;\n  this.name = aName == null ? null : aName;\n  this[isSourceNode] = true;\n  if (aChunks != null) this.add(aChunks);\n}\n\n/**\n * Creates a SourceNode from generated code and a SourceMapConsumer.\n *\n * @param aGeneratedCode The generated code\n * @param aSourceMapConsumer The SourceMap for the generated code\n * @param aRelativePath Optional. The path that relative sources in the\n *        SourceMapConsumer should be relative to.\n */\nSourceNode.fromStringWithSourceMap =\n  function SourceNode_fromStringWithSourceMap(aGeneratedCode, aSourceMapConsumer, aRelativePath) {\n    // The SourceNode we want to fill with the generated code\n    // and the SourceMap\n    var node = new SourceNode();\n\n    // All even indices of this array are one line of the generated code,\n    // while all odd indices are the newlines between two adjacent lines\n    // (since `REGEX_NEWLINE` captures its match).\n    // Processed fragments are accessed by calling `shiftNextLine`.\n    var remainingLines = aGeneratedCode.split(REGEX_NEWLINE);\n    var remainingLinesIndex = 0;\n    var shiftNextLine = function() {\n      var lineContents = getNextLine();\n      // The last line of a file might not have a newline.\n      var newLine = getNextLine() || \"\";\n      return lineContents + newLine;\n\n      function getNextLine() {\n        return remainingLinesIndex < remainingLines.length ?\n            remainingLines[remainingLinesIndex++] : undefined;\n      }\n    };\n\n    // We need to remember the position of \"remainingLines\"\n    var lastGeneratedLine = 1, lastGeneratedColumn = 0;\n\n    // The generate SourceNodes we need a code range.\n    // To extract it current and last mapping is used.\n    // Here we store the last mapping.\n    var lastMapping = null;\n\n    aSourceMapConsumer.eachMapping(function (mapping) {\n      if (lastMapping !== null) {\n        // We add the code from \"lastMapping\" to \"mapping\":\n        // First check if there is a new line in between.\n        if (lastGeneratedLine < mapping.generatedLine) {\n          // Associate first line with \"lastMapping\"\n          addMappingWithCode(lastMapping, shiftNextLine());\n          lastGeneratedLine++;\n          lastGeneratedColumn = 0;\n          // The remaining code is added without mapping\n        } else {\n          // There is no new line in between.\n          // Associate the code between \"lastGeneratedColumn\" and\n          // \"mapping.generatedColumn\" with \"lastMapping\"\n          var nextLine = remainingLines[remainingLinesIndex];\n          var code = nextLine.substr(0, mapping.generatedColumn -\n                                        lastGeneratedColumn);\n          remainingLines[remainingLinesIndex] = nextLine.substr(mapping.generatedColumn -\n                                              lastGeneratedColumn);\n          lastGeneratedColumn = mapping.generatedColumn;\n          addMappingWithCode(lastMapping, code);\n          // No more remaining code, continue\n          lastMapping = mapping;\n          return;\n        }\n      }\n      // We add the generated code until the first mapping\n      // to the SourceNode without any mapping.\n      // Each line is added as separate string.\n      while (lastGeneratedLine < mapping.generatedLine) {\n        node.add(shiftNextLine());\n        lastGeneratedLine++;\n      }\n      if (lastGeneratedColumn < mapping.generatedColumn) {\n        var nextLine = remainingLines[remainingLinesIndex];\n        node.add(nextLine.substr(0, mapping.generatedColumn));\n        remainingLines[remainingLinesIndex] = nextLine.substr(mapping.generatedColumn);\n        lastGeneratedColumn = mapping.generatedColumn;\n      }\n      lastMapping = mapping;\n    }, this);\n    // We have processed all mappings.\n    if (remainingLinesIndex < remainingLines.length) {\n      if (lastMapping) {\n        // Associate the remaining code in the current line with \"lastMapping\"\n        addMappingWithCode(lastMapping, shiftNextLine());\n      }\n      // and add the remaining lines without any mapping\n      node.add(remainingLines.splice(remainingLinesIndex).join(\"\"));\n    }\n\n    // Copy sourcesContent into SourceNode\n    aSourceMapConsumer.sources.forEach(function (sourceFile) {\n      var content = aSourceMapConsumer.sourceContentFor(sourceFile);\n      if (content != null) {\n        if (aRelativePath != null) {\n          sourceFile = util.join(aRelativePath, sourceFile);\n        }\n        node.setSourceContent(sourceFile, content);\n      }\n    });\n\n    return node;\n\n    function addMappingWithCode(mapping, code) {\n      if (mapping === null || mapping.source === undefined) {\n        node.add(code);\n      } else {\n        var source = aRelativePath\n          ? util.join(aRelativePath, mapping.source)\n          : mapping.source;\n        node.add(new SourceNode(mapping.originalLine,\n                                mapping.originalColumn,\n                                source,\n                                code,\n                                mapping.name));\n      }\n    }\n  };\n\n/**\n * Add a chunk of generated JS to this source node.\n *\n * @param aChunk A string snippet of generated JS code, another instance of\n *        SourceNode, or an array where each member is one of those things.\n */\nSourceNode.prototype.add = function SourceNode_add(aChunk) {\n  if (Array.isArray(aChunk)) {\n    aChunk.forEach(function (chunk) {\n      this.add(chunk);\n    }, this);\n  }\n  else if (aChunk[isSourceNode] || typeof aChunk === \"string\") {\n    if (aChunk) {\n      this.children.push(aChunk);\n    }\n  }\n  else {\n    throw new TypeError(\n      \"Expected a SourceNode, string, or an array of SourceNodes and strings. Got \" + aChunk\n    );\n  }\n  return this;\n};\n\n/**\n * Add a chunk of generated JS to the beginning of this source node.\n *\n * @param aChunk A string snippet of generated JS code, another instance of\n *        SourceNode, or an array where each member is one of those things.\n */\nSourceNode.prototype.prepend = function SourceNode_prepend(aChunk) {\n  if (Array.isArray(aChunk)) {\n    for (var i = aChunk.length-1; i >= 0; i--) {\n      this.prepend(aChunk[i]);\n    }\n  }\n  else if (aChunk[isSourceNode] || typeof aChunk === \"string\") {\n    this.children.unshift(aChunk);\n  }\n  else {\n    throw new TypeError(\n      \"Expected a SourceNode, string, or an array of SourceNodes and strings. Got \" + aChunk\n    );\n  }\n  return this;\n};\n\n/**\n * Walk over the tree of JS snippets in this node and its children. The\n * walking function is called once for each snippet of JS and is passed that\n * snippet and the its original associated source's line/column location.\n *\n * @param aFn The traversal function.\n */\nSourceNode.prototype.walk = function SourceNode_walk(aFn) {\n  var chunk;\n  for (var i = 0, len = this.children.length; i < len; i++) {\n    chunk = this.children[i];\n    if (chunk[isSourceNode]) {\n      chunk.walk(aFn);\n    }\n    else {\n      if (chunk !== '') {\n        aFn(chunk, { source: this.source,\n                     line: this.line,\n                     column: this.column,\n                     name: this.name });\n      }\n    }\n  }\n};\n\n/**\n * Like `String.prototype.join` except for SourceNodes. Inserts `aStr` between\n * each of `this.children`.\n *\n * @param aSep The separator.\n */\nSourceNode.prototype.join = function SourceNode_join(aSep) {\n  var newChildren;\n  var i;\n  var len = this.children.length;\n  if (len > 0) {\n    newChildren = [];\n    for (i = 0; i < len-1; i++) {\n      newChildren.push(this.children[i]);\n      newChildren.push(aSep);\n    }\n    newChildren.push(this.children[i]);\n    this.children = newChildren;\n  }\n  return this;\n};\n\n/**\n * Call String.prototype.replace on the very right-most source snippet. Useful\n * for trimming whitespace from the end of a source node, etc.\n *\n * @param aPattern The pattern to replace.\n * @param aReplacement The thing to replace the pattern with.\n */\nSourceNode.prototype.replaceRight = function SourceNode_replaceRight(aPattern, aReplacement) {\n  var lastChild = this.children[this.children.length - 1];\n  if (lastChild[isSourceNode]) {\n    lastChild.replaceRight(aPattern, aReplacement);\n  }\n  else if (typeof lastChild === 'string') {\n    this.children[this.children.length - 1] = lastChild.replace(aPattern, aReplacement);\n  }\n  else {\n    this.children.push(''.replace(aPattern, aReplacement));\n  }\n  return this;\n};\n\n/**\n * Set the source content for a source file. This will be added to the SourceMapGenerator\n * in the sourcesContent field.\n *\n * @param aSourceFile The filename of the source file\n * @param aSourceContent The content of the source file\n */\nSourceNode.prototype.setSourceContent =\n  function SourceNode_setSourceContent(aSourceFile, aSourceContent) {\n    this.sourceContents[util.toSetString(aSourceFile)] = aSourceContent;\n  };\n\n/**\n * Walk over the tree of SourceNodes. The walking function is called for each\n * source file content and is passed the filename and source content.\n *\n * @param aFn The traversal function.\n */\nSourceNode.prototype.walkSourceContents =\n  function SourceNode_walkSourceContents(aFn) {\n    for (var i = 0, len = this.children.length; i < len; i++) {\n      if (this.children[i][isSourceNode]) {\n        this.children[i].walkSourceContents(aFn);\n      }\n    }\n\n    var sources = Object.keys(this.sourceContents);\n    for (var i = 0, len = sources.length; i < len; i++) {\n      aFn(util.fromSetString(sources[i]), this.sourceContents[sources[i]]);\n    }\n  };\n\n/**\n * Return the string representation of this source node. Walks over the tree\n * and concatenates all the various snippets together to one string.\n */\nSourceNode.prototype.toString = function SourceNode_toString() {\n  var str = \"\";\n  this.walk(function (chunk) {\n    str += chunk;\n  });\n  return str;\n};\n\n/**\n * Returns the string representation of this source node along with a source\n * map.\n */\nSourceNode.prototype.toStringWithSourceMap = function SourceNode_toStringWithSourceMap(aArgs) {\n  var generated = {\n    code: \"\",\n    line: 1,\n    column: 0\n  };\n  var map = new SourceMapGenerator(aArgs);\n  var sourceMappingActive = false;\n  var lastOriginalSource = null;\n  var lastOriginalLine = null;\n  var lastOriginalColumn = null;\n  var lastOriginalName = null;\n  this.walk(function (chunk, original) {\n    generated.code += chunk;\n    if (original.source !== null\n        && original.line !== null\n        && original.column !== null) {\n      if(lastOriginalSource !== original.source\n         || lastOriginalLine !== original.line\n         || lastOriginalColumn !== original.column\n         || lastOriginalName !== original.name) {\n        map.addMapping({\n          source: original.source,\n          original: {\n            line: original.line,\n            column: original.column\n          },\n          generated: {\n            line: generated.line,\n            column: generated.column\n          },\n          name: original.name\n        });\n      }\n      lastOriginalSource = original.source;\n      lastOriginalLine = original.line;\n      lastOriginalColumn = original.column;\n      lastOriginalName = original.name;\n      sourceMappingActive = true;\n    } else if (sourceMappingActive) {\n      map.addMapping({\n        generated: {\n          line: generated.line,\n          column: generated.column\n        }\n      });\n      lastOriginalSource = null;\n      sourceMappingActive = false;\n    }\n    for (var idx = 0, length = chunk.length; idx < length; idx++) {\n      if (chunk.charCodeAt(idx) === NEWLINE_CODE) {\n        generated.line++;\n        generated.column = 0;\n        // Mappings end at eol\n        if (idx + 1 === length) {\n          lastOriginalSource = null;\n          sourceMappingActive = false;\n        } else if (sourceMappingActive) {\n          map.addMapping({\n            source: original.source,\n            original: {\n              line: original.line,\n              column: original.column\n            },\n            generated: {\n              line: generated.line,\n              column: generated.column\n            },\n            name: original.name\n          });\n        }\n      } else {\n        generated.column++;\n      }\n    }\n  });\n  this.walkSourceContents(function (sourceFile, sourceContent) {\n    map.setSourceContent(sourceFile, sourceContent);\n  });\n\n  return { code: generated.code, map: map };\n};\n\nexports.SourceNode = SourceNode;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/source-node.js\n// module id = 10\n// module chunks = 0"],"sourceRoot":""}
\ No newline at end of file
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-coverage/node_modules/source-map/lib/array-set.js b/src/cobalt/debug/remote/devtools/node_modules/karma-coverage/node_modules/source-map/lib/array-set.js
deleted file mode 100644
index fbd5c81..0000000
--- a/src/cobalt/debug/remote/devtools/node_modules/karma-coverage/node_modules/source-map/lib/array-set.js
+++ /dev/null
@@ -1,121 +0,0 @@
-/* -*- Mode: js; js-indent-level: 2; -*- */
-/*
- * Copyright 2011 Mozilla Foundation and contributors
- * Licensed under the New BSD license. See LICENSE or:
- * http://opensource.org/licenses/BSD-3-Clause
- */
-
-var util = require('./util');
-var has = Object.prototype.hasOwnProperty;
-var hasNativeMap = typeof Map !== "undefined";
-
-/**
- * A data structure which is a combination of an array and a set. Adding a new
- * member is O(1), testing for membership is O(1), and finding the index of an
- * element is O(1). Removing elements from the set is not supported. Only
- * strings are supported for membership.
- */
-function ArraySet() {
-  this._array = [];
-  this._set = hasNativeMap ? new Map() : Object.create(null);
-}
-
-/**
- * Static method for creating ArraySet instances from an existing array.
- */
-ArraySet.fromArray = function ArraySet_fromArray(aArray, aAllowDuplicates) {
-  var set = new ArraySet();
-  for (var i = 0, len = aArray.length; i < len; i++) {
-    set.add(aArray[i], aAllowDuplicates);
-  }
-  return set;
-};
-
-/**
- * Return how many unique items are in this ArraySet. If duplicates have been
- * added, than those do not count towards the size.
- *
- * @returns Number
- */
-ArraySet.prototype.size = function ArraySet_size() {
-  return hasNativeMap ? this._set.size : Object.getOwnPropertyNames(this._set).length;
-};
-
-/**
- * Add the given string to this set.
- *
- * @param String aStr
- */
-ArraySet.prototype.add = function ArraySet_add(aStr, aAllowDuplicates) {
-  var sStr = hasNativeMap ? aStr : util.toSetString(aStr);
-  var isDuplicate = hasNativeMap ? this.has(aStr) : has.call(this._set, sStr);
-  var idx = this._array.length;
-  if (!isDuplicate || aAllowDuplicates) {
-    this._array.push(aStr);
-  }
-  if (!isDuplicate) {
-    if (hasNativeMap) {
-      this._set.set(aStr, idx);
-    } else {
-      this._set[sStr] = idx;
-    }
-  }
-};
-
-/**
- * Is the given string a member of this set?
- *
- * @param String aStr
- */
-ArraySet.prototype.has = function ArraySet_has(aStr) {
-  if (hasNativeMap) {
-    return this._set.has(aStr);
-  } else {
-    var sStr = util.toSetString(aStr);
-    return has.call(this._set, sStr);
-  }
-};
-
-/**
- * What is the index of the given string in the array?
- *
- * @param String aStr
- */
-ArraySet.prototype.indexOf = function ArraySet_indexOf(aStr) {
-  if (hasNativeMap) {
-    var idx = this._set.get(aStr);
-    if (idx >= 0) {
-        return idx;
-    }
-  } else {
-    var sStr = util.toSetString(aStr);
-    if (has.call(this._set, sStr)) {
-      return this._set[sStr];
-    }
-  }
-
-  throw new Error('"' + aStr + '" is not in the set.');
-};
-
-/**
- * What is the element at the given index?
- *
- * @param Number aIdx
- */
-ArraySet.prototype.at = function ArraySet_at(aIdx) {
-  if (aIdx >= 0 && aIdx < this._array.length) {
-    return this._array[aIdx];
-  }
-  throw new Error('No element indexed by ' + aIdx);
-};
-
-/**
- * Returns the array representation of this set (which has the proper indices
- * indicated by indexOf). Note that this is a copy of the internal array used
- * for storing the members so that no one can mess with internal state.
- */
-ArraySet.prototype.toArray = function ArraySet_toArray() {
-  return this._array.slice();
-};
-
-exports.ArraySet = ArraySet;
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-coverage/node_modules/source-map/lib/base64-vlq.js b/src/cobalt/debug/remote/devtools/node_modules/karma-coverage/node_modules/source-map/lib/base64-vlq.js
deleted file mode 100644
index 612b404..0000000
--- a/src/cobalt/debug/remote/devtools/node_modules/karma-coverage/node_modules/source-map/lib/base64-vlq.js
+++ /dev/null
@@ -1,140 +0,0 @@
-/* -*- Mode: js; js-indent-level: 2; -*- */
-/*
- * Copyright 2011 Mozilla Foundation and contributors
- * Licensed under the New BSD license. See LICENSE or:
- * http://opensource.org/licenses/BSD-3-Clause
- *
- * Based on the Base 64 VLQ implementation in Closure Compiler:
- * https://code.google.com/p/closure-compiler/source/browse/trunk/src/com/google/debugging/sourcemap/Base64VLQ.java
- *
- * Copyright 2011 The Closure Compiler Authors. All rights reserved.
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- *  * Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- *  * Redistributions in binary form must reproduce the above
- *    copyright notice, this list of conditions and the following
- *    disclaimer in the documentation and/or other materials provided
- *    with the distribution.
- *  * Neither the name of Google Inc. nor the names of its
- *    contributors may be used to endorse or promote products derived
- *    from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-var base64 = require('./base64');
-
-// A single base 64 digit can contain 6 bits of data. For the base 64 variable
-// length quantities we use in the source map spec, the first bit is the sign,
-// the next four bits are the actual value, and the 6th bit is the
-// continuation bit. The continuation bit tells us whether there are more
-// digits in this value following this digit.
-//
-//   Continuation
-//   |    Sign
-//   |    |
-//   V    V
-//   101011
-
-var VLQ_BASE_SHIFT = 5;
-
-// binary: 100000
-var VLQ_BASE = 1 << VLQ_BASE_SHIFT;
-
-// binary: 011111
-var VLQ_BASE_MASK = VLQ_BASE - 1;
-
-// binary: 100000
-var VLQ_CONTINUATION_BIT = VLQ_BASE;
-
-/**
- * Converts from a two-complement value to a value where the sign bit is
- * placed in the least significant bit.  For example, as decimals:
- *   1 becomes 2 (10 binary), -1 becomes 3 (11 binary)
- *   2 becomes 4 (100 binary), -2 becomes 5 (101 binary)
- */
-function toVLQSigned(aValue) {
-  return aValue < 0
-    ? ((-aValue) << 1) + 1
-    : (aValue << 1) + 0;
-}
-
-/**
- * Converts to a two-complement value from a value where the sign bit is
- * placed in the least significant bit.  For example, as decimals:
- *   2 (10 binary) becomes 1, 3 (11 binary) becomes -1
- *   4 (100 binary) becomes 2, 5 (101 binary) becomes -2
- */
-function fromVLQSigned(aValue) {
-  var isNegative = (aValue & 1) === 1;
-  var shifted = aValue >> 1;
-  return isNegative
-    ? -shifted
-    : shifted;
-}
-
-/**
- * Returns the base 64 VLQ encoded value.
- */
-exports.encode = function base64VLQ_encode(aValue) {
-  var encoded = "";
-  var digit;
-
-  var vlq = toVLQSigned(aValue);
-
-  do {
-    digit = vlq & VLQ_BASE_MASK;
-    vlq >>>= VLQ_BASE_SHIFT;
-    if (vlq > 0) {
-      // There are still more digits in this value, so we must make sure the
-      // continuation bit is marked.
-      digit |= VLQ_CONTINUATION_BIT;
-    }
-    encoded += base64.encode(digit);
-  } while (vlq > 0);
-
-  return encoded;
-};
-
-/**
- * Decodes the next base 64 VLQ value from the given string and returns the
- * value and the rest of the string via the out parameter.
- */
-exports.decode = function base64VLQ_decode(aStr, aIndex, aOutParam) {
-  var strLen = aStr.length;
-  var result = 0;
-  var shift = 0;
-  var continuation, digit;
-
-  do {
-    if (aIndex >= strLen) {
-      throw new Error("Expected more digits in base 64 VLQ value.");
-    }
-
-    digit = base64.decode(aStr.charCodeAt(aIndex++));
-    if (digit === -1) {
-      throw new Error("Invalid base64 digit: " + aStr.charAt(aIndex - 1));
-    }
-
-    continuation = !!(digit & VLQ_CONTINUATION_BIT);
-    digit &= VLQ_BASE_MASK;
-    result = result + (digit << shift);
-    shift += VLQ_BASE_SHIFT;
-  } while (continuation);
-
-  aOutParam.value = fromVLQSigned(result);
-  aOutParam.rest = aIndex;
-};
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-coverage/node_modules/source-map/lib/base64.js b/src/cobalt/debug/remote/devtools/node_modules/karma-coverage/node_modules/source-map/lib/base64.js
deleted file mode 100644
index 8aa86b3..0000000
--- a/src/cobalt/debug/remote/devtools/node_modules/karma-coverage/node_modules/source-map/lib/base64.js
+++ /dev/null
@@ -1,67 +0,0 @@
-/* -*- Mode: js; js-indent-level: 2; -*- */
-/*
- * Copyright 2011 Mozilla Foundation and contributors
- * Licensed under the New BSD license. See LICENSE or:
- * http://opensource.org/licenses/BSD-3-Clause
- */
-
-var intToCharMap = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'.split('');
-
-/**
- * Encode an integer in the range of 0 to 63 to a single base 64 digit.
- */
-exports.encode = function (number) {
-  if (0 <= number && number < intToCharMap.length) {
-    return intToCharMap[number];
-  }
-  throw new TypeError("Must be between 0 and 63: " + number);
-};
-
-/**
- * Decode a single base 64 character code digit to an integer. Returns -1 on
- * failure.
- */
-exports.decode = function (charCode) {
-  var bigA = 65;     // 'A'
-  var bigZ = 90;     // 'Z'
-
-  var littleA = 97;  // 'a'
-  var littleZ = 122; // 'z'
-
-  var zero = 48;     // '0'
-  var nine = 57;     // '9'
-
-  var plus = 43;     // '+'
-  var slash = 47;    // '/'
-
-  var littleOffset = 26;
-  var numberOffset = 52;
-
-  // 0 - 25: ABCDEFGHIJKLMNOPQRSTUVWXYZ
-  if (bigA <= charCode && charCode <= bigZ) {
-    return (charCode - bigA);
-  }
-
-  // 26 - 51: abcdefghijklmnopqrstuvwxyz
-  if (littleA <= charCode && charCode <= littleZ) {
-    return (charCode - littleA + littleOffset);
-  }
-
-  // 52 - 61: 0123456789
-  if (zero <= charCode && charCode <= nine) {
-    return (charCode - zero + numberOffset);
-  }
-
-  // 62: +
-  if (charCode == plus) {
-    return 62;
-  }
-
-  // 63: /
-  if (charCode == slash) {
-    return 63;
-  }
-
-  // Invalid base64 digit.
-  return -1;
-};
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-coverage/node_modules/source-map/lib/binary-search.js b/src/cobalt/debug/remote/devtools/node_modules/karma-coverage/node_modules/source-map/lib/binary-search.js
deleted file mode 100644
index 010ac94..0000000
--- a/src/cobalt/debug/remote/devtools/node_modules/karma-coverage/node_modules/source-map/lib/binary-search.js
+++ /dev/null
@@ -1,111 +0,0 @@
-/* -*- Mode: js; js-indent-level: 2; -*- */
-/*
- * Copyright 2011 Mozilla Foundation and contributors
- * Licensed under the New BSD license. See LICENSE or:
- * http://opensource.org/licenses/BSD-3-Clause
- */
-
-exports.GREATEST_LOWER_BOUND = 1;
-exports.LEAST_UPPER_BOUND = 2;
-
-/**
- * Recursive implementation of binary search.
- *
- * @param aLow Indices here and lower do not contain the needle.
- * @param aHigh Indices here and higher do not contain the needle.
- * @param aNeedle The element being searched for.
- * @param aHaystack The non-empty array being searched.
- * @param aCompare Function which takes two elements and returns -1, 0, or 1.
- * @param aBias Either 'binarySearch.GREATEST_LOWER_BOUND' or
- *     'binarySearch.LEAST_UPPER_BOUND'. Specifies whether to return the
- *     closest element that is smaller than or greater than the one we are
- *     searching for, respectively, if the exact element cannot be found.
- */
-function recursiveSearch(aLow, aHigh, aNeedle, aHaystack, aCompare, aBias) {
-  // This function terminates when one of the following is true:
-  //
-  //   1. We find the exact element we are looking for.
-  //
-  //   2. We did not find the exact element, but we can return the index of
-  //      the next-closest element.
-  //
-  //   3. We did not find the exact element, and there is no next-closest
-  //      element than the one we are searching for, so we return -1.
-  var mid = Math.floor((aHigh - aLow) / 2) + aLow;
-  var cmp = aCompare(aNeedle, aHaystack[mid], true);
-  if (cmp === 0) {
-    // Found the element we are looking for.
-    return mid;
-  }
-  else if (cmp > 0) {
-    // Our needle is greater than aHaystack[mid].
-    if (aHigh - mid > 1) {
-      // The element is in the upper half.
-      return recursiveSearch(mid, aHigh, aNeedle, aHaystack, aCompare, aBias);
-    }
-
-    // The exact needle element was not found in this haystack. Determine if
-    // we are in termination case (3) or (2) and return the appropriate thing.
-    if (aBias == exports.LEAST_UPPER_BOUND) {
-      return aHigh < aHaystack.length ? aHigh : -1;
-    } else {
-      return mid;
-    }
-  }
-  else {
-    // Our needle is less than aHaystack[mid].
-    if (mid - aLow > 1) {
-      // The element is in the lower half.
-      return recursiveSearch(aLow, mid, aNeedle, aHaystack, aCompare, aBias);
-    }
-
-    // we are in termination case (3) or (2) and return the appropriate thing.
-    if (aBias == exports.LEAST_UPPER_BOUND) {
-      return mid;
-    } else {
-      return aLow < 0 ? -1 : aLow;
-    }
-  }
-}
-
-/**
- * This is an implementation of binary search which will always try and return
- * the index of the closest element if there is no exact hit. This is because
- * mappings between original and generated line/col pairs are single points,
- * and there is an implicit region between each of them, so a miss just means
- * that you aren't on the very start of a region.
- *
- * @param aNeedle The element you are looking for.
- * @param aHaystack The array that is being searched.
- * @param aCompare A function which takes the needle and an element in the
- *     array and returns -1, 0, or 1 depending on whether the needle is less
- *     than, equal to, or greater than the element, respectively.
- * @param aBias Either 'binarySearch.GREATEST_LOWER_BOUND' or
- *     'binarySearch.LEAST_UPPER_BOUND'. Specifies whether to return the
- *     closest element that is smaller than or greater than the one we are
- *     searching for, respectively, if the exact element cannot be found.
- *     Defaults to 'binarySearch.GREATEST_LOWER_BOUND'.
- */
-exports.search = function search(aNeedle, aHaystack, aCompare, aBias) {
-  if (aHaystack.length === 0) {
-    return -1;
-  }
-
-  var index = recursiveSearch(-1, aHaystack.length, aNeedle, aHaystack,
-                              aCompare, aBias || exports.GREATEST_LOWER_BOUND);
-  if (index < 0) {
-    return -1;
-  }
-
-  // We have found either the exact element, or the next-closest element than
-  // the one we are searching for. However, there may be more than one such
-  // element. Make sure we always return the smallest of these.
-  while (index - 1 >= 0) {
-    if (aCompare(aHaystack[index], aHaystack[index - 1], true) !== 0) {
-      break;
-    }
-    --index;
-  }
-
-  return index;
-};
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-coverage/node_modules/source-map/lib/mapping-list.js b/src/cobalt/debug/remote/devtools/node_modules/karma-coverage/node_modules/source-map/lib/mapping-list.js
deleted file mode 100644
index 06d1274..0000000
--- a/src/cobalt/debug/remote/devtools/node_modules/karma-coverage/node_modules/source-map/lib/mapping-list.js
+++ /dev/null
@@ -1,79 +0,0 @@
-/* -*- Mode: js; js-indent-level: 2; -*- */
-/*
- * Copyright 2014 Mozilla Foundation and contributors
- * Licensed under the New BSD license. See LICENSE or:
- * http://opensource.org/licenses/BSD-3-Clause
- */
-
-var util = require('./util');
-
-/**
- * Determine whether mappingB is after mappingA with respect to generated
- * position.
- */
-function generatedPositionAfter(mappingA, mappingB) {
-  // Optimized for most common case
-  var lineA = mappingA.generatedLine;
-  var lineB = mappingB.generatedLine;
-  var columnA = mappingA.generatedColumn;
-  var columnB = mappingB.generatedColumn;
-  return lineB > lineA || lineB == lineA && columnB >= columnA ||
-         util.compareByGeneratedPositionsInflated(mappingA, mappingB) <= 0;
-}
-
-/**
- * A data structure to provide a sorted view of accumulated mappings in a
- * performance conscious manner. It trades a neglibable overhead in general
- * case for a large speedup in case of mappings being added in order.
- */
-function MappingList() {
-  this._array = [];
-  this._sorted = true;
-  // Serves as infimum
-  this._last = {generatedLine: -1, generatedColumn: 0};
-}
-
-/**
- * Iterate through internal items. This method takes the same arguments that
- * `Array.prototype.forEach` takes.
- *
- * NOTE: The order of the mappings is NOT guaranteed.
- */
-MappingList.prototype.unsortedForEach =
-  function MappingList_forEach(aCallback, aThisArg) {
-    this._array.forEach(aCallback, aThisArg);
-  };
-
-/**
- * Add the given source mapping.
- *
- * @param Object aMapping
- */
-MappingList.prototype.add = function MappingList_add(aMapping) {
-  if (generatedPositionAfter(this._last, aMapping)) {
-    this._last = aMapping;
-    this._array.push(aMapping);
-  } else {
-    this._sorted = false;
-    this._array.push(aMapping);
-  }
-};
-
-/**
- * Returns the flat, sorted array of mappings. The mappings are sorted by
- * generated position.
- *
- * WARNING: This method returns internal data without copying, for
- * performance. The return value must NOT be mutated, and should be treated as
- * an immutable borrow. If you want to take ownership, you must make your own
- * copy.
- */
-MappingList.prototype.toArray = function MappingList_toArray() {
-  if (!this._sorted) {
-    this._array.sort(util.compareByGeneratedPositionsInflated);
-    this._sorted = true;
-  }
-  return this._array;
-};
-
-exports.MappingList = MappingList;
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-coverage/node_modules/source-map/lib/quick-sort.js b/src/cobalt/debug/remote/devtools/node_modules/karma-coverage/node_modules/source-map/lib/quick-sort.js
deleted file mode 100644
index 6a7caad..0000000
--- a/src/cobalt/debug/remote/devtools/node_modules/karma-coverage/node_modules/source-map/lib/quick-sort.js
+++ /dev/null
@@ -1,114 +0,0 @@
-/* -*- Mode: js; js-indent-level: 2; -*- */
-/*
- * Copyright 2011 Mozilla Foundation and contributors
- * Licensed under the New BSD license. See LICENSE or:
- * http://opensource.org/licenses/BSD-3-Clause
- */
-
-// It turns out that some (most?) JavaScript engines don't self-host
-// `Array.prototype.sort`. This makes sense because C++ will likely remain
-// faster than JS when doing raw CPU-intensive sorting. However, when using a
-// custom comparator function, calling back and forth between the VM's C++ and
-// JIT'd JS is rather slow *and* loses JIT type information, resulting in
-// worse generated code for the comparator function than would be optimal. In
-// fact, when sorting with a comparator, these costs outweigh the benefits of
-// sorting in C++. By using our own JS-implemented Quick Sort (below), we get
-// a ~3500ms mean speed-up in `bench/bench.html`.
-
-/**
- * Swap the elements indexed by `x` and `y` in the array `ary`.
- *
- * @param {Array} ary
- *        The array.
- * @param {Number} x
- *        The index of the first item.
- * @param {Number} y
- *        The index of the second item.
- */
-function swap(ary, x, y) {
-  var temp = ary[x];
-  ary[x] = ary[y];
-  ary[y] = temp;
-}
-
-/**
- * Returns a random integer within the range `low .. high` inclusive.
- *
- * @param {Number} low
- *        The lower bound on the range.
- * @param {Number} high
- *        The upper bound on the range.
- */
-function randomIntInRange(low, high) {
-  return Math.round(low + (Math.random() * (high - low)));
-}
-
-/**
- * The Quick Sort algorithm.
- *
- * @param {Array} ary
- *        An array to sort.
- * @param {function} comparator
- *        Function to use to compare two items.
- * @param {Number} p
- *        Start index of the array
- * @param {Number} r
- *        End index of the array
- */
-function doQuickSort(ary, comparator, p, r) {
-  // If our lower bound is less than our upper bound, we (1) partition the
-  // array into two pieces and (2) recurse on each half. If it is not, this is
-  // the empty array and our base case.
-
-  if (p < r) {
-    // (1) Partitioning.
-    //
-    // The partitioning chooses a pivot between `p` and `r` and moves all
-    // elements that are less than or equal to the pivot to the before it, and
-    // all the elements that are greater than it after it. The effect is that
-    // once partition is done, the pivot is in the exact place it will be when
-    // the array is put in sorted order, and it will not need to be moved
-    // again. This runs in O(n) time.
-
-    // Always choose a random pivot so that an input array which is reverse
-    // sorted does not cause O(n^2) running time.
-    var pivotIndex = randomIntInRange(p, r);
-    var i = p - 1;
-
-    swap(ary, pivotIndex, r);
-    var pivot = ary[r];
-
-    // Immediately after `j` is incremented in this loop, the following hold
-    // true:
-    //
-    //   * Every element in `ary[p .. i]` is less than or equal to the pivot.
-    //
-    //   * Every element in `ary[i+1 .. j-1]` is greater than the pivot.
-    for (var j = p; j < r; j++) {
-      if (comparator(ary[j], pivot) <= 0) {
-        i += 1;
-        swap(ary, i, j);
-      }
-    }
-
-    swap(ary, i + 1, j);
-    var q = i + 1;
-
-    // (2) Recurse on each half.
-
-    doQuickSort(ary, comparator, p, q - 1);
-    doQuickSort(ary, comparator, q + 1, r);
-  }
-}
-
-/**
- * Sort the given array in-place with the given comparator function.
- *
- * @param {Array} ary
- *        An array to sort.
- * @param {function} comparator
- *        Function to use to compare two items.
- */
-exports.quickSort = function (ary, comparator) {
-  doQuickSort(ary, comparator, 0, ary.length - 1);
-};
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-coverage/node_modules/source-map/lib/source-map-consumer.js b/src/cobalt/debug/remote/devtools/node_modules/karma-coverage/node_modules/source-map/lib/source-map-consumer.js
deleted file mode 100644
index 6abcc28..0000000
--- a/src/cobalt/debug/remote/devtools/node_modules/karma-coverage/node_modules/source-map/lib/source-map-consumer.js
+++ /dev/null
@@ -1,1082 +0,0 @@
-/* -*- Mode: js; js-indent-level: 2; -*- */
-/*
- * Copyright 2011 Mozilla Foundation and contributors
- * Licensed under the New BSD license. See LICENSE or:
- * http://opensource.org/licenses/BSD-3-Clause
- */
-
-var util = require('./util');
-var binarySearch = require('./binary-search');
-var ArraySet = require('./array-set').ArraySet;
-var base64VLQ = require('./base64-vlq');
-var quickSort = require('./quick-sort').quickSort;
-
-function SourceMapConsumer(aSourceMap) {
-  var sourceMap = aSourceMap;
-  if (typeof aSourceMap === 'string') {
-    sourceMap = JSON.parse(aSourceMap.replace(/^\)\]\}'/, ''));
-  }
-
-  return sourceMap.sections != null
-    ? new IndexedSourceMapConsumer(sourceMap)
-    : new BasicSourceMapConsumer(sourceMap);
-}
-
-SourceMapConsumer.fromSourceMap = function(aSourceMap) {
-  return BasicSourceMapConsumer.fromSourceMap(aSourceMap);
-}
-
-/**
- * The version of the source mapping spec that we are consuming.
- */
-SourceMapConsumer.prototype._version = 3;
-
-// `__generatedMappings` and `__originalMappings` are arrays that hold the
-// parsed mapping coordinates from the source map's "mappings" attribute. They
-// are lazily instantiated, accessed via the `_generatedMappings` and
-// `_originalMappings` getters respectively, and we only parse the mappings
-// and create these arrays once queried for a source location. We jump through
-// these hoops because there can be many thousands of mappings, and parsing
-// them is expensive, so we only want to do it if we must.
-//
-// Each object in the arrays is of the form:
-//
-//     {
-//       generatedLine: The line number in the generated code,
-//       generatedColumn: The column number in the generated code,
-//       source: The path to the original source file that generated this
-//               chunk of code,
-//       originalLine: The line number in the original source that
-//                     corresponds to this chunk of generated code,
-//       originalColumn: The column number in the original source that
-//                       corresponds to this chunk of generated code,
-//       name: The name of the original symbol which generated this chunk of
-//             code.
-//     }
-//
-// All properties except for `generatedLine` and `generatedColumn` can be
-// `null`.
-//
-// `_generatedMappings` is ordered by the generated positions.
-//
-// `_originalMappings` is ordered by the original positions.
-
-SourceMapConsumer.prototype.__generatedMappings = null;
-Object.defineProperty(SourceMapConsumer.prototype, '_generatedMappings', {
-  get: function () {
-    if (!this.__generatedMappings) {
-      this._parseMappings(this._mappings, this.sourceRoot);
-    }
-
-    return this.__generatedMappings;
-  }
-});
-
-SourceMapConsumer.prototype.__originalMappings = null;
-Object.defineProperty(SourceMapConsumer.prototype, '_originalMappings', {
-  get: function () {
-    if (!this.__originalMappings) {
-      this._parseMappings(this._mappings, this.sourceRoot);
-    }
-
-    return this.__originalMappings;
-  }
-});
-
-SourceMapConsumer.prototype._charIsMappingSeparator =
-  function SourceMapConsumer_charIsMappingSeparator(aStr, index) {
-    var c = aStr.charAt(index);
-    return c === ";" || c === ",";
-  };
-
-/**
- * Parse the mappings in a string in to a data structure which we can easily
- * query (the ordered arrays in the `this.__generatedMappings` and
- * `this.__originalMappings` properties).
- */
-SourceMapConsumer.prototype._parseMappings =
-  function SourceMapConsumer_parseMappings(aStr, aSourceRoot) {
-    throw new Error("Subclasses must implement _parseMappings");
-  };
-
-SourceMapConsumer.GENERATED_ORDER = 1;
-SourceMapConsumer.ORIGINAL_ORDER = 2;
-
-SourceMapConsumer.GREATEST_LOWER_BOUND = 1;
-SourceMapConsumer.LEAST_UPPER_BOUND = 2;
-
-/**
- * Iterate over each mapping between an original source/line/column and a
- * generated line/column in this source map.
- *
- * @param Function aCallback
- *        The function that is called with each mapping.
- * @param Object aContext
- *        Optional. If specified, this object will be the value of `this` every
- *        time that `aCallback` is called.
- * @param aOrder
- *        Either `SourceMapConsumer.GENERATED_ORDER` or
- *        `SourceMapConsumer.ORIGINAL_ORDER`. Specifies whether you want to
- *        iterate over the mappings sorted by the generated file's line/column
- *        order or the original's source/line/column order, respectively. Defaults to
- *        `SourceMapConsumer.GENERATED_ORDER`.
- */
-SourceMapConsumer.prototype.eachMapping =
-  function SourceMapConsumer_eachMapping(aCallback, aContext, aOrder) {
-    var context = aContext || null;
-    var order = aOrder || SourceMapConsumer.GENERATED_ORDER;
-
-    var mappings;
-    switch (order) {
-    case SourceMapConsumer.GENERATED_ORDER:
-      mappings = this._generatedMappings;
-      break;
-    case SourceMapConsumer.ORIGINAL_ORDER:
-      mappings = this._originalMappings;
-      break;
-    default:
-      throw new Error("Unknown order of iteration.");
-    }
-
-    var sourceRoot = this.sourceRoot;
-    mappings.map(function (mapping) {
-      var source = mapping.source === null ? null : this._sources.at(mapping.source);
-      if (source != null && sourceRoot != null) {
-        source = util.join(sourceRoot, source);
-      }
-      return {
-        source: source,
-        generatedLine: mapping.generatedLine,
-        generatedColumn: mapping.generatedColumn,
-        originalLine: mapping.originalLine,
-        originalColumn: mapping.originalColumn,
-        name: mapping.name === null ? null : this._names.at(mapping.name)
-      };
-    }, this).forEach(aCallback, context);
-  };
-
-/**
- * Returns all generated line and column information for the original source,
- * line, and column provided. If no column is provided, returns all mappings
- * corresponding to a either the line we are searching for or the next
- * closest line that has any mappings. Otherwise, returns all mappings
- * corresponding to the given line and either the column we are searching for
- * or the next closest column that has any offsets.
- *
- * The only argument is an object with the following properties:
- *
- *   - source: The filename of the original source.
- *   - line: The line number in the original source.
- *   - column: Optional. the column number in the original source.
- *
- * and an array of objects is returned, each with the following properties:
- *
- *   - line: The line number in the generated source, or null.
- *   - column: The column number in the generated source, or null.
- */
-SourceMapConsumer.prototype.allGeneratedPositionsFor =
-  function SourceMapConsumer_allGeneratedPositionsFor(aArgs) {
-    var line = util.getArg(aArgs, 'line');
-
-    // When there is no exact match, BasicSourceMapConsumer.prototype._findMapping
-    // returns the index of the closest mapping less than the needle. By
-    // setting needle.originalColumn to 0, we thus find the last mapping for
-    // the given line, provided such a mapping exists.
-    var needle = {
-      source: util.getArg(aArgs, 'source'),
-      originalLine: line,
-      originalColumn: util.getArg(aArgs, 'column', 0)
-    };
-
-    if (this.sourceRoot != null) {
-      needle.source = util.relative(this.sourceRoot, needle.source);
-    }
-    if (!this._sources.has(needle.source)) {
-      return [];
-    }
-    needle.source = this._sources.indexOf(needle.source);
-
-    var mappings = [];
-
-    var index = this._findMapping(needle,
-                                  this._originalMappings,
-                                  "originalLine",
-                                  "originalColumn",
-                                  util.compareByOriginalPositions,
-                                  binarySearch.LEAST_UPPER_BOUND);
-    if (index >= 0) {
-      var mapping = this._originalMappings[index];
-
-      if (aArgs.column === undefined) {
-        var originalLine = mapping.originalLine;
-
-        // Iterate until either we run out of mappings, or we run into
-        // a mapping for a different line than the one we found. Since
-        // mappings are sorted, this is guaranteed to find all mappings for
-        // the line we found.
-        while (mapping && mapping.originalLine === originalLine) {
-          mappings.push({
-            line: util.getArg(mapping, 'generatedLine', null),
-            column: util.getArg(mapping, 'generatedColumn', null),
-            lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null)
-          });
-
-          mapping = this._originalMappings[++index];
-        }
-      } else {
-        var originalColumn = mapping.originalColumn;
-
-        // Iterate until either we run out of mappings, or we run into
-        // a mapping for a different line than the one we were searching for.
-        // Since mappings are sorted, this is guaranteed to find all mappings for
-        // the line we are searching for.
-        while (mapping &&
-               mapping.originalLine === line &&
-               mapping.originalColumn == originalColumn) {
-          mappings.push({
-            line: util.getArg(mapping, 'generatedLine', null),
-            column: util.getArg(mapping, 'generatedColumn', null),
-            lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null)
-          });
-
-          mapping = this._originalMappings[++index];
-        }
-      }
-    }
-
-    return mappings;
-  };
-
-exports.SourceMapConsumer = SourceMapConsumer;
-
-/**
- * A BasicSourceMapConsumer instance represents a parsed source map which we can
- * query for information about the original file positions by giving it a file
- * position in the generated source.
- *
- * The only parameter is the raw source map (either as a JSON string, or
- * already parsed to an object). According to the spec, source maps have the
- * following attributes:
- *
- *   - version: Which version of the source map spec this map is following.
- *   - sources: An array of URLs to the original source files.
- *   - names: An array of identifiers which can be referrenced by individual mappings.
- *   - sourceRoot: Optional. The URL root from which all sources are relative.
- *   - sourcesContent: Optional. An array of contents of the original source files.
- *   - mappings: A string of base64 VLQs which contain the actual mappings.
- *   - file: Optional. The generated file this source map is associated with.
- *
- * Here is an example source map, taken from the source map spec[0]:
- *
- *     {
- *       version : 3,
- *       file: "out.js",
- *       sourceRoot : "",
- *       sources: ["foo.js", "bar.js"],
- *       names: ["src", "maps", "are", "fun"],
- *       mappings: "AA,AB;;ABCDE;"
- *     }
- *
- * [0]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit?pli=1#
- */
-function BasicSourceMapConsumer(aSourceMap) {
-  var sourceMap = aSourceMap;
-  if (typeof aSourceMap === 'string') {
-    sourceMap = JSON.parse(aSourceMap.replace(/^\)\]\}'/, ''));
-  }
-
-  var version = util.getArg(sourceMap, 'version');
-  var sources = util.getArg(sourceMap, 'sources');
-  // Sass 3.3 leaves out the 'names' array, so we deviate from the spec (which
-  // requires the array) to play nice here.
-  var names = util.getArg(sourceMap, 'names', []);
-  var sourceRoot = util.getArg(sourceMap, 'sourceRoot', null);
-  var sourcesContent = util.getArg(sourceMap, 'sourcesContent', null);
-  var mappings = util.getArg(sourceMap, 'mappings');
-  var file = util.getArg(sourceMap, 'file', null);
-
-  // Once again, Sass deviates from the spec and supplies the version as a
-  // string rather than a number, so we use loose equality checking here.
-  if (version != this._version) {
-    throw new Error('Unsupported version: ' + version);
-  }
-
-  sources = sources
-    .map(String)
-    // Some source maps produce relative source paths like "./foo.js" instead of
-    // "foo.js".  Normalize these first so that future comparisons will succeed.
-    // See bugzil.la/1090768.
-    .map(util.normalize)
-    // Always ensure that absolute sources are internally stored relative to
-    // the source root, if the source root is absolute. Not doing this would
-    // be particularly problematic when the source root is a prefix of the
-    // source (valid, but why??). See github issue #199 and bugzil.la/1188982.
-    .map(function (source) {
-      return sourceRoot && util.isAbsolute(sourceRoot) && util.isAbsolute(source)
-        ? util.relative(sourceRoot, source)
-        : source;
-    });
-
-  // Pass `true` below to allow duplicate names and sources. While source maps
-  // are intended to be compressed and deduplicated, the TypeScript compiler
-  // sometimes generates source maps with duplicates in them. See Github issue
-  // #72 and bugzil.la/889492.
-  this._names = ArraySet.fromArray(names.map(String), true);
-  this._sources = ArraySet.fromArray(sources, true);
-
-  this.sourceRoot = sourceRoot;
-  this.sourcesContent = sourcesContent;
-  this._mappings = mappings;
-  this.file = file;
-}
-
-BasicSourceMapConsumer.prototype = Object.create(SourceMapConsumer.prototype);
-BasicSourceMapConsumer.prototype.consumer = SourceMapConsumer;
-
-/**
- * Create a BasicSourceMapConsumer from a SourceMapGenerator.
- *
- * @param SourceMapGenerator aSourceMap
- *        The source map that will be consumed.
- * @returns BasicSourceMapConsumer
- */
-BasicSourceMapConsumer.fromSourceMap =
-  function SourceMapConsumer_fromSourceMap(aSourceMap) {
-    var smc = Object.create(BasicSourceMapConsumer.prototype);
-
-    var names = smc._names = ArraySet.fromArray(aSourceMap._names.toArray(), true);
-    var sources = smc._sources = ArraySet.fromArray(aSourceMap._sources.toArray(), true);
-    smc.sourceRoot = aSourceMap._sourceRoot;
-    smc.sourcesContent = aSourceMap._generateSourcesContent(smc._sources.toArray(),
-                                                            smc.sourceRoot);
-    smc.file = aSourceMap._file;
-
-    // Because we are modifying the entries (by converting string sources and
-    // names to indices into the sources and names ArraySets), we have to make
-    // a copy of the entry or else bad things happen. Shared mutable state
-    // strikes again! See github issue #191.
-
-    var generatedMappings = aSourceMap._mappings.toArray().slice();
-    var destGeneratedMappings = smc.__generatedMappings = [];
-    var destOriginalMappings = smc.__originalMappings = [];
-
-    for (var i = 0, length = generatedMappings.length; i < length; i++) {
-      var srcMapping = generatedMappings[i];
-      var destMapping = new Mapping;
-      destMapping.generatedLine = srcMapping.generatedLine;
-      destMapping.generatedColumn = srcMapping.generatedColumn;
-
-      if (srcMapping.source) {
-        destMapping.source = sources.indexOf(srcMapping.source);
-        destMapping.originalLine = srcMapping.originalLine;
-        destMapping.originalColumn = srcMapping.originalColumn;
-
-        if (srcMapping.name) {
-          destMapping.name = names.indexOf(srcMapping.name);
-        }
-
-        destOriginalMappings.push(destMapping);
-      }
-
-      destGeneratedMappings.push(destMapping);
-    }
-
-    quickSort(smc.__originalMappings, util.compareByOriginalPositions);
-
-    return smc;
-  };
-
-/**
- * The version of the source mapping spec that we are consuming.
- */
-BasicSourceMapConsumer.prototype._version = 3;
-
-/**
- * The list of original sources.
- */
-Object.defineProperty(BasicSourceMapConsumer.prototype, 'sources', {
-  get: function () {
-    return this._sources.toArray().map(function (s) {
-      return this.sourceRoot != null ? util.join(this.sourceRoot, s) : s;
-    }, this);
-  }
-});
-
-/**
- * Provide the JIT with a nice shape / hidden class.
- */
-function Mapping() {
-  this.generatedLine = 0;
-  this.generatedColumn = 0;
-  this.source = null;
-  this.originalLine = null;
-  this.originalColumn = null;
-  this.name = null;
-}
-
-/**
- * Parse the mappings in a string in to a data structure which we can easily
- * query (the ordered arrays in the `this.__generatedMappings` and
- * `this.__originalMappings` properties).
- */
-BasicSourceMapConsumer.prototype._parseMappings =
-  function SourceMapConsumer_parseMappings(aStr, aSourceRoot) {
-    var generatedLine = 1;
-    var previousGeneratedColumn = 0;
-    var previousOriginalLine = 0;
-    var previousOriginalColumn = 0;
-    var previousSource = 0;
-    var previousName = 0;
-    var length = aStr.length;
-    var index = 0;
-    var cachedSegments = {};
-    var temp = {};
-    var originalMappings = [];
-    var generatedMappings = [];
-    var mapping, str, segment, end, value;
-
-    while (index < length) {
-      if (aStr.charAt(index) === ';') {
-        generatedLine++;
-        index++;
-        previousGeneratedColumn = 0;
-      }
-      else if (aStr.charAt(index) === ',') {
-        index++;
-      }
-      else {
-        mapping = new Mapping();
-        mapping.generatedLine = generatedLine;
-
-        // Because each offset is encoded relative to the previous one,
-        // many segments often have the same encoding. We can exploit this
-        // fact by caching the parsed variable length fields of each segment,
-        // allowing us to avoid a second parse if we encounter the same
-        // segment again.
-        for (end = index; end < length; end++) {
-          if (this._charIsMappingSeparator(aStr, end)) {
-            break;
-          }
-        }
-        str = aStr.slice(index, end);
-
-        segment = cachedSegments[str];
-        if (segment) {
-          index += str.length;
-        } else {
-          segment = [];
-          while (index < end) {
-            base64VLQ.decode(aStr, index, temp);
-            value = temp.value;
-            index = temp.rest;
-            segment.push(value);
-          }
-
-          if (segment.length === 2) {
-            throw new Error('Found a source, but no line and column');
-          }
-
-          if (segment.length === 3) {
-            throw new Error('Found a source and line, but no column');
-          }
-
-          cachedSegments[str] = segment;
-        }
-
-        // Generated column.
-        mapping.generatedColumn = previousGeneratedColumn + segment[0];
-        previousGeneratedColumn = mapping.generatedColumn;
-
-        if (segment.length > 1) {
-          // Original source.
-          mapping.source = previousSource + segment[1];
-          previousSource += segment[1];
-
-          // Original line.
-          mapping.originalLine = previousOriginalLine + segment[2];
-          previousOriginalLine = mapping.originalLine;
-          // Lines are stored 0-based
-          mapping.originalLine += 1;
-
-          // Original column.
-          mapping.originalColumn = previousOriginalColumn + segment[3];
-          previousOriginalColumn = mapping.originalColumn;
-
-          if (segment.length > 4) {
-            // Original name.
-            mapping.name = previousName + segment[4];
-            previousName += segment[4];
-          }
-        }
-
-        generatedMappings.push(mapping);
-        if (typeof mapping.originalLine === 'number') {
-          originalMappings.push(mapping);
-        }
-      }
-    }
-
-    quickSort(generatedMappings, util.compareByGeneratedPositionsDeflated);
-    this.__generatedMappings = generatedMappings;
-
-    quickSort(originalMappings, util.compareByOriginalPositions);
-    this.__originalMappings = originalMappings;
-  };
-
-/**
- * Find the mapping that best matches the hypothetical "needle" mapping that
- * we are searching for in the given "haystack" of mappings.
- */
-BasicSourceMapConsumer.prototype._findMapping =
-  function SourceMapConsumer_findMapping(aNeedle, aMappings, aLineName,
-                                         aColumnName, aComparator, aBias) {
-    // To return the position we are searching for, we must first find the
-    // mapping for the given position and then return the opposite position it
-    // points to. Because the mappings are sorted, we can use binary search to
-    // find the best mapping.
-
-    if (aNeedle[aLineName] <= 0) {
-      throw new TypeError('Line must be greater than or equal to 1, got '
-                          + aNeedle[aLineName]);
-    }
-    if (aNeedle[aColumnName] < 0) {
-      throw new TypeError('Column must be greater than or equal to 0, got '
-                          + aNeedle[aColumnName]);
-    }
-
-    return binarySearch.search(aNeedle, aMappings, aComparator, aBias);
-  };
-
-/**
- * Compute the last column for each generated mapping. The last column is
- * inclusive.
- */
-BasicSourceMapConsumer.prototype.computeColumnSpans =
-  function SourceMapConsumer_computeColumnSpans() {
-    for (var index = 0; index < this._generatedMappings.length; ++index) {
-      var mapping = this._generatedMappings[index];
-
-      // Mappings do not contain a field for the last generated columnt. We
-      // can come up with an optimistic estimate, however, by assuming that
-      // mappings are contiguous (i.e. given two consecutive mappings, the
-      // first mapping ends where the second one starts).
-      if (index + 1 < this._generatedMappings.length) {
-        var nextMapping = this._generatedMappings[index + 1];
-
-        if (mapping.generatedLine === nextMapping.generatedLine) {
-          mapping.lastGeneratedColumn = nextMapping.generatedColumn - 1;
-          continue;
-        }
-      }
-
-      // The last mapping for each line spans the entire line.
-      mapping.lastGeneratedColumn = Infinity;
-    }
-  };
-
-/**
- * Returns the original source, line, and column information for the generated
- * source's line and column positions provided. The only argument is an object
- * with the following properties:
- *
- *   - line: The line number in the generated source.
- *   - column: The column number in the generated source.
- *   - bias: Either 'SourceMapConsumer.GREATEST_LOWER_BOUND' or
- *     'SourceMapConsumer.LEAST_UPPER_BOUND'. Specifies whether to return the
- *     closest element that is smaller than or greater than the one we are
- *     searching for, respectively, if the exact element cannot be found.
- *     Defaults to 'SourceMapConsumer.GREATEST_LOWER_BOUND'.
- *
- * and an object is returned with the following properties:
- *
- *   - source: The original source file, or null.
- *   - line: The line number in the original source, or null.
- *   - column: The column number in the original source, or null.
- *   - name: The original identifier, or null.
- */
-BasicSourceMapConsumer.prototype.originalPositionFor =
-  function SourceMapConsumer_originalPositionFor(aArgs) {
-    var needle = {
-      generatedLine: util.getArg(aArgs, 'line'),
-      generatedColumn: util.getArg(aArgs, 'column')
-    };
-
-    var index = this._findMapping(
-      needle,
-      this._generatedMappings,
-      "generatedLine",
-      "generatedColumn",
-      util.compareByGeneratedPositionsDeflated,
-      util.getArg(aArgs, 'bias', SourceMapConsumer.GREATEST_LOWER_BOUND)
-    );
-
-    if (index >= 0) {
-      var mapping = this._generatedMappings[index];
-
-      if (mapping.generatedLine === needle.generatedLine) {
-        var source = util.getArg(mapping, 'source', null);
-        if (source !== null) {
-          source = this._sources.at(source);
-          if (this.sourceRoot != null) {
-            source = util.join(this.sourceRoot, source);
-          }
-        }
-        var name = util.getArg(mapping, 'name', null);
-        if (name !== null) {
-          name = this._names.at(name);
-        }
-        return {
-          source: source,
-          line: util.getArg(mapping, 'originalLine', null),
-          column: util.getArg(mapping, 'originalColumn', null),
-          name: name
-        };
-      }
-    }
-
-    return {
-      source: null,
-      line: null,
-      column: null,
-      name: null
-    };
-  };
-
-/**
- * Return true if we have the source content for every source in the source
- * map, false otherwise.
- */
-BasicSourceMapConsumer.prototype.hasContentsOfAllSources =
-  function BasicSourceMapConsumer_hasContentsOfAllSources() {
-    if (!this.sourcesContent) {
-      return false;
-    }
-    return this.sourcesContent.length >= this._sources.size() &&
-      !this.sourcesContent.some(function (sc) { return sc == null; });
-  };
-
-/**
- * Returns the original source content. The only argument is the url of the
- * original source file. Returns null if no original source content is
- * available.
- */
-BasicSourceMapConsumer.prototype.sourceContentFor =
-  function SourceMapConsumer_sourceContentFor(aSource, nullOnMissing) {
-    if (!this.sourcesContent) {
-      return null;
-    }
-
-    if (this.sourceRoot != null) {
-      aSource = util.relative(this.sourceRoot, aSource);
-    }
-
-    if (this._sources.has(aSource)) {
-      return this.sourcesContent[this._sources.indexOf(aSource)];
-    }
-
-    var url;
-    if (this.sourceRoot != null
-        && (url = util.urlParse(this.sourceRoot))) {
-      // XXX: file:// URIs and absolute paths lead to unexpected behavior for
-      // many users. We can help them out when they expect file:// URIs to
-      // behave like it would if they were running a local HTTP server. See
-      // https://bugzilla.mozilla.org/show_bug.cgi?id=885597.
-      var fileUriAbsPath = aSource.replace(/^file:\/\//, "");
-      if (url.scheme == "file"
-          && this._sources.has(fileUriAbsPath)) {
-        return this.sourcesContent[this._sources.indexOf(fileUriAbsPath)]
-      }
-
-      if ((!url.path || url.path == "/")
-          && this._sources.has("/" + aSource)) {
-        return this.sourcesContent[this._sources.indexOf("/" + aSource)];
-      }
-    }
-
-    // This function is used recursively from
-    // IndexedSourceMapConsumer.prototype.sourceContentFor. In that case, we
-    // don't want to throw if we can't find the source - we just want to
-    // return null, so we provide a flag to exit gracefully.
-    if (nullOnMissing) {
-      return null;
-    }
-    else {
-      throw new Error('"' + aSource + '" is not in the SourceMap.');
-    }
-  };
-
-/**
- * Returns the generated line and column information for the original source,
- * line, and column positions provided. The only argument is an object with
- * the following properties:
- *
- *   - source: The filename of the original source.
- *   - line: The line number in the original source.
- *   - column: The column number in the original source.
- *   - bias: Either 'SourceMapConsumer.GREATEST_LOWER_BOUND' or
- *     'SourceMapConsumer.LEAST_UPPER_BOUND'. Specifies whether to return the
- *     closest element that is smaller than or greater than the one we are
- *     searching for, respectively, if the exact element cannot be found.
- *     Defaults to 'SourceMapConsumer.GREATEST_LOWER_BOUND'.
- *
- * and an object is returned with the following properties:
- *
- *   - line: The line number in the generated source, or null.
- *   - column: The column number in the generated source, or null.
- */
-BasicSourceMapConsumer.prototype.generatedPositionFor =
-  function SourceMapConsumer_generatedPositionFor(aArgs) {
-    var source = util.getArg(aArgs, 'source');
-    if (this.sourceRoot != null) {
-      source = util.relative(this.sourceRoot, source);
-    }
-    if (!this._sources.has(source)) {
-      return {
-        line: null,
-        column: null,
-        lastColumn: null
-      };
-    }
-    source = this._sources.indexOf(source);
-
-    var needle = {
-      source: source,
-      originalLine: util.getArg(aArgs, 'line'),
-      originalColumn: util.getArg(aArgs, 'column')
-    };
-
-    var index = this._findMapping(
-      needle,
-      this._originalMappings,
-      "originalLine",
-      "originalColumn",
-      util.compareByOriginalPositions,
-      util.getArg(aArgs, 'bias', SourceMapConsumer.GREATEST_LOWER_BOUND)
-    );
-
-    if (index >= 0) {
-      var mapping = this._originalMappings[index];
-
-      if (mapping.source === needle.source) {
-        return {
-          line: util.getArg(mapping, 'generatedLine', null),
-          column: util.getArg(mapping, 'generatedColumn', null),
-          lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null)
-        };
-      }
-    }
-
-    return {
-      line: null,
-      column: null,
-      lastColumn: null
-    };
-  };
-
-exports.BasicSourceMapConsumer = BasicSourceMapConsumer;
-
-/**
- * An IndexedSourceMapConsumer instance represents a parsed source map which
- * we can query for information. It differs from BasicSourceMapConsumer in
- * that it takes "indexed" source maps (i.e. ones with a "sections" field) as
- * input.
- *
- * The only parameter is a raw source map (either as a JSON string, or already
- * parsed to an object). According to the spec for indexed source maps, they
- * have the following attributes:
- *
- *   - version: Which version of the source map spec this map is following.
- *   - file: Optional. The generated file this source map is associated with.
- *   - sections: A list of section definitions.
- *
- * Each value under the "sections" field has two fields:
- *   - offset: The offset into the original specified at which this section
- *       begins to apply, defined as an object with a "line" and "column"
- *       field.
- *   - map: A source map definition. This source map could also be indexed,
- *       but doesn't have to be.
- *
- * Instead of the "map" field, it's also possible to have a "url" field
- * specifying a URL to retrieve a source map from, but that's currently
- * unsupported.
- *
- * Here's an example source map, taken from the source map spec[0], but
- * modified to omit a section which uses the "url" field.
- *
- *  {
- *    version : 3,
- *    file: "app.js",
- *    sections: [{
- *      offset: {line:100, column:10},
- *      map: {
- *        version : 3,
- *        file: "section.js",
- *        sources: ["foo.js", "bar.js"],
- *        names: ["src", "maps", "are", "fun"],
- *        mappings: "AAAA,E;;ABCDE;"
- *      }
- *    }],
- *  }
- *
- * [0]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit#heading=h.535es3xeprgt
- */
-function IndexedSourceMapConsumer(aSourceMap) {
-  var sourceMap = aSourceMap;
-  if (typeof aSourceMap === 'string') {
-    sourceMap = JSON.parse(aSourceMap.replace(/^\)\]\}'/, ''));
-  }
-
-  var version = util.getArg(sourceMap, 'version');
-  var sections = util.getArg(sourceMap, 'sections');
-
-  if (version != this._version) {
-    throw new Error('Unsupported version: ' + version);
-  }
-
-  this._sources = new ArraySet();
-  this._names = new ArraySet();
-
-  var lastOffset = {
-    line: -1,
-    column: 0
-  };
-  this._sections = sections.map(function (s) {
-    if (s.url) {
-      // The url field will require support for asynchronicity.
-      // See https://github.com/mozilla/source-map/issues/16
-      throw new Error('Support for url field in sections not implemented.');
-    }
-    var offset = util.getArg(s, 'offset');
-    var offsetLine = util.getArg(offset, 'line');
-    var offsetColumn = util.getArg(offset, 'column');
-
-    if (offsetLine < lastOffset.line ||
-        (offsetLine === lastOffset.line && offsetColumn < lastOffset.column)) {
-      throw new Error('Section offsets must be ordered and non-overlapping.');
-    }
-    lastOffset = offset;
-
-    return {
-      generatedOffset: {
-        // The offset fields are 0-based, but we use 1-based indices when
-        // encoding/decoding from VLQ.
-        generatedLine: offsetLine + 1,
-        generatedColumn: offsetColumn + 1
-      },
-      consumer: new SourceMapConsumer(util.getArg(s, 'map'))
-    }
-  });
-}
-
-IndexedSourceMapConsumer.prototype = Object.create(SourceMapConsumer.prototype);
-IndexedSourceMapConsumer.prototype.constructor = SourceMapConsumer;
-
-/**
- * The version of the source mapping spec that we are consuming.
- */
-IndexedSourceMapConsumer.prototype._version = 3;
-
-/**
- * The list of original sources.
- */
-Object.defineProperty(IndexedSourceMapConsumer.prototype, 'sources', {
-  get: function () {
-    var sources = [];
-    for (var i = 0; i < this._sections.length; i++) {
-      for (var j = 0; j < this._sections[i].consumer.sources.length; j++) {
-        sources.push(this._sections[i].consumer.sources[j]);
-      }
-    }
-    return sources;
-  }
-});
-
-/**
- * Returns the original source, line, and column information for the generated
- * source's line and column positions provided. The only argument is an object
- * with the following properties:
- *
- *   - line: The line number in the generated source.
- *   - column: The column number in the generated source.
- *
- * and an object is returned with the following properties:
- *
- *   - source: The original source file, or null.
- *   - line: The line number in the original source, or null.
- *   - column: The column number in the original source, or null.
- *   - name: The original identifier, or null.
- */
-IndexedSourceMapConsumer.prototype.originalPositionFor =
-  function IndexedSourceMapConsumer_originalPositionFor(aArgs) {
-    var needle = {
-      generatedLine: util.getArg(aArgs, 'line'),
-      generatedColumn: util.getArg(aArgs, 'column')
-    };
-
-    // Find the section containing the generated position we're trying to map
-    // to an original position.
-    var sectionIndex = binarySearch.search(needle, this._sections,
-      function(needle, section) {
-        var cmp = needle.generatedLine - section.generatedOffset.generatedLine;
-        if (cmp) {
-          return cmp;
-        }
-
-        return (needle.generatedColumn -
-                section.generatedOffset.generatedColumn);
-      });
-    var section = this._sections[sectionIndex];
-
-    if (!section) {
-      return {
-        source: null,
-        line: null,
-        column: null,
-        name: null
-      };
-    }
-
-    return section.consumer.originalPositionFor({
-      line: needle.generatedLine -
-        (section.generatedOffset.generatedLine - 1),
-      column: needle.generatedColumn -
-        (section.generatedOffset.generatedLine === needle.generatedLine
-         ? section.generatedOffset.generatedColumn - 1
-         : 0),
-      bias: aArgs.bias
-    });
-  };
-
-/**
- * Return true if we have the source content for every source in the source
- * map, false otherwise.
- */
-IndexedSourceMapConsumer.prototype.hasContentsOfAllSources =
-  function IndexedSourceMapConsumer_hasContentsOfAllSources() {
-    return this._sections.every(function (s) {
-      return s.consumer.hasContentsOfAllSources();
-    });
-  };
-
-/**
- * Returns the original source content. The only argument is the url of the
- * original source file. Returns null if no original source content is
- * available.
- */
-IndexedSourceMapConsumer.prototype.sourceContentFor =
-  function IndexedSourceMapConsumer_sourceContentFor(aSource, nullOnMissing) {
-    for (var i = 0; i < this._sections.length; i++) {
-      var section = this._sections[i];
-
-      var content = section.consumer.sourceContentFor(aSource, true);
-      if (content) {
-        return content;
-      }
-    }
-    if (nullOnMissing) {
-      return null;
-    }
-    else {
-      throw new Error('"' + aSource + '" is not in the SourceMap.');
-    }
-  };
-
-/**
- * Returns the generated line and column information for the original source,
- * line, and column positions provided. The only argument is an object with
- * the following properties:
- *
- *   - source: The filename of the original source.
- *   - line: The line number in the original source.
- *   - column: The column number in the original source.
- *
- * and an object is returned with the following properties:
- *
- *   - line: The line number in the generated source, or null.
- *   - column: The column number in the generated source, or null.
- */
-IndexedSourceMapConsumer.prototype.generatedPositionFor =
-  function IndexedSourceMapConsumer_generatedPositionFor(aArgs) {
-    for (var i = 0; i < this._sections.length; i++) {
-      var section = this._sections[i];
-
-      // Only consider this section if the requested source is in the list of
-      // sources of the consumer.
-      if (section.consumer.sources.indexOf(util.getArg(aArgs, 'source')) === -1) {
-        continue;
-      }
-      var generatedPosition = section.consumer.generatedPositionFor(aArgs);
-      if (generatedPosition) {
-        var ret = {
-          line: generatedPosition.line +
-            (section.generatedOffset.generatedLine - 1),
-          column: generatedPosition.column +
-            (section.generatedOffset.generatedLine === generatedPosition.line
-             ? section.generatedOffset.generatedColumn - 1
-             : 0)
-        };
-        return ret;
-      }
-    }
-
-    return {
-      line: null,
-      column: null
-    };
-  };
-
-/**
- * Parse the mappings in a string in to a data structure which we can easily
- * query (the ordered arrays in the `this.__generatedMappings` and
- * `this.__originalMappings` properties).
- */
-IndexedSourceMapConsumer.prototype._parseMappings =
-  function IndexedSourceMapConsumer_parseMappings(aStr, aSourceRoot) {
-    this.__generatedMappings = [];
-    this.__originalMappings = [];
-    for (var i = 0; i < this._sections.length; i++) {
-      var section = this._sections[i];
-      var sectionMappings = section.consumer._generatedMappings;
-      for (var j = 0; j < sectionMappings.length; j++) {
-        var mapping = sectionMappings[j];
-
-        var source = section.consumer._sources.at(mapping.source);
-        if (section.consumer.sourceRoot !== null) {
-          source = util.join(section.consumer.sourceRoot, source);
-        }
-        this._sources.add(source);
-        source = this._sources.indexOf(source);
-
-        var name = section.consumer._names.at(mapping.name);
-        this._names.add(name);
-        name = this._names.indexOf(name);
-
-        // The mappings coming from the consumer for the section have
-        // generated positions relative to the start of the section, so we
-        // need to offset them to be relative to the start of the concatenated
-        // generated file.
-        var adjustedMapping = {
-          source: source,
-          generatedLine: mapping.generatedLine +
-            (section.generatedOffset.generatedLine - 1),
-          generatedColumn: mapping.generatedColumn +
-            (section.generatedOffset.generatedLine === mapping.generatedLine
-            ? section.generatedOffset.generatedColumn - 1
-            : 0),
-          originalLine: mapping.originalLine,
-          originalColumn: mapping.originalColumn,
-          name: name
-        };
-
-        this.__generatedMappings.push(adjustedMapping);
-        if (typeof adjustedMapping.originalLine === 'number') {
-          this.__originalMappings.push(adjustedMapping);
-        }
-      }
-    }
-
-    quickSort(this.__generatedMappings, util.compareByGeneratedPositionsDeflated);
-    quickSort(this.__originalMappings, util.compareByOriginalPositions);
-  };
-
-exports.IndexedSourceMapConsumer = IndexedSourceMapConsumer;
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-coverage/node_modules/source-map/lib/source-map-generator.js b/src/cobalt/debug/remote/devtools/node_modules/karma-coverage/node_modules/source-map/lib/source-map-generator.js
deleted file mode 100644
index aff1e7f..0000000
--- a/src/cobalt/debug/remote/devtools/node_modules/karma-coverage/node_modules/source-map/lib/source-map-generator.js
+++ /dev/null
@@ -1,416 +0,0 @@
-/* -*- Mode: js; js-indent-level: 2; -*- */
-/*
- * Copyright 2011 Mozilla Foundation and contributors
- * Licensed under the New BSD license. See LICENSE or:
- * http://opensource.org/licenses/BSD-3-Clause
- */
-
-var base64VLQ = require('./base64-vlq');
-var util = require('./util');
-var ArraySet = require('./array-set').ArraySet;
-var MappingList = require('./mapping-list').MappingList;
-
-/**
- * An instance of the SourceMapGenerator represents a source map which is
- * being built incrementally. You may pass an object with the following
- * properties:
- *
- *   - file: The filename of the generated source.
- *   - sourceRoot: A root for all relative URLs in this source map.
- */
-function SourceMapGenerator(aArgs) {
-  if (!aArgs) {
-    aArgs = {};
-  }
-  this._file = util.getArg(aArgs, 'file', null);
-  this._sourceRoot = util.getArg(aArgs, 'sourceRoot', null);
-  this._skipValidation = util.getArg(aArgs, 'skipValidation', false);
-  this._sources = new ArraySet();
-  this._names = new ArraySet();
-  this._mappings = new MappingList();
-  this._sourcesContents = null;
-}
-
-SourceMapGenerator.prototype._version = 3;
-
-/**
- * Creates a new SourceMapGenerator based on a SourceMapConsumer
- *
- * @param aSourceMapConsumer The SourceMap.
- */
-SourceMapGenerator.fromSourceMap =
-  function SourceMapGenerator_fromSourceMap(aSourceMapConsumer) {
-    var sourceRoot = aSourceMapConsumer.sourceRoot;
-    var generator = new SourceMapGenerator({
-      file: aSourceMapConsumer.file,
-      sourceRoot: sourceRoot
-    });
-    aSourceMapConsumer.eachMapping(function (mapping) {
-      var newMapping = {
-        generated: {
-          line: mapping.generatedLine,
-          column: mapping.generatedColumn
-        }
-      };
-
-      if (mapping.source != null) {
-        newMapping.source = mapping.source;
-        if (sourceRoot != null) {
-          newMapping.source = util.relative(sourceRoot, newMapping.source);
-        }
-
-        newMapping.original = {
-          line: mapping.originalLine,
-          column: mapping.originalColumn
-        };
-
-        if (mapping.name != null) {
-          newMapping.name = mapping.name;
-        }
-      }
-
-      generator.addMapping(newMapping);
-    });
-    aSourceMapConsumer.sources.forEach(function (sourceFile) {
-      var content = aSourceMapConsumer.sourceContentFor(sourceFile);
-      if (content != null) {
-        generator.setSourceContent(sourceFile, content);
-      }
-    });
-    return generator;
-  };
-
-/**
- * Add a single mapping from original source line and column to the generated
- * source's line and column for this source map being created. The mapping
- * object should have the following properties:
- *
- *   - generated: An object with the generated line and column positions.
- *   - original: An object with the original line and column positions.
- *   - source: The original source file (relative to the sourceRoot).
- *   - name: An optional original token name for this mapping.
- */
-SourceMapGenerator.prototype.addMapping =
-  function SourceMapGenerator_addMapping(aArgs) {
-    var generated = util.getArg(aArgs, 'generated');
-    var original = util.getArg(aArgs, 'original', null);
-    var source = util.getArg(aArgs, 'source', null);
-    var name = util.getArg(aArgs, 'name', null);
-
-    if (!this._skipValidation) {
-      this._validateMapping(generated, original, source, name);
-    }
-
-    if (source != null) {
-      source = String(source);
-      if (!this._sources.has(source)) {
-        this._sources.add(source);
-      }
-    }
-
-    if (name != null) {
-      name = String(name);
-      if (!this._names.has(name)) {
-        this._names.add(name);
-      }
-    }
-
-    this._mappings.add({
-      generatedLine: generated.line,
-      generatedColumn: generated.column,
-      originalLine: original != null && original.line,
-      originalColumn: original != null && original.column,
-      source: source,
-      name: name
-    });
-  };
-
-/**
- * Set the source content for a source file.
- */
-SourceMapGenerator.prototype.setSourceContent =
-  function SourceMapGenerator_setSourceContent(aSourceFile, aSourceContent) {
-    var source = aSourceFile;
-    if (this._sourceRoot != null) {
-      source = util.relative(this._sourceRoot, source);
-    }
-
-    if (aSourceContent != null) {
-      // Add the source content to the _sourcesContents map.
-      // Create a new _sourcesContents map if the property is null.
-      if (!this._sourcesContents) {
-        this._sourcesContents = Object.create(null);
-      }
-      this._sourcesContents[util.toSetString(source)] = aSourceContent;
-    } else if (this._sourcesContents) {
-      // Remove the source file from the _sourcesContents map.
-      // If the _sourcesContents map is empty, set the property to null.
-      delete this._sourcesContents[util.toSetString(source)];
-      if (Object.keys(this._sourcesContents).length === 0) {
-        this._sourcesContents = null;
-      }
-    }
-  };
-
-/**
- * Applies the mappings of a sub-source-map for a specific source file to the
- * source map being generated. Each mapping to the supplied source file is
- * rewritten using the supplied source map. Note: The resolution for the
- * resulting mappings is the minimium of this map and the supplied map.
- *
- * @param aSourceMapConsumer The source map to be applied.
- * @param aSourceFile Optional. The filename of the source file.
- *        If omitted, SourceMapConsumer's file property will be used.
- * @param aSourceMapPath Optional. The dirname of the path to the source map
- *        to be applied. If relative, it is relative to the SourceMapConsumer.
- *        This parameter is needed when the two source maps aren't in the same
- *        directory, and the source map to be applied contains relative source
- *        paths. If so, those relative source paths need to be rewritten
- *        relative to the SourceMapGenerator.
- */
-SourceMapGenerator.prototype.applySourceMap =
-  function SourceMapGenerator_applySourceMap(aSourceMapConsumer, aSourceFile, aSourceMapPath) {
-    var sourceFile = aSourceFile;
-    // If aSourceFile is omitted, we will use the file property of the SourceMap
-    if (aSourceFile == null) {
-      if (aSourceMapConsumer.file == null) {
-        throw new Error(
-          'SourceMapGenerator.prototype.applySourceMap requires either an explicit source file, ' +
-          'or the source map\'s "file" property. Both were omitted.'
-        );
-      }
-      sourceFile = aSourceMapConsumer.file;
-    }
-    var sourceRoot = this._sourceRoot;
-    // Make "sourceFile" relative if an absolute Url is passed.
-    if (sourceRoot != null) {
-      sourceFile = util.relative(sourceRoot, sourceFile);
-    }
-    // Applying the SourceMap can add and remove items from the sources and
-    // the names array.
-    var newSources = new ArraySet();
-    var newNames = new ArraySet();
-
-    // Find mappings for the "sourceFile"
-    this._mappings.unsortedForEach(function (mapping) {
-      if (mapping.source === sourceFile && mapping.originalLine != null) {
-        // Check if it can be mapped by the source map, then update the mapping.
-        var original = aSourceMapConsumer.originalPositionFor({
-          line: mapping.originalLine,
-          column: mapping.originalColumn
-        });
-        if (original.source != null) {
-          // Copy mapping
-          mapping.source = original.source;
-          if (aSourceMapPath != null) {
-            mapping.source = util.join(aSourceMapPath, mapping.source)
-          }
-          if (sourceRoot != null) {
-            mapping.source = util.relative(sourceRoot, mapping.source);
-          }
-          mapping.originalLine = original.line;
-          mapping.originalColumn = original.column;
-          if (original.name != null) {
-            mapping.name = original.name;
-          }
-        }
-      }
-
-      var source = mapping.source;
-      if (source != null && !newSources.has(source)) {
-        newSources.add(source);
-      }
-
-      var name = mapping.name;
-      if (name != null && !newNames.has(name)) {
-        newNames.add(name);
-      }
-
-    }, this);
-    this._sources = newSources;
-    this._names = newNames;
-
-    // Copy sourcesContents of applied map.
-    aSourceMapConsumer.sources.forEach(function (sourceFile) {
-      var content = aSourceMapConsumer.sourceContentFor(sourceFile);
-      if (content != null) {
-        if (aSourceMapPath != null) {
-          sourceFile = util.join(aSourceMapPath, sourceFile);
-        }
-        if (sourceRoot != null) {
-          sourceFile = util.relative(sourceRoot, sourceFile);
-        }
-        this.setSourceContent(sourceFile, content);
-      }
-    }, this);
-  };
-
-/**
- * A mapping can have one of the three levels of data:
- *
- *   1. Just the generated position.
- *   2. The Generated position, original position, and original source.
- *   3. Generated and original position, original source, as well as a name
- *      token.
- *
- * To maintain consistency, we validate that any new mapping being added falls
- * in to one of these categories.
- */
-SourceMapGenerator.prototype._validateMapping =
-  function SourceMapGenerator_validateMapping(aGenerated, aOriginal, aSource,
-                                              aName) {
-    // When aOriginal is truthy but has empty values for .line and .column,
-    // it is most likely a programmer error. In this case we throw a very
-    // specific error message to try to guide them the right way.
-    // For example: https://github.com/Polymer/polymer-bundler/pull/519
-    if (aOriginal && typeof aOriginal.line !== 'number' && typeof aOriginal.column !== 'number') {
-        throw new Error(
-            'original.line and original.column are not numbers -- you probably meant to omit ' +
-            'the original mapping entirely and only map the generated position. If so, pass ' +
-            'null for the original mapping instead of an object with empty or null values.'
-        );
-    }
-
-    if (aGenerated && 'line' in aGenerated && 'column' in aGenerated
-        && aGenerated.line > 0 && aGenerated.column >= 0
-        && !aOriginal && !aSource && !aName) {
-      // Case 1.
-      return;
-    }
-    else if (aGenerated && 'line' in aGenerated && 'column' in aGenerated
-             && aOriginal && 'line' in aOriginal && 'column' in aOriginal
-             && aGenerated.line > 0 && aGenerated.column >= 0
-             && aOriginal.line > 0 && aOriginal.column >= 0
-             && aSource) {
-      // Cases 2 and 3.
-      return;
-    }
-    else {
-      throw new Error('Invalid mapping: ' + JSON.stringify({
-        generated: aGenerated,
-        source: aSource,
-        original: aOriginal,
-        name: aName
-      }));
-    }
-  };
-
-/**
- * Serialize the accumulated mappings in to the stream of base 64 VLQs
- * specified by the source map format.
- */
-SourceMapGenerator.prototype._serializeMappings =
-  function SourceMapGenerator_serializeMappings() {
-    var previousGeneratedColumn = 0;
-    var previousGeneratedLine = 1;
-    var previousOriginalColumn = 0;
-    var previousOriginalLine = 0;
-    var previousName = 0;
-    var previousSource = 0;
-    var result = '';
-    var next;
-    var mapping;
-    var nameIdx;
-    var sourceIdx;
-
-    var mappings = this._mappings.toArray();
-    for (var i = 0, len = mappings.length; i < len; i++) {
-      mapping = mappings[i];
-      next = ''
-
-      if (mapping.generatedLine !== previousGeneratedLine) {
-        previousGeneratedColumn = 0;
-        while (mapping.generatedLine !== previousGeneratedLine) {
-          next += ';';
-          previousGeneratedLine++;
-        }
-      }
-      else {
-        if (i > 0) {
-          if (!util.compareByGeneratedPositionsInflated(mapping, mappings[i - 1])) {
-            continue;
-          }
-          next += ',';
-        }
-      }
-
-      next += base64VLQ.encode(mapping.generatedColumn
-                                 - previousGeneratedColumn);
-      previousGeneratedColumn = mapping.generatedColumn;
-
-      if (mapping.source != null) {
-        sourceIdx = this._sources.indexOf(mapping.source);
-        next += base64VLQ.encode(sourceIdx - previousSource);
-        previousSource = sourceIdx;
-
-        // lines are stored 0-based in SourceMap spec version 3
-        next += base64VLQ.encode(mapping.originalLine - 1
-                                   - previousOriginalLine);
-        previousOriginalLine = mapping.originalLine - 1;
-
-        next += base64VLQ.encode(mapping.originalColumn
-                                   - previousOriginalColumn);
-        previousOriginalColumn = mapping.originalColumn;
-
-        if (mapping.name != null) {
-          nameIdx = this._names.indexOf(mapping.name);
-          next += base64VLQ.encode(nameIdx - previousName);
-          previousName = nameIdx;
-        }
-      }
-
-      result += next;
-    }
-
-    return result;
-  };
-
-SourceMapGenerator.prototype._generateSourcesContent =
-  function SourceMapGenerator_generateSourcesContent(aSources, aSourceRoot) {
-    return aSources.map(function (source) {
-      if (!this._sourcesContents) {
-        return null;
-      }
-      if (aSourceRoot != null) {
-        source = util.relative(aSourceRoot, source);
-      }
-      var key = util.toSetString(source);
-      return Object.prototype.hasOwnProperty.call(this._sourcesContents, key)
-        ? this._sourcesContents[key]
-        : null;
-    }, this);
-  };
-
-/**
- * Externalize the source map.
- */
-SourceMapGenerator.prototype.toJSON =
-  function SourceMapGenerator_toJSON() {
-    var map = {
-      version: this._version,
-      sources: this._sources.toArray(),
-      names: this._names.toArray(),
-      mappings: this._serializeMappings()
-    };
-    if (this._file != null) {
-      map.file = this._file;
-    }
-    if (this._sourceRoot != null) {
-      map.sourceRoot = this._sourceRoot;
-    }
-    if (this._sourcesContents) {
-      map.sourcesContent = this._generateSourcesContent(map.sources, map.sourceRoot);
-    }
-
-    return map;
-  };
-
-/**
- * Render the source map being generated to a string.
- */
-SourceMapGenerator.prototype.toString =
-  function SourceMapGenerator_toString() {
-    return JSON.stringify(this.toJSON());
-  };
-
-exports.SourceMapGenerator = SourceMapGenerator;
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-coverage/node_modules/source-map/lib/source-node.js b/src/cobalt/debug/remote/devtools/node_modules/karma-coverage/node_modules/source-map/lib/source-node.js
deleted file mode 100644
index d196a53..0000000
--- a/src/cobalt/debug/remote/devtools/node_modules/karma-coverage/node_modules/source-map/lib/source-node.js
+++ /dev/null
@@ -1,413 +0,0 @@
-/* -*- Mode: js; js-indent-level: 2; -*- */
-/*
- * Copyright 2011 Mozilla Foundation and contributors
- * Licensed under the New BSD license. See LICENSE or:
- * http://opensource.org/licenses/BSD-3-Clause
- */
-
-var SourceMapGenerator = require('./source-map-generator').SourceMapGenerator;
-var util = require('./util');
-
-// Matches a Windows-style `\r\n` newline or a `\n` newline used by all other
-// operating systems these days (capturing the result).
-var REGEX_NEWLINE = /(\r?\n)/;
-
-// Newline character code for charCodeAt() comparisons
-var NEWLINE_CODE = 10;
-
-// Private symbol for identifying `SourceNode`s when multiple versions of
-// the source-map library are loaded. This MUST NOT CHANGE across
-// versions!
-var isSourceNode = "$$$isSourceNode$$$";
-
-/**
- * SourceNodes provide a way to abstract over interpolating/concatenating
- * snippets of generated JavaScript source code while maintaining the line and
- * column information associated with the original source code.
- *
- * @param aLine The original line number.
- * @param aColumn The original column number.
- * @param aSource The original source's filename.
- * @param aChunks Optional. An array of strings which are snippets of
- *        generated JS, or other SourceNodes.
- * @param aName The original identifier.
- */
-function SourceNode(aLine, aColumn, aSource, aChunks, aName) {
-  this.children = [];
-  this.sourceContents = {};
-  this.line = aLine == null ? null : aLine;
-  this.column = aColumn == null ? null : aColumn;
-  this.source = aSource == null ? null : aSource;
-  this.name = aName == null ? null : aName;
-  this[isSourceNode] = true;
-  if (aChunks != null) this.add(aChunks);
-}
-
-/**
- * Creates a SourceNode from generated code and a SourceMapConsumer.
- *
- * @param aGeneratedCode The generated code
- * @param aSourceMapConsumer The SourceMap for the generated code
- * @param aRelativePath Optional. The path that relative sources in the
- *        SourceMapConsumer should be relative to.
- */
-SourceNode.fromStringWithSourceMap =
-  function SourceNode_fromStringWithSourceMap(aGeneratedCode, aSourceMapConsumer, aRelativePath) {
-    // The SourceNode we want to fill with the generated code
-    // and the SourceMap
-    var node = new SourceNode();
-
-    // All even indices of this array are one line of the generated code,
-    // while all odd indices are the newlines between two adjacent lines
-    // (since `REGEX_NEWLINE` captures its match).
-    // Processed fragments are accessed by calling `shiftNextLine`.
-    var remainingLines = aGeneratedCode.split(REGEX_NEWLINE);
-    var remainingLinesIndex = 0;
-    var shiftNextLine = function() {
-      var lineContents = getNextLine();
-      // The last line of a file might not have a newline.
-      var newLine = getNextLine() || "";
-      return lineContents + newLine;
-
-      function getNextLine() {
-        return remainingLinesIndex < remainingLines.length ?
-            remainingLines[remainingLinesIndex++] : undefined;
-      }
-    };
-
-    // We need to remember the position of "remainingLines"
-    var lastGeneratedLine = 1, lastGeneratedColumn = 0;
-
-    // The generate SourceNodes we need a code range.
-    // To extract it current and last mapping is used.
-    // Here we store the last mapping.
-    var lastMapping = null;
-
-    aSourceMapConsumer.eachMapping(function (mapping) {
-      if (lastMapping !== null) {
-        // We add the code from "lastMapping" to "mapping":
-        // First check if there is a new line in between.
-        if (lastGeneratedLine < mapping.generatedLine) {
-          // Associate first line with "lastMapping"
-          addMappingWithCode(lastMapping, shiftNextLine());
-          lastGeneratedLine++;
-          lastGeneratedColumn = 0;
-          // The remaining code is added without mapping
-        } else {
-          // There is no new line in between.
-          // Associate the code between "lastGeneratedColumn" and
-          // "mapping.generatedColumn" with "lastMapping"
-          var nextLine = remainingLines[remainingLinesIndex];
-          var code = nextLine.substr(0, mapping.generatedColumn -
-                                        lastGeneratedColumn);
-          remainingLines[remainingLinesIndex] = nextLine.substr(mapping.generatedColumn -
-                                              lastGeneratedColumn);
-          lastGeneratedColumn = mapping.generatedColumn;
-          addMappingWithCode(lastMapping, code);
-          // No more remaining code, continue
-          lastMapping = mapping;
-          return;
-        }
-      }
-      // We add the generated code until the first mapping
-      // to the SourceNode without any mapping.
-      // Each line is added as separate string.
-      while (lastGeneratedLine < mapping.generatedLine) {
-        node.add(shiftNextLine());
-        lastGeneratedLine++;
-      }
-      if (lastGeneratedColumn < mapping.generatedColumn) {
-        var nextLine = remainingLines[remainingLinesIndex];
-        node.add(nextLine.substr(0, mapping.generatedColumn));
-        remainingLines[remainingLinesIndex] = nextLine.substr(mapping.generatedColumn);
-        lastGeneratedColumn = mapping.generatedColumn;
-      }
-      lastMapping = mapping;
-    }, this);
-    // We have processed all mappings.
-    if (remainingLinesIndex < remainingLines.length) {
-      if (lastMapping) {
-        // Associate the remaining code in the current line with "lastMapping"
-        addMappingWithCode(lastMapping, shiftNextLine());
-      }
-      // and add the remaining lines without any mapping
-      node.add(remainingLines.splice(remainingLinesIndex).join(""));
-    }
-
-    // Copy sourcesContent into SourceNode
-    aSourceMapConsumer.sources.forEach(function (sourceFile) {
-      var content = aSourceMapConsumer.sourceContentFor(sourceFile);
-      if (content != null) {
-        if (aRelativePath != null) {
-          sourceFile = util.join(aRelativePath, sourceFile);
-        }
-        node.setSourceContent(sourceFile, content);
-      }
-    });
-
-    return node;
-
-    function addMappingWithCode(mapping, code) {
-      if (mapping === null || mapping.source === undefined) {
-        node.add(code);
-      } else {
-        var source = aRelativePath
-          ? util.join(aRelativePath, mapping.source)
-          : mapping.source;
-        node.add(new SourceNode(mapping.originalLine,
-                                mapping.originalColumn,
-                                source,
-                                code,
-                                mapping.name));
-      }
-    }
-  };
-
-/**
- * Add a chunk of generated JS to this source node.
- *
- * @param aChunk A string snippet of generated JS code, another instance of
- *        SourceNode, or an array where each member is one of those things.
- */
-SourceNode.prototype.add = function SourceNode_add(aChunk) {
-  if (Array.isArray(aChunk)) {
-    aChunk.forEach(function (chunk) {
-      this.add(chunk);
-    }, this);
-  }
-  else if (aChunk[isSourceNode] || typeof aChunk === "string") {
-    if (aChunk) {
-      this.children.push(aChunk);
-    }
-  }
-  else {
-    throw new TypeError(
-      "Expected a SourceNode, string, or an array of SourceNodes and strings. Got " + aChunk
-    );
-  }
-  return this;
-};
-
-/**
- * Add a chunk of generated JS to the beginning of this source node.
- *
- * @param aChunk A string snippet of generated JS code, another instance of
- *        SourceNode, or an array where each member is one of those things.
- */
-SourceNode.prototype.prepend = function SourceNode_prepend(aChunk) {
-  if (Array.isArray(aChunk)) {
-    for (var i = aChunk.length-1; i >= 0; i--) {
-      this.prepend(aChunk[i]);
-    }
-  }
-  else if (aChunk[isSourceNode] || typeof aChunk === "string") {
-    this.children.unshift(aChunk);
-  }
-  else {
-    throw new TypeError(
-      "Expected a SourceNode, string, or an array of SourceNodes and strings. Got " + aChunk
-    );
-  }
-  return this;
-};
-
-/**
- * Walk over the tree of JS snippets in this node and its children. The
- * walking function is called once for each snippet of JS and is passed that
- * snippet and the its original associated source's line/column location.
- *
- * @param aFn The traversal function.
- */
-SourceNode.prototype.walk = function SourceNode_walk(aFn) {
-  var chunk;
-  for (var i = 0, len = this.children.length; i < len; i++) {
-    chunk = this.children[i];
-    if (chunk[isSourceNode]) {
-      chunk.walk(aFn);
-    }
-    else {
-      if (chunk !== '') {
-        aFn(chunk, { source: this.source,
-                     line: this.line,
-                     column: this.column,
-                     name: this.name });
-      }
-    }
-  }
-};
-
-/**
- * Like `String.prototype.join` except for SourceNodes. Inserts `aStr` between
- * each of `this.children`.
- *
- * @param aSep The separator.
- */
-SourceNode.prototype.join = function SourceNode_join(aSep) {
-  var newChildren;
-  var i;
-  var len = this.children.length;
-  if (len > 0) {
-    newChildren = [];
-    for (i = 0; i < len-1; i++) {
-      newChildren.push(this.children[i]);
-      newChildren.push(aSep);
-    }
-    newChildren.push(this.children[i]);
-    this.children = newChildren;
-  }
-  return this;
-};
-
-/**
- * Call String.prototype.replace on the very right-most source snippet. Useful
- * for trimming whitespace from the end of a source node, etc.
- *
- * @param aPattern The pattern to replace.
- * @param aReplacement The thing to replace the pattern with.
- */
-SourceNode.prototype.replaceRight = function SourceNode_replaceRight(aPattern, aReplacement) {
-  var lastChild = this.children[this.children.length - 1];
-  if (lastChild[isSourceNode]) {
-    lastChild.replaceRight(aPattern, aReplacement);
-  }
-  else if (typeof lastChild === 'string') {
-    this.children[this.children.length - 1] = lastChild.replace(aPattern, aReplacement);
-  }
-  else {
-    this.children.push(''.replace(aPattern, aReplacement));
-  }
-  return this;
-};
-
-/**
- * Set the source content for a source file. This will be added to the SourceMapGenerator
- * in the sourcesContent field.
- *
- * @param aSourceFile The filename of the source file
- * @param aSourceContent The content of the source file
- */
-SourceNode.prototype.setSourceContent =
-  function SourceNode_setSourceContent(aSourceFile, aSourceContent) {
-    this.sourceContents[util.toSetString(aSourceFile)] = aSourceContent;
-  };
-
-/**
- * Walk over the tree of SourceNodes. The walking function is called for each
- * source file content and is passed the filename and source content.
- *
- * @param aFn The traversal function.
- */
-SourceNode.prototype.walkSourceContents =
-  function SourceNode_walkSourceContents(aFn) {
-    for (var i = 0, len = this.children.length; i < len; i++) {
-      if (this.children[i][isSourceNode]) {
-        this.children[i].walkSourceContents(aFn);
-      }
-    }
-
-    var sources = Object.keys(this.sourceContents);
-    for (var i = 0, len = sources.length; i < len; i++) {
-      aFn(util.fromSetString(sources[i]), this.sourceContents[sources[i]]);
-    }
-  };
-
-/**
- * Return the string representation of this source node. Walks over the tree
- * and concatenates all the various snippets together to one string.
- */
-SourceNode.prototype.toString = function SourceNode_toString() {
-  var str = "";
-  this.walk(function (chunk) {
-    str += chunk;
-  });
-  return str;
-};
-
-/**
- * Returns the string representation of this source node along with a source
- * map.
- */
-SourceNode.prototype.toStringWithSourceMap = function SourceNode_toStringWithSourceMap(aArgs) {
-  var generated = {
-    code: "",
-    line: 1,
-    column: 0
-  };
-  var map = new SourceMapGenerator(aArgs);
-  var sourceMappingActive = false;
-  var lastOriginalSource = null;
-  var lastOriginalLine = null;
-  var lastOriginalColumn = null;
-  var lastOriginalName = null;
-  this.walk(function (chunk, original) {
-    generated.code += chunk;
-    if (original.source !== null
-        && original.line !== null
-        && original.column !== null) {
-      if(lastOriginalSource !== original.source
-         || lastOriginalLine !== original.line
-         || lastOriginalColumn !== original.column
-         || lastOriginalName !== original.name) {
-        map.addMapping({
-          source: original.source,
-          original: {
-            line: original.line,
-            column: original.column
-          },
-          generated: {
-            line: generated.line,
-            column: generated.column
-          },
-          name: original.name
-        });
-      }
-      lastOriginalSource = original.source;
-      lastOriginalLine = original.line;
-      lastOriginalColumn = original.column;
-      lastOriginalName = original.name;
-      sourceMappingActive = true;
-    } else if (sourceMappingActive) {
-      map.addMapping({
-        generated: {
-          line: generated.line,
-          column: generated.column
-        }
-      });
-      lastOriginalSource = null;
-      sourceMappingActive = false;
-    }
-    for (var idx = 0, length = chunk.length; idx < length; idx++) {
-      if (chunk.charCodeAt(idx) === NEWLINE_CODE) {
-        generated.line++;
-        generated.column = 0;
-        // Mappings end at eol
-        if (idx + 1 === length) {
-          lastOriginalSource = null;
-          sourceMappingActive = false;
-        } else if (sourceMappingActive) {
-          map.addMapping({
-            source: original.source,
-            original: {
-              line: original.line,
-              column: original.column
-            },
-            generated: {
-              line: generated.line,
-              column: generated.column
-            },
-            name: original.name
-          });
-        }
-      } else {
-        generated.column++;
-      }
-    }
-  });
-  this.walkSourceContents(function (sourceFile, sourceContent) {
-    map.setSourceContent(sourceFile, sourceContent);
-  });
-
-  return { code: generated.code, map: map };
-};
-
-exports.SourceNode = SourceNode;
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-coverage/node_modules/source-map/lib/util.js b/src/cobalt/debug/remote/devtools/node_modules/karma-coverage/node_modules/source-map/lib/util.js
deleted file mode 100644
index 44e0e45..0000000
--- a/src/cobalt/debug/remote/devtools/node_modules/karma-coverage/node_modules/source-map/lib/util.js
+++ /dev/null
@@ -1,417 +0,0 @@
-/* -*- Mode: js; js-indent-level: 2; -*- */
-/*
- * Copyright 2011 Mozilla Foundation and contributors
- * Licensed under the New BSD license. See LICENSE or:
- * http://opensource.org/licenses/BSD-3-Clause
- */
-
-/**
- * This is a helper function for getting values from parameter/options
- * objects.
- *
- * @param args The object we are extracting values from
- * @param name The name of the property we are getting.
- * @param defaultValue An optional value to return if the property is missing
- * from the object. If this is not specified and the property is missing, an
- * error will be thrown.
- */
-function getArg(aArgs, aName, aDefaultValue) {
-  if (aName in aArgs) {
-    return aArgs[aName];
-  } else if (arguments.length === 3) {
-    return aDefaultValue;
-  } else {
-    throw new Error('"' + aName + '" is a required argument.');
-  }
-}
-exports.getArg = getArg;
-
-var urlRegexp = /^(?:([\w+\-.]+):)?\/\/(?:(\w+:\w+)@)?([\w.]*)(?::(\d+))?(\S*)$/;
-var dataUrlRegexp = /^data:.+\,.+$/;
-
-function urlParse(aUrl) {
-  var match = aUrl.match(urlRegexp);
-  if (!match) {
-    return null;
-  }
-  return {
-    scheme: match[1],
-    auth: match[2],
-    host: match[3],
-    port: match[4],
-    path: match[5]
-  };
-}
-exports.urlParse = urlParse;
-
-function urlGenerate(aParsedUrl) {
-  var url = '';
-  if (aParsedUrl.scheme) {
-    url += aParsedUrl.scheme + ':';
-  }
-  url += '//';
-  if (aParsedUrl.auth) {
-    url += aParsedUrl.auth + '@';
-  }
-  if (aParsedUrl.host) {
-    url += aParsedUrl.host;
-  }
-  if (aParsedUrl.port) {
-    url += ":" + aParsedUrl.port
-  }
-  if (aParsedUrl.path) {
-    url += aParsedUrl.path;
-  }
-  return url;
-}
-exports.urlGenerate = urlGenerate;
-
-/**
- * Normalizes a path, or the path portion of a URL:
- *
- * - Replaces consecutive slashes with one slash.
- * - Removes unnecessary '.' parts.
- * - Removes unnecessary '<dir>/..' parts.
- *
- * Based on code in the Node.js 'path' core module.
- *
- * @param aPath The path or url to normalize.
- */
-function normalize(aPath) {
-  var path = aPath;
-  var url = urlParse(aPath);
-  if (url) {
-    if (!url.path) {
-      return aPath;
-    }
-    path = url.path;
-  }
-  var isAbsolute = exports.isAbsolute(path);
-
-  var parts = path.split(/\/+/);
-  for (var part, up = 0, i = parts.length - 1; i >= 0; i--) {
-    part = parts[i];
-    if (part === '.') {
-      parts.splice(i, 1);
-    } else if (part === '..') {
-      up++;
-    } else if (up > 0) {
-      if (part === '') {
-        // The first part is blank if the path is absolute. Trying to go
-        // above the root is a no-op. Therefore we can remove all '..' parts
-        // directly after the root.
-        parts.splice(i + 1, up);
-        up = 0;
-      } else {
-        parts.splice(i, 2);
-        up--;
-      }
-    }
-  }
-  path = parts.join('/');
-
-  if (path === '') {
-    path = isAbsolute ? '/' : '.';
-  }
-
-  if (url) {
-    url.path = path;
-    return urlGenerate(url);
-  }
-  return path;
-}
-exports.normalize = normalize;
-
-/**
- * Joins two paths/URLs.
- *
- * @param aRoot The root path or URL.
- * @param aPath The path or URL to be joined with the root.
- *
- * - If aPath is a URL or a data URI, aPath is returned, unless aPath is a
- *   scheme-relative URL: Then the scheme of aRoot, if any, is prepended
- *   first.
- * - Otherwise aPath is a path. If aRoot is a URL, then its path portion
- *   is updated with the result and aRoot is returned. Otherwise the result
- *   is returned.
- *   - If aPath is absolute, the result is aPath.
- *   - Otherwise the two paths are joined with a slash.
- * - Joining for example 'http://' and 'www.example.com' is also supported.
- */
-function join(aRoot, aPath) {
-  if (aRoot === "") {
-    aRoot = ".";
-  }
-  if (aPath === "") {
-    aPath = ".";
-  }
-  var aPathUrl = urlParse(aPath);
-  var aRootUrl = urlParse(aRoot);
-  if (aRootUrl) {
-    aRoot = aRootUrl.path || '/';
-  }
-
-  // `join(foo, '//www.example.org')`
-  if (aPathUrl && !aPathUrl.scheme) {
-    if (aRootUrl) {
-      aPathUrl.scheme = aRootUrl.scheme;
-    }
-    return urlGenerate(aPathUrl);
-  }
-
-  if (aPathUrl || aPath.match(dataUrlRegexp)) {
-    return aPath;
-  }
-
-  // `join('http://', 'www.example.com')`
-  if (aRootUrl && !aRootUrl.host && !aRootUrl.path) {
-    aRootUrl.host = aPath;
-    return urlGenerate(aRootUrl);
-  }
-
-  var joined = aPath.charAt(0) === '/'
-    ? aPath
-    : normalize(aRoot.replace(/\/+$/, '') + '/' + aPath);
-
-  if (aRootUrl) {
-    aRootUrl.path = joined;
-    return urlGenerate(aRootUrl);
-  }
-  return joined;
-}
-exports.join = join;
-
-exports.isAbsolute = function (aPath) {
-  return aPath.charAt(0) === '/' || !!aPath.match(urlRegexp);
-};
-
-/**
- * Make a path relative to a URL or another path.
- *
- * @param aRoot The root path or URL.
- * @param aPath The path or URL to be made relative to aRoot.
- */
-function relative(aRoot, aPath) {
-  if (aRoot === "") {
-    aRoot = ".";
-  }
-
-  aRoot = aRoot.replace(/\/$/, '');
-
-  // It is possible for the path to be above the root. In this case, simply
-  // checking whether the root is a prefix of the path won't work. Instead, we
-  // need to remove components from the root one by one, until either we find
-  // a prefix that fits, or we run out of components to remove.
-  var level = 0;
-  while (aPath.indexOf(aRoot + '/') !== 0) {
-    var index = aRoot.lastIndexOf("/");
-    if (index < 0) {
-      return aPath;
-    }
-
-    // If the only part of the root that is left is the scheme (i.e. http://,
-    // file:///, etc.), one or more slashes (/), or simply nothing at all, we
-    // have exhausted all components, so the path is not relative to the root.
-    aRoot = aRoot.slice(0, index);
-    if (aRoot.match(/^([^\/]+:\/)?\/*$/)) {
-      return aPath;
-    }
-
-    ++level;
-  }
-
-  // Make sure we add a "../" for each component we removed from the root.
-  return Array(level + 1).join("../") + aPath.substr(aRoot.length + 1);
-}
-exports.relative = relative;
-
-var supportsNullProto = (function () {
-  var obj = Object.create(null);
-  return !('__proto__' in obj);
-}());
-
-function identity (s) {
-  return s;
-}
-
-/**
- * Because behavior goes wacky when you set `__proto__` on objects, we
- * have to prefix all the strings in our set with an arbitrary character.
- *
- * See https://github.com/mozilla/source-map/pull/31 and
- * https://github.com/mozilla/source-map/issues/30
- *
- * @param String aStr
- */
-function toSetString(aStr) {
-  if (isProtoString(aStr)) {
-    return '$' + aStr;
-  }
-
-  return aStr;
-}
-exports.toSetString = supportsNullProto ? identity : toSetString;
-
-function fromSetString(aStr) {
-  if (isProtoString(aStr)) {
-    return aStr.slice(1);
-  }
-
-  return aStr;
-}
-exports.fromSetString = supportsNullProto ? identity : fromSetString;
-
-function isProtoString(s) {
-  if (!s) {
-    return false;
-  }
-
-  var length = s.length;
-
-  if (length < 9 /* "__proto__".length */) {
-    return false;
-  }
-
-  if (s.charCodeAt(length - 1) !== 95  /* '_' */ ||
-      s.charCodeAt(length - 2) !== 95  /* '_' */ ||
-      s.charCodeAt(length - 3) !== 111 /* 'o' */ ||
-      s.charCodeAt(length - 4) !== 116 /* 't' */ ||
-      s.charCodeAt(length - 5) !== 111 /* 'o' */ ||
-      s.charCodeAt(length - 6) !== 114 /* 'r' */ ||
-      s.charCodeAt(length - 7) !== 112 /* 'p' */ ||
-      s.charCodeAt(length - 8) !== 95  /* '_' */ ||
-      s.charCodeAt(length - 9) !== 95  /* '_' */) {
-    return false;
-  }
-
-  for (var i = length - 10; i >= 0; i--) {
-    if (s.charCodeAt(i) !== 36 /* '$' */) {
-      return false;
-    }
-  }
-
-  return true;
-}
-
-/**
- * Comparator between two mappings where the original positions are compared.
- *
- * Optionally pass in `true` as `onlyCompareGenerated` to consider two
- * mappings with the same original source/line/column, but different generated
- * line and column the same. Useful when searching for a mapping with a
- * stubbed out mapping.
- */
-function compareByOriginalPositions(mappingA, mappingB, onlyCompareOriginal) {
-  var cmp = mappingA.source - mappingB.source;
-  if (cmp !== 0) {
-    return cmp;
-  }
-
-  cmp = mappingA.originalLine - mappingB.originalLine;
-  if (cmp !== 0) {
-    return cmp;
-  }
-
-  cmp = mappingA.originalColumn - mappingB.originalColumn;
-  if (cmp !== 0 || onlyCompareOriginal) {
-    return cmp;
-  }
-
-  cmp = mappingA.generatedColumn - mappingB.generatedColumn;
-  if (cmp !== 0) {
-    return cmp;
-  }
-
-  cmp = mappingA.generatedLine - mappingB.generatedLine;
-  if (cmp !== 0) {
-    return cmp;
-  }
-
-  return mappingA.name - mappingB.name;
-}
-exports.compareByOriginalPositions = compareByOriginalPositions;
-
-/**
- * Comparator between two mappings with deflated source and name indices where
- * the generated positions are compared.
- *
- * Optionally pass in `true` as `onlyCompareGenerated` to consider two
- * mappings with the same generated line and column, but different
- * source/name/original line and column the same. Useful when searching for a
- * mapping with a stubbed out mapping.
- */
-function compareByGeneratedPositionsDeflated(mappingA, mappingB, onlyCompareGenerated) {
-  var cmp = mappingA.generatedLine - mappingB.generatedLine;
-  if (cmp !== 0) {
-    return cmp;
-  }
-
-  cmp = mappingA.generatedColumn - mappingB.generatedColumn;
-  if (cmp !== 0 || onlyCompareGenerated) {
-    return cmp;
-  }
-
-  cmp = mappingA.source - mappingB.source;
-  if (cmp !== 0) {
-    return cmp;
-  }
-
-  cmp = mappingA.originalLine - mappingB.originalLine;
-  if (cmp !== 0) {
-    return cmp;
-  }
-
-  cmp = mappingA.originalColumn - mappingB.originalColumn;
-  if (cmp !== 0) {
-    return cmp;
-  }
-
-  return mappingA.name - mappingB.name;
-}
-exports.compareByGeneratedPositionsDeflated = compareByGeneratedPositionsDeflated;
-
-function strcmp(aStr1, aStr2) {
-  if (aStr1 === aStr2) {
-    return 0;
-  }
-
-  if (aStr1 > aStr2) {
-    return 1;
-  }
-
-  return -1;
-}
-
-/**
- * Comparator between two mappings with inflated source and name strings where
- * the generated positions are compared.
- */
-function compareByGeneratedPositionsInflated(mappingA, mappingB) {
-  var cmp = mappingA.generatedLine - mappingB.generatedLine;
-  if (cmp !== 0) {
-    return cmp;
-  }
-
-  cmp = mappingA.generatedColumn - mappingB.generatedColumn;
-  if (cmp !== 0) {
-    return cmp;
-  }
-
-  cmp = strcmp(mappingA.source, mappingB.source);
-  if (cmp !== 0) {
-    return cmp;
-  }
-
-  cmp = mappingA.originalLine - mappingB.originalLine;
-  if (cmp !== 0) {
-    return cmp;
-  }
-
-  cmp = mappingA.originalColumn - mappingB.originalColumn;
-  if (cmp !== 0) {
-    return cmp;
-  }
-
-  return strcmp(mappingA.name, mappingB.name);
-}
-exports.compareByGeneratedPositionsInflated = compareByGeneratedPositionsInflated;
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-coverage/node_modules/source-map/package.json b/src/cobalt/debug/remote/devtools/node_modules/karma-coverage/node_modules/source-map/package.json
deleted file mode 100644
index 1faf320..0000000
--- a/src/cobalt/debug/remote/devtools/node_modules/karma-coverage/node_modules/source-map/package.json
+++ /dev/null
@@ -1,72 +0,0 @@
-{
-  "author": "Nick Fitzgerald <nfitzgerald@mozilla.com>", 
-  "contributors": [
-    "Tobias Koppers <tobias.koppers@googlemail.com>", 
-    "Duncan Beevers <duncan@dweebd.com>", 
-    "Stephen Crane <scrane@mozilla.com>", 
-    "Ryan Seddon <seddon.ryan@gmail.com>", 
-    "Miles Elam <miles.elam@deem.com>", 
-    "Mihai Bazon <mihai.bazon@gmail.com>", 
-    "Michael Ficarra <github.public.email@michael.ficarra.me>", 
-    "Todd Wolfson <todd@twolfson.com>", 
-    "Alexander Solovyov <alexander@solovyov.net>", 
-    "Felix Gnass <fgnass@gmail.com>", 
-    "Conrad Irwin <conrad.irwin@gmail.com>", 
-    "usrbincc <usrbincc@yahoo.com>", 
-    "David Glasser <glasser@davidglasser.net>", 
-    "Chase Douglas <chase@newrelic.com>", 
-    "Evan Wallace <evan.exe@gmail.com>", 
-    "Heather Arthur <fayearthur@gmail.com>", 
-    "Hugh Kennedy <hughskennedy@gmail.com>", 
-    "David Glasser <glasser@davidglasser.net>", 
-    "Simon Lydell <simon.lydell@gmail.com>", 
-    "Jmeas Smith <jellyes2@gmail.com>", 
-    "Michael Z Goddard <mzgoddard@gmail.com>", 
-    "azu <azu@users.noreply.github.com>", 
-    "John Gozde <john@gozde.ca>", 
-    "Adam Kirkton <akirkton@truefitinnovation.com>", 
-    "Chris Montgomery <christopher.montgomery@dowjones.com>", 
-    "J. Ryan Stinnett <jryans@gmail.com>", 
-    "Jack Herrington <jherrington@walmartlabs.com>", 
-    "Chris Truter <jeffpalentine@gmail.com>", 
-    "Daniel Espeset <daniel@danielespeset.com>", 
-    "Jamie Wong <jamie.lf.wong@gmail.com>", 
-    "Eddy Bru\u00ebl <ejpbruel@mozilla.com>", 
-    "Hawken Rives <hawkrives@gmail.com>", 
-    "Gilad Peleg <giladp007@gmail.com>", 
-    "djchie <djchie.dev@gmail.com>", 
-    "Gary Ye <garysye@gmail.com>", 
-    "Nicolas Laleve\u0301e <nicolas.lalevee@hibnet.org>"
-  ], 
-  "description": "Generates and consumes source maps", 
-  "devDependencies": {
-    "doctoc": "^0.15.0", 
-    "webpack": "^1.12.0"
-  }, 
-  "engines": {
-    "node": ">=0.10.0"
-  }, 
-  "files": [
-    "source-map.js", 
-    "lib/", 
-    "dist/source-map.debug.js", 
-    "dist/source-map.js", 
-    "dist/source-map.min.js", 
-    "dist/source-map.min.js.map"
-  ], 
-  "homepage": "https://github.com/mozilla/source-map", 
-  "license": "BSD-3-Clause", 
-  "main": "./source-map.js", 
-  "name": "source-map", 
-  "repository": {
-    "type": "git", 
-    "url": "http://github.com/mozilla/source-map.git"
-  }, 
-  "scripts": {
-    "build": "webpack --color", 
-    "test": "npm run build && node test/run-tests.js", 
-    "toc": "doctoc --title '## Table of Contents' README.md && doctoc --title '## Table of Contents' CONTRIBUTING.md"
-  }, 
-  "typings": "source-map", 
-  "version": "0.5.7"
-}
\ No newline at end of file
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-coverage/node_modules/source-map/source-map.js b/src/cobalt/debug/remote/devtools/node_modules/karma-coverage/node_modules/source-map/source-map.js
deleted file mode 100644
index bc88fe8..0000000
--- a/src/cobalt/debug/remote/devtools/node_modules/karma-coverage/node_modules/source-map/source-map.js
+++ /dev/null
@@ -1,8 +0,0 @@
-/*
- * Copyright 2009-2011 Mozilla Foundation and contributors
- * Licensed under the New BSD license. See LICENSE.txt or:
- * http://opensource.org/licenses/BSD-3-Clause
- */
-exports.SourceMapGenerator = require('./lib/source-map-generator').SourceMapGenerator;
-exports.SourceMapConsumer = require('./lib/source-map-consumer').SourceMapConsumer;
-exports.SourceNode = require('./lib/source-node').SourceNode;
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-coverage/package.json b/src/cobalt/debug/remote/devtools/node_modules/karma-coverage/package.json
deleted file mode 100644
index 8fc8e03..0000000
--- a/src/cobalt/debug/remote/devtools/node_modules/karma-coverage/package.json
+++ /dev/null
@@ -1,113 +0,0 @@
-{
-  "author": "SATO taichi <ryushi@gmail.com>", 
-  "contributors": [
-    "dignifiedquire <dignifiedquire@gmail.com>", 
-    "Friedel Ziegelmayer <dignifiedquire@gmail.com>", 
-    "Aymeric Beaumet <aymeric@beaumet.me>", 
-    "Tim Kang <timkang@ucla.edu>", 
-    "Nick Malaguti <nmalaguti@palantir.com>", 
-    "Mark Ethan Trostler <mark@zzo.com>", 
-    "Maksim Ryzhikov <rv.maksim@gmail.com>", 
-    "Mark Trostler <mark@zzo.com>", 
-    "nicojs <jansennico@gmail.com>", 
-    "johnjbarton <johnjbarton@johnjbarton.com>", 
-    "Allen Bierbaum <abierbaum@gmail.com>", 
-    "Douglas Duteil <douglasduteil@gmail.com>", 
-    "Matt Winchester <m_winche@yahoo.com>", 
-    "Wei Kin Huang <weikin.huang04@gmail.com>", 
-    "Tanguy Krotoff <tkrotoff@gmail.com>", 
-    "Marceli.no <me@marceli.no>", 
-    "Matt Lewis <matthew.lewis@socialsignin.co.uk>", 
-    "Michael Noack <michael.noack@sealink.com.au>", 
-    "Michael Stramel <m.stramel89@gmail.com>", 
-    "Nick Matantsev <nick.matantsev@gmail.com>", 
-    "Petar Manev <petar.manev2010@gmail.com>", 
-    "Robin B\u00f6hm <robinboehm@googlemail.com>", 
-    "Ron Derksen <ron.derksen@informaat.nl>", 
-    "Ruben Bridgewater <ruben.bridgewater@fintura.de>", 
-    "Sahat Yalkabov <sakhat@gmail.com>", 
-    "Tanjo, Hiroyuki <expheno@gmail.com>", 
-    "Taylor Hakes <taylor@taylorhakes.com>", 
-    "Taylor McGann <tmcgann@users.noreply.github.com>", 
-    "Timo Tijhof <krinklemail@gmail.com>", 
-    "Tom Kirkpatrick <tom@systemseed.com>", 
-    "Tyler Waters <tyler.waters@gmail.com>", 
-    "Vincent Lemeunier <vincent.lemeunier+git@gmail.com>", 
-    "Yusuke Suzuki <utatane.tea@gmail.com>", 
-    "aprooks <alexander.prooks@gmail.com>", 
-    "carlos <cafesanu@gmail.com>", 
-    "fbergr <fbergr@gmail.com>", 
-    "piecyk <piecyk@gmail.com>", 
-    "terussell85 <terussell85@gmail.com>", 
-    "Andrew Lane <AndrewLane@users.noreply.github.com>", 
-    "Chris Gladd <chris.m.gladd@gmail.com>", 
-    "Clayton Watts <cletusw@gmail.com>", 
-    "Dan Watling <dan@synaptik.com>", 
-    "Diogo Nicoleti <diogo.nicoleti@gmail.com>", 
-    "Dmitry Petrov <dpetroff@gmail.com>", 
-    "Greg Varsanyi <gvarsanyi@gmail.com>", 
-    "Ian Rufus <ian.j.rufus@gmail.com>", 
-    "James Talmage <james@talmage.io>", 
-    "Joseph Connolly <joec@avinetworks.com>", 
-    "Joshua Appelman <jappelman@xebia.com>", 
-    "Julie <ju.ralph@gmail.com>", 
-    "Kyle Welsby <kyle@mekyle.com>", 
-    "Lloyd Smith II <lloyd@trove.com>", 
-    "Maciej Rzepin\u0301ski <maciej.rzepinski@gmail.com>"
-  ], 
-  "dependencies": {
-    "dateformat": "^1.0.6", 
-    "istanbul": "^0.4.0", 
-    "lodash": "^4.17.0", 
-    "minimatch": "^3.0.0", 
-    "source-map": "^0.5.1"
-  }, 
-  "description": "A Karma plugin. Generate code coverage.", 
-  "devDependencies": {
-    "chai": "^3.3.0", 
-    "eslint": "^2.2.0", 
-    "eslint-config-standard": "^5.1.0", 
-    "eslint-plugin-promise": "^1.1.0", 
-    "eslint-plugin-react": "^4.1.0", 
-    "eslint-plugin-standard": "^1.1.0", 
-    "grunt": "^0.4.5", 
-    "grunt-bump": "^0.7.0", 
-    "grunt-cli": "^1.2.0", 
-    "grunt-conventional-changelog": "^6.1.0", 
-    "grunt-conventional-github-releaser": "^1.0.0", 
-    "grunt-eslint": "^18.0.0", 
-    "grunt-karma": "1.x || ^0.12.0", 
-    "grunt-npm": "^0.0.2", 
-    "grunt-simple-mocha": "^0.4.0", 
-    "ibrik": "^2.0.0", 
-    "karma": "1.x || ^0.13.7", 
-    "karma-coffee-preprocessor": "1.x || ^0.3.0", 
-    "karma-firefox-launcher": "1.x || ^0.1.6", 
-    "karma-mocha": "1.x || ^0.2.0", 
-    "karma-requirejs": "1.x || ^0.2.2", 
-    "load-grunt-tasks": "^3.2.0", 
-    "mocha": "^2.2.5", 
-    "mocks": "0.0.15", 
-    "requirejs": "^2.1.20", 
-    "sinon": "^1.14.1", 
-    "sinon-chai": "^2.8.0"
-  }, 
-  "keywords": [
-    "karma-plugin", 
-    "karma-preprocessor", 
-    "karma-reporter", 
-    "coverage", 
-    "istanbul"
-  ], 
-  "license": "MIT", 
-  "main": "lib/index.js", 
-  "name": "karma-coverage", 
-  "repository": {
-    "type": "git", 
-    "url": "git://github.com/karma-runner/karma-coverage.git"
-  }, 
-  "scripts": {
-    "test": "grunt test"
-  }, 
-  "version": "1.1.2"
-}
\ No newline at end of file
diff --git a/src/cobalt/debug/remote/devtools/node_modules/parseuri/Makefile b/src/cobalt/debug/remote/devtools/node_modules/parseuri/Makefile
deleted file mode 100644
index 2fbcce9..0000000
--- a/src/cobalt/debug/remote/devtools/node_modules/parseuri/Makefile
+++ /dev/null
@@ -1,3 +0,0 @@
-

-test:

-	@./node_modules/.bin/mocha test.js

diff --git a/src/cobalt/debug/remote/devtools/node_modules/timers-browserify/.DS_Store b/src/cobalt/debug/remote/devtools/node_modules/timers-browserify/.DS_Store
deleted file mode 100644
index 5008ddf..0000000
--- a/src/cobalt/debug/remote/devtools/node_modules/timers-browserify/.DS_Store
+++ /dev/null
Binary files differ
diff --git a/src/cobalt/debug/remote/devtools/node_modules/tslib/CopyrightNotice.txt b/src/cobalt/debug/remote/devtools/node_modules/tslib/CopyrightNotice.txt
deleted file mode 100644
index 0f6db1f..0000000
--- a/src/cobalt/debug/remote/devtools/node_modules/tslib/CopyrightNotice.txt
+++ /dev/null
@@ -1,15 +0,0 @@
-/*! *****************************************************************************

-Copyright (c) Microsoft Corporation. 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  

- 

-THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

-KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED

-WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, 

-MERCHANTABLITY OR NON-INFRINGEMENT. 

- 

-See the Apache Version 2.0 License for specific language governing permissions

-and limitations under the License.

-***************************************************************************** */

-

diff --git a/src/cobalt/debug/remote/devtools/node_modules/typescript/LICENSE.txt b/src/cobalt/debug/remote/devtools/node_modules/typescript/LICENSE.txt
deleted file mode 100644
index 8746124..0000000
--- a/src/cobalt/debug/remote/devtools/node_modules/typescript/LICENSE.txt
+++ /dev/null
@@ -1,55 +0,0 @@
-Apache License

-

-Version 2.0, January 2004

-

-http://www.apache.org/licenses/ 

-

-TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION

-

-1. Definitions.

-

-"License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document.

-

-"Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License.

-

-"Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity.

-

-"You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License.

-

-"Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files.

-

-"Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types.

-

-"Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below).

-

-"Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof.

-

-"Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution."

-

-"Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work.

-

-2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form.

-

-3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed.

-

-4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions:

-

-You must give any other recipients of the Work or Derivative Works a copy of this License; and

-

-You must cause any modified files to carry prominent notices stating that You changed the files; and

-

-You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and

-

-If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License.

-

-5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions.

-

-6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file.

-

-7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License.

-

-8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages.

-

-9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability.

-

-END OF TERMS AND CONDITIONS

diff --git a/src/cobalt/debug/remote/devtools/node_modules/typescript/lib/lib.es2018.asynciterable.d.ts b/src/cobalt/debug/remote/devtools/node_modules/typescript/lib/lib.es2018.asynciterable.d.ts
deleted file mode 100644
index e3f809d..0000000
--- a/src/cobalt/debug/remote/devtools/node_modules/typescript/lib/lib.es2018.asynciterable.d.ts
+++ /dev/null
@@ -1,44 +0,0 @@
-/*! *****************************************************************************
-Copyright (c) Microsoft Corporation. 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  
- 
-THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
-WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, 
-MERCHANTABLITY OR NON-INFRINGEMENT. 
- 
-See the Apache Version 2.0 License for specific language governing permissions
-and limitations under the License.
-***************************************************************************** */
-
-
-
-/// <reference no-default-lib="true"/>

-
-
-/// <reference lib="es2015.symbol" />

-/// <reference lib="es2015.iterable" />

-

-interface SymbolConstructor {

-    /**

-     * A method that returns the default async iterator for an object. Called by the semantics of

-     * the for-await-of statement.

-     */

-    readonly asyncIterator: symbol;

-}

-

-interface AsyncIterator<T> {

-    next(value?: any): Promise<IteratorResult<T>>;

-    return?(value?: any): Promise<IteratorResult<T>>;

-    throw?(e?: any): Promise<IteratorResult<T>>;

-}

-

-interface AsyncIterable<T> {

-    [Symbol.asyncIterator](): AsyncIterator<T>;

-}

-

-interface AsyncIterableIterator<T> extends AsyncIterator<T> {

-    [Symbol.asyncIterator](): AsyncIterableIterator<T>;

-}
\ No newline at end of file
diff --git a/src/cobalt/debug/remote/devtools/node_modules/typescript/lib/lib.es2019.array.d.ts b/src/cobalt/debug/remote/devtools/node_modules/typescript/lib/lib.es2019.array.d.ts
deleted file mode 100644
index 398d9df..0000000
--- a/src/cobalt/debug/remote/devtools/node_modules/typescript/lib/lib.es2019.array.d.ts
+++ /dev/null
@@ -1,223 +0,0 @@
-/*! *****************************************************************************
-Copyright (c) Microsoft Corporation. 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  
- 
-THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
-WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, 
-MERCHANTABLITY OR NON-INFRINGEMENT. 
- 
-See the Apache Version 2.0 License for specific language governing permissions
-and limitations under the License.
-***************************************************************************** */
-
-
-
-/// <reference no-default-lib="true"/>

-
-
-interface ReadonlyArray<T> {

-

-    /**

-     * Calls a defined callback function on each element of an array. Then, flattens the result into

-     * a new array.

-     * This is identical to a map followed by flat with depth 1.

-     *

-     * @param callback A function that accepts up to three arguments. The flatMap method calls the

-     * callback function one time for each element in the array.

-     * @param thisArg An object to which the this keyword can refer in the callback function. If

-     * thisArg is omitted, undefined is used as the this value.

-     */

-    flatMap<U, This = undefined> (

-        callback: (this: This, value: T, index: number, array: T[]) => U|ReadonlyArray<U>,

-        thisArg?: This

-    ): U[]

-

-

-    /**

-     * Returns a new array with all sub-array elements concatenated into it recursively up to the

-     * specified depth.

-     *

-     * @param depth The maximum recursion depth

-     */

-    flat<U>(this:

-        ReadonlyArray<U[][][][]> |

-

-        ReadonlyArray<ReadonlyArray<U[][][]>> |

-        ReadonlyArray<ReadonlyArray<U[][]>[]> |

-        ReadonlyArray<ReadonlyArray<U[]>[][]> |

-        ReadonlyArray<ReadonlyArray<U>[][][]> |

-

-        ReadonlyArray<ReadonlyArray<ReadonlyArray<U[][]>>> |

-        ReadonlyArray<ReadonlyArray<ReadonlyArray<U>[][]>> |

-        ReadonlyArray<ReadonlyArray<ReadonlyArray<U>>[][]> |

-        ReadonlyArray<ReadonlyArray<ReadonlyArray<U>[]>[]> |

-        ReadonlyArray<ReadonlyArray<ReadonlyArray<U[]>>[]> |

-        ReadonlyArray<ReadonlyArray<ReadonlyArray<U[]>[]>> |

-

-        ReadonlyArray<ReadonlyArray<ReadonlyArray<ReadonlyArray<U[]>>>> |

-        ReadonlyArray<ReadonlyArray<ReadonlyArray<ReadonlyArray<U>[]>>> |

-        ReadonlyArray<ReadonlyArray<ReadonlyArray<ReadonlyArray<U>>[]>> |

-        ReadonlyArray<ReadonlyArray<ReadonlyArray<ReadonlyArray<U>>>[]> |

-

-        ReadonlyArray<ReadonlyArray<ReadonlyArray<ReadonlyArray<ReadonlyArray<U>>>>>,

-        depth: 4): U[];

-

-    /**

-     * Returns a new array with all sub-array elements concatenated into it recursively up to the

-     * specified depth.

-     *

-     * @param depth The maximum recursion depth

-     */

-    flat<U>(this:

-        ReadonlyArray<U[][][]> |

-

-        ReadonlyArray<ReadonlyArray<U>[][]> |

-        ReadonlyArray<ReadonlyArray<U[]>[]> |

-        ReadonlyArray<ReadonlyArray<U[][]>> |

-

-        ReadonlyArray<ReadonlyArray<ReadonlyArray<U[]>>> |

-        ReadonlyArray<ReadonlyArray<ReadonlyArray<U>[]>> |

-        ReadonlyArray<ReadonlyArray<ReadonlyArray<U>>[]> |

-

-        ReadonlyArray<ReadonlyArray<ReadonlyArray<ReadonlyArray<U>>>>,

-        depth: 3): U[];

-

-    /**

-     * Returns a new array with all sub-array elements concatenated into it recursively up to the

-     * specified depth.

-     *

-     * @param depth The maximum recursion depth

-     */

-    flat<U>(this:

-        ReadonlyArray<U[][]> |

-

-        ReadonlyArray<ReadonlyArray<U[]>> |

-        ReadonlyArray<ReadonlyArray<U>[]> |

-

-        ReadonlyArray<ReadonlyArray<ReadonlyArray<U>>>,

-        depth: 2): U[];

-

-    /**

-     * Returns a new array with all sub-array elements concatenated into it recursively up to the

-     * specified depth.

-     *

-     * @param depth The maximum recursion depth

-     */

-    flat<U>(this:

-        ReadonlyArray<U[]> |

-        ReadonlyArray<ReadonlyArray<U>>,

-        depth?: 1

-    ): U[];

-

-    /**

-     * Returns a new array with all sub-array elements concatenated into it recursively up to the

-     * specified depth.

-     *

-     * @param depth The maximum recursion depth

-     */

-    flat<U>(this:

-        ReadonlyArray<U>,

-        depth: 0

-    ): U[];

-

-    /**

-     * Returns a new array with all sub-array elements concatenated into it recursively up to the

-     * specified depth. If no depth is provided, flat method defaults to the depth of 1.

-     *

-     * @param depth The maximum recursion depth

-     */

-    flat<U>(depth?: number): any[];

-  }

-

-interface Array<T> {

-

-    /**

-     * Calls a defined callback function on each element of an array. Then, flattens the result into

-     * a new array.

-     * This is identical to a map followed by flat with depth 1.

-     *

-     * @param callback A function that accepts up to three arguments. The flatMap method calls the

-     * callback function one time for each element in the array.

-     * @param thisArg An object to which the this keyword can refer in the callback function. If

-     * thisArg is omitted, undefined is used as the this value.

-     */

-    flatMap<U, This = undefined> (

-        callback: (this: This, value: T, index: number, array: T[]) => U|ReadonlyArray<U>,

-        thisArg?: This

-    ): U[]

-

-    /**

-     * Returns a new array with all sub-array elements concatenated into it recursively up to the

-     * specified depth.

-     *

-     * @param depth The maximum recursion depth

-     */

-    flat<U>(this: U[][][][][][][][], depth: 7): U[];

-

-    /**

-     * Returns a new array with all sub-array elements concatenated into it recursively up to the

-     * specified depth.

-     *

-     * @param depth The maximum recursion depth

-     */

-    flat<U>(this: U[][][][][][][], depth: 6): U[];

-

-    /**

-     * Returns a new array with all sub-array elements concatenated into it recursively up to the

-     * specified depth.

-     *

-     * @param depth The maximum recursion depth

-     */

-    flat<U>(this: U[][][][][][], depth: 5): U[];

-

-    /**

-     * Returns a new array with all sub-array elements concatenated into it recursively up to the

-     * specified depth.

-     *

-     * @param depth The maximum recursion depth

-     */

-    flat<U>(this: U[][][][][], depth: 4): U[];

-

-    /**

-     * Returns a new array with all sub-array elements concatenated into it recursively up to the

-     * specified depth.

-     *

-     * @param depth The maximum recursion depth

-     */

-    flat<U>(this: U[][][][], depth: 3): U[];

-

-    /**

-     * Returns a new array with all sub-array elements concatenated into it recursively up to the

-     * specified depth.

-     *

-     * @param depth The maximum recursion depth

-     */

-    flat<U>(this: U[][][], depth: 2): U[];

-

-    /**

-     * Returns a new array with all sub-array elements concatenated into it recursively up to the

-     * specified depth.

-     *

-     * @param depth The maximum recursion depth

-     */

-    flat<U>(this: U[][], depth?: 1): U[];

-

-    /**

-     * Returns a new array with all sub-array elements concatenated into it recursively up to the

-     * specified depth.

-     *

-     * @param depth The maximum recursion depth

-     */

-    flat<U>(this: U[], depth: 0): U[];

-

-    /**

-     * Returns a new array with all sub-array elements concatenated into it recursively up to the

-     * specified depth. If no depth is provided, flat method defaults to the depth of 1.

-     *

-     * @param depth The maximum recursion depth

-     */

-    flat<U>(depth?: number): any[];

-}

diff --git a/src/cobalt/debug/remote/devtools/node_modules/typescript/lib/lib.es2019.symbol.d.ts b/src/cobalt/debug/remote/devtools/node_modules/typescript/lib/lib.es2019.symbol.d.ts
deleted file mode 100644
index b956cf0..0000000
--- a/src/cobalt/debug/remote/devtools/node_modules/typescript/lib/lib.es2019.symbol.d.ts
+++ /dev/null
@@ -1,26 +0,0 @@
-/*! *****************************************************************************
-Copyright (c) Microsoft Corporation. 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  
- 
-THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
-WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, 
-MERCHANTABLITY OR NON-INFRINGEMENT. 
- 
-See the Apache Version 2.0 License for specific language governing permissions
-and limitations under the License.
-***************************************************************************** */
-
-
-
-/// <reference no-default-lib="true"/>

-
-
-interface Symbol {
-    /**
-     * expose the [[Description]] internal slot of a symbol directly
-     */
-    readonly description: string;
-}
diff --git a/src/cobalt/debug/remote/devtools/node_modules/uri-js/dist/es5/uri.all.min.d.ts b/src/cobalt/debug/remote/devtools/node_modules/uri-js/dist/es5/uri.all.min.d.ts
deleted file mode 100644
index 320f534..0000000
--- a/src/cobalt/debug/remote/devtools/node_modules/uri-js/dist/es5/uri.all.min.d.ts
+++ /dev/null
@@ -1,59 +0,0 @@
-export interface URIComponents {

-    scheme?: string;

-    userinfo?: string;

-    host?: string;

-    port?: number | string;

-    path?: string;

-    query?: string;

-    fragment?: string;

-    reference?: string;

-    error?: string;

-}

-export interface URIOptions {

-    scheme?: string;

-    reference?: string;

-    tolerant?: boolean;

-    absolutePath?: boolean;

-    iri?: boolean;

-    unicodeSupport?: boolean;

-    domainHost?: boolean;

-}

-export interface URISchemeHandler<Components extends URIComponents = URIComponents, Options extends URIOptions = URIOptions, ParentComponents extends URIComponents = URIComponents> {

-    scheme: string;

-    parse(components: ParentComponents, options: Options): Components;

-    serialize(components: Components, options: Options): ParentComponents;

-    unicodeSupport?: boolean;

-    domainHost?: boolean;

-    absolutePath?: boolean;

-}

-export interface URIRegExps {

-    NOT_SCHEME: RegExp;

-    NOT_USERINFO: RegExp;

-    NOT_HOST: RegExp;

-    NOT_PATH: RegExp;

-    NOT_PATH_NOSCHEME: RegExp;

-    NOT_QUERY: RegExp;

-    NOT_FRAGMENT: RegExp;

-    ESCAPE: RegExp;

-    UNRESERVED: RegExp;

-    OTHER_CHARS: RegExp;

-    PCT_ENCODED: RegExp;

-    IPV4ADDRESS: RegExp;

-    IPV6ADDRESS: RegExp;

-}

-export declare const SCHEMES: {

-    [scheme: string]: URISchemeHandler;

-};

-export declare function pctEncChar(chr: string): string;

-export declare function pctDecChars(str: string): string;

-export declare function parse(uriString: string, options?: URIOptions): URIComponents;

-export declare function removeDotSegments(input: string): string;

-export declare function serialize(components: URIComponents, options?: URIOptions): string;

-export declare function resolveComponents(base: URIComponents, relative: URIComponents, options?: URIOptions, skipNormalization?: boolean): URIComponents;

-export declare function resolve(baseURI: string, relativeURI: string, options?: URIOptions): string;

-export declare function normalize(uri: string, options?: URIOptions): string;

-export declare function normalize(uri: URIComponents, options?: URIOptions): URIComponents;

-export declare function equal(uriA: string, uriB: string, options?: URIOptions): boolean;

-export declare function equal(uriA: URIComponents, uriB: URIComponents, options?: URIOptions): boolean;

-export declare function escapeComponent(str: string, options?: URIOptions): string;

-export declare function unescapeComponent(str: string, options?: URIOptions): string;

diff --git a/src/cobalt/debug/remote/devtools/node_modules/uri-js/dist/esnext/schemes/https.d.ts b/src/cobalt/debug/remote/devtools/node_modules/uri-js/dist/esnext/schemes/https.d.ts
deleted file mode 100644
index 3899956..0000000
--- a/src/cobalt/debug/remote/devtools/node_modules/uri-js/dist/esnext/schemes/https.d.ts
+++ /dev/null
@@ -1,3 +0,0 @@
-import { URISchemeHandler } from "../uri";

-declare const handler: URISchemeHandler;

-export default handler;

diff --git a/src/cobalt/debug/remote/devtools/node_modules/uri-js/dist/esnext/uri.d.ts b/src/cobalt/debug/remote/devtools/node_modules/uri-js/dist/esnext/uri.d.ts
deleted file mode 100644
index 320f534..0000000
--- a/src/cobalt/debug/remote/devtools/node_modules/uri-js/dist/esnext/uri.d.ts
+++ /dev/null
@@ -1,59 +0,0 @@
-export interface URIComponents {

-    scheme?: string;

-    userinfo?: string;

-    host?: string;

-    port?: number | string;

-    path?: string;

-    query?: string;

-    fragment?: string;

-    reference?: string;

-    error?: string;

-}

-export interface URIOptions {

-    scheme?: string;

-    reference?: string;

-    tolerant?: boolean;

-    absolutePath?: boolean;

-    iri?: boolean;

-    unicodeSupport?: boolean;

-    domainHost?: boolean;

-}

-export interface URISchemeHandler<Components extends URIComponents = URIComponents, Options extends URIOptions = URIOptions, ParentComponents extends URIComponents = URIComponents> {

-    scheme: string;

-    parse(components: ParentComponents, options: Options): Components;

-    serialize(components: Components, options: Options): ParentComponents;

-    unicodeSupport?: boolean;

-    domainHost?: boolean;

-    absolutePath?: boolean;

-}

-export interface URIRegExps {

-    NOT_SCHEME: RegExp;

-    NOT_USERINFO: RegExp;

-    NOT_HOST: RegExp;

-    NOT_PATH: RegExp;

-    NOT_PATH_NOSCHEME: RegExp;

-    NOT_QUERY: RegExp;

-    NOT_FRAGMENT: RegExp;

-    ESCAPE: RegExp;

-    UNRESERVED: RegExp;

-    OTHER_CHARS: RegExp;

-    PCT_ENCODED: RegExp;

-    IPV4ADDRESS: RegExp;

-    IPV6ADDRESS: RegExp;

-}

-export declare const SCHEMES: {

-    [scheme: string]: URISchemeHandler;

-};

-export declare function pctEncChar(chr: string): string;

-export declare function pctDecChars(str: string): string;

-export declare function parse(uriString: string, options?: URIOptions): URIComponents;

-export declare function removeDotSegments(input: string): string;

-export declare function serialize(components: URIComponents, options?: URIOptions): string;

-export declare function resolveComponents(base: URIComponents, relative: URIComponents, options?: URIOptions, skipNormalization?: boolean): URIComponents;

-export declare function resolve(baseURI: string, relativeURI: string, options?: URIOptions): string;

-export declare function normalize(uri: string, options?: URIOptions): string;

-export declare function normalize(uri: URIComponents, options?: URIOptions): URIComponents;

-export declare function equal(uriA: string, uriB: string, options?: URIOptions): boolean;

-export declare function equal(uriA: URIComponents, uriB: URIComponents, options?: URIOptions): boolean;

-export declare function escapeComponent(str: string, options?: URIOptions): string;

-export declare function unescapeComponent(str: string, options?: URIOptions): string;

diff --git a/src/cobalt/debug/remote/devtools/node_modules/ws/lib/.DS_Store b/src/cobalt/debug/remote/devtools/node_modules/ws/lib/.DS_Store
deleted file mode 100644
index 6cee8b4..0000000
--- a/src/cobalt/debug/remote/devtools/node_modules/ws/lib/.DS_Store
+++ /dev/null
Binary files differ
diff --git a/src/cobalt/demos/content/performance-api-demo/performance-api-demo.html b/src/cobalt/demos/content/performance-api-demo/performance-api-demo.html
new file mode 100644
index 0000000..930cc8c
--- /dev/null
+++ b/src/cobalt/demos/content/performance-api-demo/performance-api-demo.html
@@ -0,0 +1,40 @@
+<!DOCTYPE HTML>
+<meta charset=utf-8>
+<title>PerformanceObservers: resource</title>
+<h1>PerformanceObservers: resource</h1>
+<script>
+  function onload() {
+    function path(pathname) {
+      var filename = pathname.substring(pathname.lastIndexOf('/') + 1);
+      return pathname.substring(0, pathname.length - filename.length);
+    }
+    var stored_entries = [];
+    var img_location = document.location.origin + path(document.location.pathname)
+      + "resources/square.png";
+    var img1 = img_location;
+    resourceObserver = new PerformanceObserver(list => {
+      list
+        .getEntries()
+        // Get the values we are interested in
+        .map(({ name, startTime, fetchStart, responseStart, responseEnd }) => {
+          const obj = {
+            "Name": name,
+            "Start Time": startTime,
+            "Fetch Start": fetchStart,
+            "Response Start": responseStart,
+            "Response End": responseEnd,
+          };
+          return JSON.stringify(obj, null, 2);
+        })
+        // Display them to the console.
+        .forEach(console.log);
+      // Disconnect after processing the events.
+      resourceObserver.disconnect();
+    });
+    resourceObserver.observe({ entryTypes: ["resource"] });
+    var img = document.createElement("img");
+    img.src = img1;
+    document.body.appendChild(img);
+  }
+  onload();
+</script>
\ No newline at end of file
diff --git a/src/cobalt/demos/content/performance-api-demo/resources/square.png b/src/cobalt/demos/content/performance-api-demo/resources/square.png
new file mode 100644
index 0000000..be211bc
--- /dev/null
+++ b/src/cobalt/demos/content/performance-api-demo/resources/square.png
Binary files differ
diff --git a/src/cobalt/doc/voice_search.md b/src/cobalt/doc/voice_search.md
index c79f84c..1847282 100644
--- a/src/cobalt/doc/voice_search.md
+++ b/src/cobalt/doc/voice_search.md
@@ -8,6 +8,8 @@
 Only one or the other can be used, and we recommend that the MediaRecorder API
 is followed, as we are considering deprecating the Speech Recognition API.
 
+**The Speech Recognition API is deprecated as of Starboard 13.**
+
 In both approaches, in order to check whether to enable voice control or not,
 web apps will call the [MediaDevices.enumerateDevices()](https://www.w3.org/TR/mediacapture-streams/#dom-mediadevices-enumeratedevices%28%29)
 Web API function within which Cobalt will in turn call a subset of the
@@ -19,7 +21,9 @@
 [SbMicrophone API](../../starboard/microphone.h) must be implemented, and
 `SbSpeechRecognizerIsSupported()` must return `false`.
 
-## Speech Recognition API
+## Speech Recognition API - Deprecated
+
+**The Speech Recognition API is deprecated as of Starboard 13.**
 
 In order to provide support for using this API, platforms must implement the
 [Starboard SbSpeechRecognizer API](../../starboard/speech_recognizer.h) as well
@@ -54,3 +58,8 @@
 This is no longer necessary, web apps should now rely on
 `MediaDevices.enumerateDevices()` to determine whether voice support is enabled
 or not.
+
+### Speech Recognition API is deprecated in Starboard 13 ###
+
+Web applications are expected to use the MediaRecorder API. This in turn relies
+on the SbMicrophone API as detailed above.
diff --git a/src/cobalt/dom/document.cc b/src/cobalt/dom/document.cc
index 8545de1..949ff8d 100644
--- a/src/cobalt/dom/document.cc
+++ b/src/cobalt/dom/document.cc
@@ -394,6 +394,15 @@
   return NULL;
 }
 
+scoped_refptr<HTMLScriptElement> Document::current_script() const {
+  return current_script_;
+}
+
+void Document::set_current_script(
+    const scoped_refptr<HTMLScriptElement>& current_script) {
+  current_script_ = current_script;
+}
+
 bool Document::HasFocus() const {
   return application_lifecycle_state()->HasWindowFocus();
 }
diff --git a/src/cobalt/dom/document.h b/src/cobalt/dom/document.h
index 1483954..32b4fbc 100644
--- a/src/cobalt/dom/document.h
+++ b/src/cobalt/dom/document.h
@@ -206,6 +206,10 @@
 
   scoped_refptr<HTMLHeadElement> head() const;
 
+  scoped_refptr<HTMLScriptElement> current_script() const;
+  void set_current_script(
+      const scoped_refptr<HTMLScriptElement>& current_script);
+
   // https://www.w3.org/TR/html50/editing.html#dom-document-hasfocus
   bool HasFocus() const;
 
@@ -532,6 +536,8 @@
   scoped_refptr<DOMImplementation> implementation_;
   // List of CSS style sheets.
   scoped_refptr<cssom::StyleSheetList> style_sheets_;
+  // <script> element whose script is currently being processed, if any.
+  scoped_refptr<HTMLScriptElement> current_script_;
   // List of scripts that will execute in order as soon as possible.
   std::deque<HTMLScriptElement*> scripts_to_be_executed_;
   // A mapping from keyframes declaration names to their parsed structure.
diff --git a/src/cobalt/dom/document_html5.idl b/src/cobalt/dom/document_html5.idl
index 3d94101..bceaa9e 100644
--- a/src/cobalt/dom/document_html5.idl
+++ b/src/cobalt/dom/document_html5.idl
@@ -12,7 +12,7 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-// https://www.w3.org/TR/html50/dom.html#the-document-object
+// https://www.w3.org/TR/2021/SPSD-html51-20210128/dom.html#the-document-object
 
 [OverrideBuiltins]
 partial /*sealed*/ interface Document {
@@ -25,6 +25,11 @@
   attribute HTMLBodyElement? body;
   readonly attribute HTMLHeadElement? head;
   readonly attribute DOMString title;
+
+  // currentScript is implemented as part of the HTML 5.1 spec
+  // https://www.w3.org/TR/2021/SPSD-html51-20210128/dom.html#dom-document-currentscript
+  readonly attribute HTMLScriptElement? currentScript;
+
   boolean hasFocus();
   readonly attribute Element? activeElement;
 
diff --git a/src/cobalt/dom/html_element.cc b/src/cobalt/dom/html_element.cc
index 307daa2..a8c44e5 100644
--- a/src/cobalt/dom/html_element.cc
+++ b/src/cobalt/dom/html_element.cc
@@ -271,6 +271,7 @@
 //   https://www.w3.org/TR/2013/WD-cssom-view-20131217/#dom-element-getclientrects
 scoped_refptr<DOMRectList> HTMLElement::GetClientRects() {
   DCHECK(node_document());
+  DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
   node_document()->DoSynchronousLayout();
 
   // 1. If the element on which it was invoked does not have an associated
@@ -287,6 +288,7 @@
 //   https://www.w3.org/TR/2013/WD-cssom-view-20131217/#dom-element-clienttop
 float HTMLElement::client_top() {
   DCHECK(node_document());
+  DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
   node_document()->DoSynchronousLayout();
 
   // 1. If the element has no associated CSS layout box or if the CSS layout box
@@ -305,6 +307,7 @@
 //   https://www.w3.org/TR/2013/WD-cssom-view-20131217/#dom-element-clientleft
 float HTMLElement::client_left() {
   DCHECK(node_document());
+  DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
   node_document()->DoSynchronousLayout();
 
   // 1. If the element has no associated CSS layout box or if the CSS layout box
@@ -323,6 +326,7 @@
 //   https://www.w3.org/TR/2013/WD-cssom-view-20131217/#dom-element-clientwidth
 float HTMLElement::client_width() {
   DCHECK(node_document());
+  DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
   node_document()->DoSynchronousLayout();
 
   // 1. If the element has no associated CSS layout box or if the CSS layout box
@@ -345,6 +349,7 @@
 //   https://www.w3.org/TR/2013/WD-cssom-view-20131217/#dom-element-clientheight
 float HTMLElement::client_height() {
   DCHECK(node_document());
+  DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
   node_document()->DoSynchronousLayout();
 
   // 1. If the element has no associated CSS layout box or if the CSS layout box
@@ -373,6 +378,7 @@
     return 0;
   }
 
+  DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
   node_document()->DoSynchronousLayout();
 
   int32 element_scroll_width = 0;
@@ -409,6 +415,7 @@
     return 0;
   }
 
+  DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
   node_document()->DoSynchronousLayout();
 
   int32 element_scroll_height = 0;
@@ -454,6 +461,7 @@
     return 0.0f;
   }
 
+  DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
   node_document()->DoSynchronousLayout();
 
   if (!ui_nav_item_ || !ui_nav_item_->IsContainer()) {
@@ -496,6 +504,7 @@
     return 0.0f;
   }
 
+  DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
   node_document()->DoSynchronousLayout();
 
   if (!ui_nav_item_ || !ui_nav_item_->IsContainer()) {
@@ -540,6 +549,7 @@
     return;
   }
 
+  DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
   node_document()->DoSynchronousLayout();
 
   if (!ui_nav_item_ || !ui_nav_item_->IsContainer()) {
@@ -592,6 +602,7 @@
     return;
   }
 
+  DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
   node_document()->DoSynchronousLayout();
 
   if (!ui_nav_item_ || !ui_nav_item_->IsContainer()) {
@@ -631,6 +642,7 @@
 //   https://drafts.csswg.org/date/2019-10-11/cssom-view/#extensions-to-the-htmlelement-interface
 Element* HTMLElement::offset_parent() {
   DCHECK(node_document());
+  DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
   node_document()->DoSynchronousLayout();
 
   // 1. If any of the following holds true return null and terminate this
@@ -678,6 +690,7 @@
 //   https://www.w3.org/TR/2013/WD-cssom-view-20131217/#dom-htmlelement-offsettop
 float HTMLElement::offset_top() {
   DCHECK(node_document());
+  DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
   node_document()->DoSynchronousLayout();
 
   // 1. If the element is the HTML body element or does not have any associated
@@ -717,6 +730,7 @@
 //   https://www.w3.org/TR/2013/WD-cssom-view-20131217/#dom-htmlelement-offsetleft
 float HTMLElement::offset_left() {
   DCHECK(node_document());
+  DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
   node_document()->DoSynchronousLayout();
 
   // 1. If the element is the HTML body element or does not have any associated
@@ -756,6 +770,7 @@
 //   https://www.w3.org/TR/2013/WD-cssom-view-20131217/#dom-htmlelement-offsetwidth
 float HTMLElement::offset_width() {
   DCHECK(node_document());
+  DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
   node_document()->DoSynchronousLayout();
 
   // 1. If the element does not have any associated CSS layout box return zero
@@ -777,6 +792,7 @@
 //   https://www.w3.org/TR/2013/WD-cssom-view-20131217/#dom-htmlelement-offsetheight
 float HTMLElement::offset_height() {
   DCHECK(node_document());
+  DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
   node_document()->DoSynchronousLayout();
 
   // 1. If the element does not have any associated CSS layout box return zero
diff --git a/src/cobalt/dom/html_element.h b/src/cobalt/dom/html_element.h
index e98a83c..0b59022 100644
--- a/src/cobalt/dom/html_element.h
+++ b/src/cobalt/dom/html_element.h
@@ -535,6 +535,10 @@
   // Signal whether the UI navigation item may need to be updated.
   bool ui_nav_needs_update_ = false;
 
+  // Thread checker ensures all calls to DOM element are made from the same
+  // thread that it is created in.
+  THREAD_CHECKER(thread_checker_);
+
   // HTMLElement is a friend of Animatable so that animatable can insert and
   // remove animations into HTMLElement's set of animations.
   friend class DOMAnimatable;
diff --git a/src/cobalt/dom/html_script_element.cc b/src/cobalt/dom/html_script_element.cc
index 1c3ba7f..7a536f7 100644
--- a/src/cobalt/dom/html_script_element.cc
+++ b/src/cobalt/dom/html_script_element.cc
@@ -634,6 +634,12 @@
                script_location.line_number);
   // Since error is already handled, it is guaranteed the load is successful.
 
+  // For |currentScript| logic, see
+  // https://html.spec.whatwg.org/commit-snapshots/20a0ddc6841176adab93efefb76b23e0a1e6fa43/#execute-the-script-block
+  scoped_refptr<HTMLScriptElement> old_current_script =
+      node_document()->current_script();
+  node_document()->set_current_script(this);
+
   // 1. 2. 3. Not needed by Cobalt.
 
   // 4. Create a script, using the script block's source, the URL from which the
@@ -665,6 +671,10 @@
         &prevent_gc_until_ready_event_dispatch_);
   }
 
+  // For |currentScript| logic, see
+  // https://html.spec.whatwg.org/multipage/scripting.html#execute-the-script-block.
+  node_document()->set_current_script(old_current_script);
+
   // The script is done running. Stop tracking it in the global stats.
   GlobalStats::GetInstance()->StopJavaScriptEvent();
 
diff --git a/src/cobalt/dom/navigator.cc b/src/cobalt/dom/navigator.cc
index b13c6dc..f02ade8 100644
--- a/src/cobalt/dom/navigator.cc
+++ b/src/cobalt/dom/navigator.cc
@@ -159,6 +159,12 @@
 
 const std::string& Navigator::language() const { return language_; }
 
+script::Sequence<std::string> Navigator::languages() const {
+  script::Sequence<std::string> languages;
+  languages.push_back(language_);
+  return languages;
+}
+
 base::Optional<std::string> GetFilenameForLicenses() {
   const size_t kBufferSize = kSbFileMaxPath + 1;
   std::vector<char> buffer(kBufferSize, 0);
@@ -215,7 +221,7 @@
 bool Navigator::cookie_enabled() const { return false; }
 
 bool Navigator::on_line() const {
-#if SB_API_VERSION >= SB_NETWORK_EVENTS_VERSION
+#if SB_API_VERSION >= 13
   return !SbSystemNetworkIsDisconnected();
 #else
   return true;
diff --git a/src/cobalt/dom/navigator.h b/src/cobalt/dom/navigator.h
index bd77244..b679176 100644
--- a/src/cobalt/dom/navigator.h
+++ b/src/cobalt/dom/navigator.h
@@ -55,6 +55,7 @@
 
   // Web API: NavigatorLanguage
   const std::string& language() const;
+  script::Sequence<std::string> languages() const;
 
   // Web API: NavigatorLicenses
   const std::string licenses() const;
diff --git a/src/cobalt/dom/navigator_language.idl b/src/cobalt/dom/navigator_language.idl
index 27c0ece..1f13603 100644
--- a/src/cobalt/dom/navigator_language.idl
+++ b/src/cobalt/dom/navigator_language.idl
@@ -12,9 +12,10 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-// https://www.w3.org/TR/html50/webappapis.html#navigatorlanguage
+// https://html.spec.whatwg.org/commit-snapshots/e2f08b4e56d9a098038fb16c7ff6bb820a57cfab/#language-preferences
 
 [NoInterfaceObject]
 interface NavigatorLanguage {
   readonly attribute DOMString language;
+  readonly attribute sequence<DOMString> languages;
 };
diff --git a/src/cobalt/dom/performance.cc b/src/cobalt/dom/performance.cc
index 2b60c29..94a50bc 100644
--- a/src/cobalt/dom/performance.cc
+++ b/src/cobalt/dom/performance.cc
@@ -34,19 +34,7 @@
       resource_timing_buffer_full_event_pending_flag_(false),
       resource_timing_secondary_buffer_current_size_(0),
       performance_observer_task_queued_flag_(false),
-      add_to_performance_entry_buffer_flag_(false),
-      thread_("Performance") {
-  base::Thread::Options thread_options(base::MessageLoop::TYPE_DEFAULT,
-                                       cobalt::browser::kBaseStackSize);
-  thread_options.priority = thread_priority;
-  thread_.StartWithOptions(thread_options);
-  DCHECK(message_loop());
-}
-
-Performance::~Performance() {
-  DCHECK(message_loop());
-  thread_.Stop();
-}
+      add_to_performance_entry_buffer_flag_(false) {}
 
 DOMHighResTimeStamp Performance::Now() const {
   base::TimeDelta now = base::Time::Now() - base::Time::UnixEpoch();
@@ -79,7 +67,7 @@
 }
 
 void Performance::UnregisterPerformanceObserver(
-    PerformanceObserver* old_observer) {
+    const scoped_refptr<PerformanceObserver>& old_observer) {
   auto iter = registered_performance_observers_.begin();
   while (iter != registered_performance_observers_.end()) {
     if (iter->observer == old_observer) {
@@ -91,15 +79,17 @@
 }
 
 void Performance::RegisterPerformanceObserver(
-    PerformanceObserver* observer, const PerformanceObserverInit& options) {
+    const scoped_refptr<PerformanceObserver>& observer,
+    const PerformanceObserverInit& options) {
   std::list<PerformanceObserverInit> options_list;
   options_list.push_back(options);
-  registered_performance_observers_.emplace_back(base::WrapRefCounted(observer),
+  registered_performance_observers_.emplace_back(observer,
                                                  options_list);
 }
 
 void Performance::ReplaceRegisteredPerformanceObserverOptionsList(
-    PerformanceObserver* observer, const PerformanceObserverInit& options) {
+    const scoped_refptr<PerformanceObserver>& observer,
+    const PerformanceObserverInit& options) {
   auto iter = registered_performance_observers_.begin();
   while (iter != registered_performance_observers_.end()) {
     if (iter->observer == observer) {
@@ -111,7 +101,8 @@
 }
 
 void Performance::UpdateRegisteredPerformanceObserverOptionsList(
-    PerformanceObserver* observer, const PerformanceObserverInit& options) {
+    const scoped_refptr<PerformanceObserver>& observer,
+    const PerformanceObserverInit& options) {
   auto iter = registered_performance_observers_.begin();
   while (iter != registered_performance_observers_.end()) {
     if (iter->observer == observer) {
@@ -280,10 +271,7 @@
     resource_timing_buffer_full_event_pending_flag_ = true;
     // 3.2 Queue a task on the performance timeline task source to run fire
     // a buffer full event.
-    DCHECK(message_loop());
-    message_loop()->task_runner()->PostTask(
-        FROM_HERE, base::Bind(&Performance::FireResourceTimingBufferFullEvent,
-        base::Unretained(this)));
+    FireResourceTimingBufferFullEvent();
   }
   // 4. Add new entry to the resource timing secondary buffer.
   resource_timing_secondary_buffer_.push_back(resource_timing_entry);
@@ -339,10 +327,7 @@
   // 8. Queue a task that consists of running the following substeps.
   // The task source for the queued task is the performance timeline task
   // source.
-  DCHECK(message_loop());
-  message_loop()->task_runner()->PostTask(
-      FROM_HERE, base::Bind(&Performance::QueuePerformanceTimelineTask,
-      base::Unretained(this)));
+  QueuePerformanceTimelineTask();
 }
 
 void Performance::QueuePerformanceTimelineTask() {
diff --git a/src/cobalt/dom/performance.h b/src/cobalt/dom/performance.h
index ad88fe5..878271c 100644
--- a/src/cobalt/dom/performance.h
+++ b/src/cobalt/dom/performance.h
@@ -55,7 +55,6 @@
 
   Performance(script::EnvironmentSettings* settings,
               const scoped_refptr<base::BasicClock>& clock);
-  ~Performance();
 
   // Web API: Performance
   //   https://www.w3.org/TR/hr-time-2/#sec-performance
@@ -93,15 +92,19 @@
   base::TimeDelta get_time_origin() const { return time_origin_; }
 
   // Register and unregisterthe performance observer.
-  void UnregisterPerformanceObserver(PerformanceObserver* old_observer);
-  void RegisterPerformanceObserver(PerformanceObserver* observer,
-                                   const PerformanceObserverInit& options);
+  void UnregisterPerformanceObserver(
+      const scoped_refptr<PerformanceObserver>& observer);
+  void RegisterPerformanceObserver(
+      const scoped_refptr<PerformanceObserver>& observer,
+      const PerformanceObserverInit& options);
 
   // Replace and update registered performance observer options list.
   void ReplaceRegisteredPerformanceObserverOptionsList(
-      PerformanceObserver* observer, const PerformanceObserverInit& options);
+      const scoped_refptr<PerformanceObserver>& observer,
+      const PerformanceObserverInit& options);
   void UpdateRegisteredPerformanceObserverOptionsList(
-      PerformanceObserver* observer, const PerformanceObserverInit& options);
+      const scoped_refptr<PerformanceObserver>& observer,
+      const PerformanceObserverInit& options);
 
   void TraceMembers(script::Tracer* tracer) override;
   DEFINE_WRAPPABLE_TYPE(Performance);
@@ -142,18 +145,6 @@
   bool performance_observer_task_queued_flag_;
   bool add_to_performance_entry_buffer_flag_;
 
-  // The thread created and owned by this Performance.
-  // All queuing functions should be run on this thread.
-  base::Thread thread_;
-
-  // Specifies the priority of the Performance queuing thread.
-  // This is the thread that is responsible for queuing PerformanceEntries.
-  // This thread should have lower priority(BACKGROUND).
-  base::ThreadPriority thread_priority = base::ThreadPriority::BACKGROUND;
-
-  // The message loop this object is running on.
-  base::MessageLoop* message_loop() const { return thread_.message_loop(); }
-
   DISALLOW_COPY_AND_ASSIGN(Performance);
 };
 
diff --git a/src/cobalt/dom/performance_entry.cc b/src/cobalt/dom/performance_entry.cc
index 3043ce5..be0e56b 100644
--- a/src/cobalt/dom/performance_entry.cc
+++ b/src/cobalt/dom/performance_entry.cc
@@ -45,6 +45,8 @@
 
 PerformanceEntry::EntryType PerformanceEntry::ToEntryTypeEnum(
     const std::string& entry_type) {
+  if (entry_type.empty()) return kInvalid;
+
   for (size_t i = 0; i < arraysize(PerformanceEntry::kEntryTypeString); ++i) {
     if (base::LowerCaseEqualsASCII(entry_type,
         PerformanceEntry::kEntryTypeString[i])) {
diff --git a/src/cobalt/dom/performance_entry_list_impl.cc b/src/cobalt/dom/performance_entry_list_impl.cc
index 50076cc..28e0459 100644
--- a/src/cobalt/dom/performance_entry_list_impl.cc
+++ b/src/cobalt/dom/performance_entry_list_impl.cc
@@ -31,13 +31,12 @@
   //   https://www.w3.org/TR/2019/WD-performance-timeline-2-20191024/#filter-buffer-by-name-and-type
   // 1.  Let the list of entry objects be the empty PerformanceEntryList.
   PerformanceEntryList buffer;
-
   // 2.  For each PerformanceEntry object (entryObject) in the buffer,
   // in chronological order with respect to startTime:
   for (const auto& entry : performance_entry_buffer) {
     // 2.1  If name is not null and entryObject's name attribute does not
     // match name in a case-sensitive manner, go to next entryObject.
-    bool is_name_not_valid = !entry->name().empty() && name != entry->name();
+    bool is_name_not_valid = !name.empty() && name != entry->name();
     if (is_name_not_valid) {
       continue;
     }
@@ -46,7 +45,7 @@
     // match type in a case-sensitive manner, go to next entryObject.
     const PerformanceEntry::EntryType type =
         PerformanceEntry::ToEntryTypeEnum(entry_type.as_string());
-    bool is_entry_type_not_valid = entry_type.data() != nullptr &&
+    bool is_entry_type_not_valid = type != PerformanceEntry::kInvalid &&
         type != entry->EntryTypeEnum();
     if (is_entry_type_not_valid) {
       continue;
diff --git a/src/cobalt/dom/performance_observer.cc b/src/cobalt/dom/performance_observer.cc
index 2d1df7d..6e0855a 100644
--- a/src/cobalt/dom/performance_observer.cc
+++ b/src/cobalt/dom/performance_observer.cc
@@ -166,13 +166,15 @@
     // observer is the context object, replace its options list with a list
     // containing options as its only item.
     if (is_registered_) {
-      performance_->ReplaceRegisteredPerformanceObserverOptionsList(this, options);
+      performance_->ReplaceRegisteredPerformanceObserverOptionsList(
+          base::WrapRefCounted(this), options);
     // 6.5  Otherwise, create and append a registered performance observer
     // object to the list of registered performance observer objects of
     // relevantGlobal, with observer set to the context object and options list
     // set to a list containing options as its only item.
     } else {
-      performance_->RegisterPerformanceObserver(this, options);
+      performance_->RegisterPerformanceObserver(
+          base::WrapRefCounted(this), options);
       is_registered_ = true;
     }
   // 7.  Otherwise, run the following steps:
@@ -197,13 +199,15 @@
       // currentOptions whose type is equal to options's type, replace
       // currentOptions with options in obs's options list.
       // 7.3.2  Otherwise, append options to obs's options list.
-      performance_->UpdateRegisteredPerformanceObserverOptionsList(this, options);
+      performance_->UpdateRegisteredPerformanceObserverOptionsList(
+          base::WrapRefCounted(this), options);
     // 7.4  Otherwise, create and append a registered performance observer
     // object to the list of registered performance observer objects of
     // relevantGlobal, with observer set to the context object and options
     // list set to a list containing options as its only item.
     } else {
-      performance_->RegisterPerformanceObserver(this, options);
+      performance_->RegisterPerformanceObserver(
+          base::WrapRefCounted(this), options);
       is_registered_ = true;
     }
   }
@@ -220,7 +224,7 @@
   // also empty context object's observer buffer.
   //   https://www.w3.org/TR/2019/WD-performance-timeline-2-20191024/#disconnect-method
   if (performance_) {
-    performance_->UnregisterPerformanceObserver(this);
+    performance_->UnregisterPerformanceObserver(base::WrapRefCounted(this));
   }
   observer_buffer_.clear();
   is_registered_ = false;
diff --git a/src/cobalt/dom/performance_resource_timing.cc b/src/cobalt/dom/performance_resource_timing.cc
index d61624d..eb48afe 100644
--- a/src/cobalt/dom/performance_resource_timing.cc
+++ b/src/cobalt/dom/performance_resource_timing.cc
@@ -45,12 +45,9 @@
 }
 
 DOMHighResTimeStamp PerformanceResourceTiming::fetch_start() const {
-  if (timing_info_.request_start.is_null()) {
-    return PerformanceEntry::start_time();
-  }
-  return ConvertTimeDeltaToDOMHighResTimeStamp(
-      timing_info_.request_start.since_origin(),
-      Performance::kPerformanceTimerMinResolutionInMicroseconds);
+  // There is no worker in Cobalt, thus we need to return start_time()
+  // instead of worker ready time.
+  return PerformanceEntry::start_time();
 }
 
 DOMHighResTimeStamp PerformanceResourceTiming::connect_start() const {
@@ -73,7 +70,7 @@
 
 DOMHighResTimeStamp PerformanceResourceTiming::secure_connection_start() const {
   if (timing_info_.connect_timing.ssl_start.is_null()) {
-    return PerformanceEntry::start_time();
+    return 0.0;
   }
   return ConvertTimeDeltaToDOMHighResTimeStamp(
       timing_info_.connect_timing.ssl_start.since_origin(),
diff --git a/src/cobalt/encoding/text_decoder.cc b/src/cobalt/encoding/text_decoder.cc
index 010262b..b6abd56 100644
--- a/src/cobalt/encoding/text_decoder.cc
+++ b/src/cobalt/encoding/text_decoder.cc
@@ -17,6 +17,7 @@
 
 #include "cobalt/encoding/text_decoder.h"
 
+#include "third_party/icu/source/common/unicode/uchriter.h"
 #include "third_party/icu/source/common/unicode/ucnv.h"
 #include "third_party/icu/source/common/unicode/unistr.h"
 #include "third_party/icu/source/common/unicode/utypes.h"
@@ -25,11 +26,15 @@
 namespace encoding {
 
 // static
+const std::size_t TextDecoder::kConversionBufferSize = 16384;  // 2^14
+const TextDecoderOptions TextDecoder::kDefaultDecoderOptions;
 const char TextDecoder::kDefaultEncoding[] = "utf-8";
+const UChar32 TextDecoder::kReplacementCharacter = 0xFFFD;
 const char TextDecoder::kReplacementEncoding[] = "REPLACEMENT";
 
+
 namespace {
-std::string to_lower(std::string str) {
+std::string ToLower(std::string str) {
   std::transform(str.begin(), str.end(), str.begin(),
                  [](unsigned char c) { return std::tolower(c); });
   return str;
@@ -45,11 +50,12 @@
 }
 
 void TextDecoder::Setup(std::string label,
-                        script::ExceptionState* exception_state) {
+                        script::ExceptionState* exception_state,
+                        const TextDecoderOptions& options) {
   UErrorCode error_code = U_ZERO_ERROR;
   converter_ = ucnv_open(label.c_str(), &error_code);
   if (U_FAILURE(error_code)) {
-    LOG(ERROR) << "Unable to open icu converter. " << u_errorName(error_code);
+    LOG(ERROR) << "Unable to open converter. " << u_errorName(error_code);
     exception_state->SetSimpleException(script::kRangeError,
                                         "label %s is invalid", label.c_str());
     return Cleanup();
@@ -60,84 +66,206 @@
   if (U_FAILURE(error_code) || encoding_ == kReplacementEncoding) {
     LOG(ERROR) << "Unable to get encoding name. " << u_errorName(error_code);
     exception_state->SetSimpleException(
-        script::kRangeError, "label %s is invalid", encoding_.c_str());
+        script::kRangeError, "encoding %s is invalid", encoding_.c_str());
     return Cleanup();
   }
 
-  // Encoding’s name, lowercased.
-  encoding_ = to_lower(encoding_);
+  // Internal default setup;
+  encoding_ = ToLower(encoding_);
+  error_mode_ = options.fatal() ? "fatal" : "replacement";
+  ignore_bom_ = options.ignore_bom();
+  bom_seen_ = false;
+  do_not_flush_ = false;
 }
 
 TextDecoder::TextDecoder(script::ExceptionState* exception_state)
     : converter_(nullptr) {
-  Setup(kDefaultEncoding, exception_state);
+  Setup(kDefaultEncoding, exception_state, kDefaultDecoderOptions);
 }
 
 TextDecoder::TextDecoder(const std::string& label,
                          script::ExceptionState* exception_state)
     : converter_(nullptr) {
-  Setup(label, exception_state);
+  Setup(label, exception_state, kDefaultDecoderOptions);
 }
 
 TextDecoder::TextDecoder(const TextDecoderOptions& options,
-                         script::ExceptionState* exception_state)
-    : fatal_(options.fatal()), ignore_bom_(options.ignore_bom()) {
-  Setup(kDefaultEncoding, exception_state);
+                         script::ExceptionState* exception_state) {
+  Setup(kDefaultEncoding, exception_state, options);
 }
 
 TextDecoder::TextDecoder(const std::string& label,
                          const TextDecoderOptions& options,
-                         script::ExceptionState* exception_state)
-    : fatal_(options.fatal()), ignore_bom_(options.ignore_bom()) {
-  Setup(label, exception_state);
+                         script::ExceptionState* exception_state) {
+  Setup(label, exception_state, options);
 }
 
 TextDecoder::~TextDecoder() { Cleanup(); }
 
 std::string TextDecoder::Decode(script::ExceptionState* exception_state) {
-  // TODO: Figure out how to remove this use case or implement its support.
-  NOTIMPLEMENTED();
-  return "";
+  const TextDecodeOptions default_options;
+  return Decode(default_options, exception_state);
 }
+
 std::string TextDecoder::Decode(const dom::BufferSource& input,
                                 script::ExceptionState* exception_state) {
-  // Use the default options here.
   const TextDecodeOptions default_options;
   return Decode(input, default_options, exception_state);
 }
+
 std::string TextDecoder::Decode(const TextDecodeOptions& options,
                                 script::ExceptionState* exception_state) {
-  // TODO: Figure out how to remove this use case or implement its support.
-  // Note: This is a valid case, for example when using the stream option.
-  NOTIMPLEMENTED();
-  return "";
+  std::string result;
+  Decode(nullptr, 0, options, exception_state, &result);
+  return result;
 }
+
 std::string TextDecoder::Decode(const dom::BufferSource& input,
                                 const TextDecodeOptions& options,
                                 script::ExceptionState* exception_state) {
   int32_t size;
   const uint8* buffer;
   std::string result;
-  UErrorCode error_code = U_ZERO_ERROR;
   dom::GetBufferAndSize(input, &buffer, &size);
-
-  if (converter_) {
-    icu::UnicodeString unicode_input(reinterpret_cast<const char*>(buffer),
-                                     size, converter_, error_code);
-    if (U_FAILURE(error_code)) {
-      LOG(ERROR) << "Error decoding " << u_errorName(error_code);
-      exception_state->SetSimpleException(script::kRangeError,
-                                          "Error processing the data");
-      return result;
-    }
-    unicode_input.toUTF8String(result);
-  } else {
-    LOG(ERROR) << "No converter available";
-    exception_state->SetSimpleException(script::kRangeError,
-                                        "No converter available");
-  }
+  Decode(reinterpret_cast<const char*>(buffer), size, options, exception_state,
+         &result);
   return result;
 }
 
+// General Decode method, all public methods end here.
+void TextDecoder::Decode(const char* start, int32_t length,
+                         const TextDecodeOptions& options,
+                         script::ExceptionState* exception_state,
+                         std::string* output) {
+  if (!converter_) {
+    return;
+  }
+  if (!do_not_flush_) {
+    bom_seen_ = false;
+  }
+  if (!ignore_bom_ && !bom_seen_) {
+    bom_seen_ = true;
+    if (!RemoveBOM(start, length, exception_state)) {
+      return;
+    }
+  }
+  do_not_flush_ = options.stream();
+  bool saw_error = false;
+  DecodeImpl(start, length, !do_not_flush_, error_mode_ == "fatal", saw_error,
+             output);
+
+  if (error_mode_ == "fatal" && saw_error) {
+    if (!do_not_flush_) {
+      // If flushing, the error should not persist.
+      ucnv_reset(converter_);
+    }
+    exception_state->SetSimpleException(script::kTypeError,
+                                        "Error processing the encoded data");
+  }
+  return;
+}
+
+bool TextDecoder::RemoveBOM(const char*& buffer, int& size,
+                            script::ExceptionState* exception_state) {
+  UErrorCode error_code = U_ZERO_ERROR;
+  int32_t signature_length = 0;
+  const char* detected_encoding =
+      ucnv_detectUnicodeSignature(buffer, size, &signature_length, &error_code);
+  if (U_FAILURE(error_code)) {
+    LOG(ERROR) << "Error detecting signature " << u_errorName(error_code);
+    exception_state->SetSimpleException(script::kRangeError,
+                                        "Error detecting signature");
+    return false;
+  }
+
+  // Only remove BOM when both encodings match.
+  if (detected_encoding && (ToLower(detected_encoding) == encoding_)) {
+    buffer += signature_length;
+    size -= signature_length;
+    LOG(INFO) << "Buffer adjusted (+" << signature_length << ") bytes.";
+  }
+  return true;
+}
+
+class ErrorCallbackSetter final {
+ public:
+  ErrorCallbackSetter(UConverter* converter, bool stop_on_error)
+      : converter_(converter), stop_on_error_(stop_on_error) {
+    if (stop_on_error_) {
+      UErrorCode error = U_ZERO_ERROR;
+      ucnv_setToUCallBack(converter_, UCNV_TO_U_CALLBACK_STOP, nullptr,
+                          &saved_action_, &saved_context_, &error);
+      DCHECK_EQ(error, U_ZERO_ERROR);
+    }
+  }
+  ~ErrorCallbackSetter() {
+    if (stop_on_error_) {
+      UErrorCode error = U_ZERO_ERROR;
+      const void* old_context;
+      UConverterToUCallback old_action;
+      ucnv_setToUCallBack(converter_, saved_action_, saved_context_,
+                          &old_action, &old_context, &error);
+      DCHECK_EQ(old_action, UCNV_TO_U_CALLBACK_STOP);
+      DCHECK(!old_context);
+      DCHECK_EQ(error, U_ZERO_ERROR);
+    }
+  }
+
+ private:
+  UConverter* converter_;
+  bool stop_on_error_;
+  const void* saved_context_;
+  UConverterToUCallback saved_action_;
+};
+
+namespace {
+int DecodeTo(UConverter* converter_, UChar* target, UChar* target_limit,
+             const char*& source, const char* source_limit, int32_t* offsets,
+             bool flush, UErrorCode& error) {
+  UChar* target_start = target;
+  error = U_ZERO_ERROR;
+  ucnv_toUnicode(converter_, &target, target_limit, &source, source_limit,
+                 offsets, flush, &error);
+  return static_cast<int>(target - target_start);
+}
+}  // namespace
+
+void TextDecoder::DecodeImpl(const char* bytes, int length, bool flush,
+                             bool stop_on_error, bool& saw_error,
+                             std::string* output) {
+  if (!converter_) {
+    LOG(WARNING) << "no converter available.";
+    return;
+  }
+
+  ErrorCallbackSetter callback_setter(converter_, stop_on_error);
+
+  icu::UnicodeString result;
+
+  UChar buffer[kConversionBufferSize];
+  UChar* buffer_limit = buffer + kConversionBufferSize;
+  const char* source = reinterpret_cast<const char*>(bytes);
+  const char* source_limit = source + length;
+  int32_t* offsets = nullptr;
+  UErrorCode error = U_ZERO_ERROR;
+
+  do {
+    int uchars_decoded = DecodeTo(converter_, buffer, buffer_limit, source,
+                                  source_limit, offsets, flush, error);
+    result.append(buffer, uchars_decoded);
+  } while (error == U_BUFFER_OVERFLOW_ERROR);
+
+  // Flush the converter so it can be reused.
+  if (U_FAILURE(error)) {
+    do {
+      DecodeTo(converter_, buffer, buffer_limit, source, source_limit, offsets,
+               true, error);
+    } while (source < source_limit);
+    saw_error = true;
+  }
+  result.toUTF8String(*output);
+  return;
+}
+
 }  // namespace encoding
 }  // namespace cobalt
diff --git a/src/cobalt/encoding/text_decoder.h b/src/cobalt/encoding/text_decoder.h
index 7034a6b..7412de6 100644
--- a/src/cobalt/encoding/text_decoder.h
+++ b/src/cobalt/encoding/text_decoder.h
@@ -30,16 +30,15 @@
 class TextDecoder : public script::Wrappable {
  public:
   explicit TextDecoder(script::ExceptionState*);
-  explicit TextDecoder(const std::string& label, script::ExceptionState*);
-  explicit TextDecoder(const TextDecoderOptions& options,
-                       script::ExceptionState*);
-  TextDecoder(const std::string& label, const TextDecoderOptions& options,
+  explicit TextDecoder(const std::string&, script::ExceptionState*);
+  explicit TextDecoder(const TextDecoderOptions&, script::ExceptionState*);
+  TextDecoder(const std::string&, const TextDecoderOptions&,
               script::ExceptionState*);
 
   ~TextDecoder() override;
 
   std::string encoding() const { return encoding_; }
-  bool fatal() const { return fatal_; }
+  bool fatal() const { return error_mode_ == "fatal"; }
   bool ignore_bom() const { return ignore_bom_; }
 
   std::string Decode(script::ExceptionState*);
@@ -51,19 +50,33 @@
   DEFINE_WRAPPABLE_TYPE(TextDecoder);
 
  private:
+  typedef int32_t UChar32;
   // Web API standard.
   std::string encoding_;
-  bool fatal_;
+  std::string error_mode_;
+  bool bom_seen_;
+  bool do_not_flush_;
   bool ignore_bom_;
 
   UConverter* converter_;
 
+  static const std::size_t kConversionBufferSize;
+  static const TextDecoderOptions kDefaultDecoderOptions;
   static const char kDefaultEncoding[];
+  static const UChar32 kReplacementCharacter;
   static const char kReplacementEncoding[];
 
-  // Common code for constructors.
-  void Setup(std::string, script::ExceptionState*);
+
+  // Common code.
   void Cleanup();
+  void Setup(std::string, script::ExceptionState*, const TextDecoderOptions&);
+
+  // Function helpers.
+  bool RemoveBOM(const char*&, int&, script::ExceptionState*);
+  void Decode(const char*, int32_t, const TextDecodeOptions&,
+              script::ExceptionState*, std::string*);
+  void DecodeImpl(const char* bytes, int length, bool flush, bool stop_on_error,
+                  bool& saw_error, std::string*);
 
   DISALLOW_COPY_AND_ASSIGN(TextDecoder);
 };
diff --git a/src/cobalt/encoding/text_decoder_test.cc b/src/cobalt/encoding/text_decoder_test.cc
index 1480f3b..282a8d7 100644
--- a/src/cobalt/encoding/text_decoder_test.cc
+++ b/src/cobalt/encoding/text_decoder_test.cc
@@ -27,7 +27,6 @@
 #include "cobalt/script/testing/mock_exception_state.h"
 #include "cobalt/script/typed_arrays.h"
 
-
 #include "testing/gtest/include/gtest/gtest.h"
 
 using ::testing::_;
@@ -98,17 +97,247 @@
       {{208, 148, 208, 176, 041}, "Да!"},
   };
 
+  std::string want;
+  std::vector<uint8> data;
   for (const auto &test : tests) {
-    const std::string &expected = test.second;
-    const std::vector<uint8> &raw_data = test.first;
+    std::tie(data, want) = test;
     script::Handle<script::ArrayBuffer> array_buffer = script::ArrayBuffer::New(
-        stub_window_.global_environment(), raw_data.data(), raw_data.size());
+        stub_window_.global_environment(), data.data(), data.size());
     EXPECT_CALL(exception_state_,
                 SetSimpleExceptionVA(script::kRangeError, _, _))
         .Times(0);
-    std::string result = text_decoder_->Decode(dom::BufferSource(array_buffer),
-                                               &exception_state_);
-    EXPECT_EQ(result, expected);
+    std::string got = text_decoder_->Decode(dom::BufferSource(array_buffer),
+                                            &exception_state_);
+    EXPECT_EQ(got, want);
+  }
+}
+
+TEST_F(TextDecoderTest, DecodeUTF8Surrogates) {
+  EXPECT_CALL(exception_state_, SetSimpleExceptionVA(script::kRangeError, _, _))
+      .Times(0);
+  scoped_refptr<TextDecoder> text_decoder_ = new TextDecoder(&exception_state_);
+  std::vector<std::pair<std::vector<uint8>, std::string>> tests = {
+      {{0x61, 0x62, 0x63, 0x31, 0x32, 0x33}, "abc123"},  // Sanity check
+      {{0xef, 0xbf, 0xbd}, "\xEF\xBF\xBD"},              // Surrogate half (low)
+      {{0x61, 0x62, 0x63, 0xef, 0xbf, 0xbd, 0x31, 0x32, 0x33},
+       "abc\xEF\xBF\xBD"
+       "123"},  // Surrogate half (high)
+      {{0xef, 0xbf, 0xbd, 0xef, 0xbf, 0xbd},
+       "\xEF\xBF\xBD\xEF\xBF\xBD"},     // Wrong order
+      {{0xf0, 0x90, 0x80, 0x80}, "𐀀"},  // Right order
+  };
+
+  std::string want;
+  std::vector<uint8> data;
+  for (const auto &test : tests) {
+    std::tie(data, want) = test;
+    script::Handle<script::ArrayBuffer> array_buffer = script::ArrayBuffer::New(
+        stub_window_.global_environment(), data.data(), data.size());
+    EXPECT_CALL(exception_state_,
+                SetSimpleExceptionVA(script::kRangeError, _, _))
+        .Times(0);
+    std::string got = text_decoder_->Decode(dom::BufferSource(array_buffer),
+                                            &exception_state_);
+    EXPECT_EQ(got, want);
+  }
+}
+
+TEST_F(TextDecoderTest, DecodeUTF8Fatal) {
+  std::vector<std::pair<std::string, std::vector<uint8>>> tests = {
+      {"utf-8", {0xFF}},                                // Invalid code
+      {"utf-8", {0xC0}},                                // Ends early
+      {"utf-8", {0xE0}},                                // Ends early (2)
+      {"utf-8", {0xC0, 0x00}},                          // Invalid trail
+      {"utf-8", {0xC0, 0xC0}},                          // Invalid trail (2)
+      {"utf-8", {0xE0, 0x00}},                          // Invalid trail (3)
+      {"utf-8", {0xE0, 0xC0}},                          // Invalid trail (4)
+      {"utf-8", {0xE0, 0x80, 0x00}},                    // Invalid trail (5)
+      {"utf-8", {0xE0, 0x80, 0xC0}},                    // Invalid trail (6)
+      {"utf-8", {0xFC, 0x80, 0x80, 0x80, 0x80, 0x80}},  // > 0x10FFFF
+      {"utf-8", {0xFE, 0x80, 0x80, 0x80, 0x80, 0x80}},  // Obsolete lead byte
+      {"utf-8", {0xC0, 0x80}},                    // Overlong U+0000 - 2 bytes
+      {"utf-8", {0xE0, 0x80, 0x80}},              // overlong U+0000 - 3 bytes
+      {"utf-8", {0xF0, 0x80, 0x80, 0x80}},        // Overlong U+0000 - 4 bytes
+      {"utf-8", {0xF8, 0x80, 0x80, 0x80, 0x80}},  // Overlong U+0000 - 5 bytes
+      {"utf-8",
+       {0xFC, 0x80, 0x80, 0x80, 0x80, 0x80}},     // Overlong U+0000 - 6 bytes
+      {"utf-8", {0xC1, 0xBF}},                    // Overlong U+007F - 2 bytes
+      {"utf-8", {0xE0, 0x81, 0xBF}},              // Overlong U+007F - 3 bytes
+      {"utf-8", {0xF0, 0x80, 0x81, 0xBF}},        // Overlong U+007F - 4 bytes
+      {"utf-8", {0xF8, 0x80, 0x80, 0x81, 0xBF}},  // Overlong U+007F - 5 bytes
+      {"utf-8",
+       {0xFC, 0x80, 0x80, 0x80, 0x81, 0xBF}},     // Overlong U+007F - 6 bytes
+      {"utf-8", {0xE0, 0x9F, 0xBF}},              // Overlong U+07FF - 3 bytes
+      {"utf-8", {0xF0, 0x80, 0x9F, 0xBF}},        // Overlong U+07FF - 4 bytes
+      {"utf-8", {0xF8, 0x80, 0x80, 0x9F, 0xBF}},  // Overlong U+07FF - 5 bytes
+      {"utf-8",
+       {0xFC, 0x80, 0x80, 0x80, 0x9F, 0xBF}},     // Overlong U+07FF - 6 bytes
+      {"utf-8", {0xF0, 0x8F, 0xBF, 0xBF}},        // Overlong U+FFFF - 4 bytes
+      {"utf-8", {0xF8, 0x80, 0x8F, 0xBF, 0xBF}},  // Overlong U+FFFF - 5 bytes
+      {"utf-8",
+       {0xFC, 0x80, 0x80, 0x8F, 0xBF, 0xBF}},     // Overlong U+FFFF - 6 bytes
+      {"utf-8", {0xF8, 0x84, 0x8F, 0xBF, 0xBF}},  // Overlong U+10FFFF - 5 bytes
+      {"utf-8",
+       {0xFC, 0x80, 0x84, 0x8F, 0xBF, 0xBF}},  // Overlong U+10FFFF - 6 bytes
+      {"utf-8", {0xED, 0xA0, 0x80}},           // Lead surrogate
+      {"utf-8", {0xED, 0xB0, 0x80}},           // Trail surrogate
+      {"utf-8", {0xED, 0xA0, 0x80, 0xED, 0xB0, 0x80}},  // Surrogate pair
+      {"utf-16le", {0x00}},                             // Truncated code unit
+  };
+
+  std::string label, want = "";
+  std::vector<uint8> input;
+  TextDecoderOptions options;
+  options.set_fatal(true);
+  for (const auto &test : tests) {
+    std::tie(label, input) = test;
+    // No errors expected while constructing the object.
+    EXPECT_CALL(exception_state_,
+                SetSimpleExceptionVA(script::kRangeError, _, _))
+        .Times(0);
+    scoped_refptr<TextDecoder> text_decoder_ =
+        new TextDecoder(label, options, &exception_state_);
+    script::Handle<script::ArrayBuffer> array_buffer = script::ArrayBuffer::New(
+        stub_window_.global_environment(), input.data(), input.size());
+    // Malformed strings must race an exception when fatal is set to true.
+    EXPECT_CALL(exception_state_,
+                SetSimpleExceptionVA(script::kTypeError, _, _))
+        .Times(1);
+    std::string got = text_decoder_->Decode(dom::BufferSource(array_buffer),
+                                            &exception_state_);
+    EXPECT_EQ(got, want);
+  }
+}
+
+TEST_F(TextDecoderTest, DecodeIgnoreBOM) {
+  std::vector<std::pair<std::string, std::vector<uint8>>> tests = {
+      {"utf-8", {0xEF, 0xBB, 0xBF, 0x61, 0x62, 0x63}},
+      {"utf-16le", {0xFF, 0xFE, 0x61, 0x00, 0x62, 0x00, 0x63, 0x00}},
+      {"utf-16be", {0xFE, 0xFF, 0x00, 0x61, 0x00, 0x62, 0x00, 0x63}},
+  };
+
+  // u8 prefix needed for compilation on Windows.
+  const std::string kBOM = u8"\uFEFF";
+  const std::string kABC = "abc";
+  std::string label;
+  std::vector<uint8> data;
+  TextDecoderOptions options;
+
+  for (const auto &test : tests) {
+    std::tie(label, data) = test;
+    {  // BOM should be present in decoded string if ignored.
+      options.set_ignore_bom(true);
+      EXPECT_CALL(exception_state_,
+                  SetSimpleExceptionVA(script::kRangeError, _, _))
+          .Times(0);
+      scoped_refptr<TextDecoder> text_decoder_ =
+          new TextDecoder(label, options, &exception_state_);
+
+      script::Handle<script::ArrayBuffer> array_buffer =
+          script::ArrayBuffer::New(stub_window_.global_environment(),
+                                   data.data(), data.size());
+      EXPECT_CALL(exception_state_,
+                  SetSimpleExceptionVA(script::kRangeError, _, _))
+          .Times(0);
+      std::string got = text_decoder_->Decode(dom::BufferSource(array_buffer),
+                                              &exception_state_);
+      std::string want = kBOM + kABC;
+      EXPECT_EQ(got, want);
+    }
+    {  // BOM should be absent from decoded string if not ignored.
+      options.set_ignore_bom(false);
+      EXPECT_CALL(exception_state_,
+                  SetSimpleExceptionVA(script::kRangeError, _, _))
+          .Times(0);
+      scoped_refptr<TextDecoder> text_decoder_ =
+          new TextDecoder(label, options, &exception_state_);
+
+      script::Handle<script::ArrayBuffer> array_buffer =
+          script::ArrayBuffer::New(stub_window_.global_environment(),
+                                   data.data(), data.size());
+      EXPECT_CALL(exception_state_,
+                  SetSimpleExceptionVA(script::kRangeError, _, _))
+          .Times(0);
+      std::string got = text_decoder_->Decode(dom::BufferSource(array_buffer),
+                                              &exception_state_);
+      std::string want = kABC;
+      EXPECT_EQ(got, want);
+    }
+    {  // BOM should be absent from decoded string by default.
+      EXPECT_CALL(exception_state_,
+                  SetSimpleExceptionVA(script::kRangeError, _, _))
+          .Times(0);
+      scoped_refptr<TextDecoder> text_decoder_ =
+          new TextDecoder(label, &exception_state_);
+
+      script::Handle<script::ArrayBuffer> array_buffer =
+          script::ArrayBuffer::New(stub_window_.global_environment(),
+                                   data.data(), data.size());
+      EXPECT_CALL(exception_state_,
+                  SetSimpleExceptionVA(script::kRangeError, _, _))
+          .Times(0);
+      std::string got = text_decoder_->Decode(dom::BufferSource(array_buffer),
+                                              &exception_state_);
+      std::string want = kABC;
+      EXPECT_EQ(got, want);
+    }
+  }
+}
+
+TEST_F(TextDecoderTest, DecodeUTFStreamSimple) {
+  std::string want = "abc123Да!𐀀";
+  std::vector<std::pair<std::string, std::vector<uint8>>> tests = {
+      {
+          "utf-8",
+          {0x61, 0x62, 0x63, 0x31, 0x32, 0x33, 0xd0, 0x94, 0xd0, 0xb0, 0x21,
+           0xf0, 0x90, 0x80, 0x80},
+      },
+      {
+          "utf-16be",
+          {0x00, 0x61, 0x00, 0x62, 0x00, 0x63, 0x00, 0x31, 0x00, 0x32, 0x00,
+           0x33, 0x04, 0x14, 0x04, 0x30, 0x00, 0x21, 0xd8, 0x00, 0xdc, 0x00},
+      },
+      {
+          "utf-16le",
+          {0x61, 0x00, 0x62, 0x00, 0x63, 0x00, 0x31, 0x00, 0x32, 0x00, 0x33,
+           0x00, 0x14, 0x04, 0x30, 0x04, 0x21, 0x00, 0x00, 0xd8, 0x00, 0xdc},
+      },
+  };
+  std::string encoding_label;
+  std::vector<uint8> data;
+  TextDecodeOptions stream_option;
+  stream_option.set_stream(true);
+  for (int chunk_size = 1; chunk_size <= 1; ++chunk_size) {
+    for (const auto &test : tests) {
+      std::tie(encoding_label, data) = test;
+      EXPECT_CALL(exception_state_,
+                  SetSimpleExceptionVA(script::kRangeError, _, _))
+          .Times(0);
+      scoped_refptr<TextDecoder> text_decoder_ =
+          new TextDecoder(encoding_label, &exception_state_);
+      std::string got;
+      for (std::size_t offset = 0; offset < data.size(); offset += chunk_size) {
+        const auto start = data.begin() + offset;
+        const auto end = (offset + chunk_size >= data.size())
+                             ? data.end()
+                             : data.begin() + (offset + chunk_size);
+        std::vector<uint8> byte_chunk(start, end);
+        script::Handle<script::ArrayBuffer> chunk =
+            script::ArrayBuffer::New(stub_window_.global_environment(),
+                                     byte_chunk.data(), byte_chunk.size());
+        EXPECT_CALL(exception_state_,
+                    SetSimpleExceptionVA(script::kRangeError, _, _))
+            .Times(0);
+        // decoding with {stream: true}
+        got += text_decoder_->Decode(dom::BufferSource(chunk), stream_option,
+                                     &exception_state_);
+      }
+      EXPECT_CALL(exception_state_,
+                  SetSimpleExceptionVA(script::kRangeError, _, _))
+          .Times(0);
+      got += text_decoder_->Decode(&exception_state_);
+      EXPECT_EQ(got, want);
+    }
   }
 }
 
@@ -121,18 +350,18 @@
       {{0x14, 0x04, 0x30, 0x04, 0x21, 0x00}, "Да!"},
   };
 
+  std::string want;
+  std::vector<uint8> data;
   for (const auto &test : tests) {
-    const std::string &expected = test.second;
-    const std::vector<uint8> &raw_data = test.first;
+    std::tie(data, want) = test;
     script::Handle<script::ArrayBuffer> array_buffer = script::ArrayBuffer::New(
-        stub_window_.global_environment(), raw_data.data(), raw_data.size());
+        stub_window_.global_environment(), data.data(), data.size());
     EXPECT_CALL(exception_state_,
                 SetSimpleExceptionVA(script::kRangeError, _, _))
         .Times(0);
-    std::string result = text_decoder_->Decode(dom::BufferSource(array_buffer),
-                                               &exception_state_);
-    LOG(WARNING) << result << "\n";
-    EXPECT_EQ(result, expected);
+    std::string got = text_decoder_->Decode(dom::BufferSource(array_buffer),
+                                            &exception_state_);
+    EXPECT_EQ(got, want);
   }
 }
 
@@ -145,18 +374,18 @@
       {{0x04, 0x14, 0x04, 0x30, 0x00, 0x21}, "Да!"},
   };
 
+  std::string want;
+  std::vector<uint8> data;
   for (const auto &test : tests) {
-    const std::string &expected = test.second;
-    const std::vector<uint8> &raw_data = test.first;
+    std::tie(data, want) = test;
     script::Handle<script::ArrayBuffer> array_buffer = script::ArrayBuffer::New(
-        stub_window_.global_environment(), raw_data.data(), raw_data.size());
+        stub_window_.global_environment(), data.data(), data.size());
     EXPECT_CALL(exception_state_,
                 SetSimpleExceptionVA(script::kRangeError, _, _))
         .Times(0);
-    std::string result = text_decoder_->Decode(dom::BufferSource(array_buffer),
-                                               &exception_state_);
-    LOG(WARNING) << result << "\n";
-    EXPECT_EQ(result, expected);
+    std::string got = text_decoder_->Decode(dom::BufferSource(array_buffer),
+                                            &exception_state_);
+    EXPECT_EQ(got, want);
   }
 }
 
diff --git a/src/cobalt/encoding/text_encoder.cc b/src/cobalt/encoding/text_encoder.cc
index eefdca8..5ed7d5b 100644
--- a/src/cobalt/encoding/text_encoder.cc
+++ b/src/cobalt/encoding/text_encoder.cc
@@ -12,12 +12,15 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-#include "cobalt/encoding/text_encoder.h"
-
+#include <algorithm>
 #include <string>
 
+#include "cobalt/encoding/text_encoder.h"
+
 #include "cobalt/base/polymorphic_downcast.h"
 #include "cobalt/dom/dom_settings.h"
+#include "third_party/icu/source/common/unicode/utext.h"
+#include "third_party/icu/source/common/unicode/utf8.h"
 
 namespace cobalt {
 namespace encoding {
@@ -37,6 +40,9 @@
     script::EnvironmentSettings* settings, const std::string& input) {
   dom::DOMSettings* dom_settings =
       base::polymorphic_downcast<dom::DOMSettings*>(settings);
+
+  // The conversion helper already translated the JSValue into a valid UTF-8
+  // encoded string.
   return script::Uint8Array::New(dom_settings->global_environment(),
                                  input.data(), input.size());
 }
@@ -44,9 +50,35 @@
 TextEncoderEncodeIntoResult TextEncoder::EncodeInto(
     script::EnvironmentSettings* settings, const std::string& input,
     const script::Handle<script::Uint8Array>& destination) {
-  // TODO: Figure out how to append bytes to an existing buffer.
-  NOTIMPLEMENTED();
-  return TextEncoderEncodeIntoResult();
+  int32_t capacity = static_cast<int>(destination->ByteLength());
+  uint8* buffer = static_cast<uint8*>(destination->Data());
+  // The conversion helper already translated the JSValue into a valid UTF-8
+  // encoded string. However, this extra process is in place to avoid:
+  //  1. The caller allocated less space than needed.
+  //  2. The caller allocated more space than needed.
+  UErrorCode error_code = U_ZERO_ERROR;
+  int32_t read = 0, written = 0;
+  UText* unicode_text = nullptr;
+  UBool err = 0;
+  unicode_text =
+      utext_openUTF8(unicode_text, input.c_str(), input.size(), &error_code);
+  if (U_SUCCESS(error_code)) {
+    for (UChar32 code_point = utext_next32From(unicode_text, 0);
+         code_point >= 0 && !err && written < capacity;
+         code_point = utext_next32(unicode_text)) {
+      U8_APPEND(buffer, written, capacity, code_point, err);
+      if (!err) {
+        ++read;
+      }
+    }
+    utext_close(unicode_text);
+  } else {
+    LOG(ERROR) << "Invalid string: " << u_errorName(error_code);
+  }
+  TextEncoderEncodeIntoResult result;
+  result.set_read(read);
+  result.set_written(written);
+  return result;
 }
 
 
diff --git a/src/cobalt/encoding/text_encoder_test.cc b/src/cobalt/encoding/text_encoder_test.cc
index 42ce85a..4b59a7d 100644
--- a/src/cobalt/encoding/text_encoder_test.cc
+++ b/src/cobalt/encoding/text_encoder_test.cc
@@ -66,17 +66,147 @@
       {"Да!", {208, 148, 208, 176, 041}},
   };
 
+  std::string input;
+  std::vector<uint8> want;
   for (const auto &test : tests) {
-    auto &expected = test.second;
-
-    script::Handle<script::Uint8Array> result =
-        text_encoder_->Encode(stub_window_.environment_settings(), test.first);
-    auto *array_data = static_cast<uint8 *>(result->RawData());
+    std::tie(input, want) = test;
+    script::Handle<script::Uint8Array> got =
+        text_encoder_->Encode(stub_window_.environment_settings(), input);
+    auto *array_got = static_cast<uint8 *>(got->RawData());
 
     // Compare the result against the expectations.
-    ASSERT_EQ(result->Length(), expected.size());
-    for (uint32 i = 0; i < result->Length(); ++i) {
-      EXPECT_EQ(array_data[i], expected[i]);
+    ASSERT_EQ(got->Length(), want.size());
+    for (uint32 i = 0; i < got->Length(); ++i) {
+      EXPECT_EQ(array_got[i], want[i]);
+    }
+  }
+}
+
+TEST_F(TextEncoderTest, EncodeInto) {
+  struct Result {
+    std::vector<uint8> bytes;
+    uint64_t read, written;
+  };
+
+  // Scenario I: Buffer with the right capacity.
+  std::vector<std::pair<std::string, Result>> tests = {
+      {"Hello world!",
+       {{72, 101, 108, 108, 111, 32, 119, 111, 114, 108, 100, 33}, 12, 12}},
+      {"Hej! Привет! 你好!",
+       {{72,  101, 106, 33, 32, 208, 159, 209, 128, 208, 184, 208, 178, 208,
+         181, 209, 130, 33, 32, 228, 189, 160, 229, 165, 189, 239, 188, 129},
+        16,
+        28}},
+      {"Да!", {{208, 148, 208, 176, 041}, 3, 5}},
+  };
+
+  Result want;
+  std::string input;
+  for (const auto &test : tests) {
+    std::tie(input, want) = test;
+    script::Handle<script::Uint8Array> destination = script::Uint8Array::New(
+        stub_window_.global_environment(), want.bytes.size());
+    TextEncoderEncodeIntoResult got = text_encoder_->EncodeInto(
+        stub_window_.environment_settings(), input, destination);
+
+    // Verify the read / written values.
+    ASSERT_TRUE(got.has_read());
+    ASSERT_TRUE(got.has_written());
+    EXPECT_EQ(want.read, got.read());
+    EXPECT_EQ(want.written, got.written());
+
+    // Verify the actual data.
+    auto *array_got = static_cast<uint8 *>(destination->RawData());
+    ASSERT_LE(got.written(), want.bytes.size());
+    for (uint32 i = 0; i < got.written(); ++i) {
+      EXPECT_EQ(array_got[i], want.bytes[i]);
+    }
+  }
+}
+
+TEST_F(TextEncoderTest, EncodeIntoInsufficientCapacity) {
+  struct Result {
+    std::vector<uint8> bytes;
+    uint64_t read, written;
+  };
+
+  // Scenario II: Intentionally remove last byte from the right capacity.
+  std::vector<std::pair<std::string, Result>> tests = {
+      {"Hello world!",
+       {{72, 101, 108, 108, 111, 32, 119, 111, 114, 108, 100}, 11, 11}},
+      {"Hej! Привет! 你好!",
+       {{72,  101, 106, 33, 32, 208, 159, 209, 128, 208, 184, 208, 178, 208,
+         181, 209, 130, 33, 32, 228, 189, 160, 229, 165, 189, 0,   0},
+        15,
+        25}},
+      {"Да!", {{208, 148, 208, 176}, 2, 4}},
+  };
+
+  Result want;
+  std::string input;
+  for (const auto &test : tests) {
+    std::tie(input, want) = test;
+    script::Handle<script::Uint8Array> destination = script::Uint8Array::New(
+        stub_window_.global_environment(), want.bytes.size());
+    TextEncoderEncodeIntoResult got = text_encoder_->EncodeInto(
+        stub_window_.environment_settings(), input, destination);
+
+    // Verify the read / written values.
+    ASSERT_TRUE(got.has_read());
+    ASSERT_TRUE(got.has_written());
+    EXPECT_EQ(want.read, got.read());
+    EXPECT_EQ(want.written, got.written());
+
+    // Verify the actual data.
+    auto *array_got = static_cast<uint8 *>(destination->RawData());
+    ASSERT_LE(got.written(), want.bytes.size());
+    for (uint32 i = 0; i < want.bytes.size(); ++i) {
+      EXPECT_EQ(array_got[i], want.bytes[i]);
+    }
+  }
+}
+
+TEST_F(TextEncoderTest, EncodeIntoExtraCapacity) {
+  struct Result {
+    std::vector<uint8> bytes;
+    uint64_t read, written;
+  };
+
+  // Scenario III: Buffer with more capacity.
+  std::vector<std::pair<std::string, Result>> tests = {
+      {"Hello world!",
+       {{72, 101, 108, 108, 111, 32, 119, 111, 114, 108, 100, 33, 0, 0},
+        12,
+        12}},
+      {"Hej! Привет! 你好!",
+       {{72,  101, 106, 33,  32,  208, 159, 209, 128, 208,
+         184, 208, 178, 208, 181, 209, 130, 33,  32,  228,
+         189, 160, 229, 165, 189, 239, 188, 129, 0,   0},
+        16,
+        28}},
+      {"Да!", {{208, 148, 208, 176, 041, 0, 0}, 3, 5}},
+  };
+
+  Result want;
+  std::string input;
+  for (const auto &test : tests) {
+    std::tie(input, want) = test;
+    script::Handle<script::Uint8Array> destination = script::Uint8Array::New(
+        stub_window_.global_environment(), want.bytes.size());
+    TextEncoderEncodeIntoResult got = text_encoder_->EncodeInto(
+        stub_window_.environment_settings(), input, destination);
+
+    // Verify the read / written values.
+    ASSERT_TRUE(got.has_read());
+    ASSERT_TRUE(got.has_written());
+    EXPECT_EQ(want.read, got.read());
+    EXPECT_EQ(want.written, got.written());
+
+    // Verify the actual data.
+    auto *array_got = static_cast<uint8 *>(destination->RawData());
+    ASSERT_LE(got.written(), want.bytes.size());
+    for (uint32 i = 0; i < want.bytes.size(); ++i) {
+      EXPECT_EQ(array_got[i], want.bytes[i]);
     }
   }
 }
diff --git a/src/cobalt/extension/extension_test.cc b/src/cobalt/extension/extension_test.cc
index 81ca611..ef159a7 100644
--- a/src/cobalt/extension/extension_test.cc
+++ b/src/cobalt/extension/extension_test.cc
@@ -23,6 +23,7 @@
 #include "cobalt/extension/javascript_cache.h"
 #include "cobalt/extension/media_session.h"
 #include "cobalt/extension/platform_service.h"
+#include "cobalt/extension/updater_notification.h"
 #include "cobalt/extension/url_fetcher_observer.h"
 #include "starboard/system.h"
 #include "testing/gtest/include/gtest/gtest.h"
@@ -307,5 +308,25 @@
       << "Extension struct should be a singleton";
 }
 
+TEST(ExtensionTest, UpdaterNotification) {
+  typedef CobaltExtensionUpdaterNotificationApi ExtensionApi;
+  const char* kExtensionName = kCobaltExtensionUpdaterNotificationName;
+
+  const ExtensionApi* extension_api =
+      static_cast<const ExtensionApi*>(SbSystemGetExtension(kExtensionName));
+  if (!extension_api) {
+    return;
+  }
+
+  EXPECT_STREQ(extension_api->name, kExtensionName);
+  EXPECT_EQ(extension_api->version, 1u);
+  EXPECT_NE(extension_api->UpdaterState, nullptr);
+
+  const ExtensionApi* second_extension_api =
+      static_cast<const ExtensionApi*>(SbSystemGetExtension(kExtensionName));
+  EXPECT_EQ(second_extension_api, extension_api)
+      << "Extension struct should be a singleton";
+}
+
 }  // namespace extension
 }  // namespace cobalt
diff --git a/src/cobalt/extension/updater_notification.h b/src/cobalt/extension/updater_notification.h
new file mode 100644
index 0000000..151437f
--- /dev/null
+++ b/src/cobalt/extension/updater_notification.h
@@ -0,0 +1,61 @@
+// Copyright 2021 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_EXTENSION_UPDATER_NOTIFICATION_H_
+#define COBALT_EXTENSION_UPDATER_NOTIFICATION_H_
+
+#include <stdint.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define kCobaltExtensionUpdaterNotificationName \
+  "dev.cobalt.extension.UpdaterNotification"
+
+typedef enum CobaltExtensionUpdaterNotificationState {
+  kCobaltExtensionUpdaterNotificationStateNone = 0,
+  kCobaltExtensionUpdaterNotificationStateChecking = 1,
+  kCobaltExtensionUpdaterNotificationStateUpdateAvailable = 2,
+  kCobaltExtensionUpdaterNotificationStateDownloading = 3,
+  kCobaltExtensionUpdaterNotificationStateDownloaded = 4,
+  kCobaltExtensionUpdaterNotificationStateInstalling = 5,
+  kCobaltExtensionUpdaterNotificationStatekUpdated = 6,
+  kCobaltExtensionUpdaterNotificationStatekUpToDate = 7,
+  kCobaltExtensionUpdaterNotificationStatekUpdateFailed = 8,
+} CobaltExtensionUpdaterNotificationState;
+
+typedef struct CobaltExtensionUpdaterNotificationApi {
+  // Name should be the string |kCobaltExtensionUpdaterNotificationName|.
+  // This helps to validate that the extension API is correct.
+  const char* name;
+
+  // This specifies the version of the API that is implemented.
+  uint32_t version;
+
+  // The fields below this point were added in version 1 or later.
+
+  // Notify the Starboard implementation of the updater state.
+  // The Starboard platform can check if the device is low on storage
+  // and prompt the user to free some storage. The implementation
+  // should keep track of the frequency of showing the prompt to the
+  // user and try to minimize the number of user notifications.
+  void (*UpdaterState)(CobaltExtensionUpdaterNotificationState state);
+} CobaltExtensionUpdaterNotificationApi;
+
+#ifdef __cplusplus
+}  // extern "C"
+#endif
+
+#endif  // COBALT_EXTENSION_UPDATER_NOTIFICATION_H_
diff --git a/src/cobalt/extension/url_fetcher_observer.h b/src/cobalt/extension/url_fetcher_observer.h
index 7795689..d9a4a10 100644
--- a/src/cobalt/extension/url_fetcher_observer.h
+++ b/src/cobalt/extension/url_fetcher_observer.h
@@ -21,6 +21,9 @@
 extern "C" {
 #endif
 
+#define URL_FETCHER_OBSERVER_MAX_URL_SIZE 128
+#define URL_FETCHER_COMMAND_LINE_SWITCH "url_fetcher_observer"
+
 #define kCobaltExtensionUrlFetcherObserverName \
   "dev.cobalt.extension.UrlFetcherObserver"
 
diff --git a/src/cobalt/h5vcc/h5vcc_updater.cc b/src/cobalt/h5vcc/h5vcc_updater.cc
index 7db80e6..c4d7bbf 100644
--- a/src/cobalt/h5vcc/h5vcc_updater.cc
+++ b/src/cobalt/h5vcc/h5vcc_updater.cc
@@ -36,8 +36,7 @@
     return;
   }
 
-  if (updater_module_->GetUpdaterChannel().compare(channel) != 0 &&
-      updater_module_->IsChannelValid(channel)) {
+  if (updater_module_->GetUpdaterChannel().compare(channel) != 0) {
     updater_module_->SetUpdaterChannel(channel);
     updater_module_->CompareAndSwapChannelChanged(0, 1);
     updater_module_->RunUpdateCheck();
diff --git a/src/cobalt/layout/layout_unit.h b/src/cobalt/layout/layout_unit.h
index 1ec6495..7b057ca 100644
--- a/src/cobalt/layout/layout_unit.h
+++ b/src/cobalt/layout/layout_unit.h
@@ -105,34 +105,13 @@
   }
   bool IsNaN() const { return is_nan_; }
 #else
-  bool LessThanOrNaN(LayoutUnit other) const {
-    NOTREACHED();
-    return *this < other;
-  }
-  bool LessEqualOrNaN(LayoutUnit other) const {
-    NOTREACHED();
-    return *this <= other;
-  }
-  bool GreaterThanOrNaN(LayoutUnit other) const {
-    NOTREACHED();
-    return *this > other;
-  }
-  bool GreaterEqualOrNaN(LayoutUnit other) const {
-    NOTREACHED();
-    return *this >= other;
-  }
-  bool EqualOrNaN(LayoutUnit other) const {
-    NOTREACHED();
-    return *this == other;
-  }
-  bool NotEqualOrNaN(LayoutUnit other) const {
-    NOTREACHED();
-    return *this != other;
-  }
-  bool IsNaN() const {
-    NOTREACHED();
-    return false;
-  }
+  bool LessThanOrNaN(LayoutUnit other) const { return *this < other; }
+  bool LessEqualOrNaN(LayoutUnit other) const { return *this <= other; }
+  bool GreaterThanOrNaN(LayoutUnit other) const { return *this > other; }
+  bool GreaterEqualOrNaN(LayoutUnit other) const { return *this >= other; }
+  bool EqualOrNaN(LayoutUnit other) const { return *this == other; }
+  bool NotEqualOrNaN(LayoutUnit other) const { return *this != other; }
+  bool IsNaN() const { return false; }
 #endif
 
   LayoutUnit operator+() const { return LayoutUnit(*this); }
diff --git a/src/cobalt/layout/topmost_event_target.cc b/src/cobalt/layout/topmost_event_target.cc
index 23cbdb9..06ab6fd 100644
--- a/src/cobalt/layout/topmost_event_target.cc
+++ b/src/cobalt/layout/topmost_event_target.cc
@@ -239,13 +239,11 @@
         target_element->DispatchEvent(new dom::PointerEvent(
             base::Tokens::pointerover(), view, *event_init));
         for (scoped_refptr<dom::Element> element = target_element;
-             element != nearest_common_ancestor;
+             element && element != nearest_common_ancestor;
              element = element->parent_element()) {
-          if (element) {
-            element->DispatchEvent(new dom::PointerEvent(
-                base::Tokens::pointerenter(), dom::Event::kNotBubbles,
-                dom::Event::kNotCancelable, view, *event_init));
-          }
+          element->DispatchEvent(new dom::PointerEvent(
+              base::Tokens::pointerenter(), dom::Event::kNotBubbles,
+              dom::Event::kNotCancelable, view, *event_init));
         }
       }
 
@@ -254,13 +252,11 @@
       target_element->DispatchEvent(
           new dom::MouseEvent(base::Tokens::mouseover(), view, *event_init));
       for (scoped_refptr<dom::Element> element = target_element;
-           element != nearest_common_ancestor;
+           element && element != nearest_common_ancestor;
            element = element->parent_element()) {
-        if (element) {
-          element->DispatchEvent(new dom::MouseEvent(
-              base::Tokens::mouseenter(), dom::Event::kNotBubbles,
-              dom::Event::kNotCancelable, view, *event_init));
-        }
+        element->DispatchEvent(new dom::MouseEvent(
+            base::Tokens::mouseenter(), dom::Event::kNotBubbles,
+            dom::Event::kNotCancelable, view, *event_init));
       }
     }
   }
diff --git a/src/cobalt/layout_tests/testdata/web-platform-tests/encoding/web_platform_tests.txt b/src/cobalt/layout_tests/testdata/web-platform-tests/encoding/web_platform_tests.txt
index c513671..f798e9e 100644
--- a/src/cobalt/layout_tests/testdata/web-platform-tests/encoding/web_platform_tests.txt
+++ b/src/cobalt/layout_tests/testdata/web-platform-tests/encoding/web_platform_tests.txt
@@ -1,9 +1,8 @@
 # Encoding API Tests
-
 api-basics.html,FAIL
 api-invalid-label.html,FAIL
 api-replacement-encodings.html,FAIL
-api-surrogates-utf8.html,FAIL
+api-surrogates-utf8.html,PASS
 big5-encoder.html,FAIL
 gb18030-encoder.html,FAIL
 gbk-encoder.html,FAIL
@@ -11,12 +10,12 @@
 iso-2022-jp-decoder.html,DISABLE
 iso-2022-jp-encoder.html,DISABLE
 single-byte-decoder.html,DISABLE
-textdecoder-byte-order-marks.html,FAIL
-textdecoder-fatal.html,FAIL
-textdecoder-fatal-streaming.html,FAIL
-textdecoder-ignorebom.html,FAIL
+textdecoder-byte-order-marks.html,PASS
+textdecoder-fatal.html,PASS
+textdecoder-fatal-streaming.html,PASS
+textdecoder-ignorebom.html,PASS
 textdecoder-labels.html,FAIL
 textdecoder-streaming.html,FAIL
-textdecoder-utf16-surrogates.html,FAIL
+textdecoder-utf16-surrogates.html,PASS
 textencoder-constructor-non-utf.html,FAIL
-textencoder-utf16-surrogates.html,FAIL
+textencoder-utf16-surrogates.html,PASS
diff --git a/src/cobalt/layout_tests/testdata/web-platform-tests/html/web_platform_tests.txt b/src/cobalt/layout_tests/testdata/web-platform-tests/html/web_platform_tests.txt
index e7ee0c4..3a4daed 100644
--- a/src/cobalt/layout_tests/testdata/web-platform-tests/html/web_platform_tests.txt
+++ b/src/cobalt/layout_tests/testdata/web-platform-tests/html/web_platform_tests.txt
@@ -1,3 +1,29 @@
 # HTML
 
-webappapis/atob/base64.html,PASS
\ No newline at end of file
+webappapis/atob/base64.html,PASS
+webappapis/system-state-and-capabilities/the-navigator-object/navigatorlanguage.html,PASS
+
+# currentScript tests
+dom/documents/dom-tree-accessors/Document.currentScript.sub.html,FAIL
+dom/documents/dom-tree-accessors/Document.currentScript.sub.html,PASS,Script parse-inline
+dom/documents/dom-tree-accessors/Document.currentScript.sub.html,PASS,Script parse-ext
+dom/documents/dom-tree-accessors/Document.currentScript.sub.html,PASS,Script nested-outer
+dom/documents/dom-tree-accessors/Document.currentScript.sub.html,PASS,Script script-exec-before-after
+dom/documents/dom-tree-accessors/Document.currentScript.sub.html,PASS,Script eval
+dom/documents/dom-tree-accessors/Document.currentScript.sub.html,PASS,Script script-svg
+dom/documents/dom-tree-accessors/Document.currentScript.sub.html,PASS,Script nested-outer
+dom/documents/dom-tree-accessors/Document.currentScript.sub.html,PASS,Script script-async
+dom/documents/dom-tree-accessors/Document.currentScript.sub.html,PASS,Script script-defer
+dom/documents/dom-tree-accessors/Document.currentScript.sub.html,PASS,Script script-async-false
+
+# Disabled because synchronous XHR requests are deprecated and not supported by Cobalt
+dom/documents/dom-tree-accessors/Document.currentScript.sub.html,DISABLE,Script xhr-test
+
+# Disabled until script error event propagation is working correctly.
+dom/documents/dom-tree-accessors/Document.currentScript.sub.html,DISABLE,Script script-load-error
+
+# Disabled until bug in ordering of external load() event being fired ahead of script value update is fixed.
+dom/documents/dom-tree-accessors/Document.currentScript.sub.html,DISABLE,Script cross-origin
+
+# Disabled since document.write() is not supported yet
+dom/documents/dom-tree-accessors/Document.currentScript.sub.html,DISABLE,Script document-write
diff --git a/src/cobalt/layout_tests/testdata/web-platform-tests/performance_timeline/web_platform_test.txt b/src/cobalt/layout_tests/testdata/web-platform-tests/performance-timeline/web_platform_tests.txt
similarity index 100%
rename from src/cobalt/layout_tests/testdata/web-platform-tests/performance_timeline/web_platform_test.txt
rename to src/cobalt/layout_tests/testdata/web-platform-tests/performance-timeline/web_platform_tests.txt
diff --git a/src/cobalt/layout_tests/testdata/web-platform-tests/resource-timing/web_platform_tests.txt b/src/cobalt/layout_tests/testdata/web-platform-tests/resource-timing/web_platform_tests.txt
new file mode 100644
index 0000000..015daae
--- /dev/null
+++ b/src/cobalt/layout_tests/testdata/web-platform-tests/resource-timing/web_platform_tests.txt
@@ -0,0 +1,2 @@
+# Performance Resource Timing tests
+test_resource_timing.html,PASS
diff --git a/src/cobalt/layout_tests/web_platform_tests.cc b/src/cobalt/layout_tests/web_platform_tests.cc
index 1362570..5edd114 100644
--- a/src/cobalt/layout_tests/web_platform_tests.cc
+++ b/src/cobalt/layout_tests/web_platform_tests.cc
@@ -426,7 +426,12 @@
 
 INSTANTIATE_TEST_CASE_P(
     performance_timeline, WebPlatformTest,
-    ::testing::ValuesIn(EnumerateWebPlatformTests("performance_timeline")),
+    ::testing::ValuesIn(EnumerateWebPlatformTests("performance-timeline")),
+    GetTestName());
+
+INSTANTIATE_TEST_CASE_P(
+    resource_timing, WebPlatformTest,
+    ::testing::ValuesIn(EnumerateWebPlatformTests("resource-timing")),
     GetTestName());
 
 INSTANTIATE_TEST_CASE_P(streams, WebPlatformTest,
diff --git a/src/cobalt/loader/loader.cc b/src/cobalt/loader/loader.cc
index f093eda..2e768ec 100644
--- a/src/cobalt/loader/loader.cc
+++ b/src/cobalt/loader/loader.cc
@@ -85,6 +85,8 @@
   DCHECK(!decoder_creator_.is_null());
   DCHECK(!on_load_complete_.is_null());
 
+  load_timing_info_ = net::LoadTimingInfo();
+
   std::unique_ptr<Decoder> decoder = decoder_creator_.Run(
       base::Bind(&Loader::LoadComplete, base::Unretained(this)));
   // We are doing this bizarre check because decoder_ used to be a scoped_ptr
diff --git a/src/cobalt/loader/resource_cache.cc b/src/cobalt/loader/resource_cache.cc
index 3651481..493c62a 100644
--- a/src/cobalt/loader/resource_cache.cc
+++ b/src/cobalt/loader/resource_cache.cc
@@ -140,7 +140,9 @@
     const base::Optional<std::string>& error) {
   DCHECK_CALLED_ON_VALID_THREAD(cached_resource_thread_checker_);
 
-  load_timing_info_ = loader_->get_load_timing_info();
+  if (loader_ != nullptr) {
+    load_timing_info_ = loader_->get_load_timing_info();
+  }
 
   // Success
   if (!error) {
diff --git a/src/cobalt/media/base/playback_statistics.cc b/src/cobalt/media/base/playback_statistics.cc
index c35a451..2c797c8 100644
--- a/src/cobalt/media/base/playback_statistics.cc
+++ b/src/cobalt/media/base/playback_statistics.cc
@@ -14,6 +14,7 @@
 
 #include "cobalt/media/base/playback_statistics.h"
 
+#include "base/strings/stringprintf.h"
 #include "starboard/atomic.h"
 #include "starboard/common/string.h"
 
@@ -73,12 +74,57 @@
   }
 }
 
-std::string ToString(const base::Optional<base::TimeDelta>& t) {
-  return (t) ? starboard::FormatString("%" PRId64, t->InMicroseconds()) : "n/a";
-}
-
 }  // namespace
 
+PlaybackStatistics::PlaybackStatistics(const std::string& pipeline_identifier)
+    : seek_time_(base::StringPrintf("Media.Pipeline.%s.SeekTime",
+                                    pipeline_identifier.c_str()),
+                 base::TimeDelta(), "The seek-to time of the media pipeline."),
+      first_written_audio_timestamp_(
+          base::StringPrintf("Media.Pipeline.%s.FirstWrittenAudioTimestamp",
+                             pipeline_identifier.c_str()),
+          base::TimeDelta(),
+          "The timestamp of the first written audio buffer in the media "
+          "pipeline."),
+      first_written_video_timestamp_(
+          base::StringPrintf("Media.Pipeline.%s.FirstWrittenVideoTimestamp",
+                             pipeline_identifier.c_str()),
+          base::TimeDelta(),
+          "The timestamp of the first written audio buffer in the media "
+          "pipeline."),
+      last_written_audio_timestamp_(
+          base::StringPrintf("Media.Pipeline.%s.LastWrittenAudioTimestamp",
+                             pipeline_identifier.c_str()),
+          base::TimeDelta(),
+          "The timestamp of the last written audio buffer in the media "
+          "pipeline."),
+      last_written_video_timestamp_(
+          base::StringPrintf("Media.Pipeline.%s.LastWrittenVideoTimestamp",
+                             pipeline_identifier.c_str()),
+          base::TimeDelta(),
+          "The timestamp of the last written video buffer in the media "
+          "pipeline."),
+      video_width_(base::StringPrintf("Media.Pipeline.%s.VideoWidth",
+                                      pipeline_identifier.c_str()),
+                   0, "The frame width of the video."),
+      video_height_(base::StringPrintf("Media.Pipeline.%s.VideoHeight",
+                                       pipeline_identifier.c_str()),
+                    0, "The frame height of the video."),
+      is_audio_eos_written_(
+          base::StringPrintf("Media.Pipeline.%s.IsAudioEOSWritten",
+                             pipeline_identifier.c_str()),
+          false, "Indicator of if the audio eos is written."),
+      is_video_eos_written_(
+          base::StringPrintf("Media.Pipeline.%s.IsVideoEOSWritten",
+                             pipeline_identifier.c_str()),
+          false, "Indicator of if the video eos is written."),
+      pipeline_status_(base::StringPrintf("Media.Pipeline.%s.PipelineStatus",
+                                          pipeline_identifier.c_str()),
+                       PIPELINE_OK, "The status of the media pipeline."),
+      error_message_(base::StringPrintf("Media.Pipeline.%s.ErrorMessage",
+                                        pipeline_identifier.c_str()),
+                     "", "The error message of the media pipeline error.") {}
+
 PlaybackStatistics::~PlaybackStatistics() {
   SbAtomicNoBarrier_Increment(&s_active_instances, -1);
 }
@@ -105,10 +151,11 @@
     }
   }
 
-  const auto width =
-      static_cast<SbAtomic32>(video_config.natural_size().width());
-  const auto height =
-      static_cast<SbAtomic32>(video_config.natural_size().height());
+  video_width_ = video_config.natural_size().width();
+  video_height_ = video_config.natural_size().height();
+
+  const auto width = static_cast<SbAtomic32>(video_width_);
+  const auto height = static_cast<SbAtomic32>(video_height_);
 
   UpdateMinValue(width, &s_min_video_width);
   UpdateMaxValue(width, &s_max_video_width);
@@ -126,22 +173,38 @@
 
 void PlaybackStatistics::OnSeek(const base::TimeDelta& seek_time) {
   seek_time_ = seek_time;
-  first_written_audio_timestamp_.reset();
-  first_written_video_timestamp_.reset();
+  is_first_audio_buffer_written_ = false;
+  is_first_video_buffer_written_ = false;
 }
 
-void PlaybackStatistics::OnAudioAU(const base::TimeDelta& timestamp) {
-  last_written_audio_timestamp_ = timestamp;
-  if (!first_written_audio_timestamp_) {
-    first_written_audio_timestamp_.emplace(timestamp);
+void PlaybackStatistics::OnAudioAU(const scoped_refptr<DecoderBuffer>& buffer) {
+  if (buffer->end_of_stream()) {
+    is_audio_eos_written_ = true;
+    return;
+  }
+  last_written_audio_timestamp_ = buffer->timestamp();
+  if (!is_first_audio_buffer_written_) {
+    is_first_audio_buffer_written_ = true;
+    first_written_audio_timestamp_ = buffer->timestamp();
   }
 }
 
-void PlaybackStatistics::OnVideoAU(const base::TimeDelta& timestamp) {
-  last_written_video_timestamp_ = timestamp;
-  if (!first_written_video_timestamp_) {
-    first_written_video_timestamp_.emplace(timestamp);
+void PlaybackStatistics::OnVideoAU(const scoped_refptr<DecoderBuffer>& buffer) {
+  if (buffer->end_of_stream()) {
+    is_video_eos_written_ = true;
+    return;
   }
+  last_written_video_timestamp_ = buffer->timestamp();
+  if (!is_first_video_buffer_written_) {
+    is_first_video_buffer_written_ = true;
+    first_written_video_timestamp_ = buffer->timestamp();
+  }
+}
+
+void PlaybackStatistics::OnError(PipelineStatus status,
+                                 const std::string& error_message) {
+  pipeline_status_ = status;
+  error_message_ = error_message;
 }
 
 std::string PlaybackStatistics::GetStatistics(
@@ -151,18 +214,14 @@
       " active_players (max): %d (%d), av1: ~%d, h264: ~%d, hevc: ~%d,"
       " vp9: ~%d, min_width: %d, min_height: %d, max_width: %d, max_height: %d,"
       " last_working_codec: %s,"
-      " seek_time: %" PRId64
-      ","
+      " seek_time: %s,"
       " first_audio_time: %s,"
       " first_video_time: %s,"
-      " last_audio_time: %" PRId64
-      ","
-      " last_video_time: %" PRId64,
+      " last_audio_time: %s,"
+      " last_video_time: %s",
       GetCodecName(current_video_config.codec()).c_str(),
-      (current_video_config.is_encrypted() ? "Y" : "N"),
-      static_cast<int>(current_video_config.natural_size().width()),
-      static_cast<int>(current_video_config.natural_size().height()),
-      SbAtomicNoBarrier_Load(&s_active_instances),
+      (current_video_config.is_encrypted() ? "Y" : "N"), video_width_.value(),
+      video_height_.value(), SbAtomicNoBarrier_Load(&s_active_instances),
       SbAtomicNoBarrier_Load(&s_max_active_instances),
       RoundValues(SbAtomicNoBarrier_Load(&s_av1_played)),
       RoundValues(SbAtomicNoBarrier_Load(&s_h264_played)),
@@ -175,11 +234,19 @@
       GetCodecName(static_cast<VideoCodec>(
                        SbAtomicNoBarrier_Load(&s_last_working_codec)))
           .c_str(),
-      seek_time_.InMicroseconds(),
-      ToString(first_written_audio_timestamp_).c_str(),
-      ToString(first_written_audio_timestamp_).c_str(),
-      last_written_audio_timestamp_.InMicroseconds(),
-      last_written_video_timestamp_.InMicroseconds());
+      ValToString(seek_time_).c_str(),
+      is_first_audio_buffer_written_
+          ? ValToString(last_written_audio_timestamp_).c_str()
+          : "n/a",
+      is_first_video_buffer_written_
+          ? ValToString(first_written_audio_timestamp_).c_str()
+          : "n/a",
+      is_first_audio_buffer_written_
+          ? ValToString(last_written_audio_timestamp_).c_str()
+          : "n/a",
+      is_first_video_buffer_written_
+          ? ValToString(last_written_video_timestamp_).c_str()
+          : "n/a");
 }
 
 }  // namespace media
diff --git a/src/cobalt/media/base/playback_statistics.h b/src/cobalt/media/base/playback_statistics.h
index 9cbb562..78808b3 100644
--- a/src/cobalt/media/base/playback_statistics.h
+++ b/src/cobalt/media/base/playback_statistics.h
@@ -19,6 +19,9 @@
 
 #include "base/optional.h"
 #include "base/time/time.h"
+#include "cobalt/base/c_val.h"
+#include "cobalt/media/base/decoder_buffer.h"
+#include "cobalt/media/base/pipeline_status.h"
 #include "cobalt/media/base/video_decoder_config.h"
 
 namespace cobalt {
@@ -26,24 +29,34 @@
 
 class PlaybackStatistics {
  public:
+  explicit PlaybackStatistics(const std::string& pipeline_identifier);
   ~PlaybackStatistics();
 
   void UpdateVideoConfig(const VideoDecoderConfig& video_config);
   void OnPresenting(const VideoDecoderConfig& video_config);
   void OnSeek(const base::TimeDelta& seek_time);
-  void OnAudioAU(const base::TimeDelta& timestamp);
-  void OnVideoAU(const base::TimeDelta& timestamp);
+  void OnAudioAU(const scoped_refptr<DecoderBuffer>& buffer);
+  void OnVideoAU(const scoped_refptr<DecoderBuffer>& buffer);
+  void OnError(PipelineStatus status, const std::string& error_message);
 
   std::string GetStatistics(
       const VideoDecoderConfig& current_video_config) const;
 
  private:
-  base::TimeDelta seek_time_;
-  base::Optional<base::TimeDelta> first_written_audio_timestamp_;
-  base::Optional<base::TimeDelta> first_written_video_timestamp_;
-  base::TimeDelta last_written_audio_timestamp_;
-  base::TimeDelta last_written_video_timestamp_;
+  base::CVal<base::TimeDelta> seek_time_;
+  base::CVal<base::TimeDelta> first_written_audio_timestamp_;
+  base::CVal<base::TimeDelta> first_written_video_timestamp_;
+  base::CVal<base::TimeDelta> last_written_audio_timestamp_;
+  base::CVal<base::TimeDelta> last_written_video_timestamp_;
+  base::CVal<int> video_width_;
+  base::CVal<int> video_height_;
+  base::CVal<bool> is_audio_eos_written_;
+  base::CVal<bool> is_video_eos_written_;
+  base::CVal<PipelineStatus> pipeline_status_;
+  base::CVal<std::string> error_message_;
   bool is_initial_config_ = true;
+  bool is_first_audio_buffer_written_ = false;
+  bool is_first_video_buffer_written_ = false;
 };
 
 }  // namespace media
diff --git a/src/cobalt/media/base/sbplayer_pipeline.cc b/src/cobalt/media/base/sbplayer_pipeline.cc
index b100e6d..275e020 100644
--- a/src/cobalt/media/base/sbplayer_pipeline.cc
+++ b/src/cobalt/media/base/sbplayer_pipeline.cc
@@ -21,11 +21,13 @@
 #include "base/callback_helpers.h"
 #include "base/logging.h"
 #include "base/optional.h"
+#include "base/strings/stringprintf.h"
 #include "base/synchronization/lock.h"
 #include "base/synchronization/waitable_event.h"
 #include "base/task_runner.h"
 #include "base/time/time.h"
 #include "base/trace_event/trace_event.h"
+#include "cobalt/base/c_val.h"
 #include "cobalt/math/size.h"
 #include "cobalt/media/base/audio_decoder_config.h"
 #include "cobalt/media/base/bind_to_current_loop.h"
@@ -189,6 +191,10 @@
   // Retrieve the statistics as a string and append to message.
   std::string AppendStatisticsString(const std::string& message) const;
 
+  // An identifier string for the pipeline, used in CVal to identify multiple
+  // pipelines.
+  const std::string pipeline_identifier_;
+
   // Message loop used to execute pipeline tasks.  It is thread-safe.
   scoped_refptr<base::SingleThreadTaskRunner> task_runner_;
 
@@ -219,12 +225,12 @@
   // Current volume level (from 0.0f to 1.0f).  This value is set immediately
   // via SetVolume() and a task is dispatched on the message loop to notify the
   // filters.
-  float volume_ = 1.f;
+  base::CVal<float> volume_;
 
   // Current playback rate (>= 0.0f).  This value is set immediately via
   // SetPlaybackRate() and a task is dispatched on the message loop to notify
   // the filters.
-  float playback_rate_ = 0.f;
+  base::CVal<float> playback_rate_;
 
   // The saved audio and video demuxer streams.  Note that it is safe to store
   // raw pointers of the demuxer streams, as the Demuxer guarantees that its
@@ -259,7 +265,7 @@
   bool audio_read_in_progress_ = false;
   bool audio_read_delayed_ = false;
   bool video_read_in_progress_ = false;
-  TimeDelta duration_;
+  base::CVal<TimeDelta> duration_;
 
 #if SB_HAS(PLAYER_WITH_URL)
   TimeDelta start_date_;
@@ -276,12 +282,14 @@
 
   // Temporary callback used for Start() and Seek().
   SeekCB seek_cb_;
-  base::TimeDelta seek_time_;
+  TimeDelta seek_time_;
   std::unique_ptr<StarboardPlayer> player_;
   bool is_initial_preroll_ = true;
-  bool suspended_ = false;
-  bool stopped_ = false;
-  bool ended_ = false;
+  base::CVal<bool> started_;
+  base::CVal<bool> suspended_;
+  base::CVal<bool> stopped_;
+  base::CVal<bool> ended_;
+  base::CVal<SbPlayerState> player_state_;
 
   VideoFrameProvider* video_frame_provider_;
 
@@ -299,11 +307,11 @@
   // Timestamp for the last written audio.
   SbTime timestamp_of_last_written_audio_ = 0;
   // Last media time reported by GetMediaTime().
-  SbTime last_media_time_ = 0;
+  base::CVal<SbTime> last_media_time_;
   // Time when we last checked the media time.
   SbTime last_time_media_time_retrieved_ = 0;
   // The maximum video playback capabilities required for the playback.
-  std::string max_video_capabilities_;
+  base::CVal<std::string> max_video_capabilities_;
 
   PlaybackStatistics playback_statistics_;
 
@@ -317,14 +325,51 @@
         get_decode_target_graphics_context_provider_func,
     bool allow_resume_after_suspend, MediaLog* media_log,
     VideoFrameProvider* video_frame_provider)
-    : task_runner_(task_runner),
+    : pipeline_identifier_(base::StringPrintf("%p", this)),
+      task_runner_(task_runner),
       allow_resume_after_suspend_(allow_resume_after_suspend),
       window_(window),
       get_decode_target_graphics_context_provider_func_(
           get_decode_target_graphics_context_provider_func),
       natural_size_(0, 0),
+      volume_(base::StringPrintf("Media.Pipeline.%s.Volume",
+                                 pipeline_identifier_.c_str()),
+              1.0f, "Volume of the media pipeline."),
+      playback_rate_(base::StringPrintf("Media.Pipeline.%s.PlaybackRate",
+                                        pipeline_identifier_.c_str()),
+                     0.0f, "Playback rate of the media pipeline."),
+      duration_(base::StringPrintf("Media.Pipeline.%s.Duration",
+                                   pipeline_identifier_.c_str()),
+                base::TimeDelta(), "Playback duration of the media pipeline."),
       set_bounds_helper_(new SbPlayerSetBoundsHelper),
-      video_frame_provider_(video_frame_provider) {
+      started_(base::StringPrintf("Media.Pipeline.%s.Started",
+                                  pipeline_identifier_.c_str()),
+               false, "Whether the media pipeline has started."),
+      suspended_(base::StringPrintf("Media.Pipeline.%s.Suspended",
+                                    pipeline_identifier_.c_str()),
+                 false,
+                 "Whether the media pipeline has been suspended. The "
+                 "pipeline is usually suspended after the app enters "
+                 "background mode."),
+      stopped_(base::StringPrintf("Media.Pipeline.%s.Stopped",
+                                  pipeline_identifier_.c_str()),
+               false, "Whether the media pipeline has stopped."),
+      ended_(base::StringPrintf("Media.Pipeline.%s.Ended",
+                                pipeline_identifier_.c_str()),
+             false, "Whether the media pipeline has ended."),
+      player_state_(base::StringPrintf("Media.Pipeline.%s.PlayerState",
+                                       pipeline_identifier_.c_str()),
+                    kSbPlayerStateInitialized,
+                    "The underlying SbPlayer state of the media pipeline."),
+      video_frame_provider_(video_frame_provider),
+      last_media_time_(base::StringPrintf("Media.Pipeline.%s.LastMediaTime",
+                                          pipeline_identifier_.c_str()),
+                       0, "Last media time reported by the underlying player."),
+      max_video_capabilities_(
+          base::StringPrintf("Media.Pipeline.%s.MaxVideoCapabilities",
+                             pipeline_identifier_.c_str()),
+          "", "The max video capabilities required for the media pipeline."),
+      playback_statistics_(pipeline_identifier_) {
   SbMediaSetAudioWriteDuration(kAudioLimit);
 }
 
@@ -773,6 +818,8 @@
                        BindToCurrentLoop(base::Bind(
                            &SbPlayerPipeline::OnDemuxerInitialized, this)),
                        kEnableTextTracks);
+
+  started_ = true;
 }
 
 void SbPlayerPipeline::SetVolumeTask(float volume) {
@@ -1113,15 +1160,13 @@
 
   if (type == DemuxerStream::AUDIO) {
     audio_read_in_progress_ = false;
+    playback_statistics_.OnAudioAU(buffer);
     if (!buffer->end_of_stream()) {
-      playback_statistics_.OnAudioAU(buffer->timestamp());
       timestamp_of_last_written_audio_ = buffer->timestamp().ToSbTime();
     }
   } else {
     video_read_in_progress_ = false;
-    if (!buffer->end_of_stream()) {
-      playback_statistics_.OnVideoAU(buffer->timestamp());
-    }
+    playback_statistics_.OnVideoAU(buffer);
   }
 
   player_->WriteBuffer(type, buffer);
@@ -1165,7 +1210,7 @@
           timestamp_of_last_written_audio_ - last_media_time_;
       if (time_ahead_of_playback > (kAudioLimit + kMediaTimeCheckInterval)) {
         SbTime delay_time = (time_ahead_of_playback - kAudioLimit) /
-                            std::max(playback_rate_, 1.0f);
+                            std::max(playback_rate_.value(), 1.0f);
         task_runner_->PostDelayedTask(
             FROM_HERE, base::Bind(&SbPlayerPipeline::DelayedNeedData, this),
             base::TimeDelta::FromMicroseconds(delay_time));
@@ -1196,6 +1241,7 @@
   if (!player_) {
     return;
   }
+  player_state_ = state;
   switch (state) {
     case kSbPlayerStateInitialized:
       NOTREACHED();
@@ -1333,6 +1379,11 @@
 void SbPlayerPipeline::CallErrorCB(PipelineStatus status,
                                    const std::string& error_message) {
   DCHECK_NE(status, PIPELINE_OK);
+  // Only to record the first error.
+  if (error_cb_.is_null()) {
+    return;
+  }
+  playback_statistics_.OnError(status, error_message);
   ResetAndRunIfNotNull(&error_cb_, status,
                        AppendStatisticsString(error_message));
 }
diff --git a/src/cobalt/debug/remote/devtools/__init__.py b/src/cobalt/media_integration_tests/__init__.py
similarity index 100%
copy from src/cobalt/debug/remote/devtools/__init__.py
copy to src/cobalt/media_integration_tests/__init__.py
diff --git a/src/cobalt/media_integration_tests/_env.py b/src/cobalt/media_integration_tests/_env.py
new file mode 100644
index 0000000..a9d83bf
--- /dev/null
+++ b/src/cobalt/media_integration_tests/_env.py
@@ -0,0 +1,26 @@
+#
+# Copyright 2021 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.
+#
+"""Ask the parent directory to load the project environment."""
+
+from imp import load_source
+from os import path
+import sys
+
+_ENV = path.abspath(path.join(path.dirname(__file__), path.pardir, '_env.py'))
+if not path.exists(_ENV):
+  print '%s: Can\'t find repo root.\nMissing parent: %s' % (__file__, _ENV)
+  sys.exit(1)
+load_source('', _ENV)
diff --git a/src/cobalt/debug/remote/devtools/__init__.py b/src/cobalt/media_integration_tests/endurance/__init__.py
similarity index 100%
copy from src/cobalt/debug/remote/devtools/__init__.py
copy to src/cobalt/media_integration_tests/endurance/__init__.py
diff --git a/src/cobalt/media_integration_tests/endurance/_env.py b/src/cobalt/media_integration_tests/endurance/_env.py
new file mode 100644
index 0000000..a9d83bf
--- /dev/null
+++ b/src/cobalt/media_integration_tests/endurance/_env.py
@@ -0,0 +1,26 @@
+#
+# Copyright 2021 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.
+#
+"""Ask the parent directory to load the project environment."""
+
+from imp import load_source
+from os import path
+import sys
+
+_ENV = path.abspath(path.join(path.dirname(__file__), path.pardir, '_env.py'))
+if not path.exists(_ENV):
+  print '%s: Can\'t find repo root.\nMissing parent: %s' % (__file__, _ENV)
+  sys.exit(1)
+load_source('', _ENV)
diff --git a/src/cobalt/debug/remote/devtools/__init__.py b/src/cobalt/media_integration_tests/functionality/__init__.py
similarity index 100%
copy from src/cobalt/debug/remote/devtools/__init__.py
copy to src/cobalt/media_integration_tests/functionality/__init__.py
diff --git a/src/cobalt/media_integration_tests/functionality/_env.py b/src/cobalt/media_integration_tests/functionality/_env.py
new file mode 100644
index 0000000..a9d83bf
--- /dev/null
+++ b/src/cobalt/media_integration_tests/functionality/_env.py
@@ -0,0 +1,26 @@
+#
+# Copyright 2021 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.
+#
+"""Ask the parent directory to load the project environment."""
+
+from imp import load_source
+from os import path
+import sys
+
+_ENV = path.abspath(path.join(path.dirname(__file__), path.pardir, '_env.py'))
+if not path.exists(_ENV):
+  print '%s: Can\'t find repo root.\nMissing parent: %s' % (__file__, _ENV)
+  sys.exit(1)
+load_source('', _ENV)
diff --git a/src/cobalt/media_integration_tests/functionality/suspend_resume.py b/src/cobalt/media_integration_tests/functionality/suspend_resume.py
new file mode 100644
index 0000000..e51215b
--- /dev/null
+++ b/src/cobalt/media_integration_tests/functionality/suspend_resume.py
@@ -0,0 +1,81 @@
+# Copyright 2021 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.
+""" Tests of suspend and resume during playing."""
+
+import time
+import unittest
+
+import _env  # pylint: disable=unused-import
+from cobalt.media_integration_tests.test_app import Features
+from cobalt.media_integration_tests.test_case import TestCase
+
+
+class SuspendResumeTest(TestCase):
+  """
+    Test cases for suspend and resume.
+  """
+
+  def run_test_with_url(self, url):
+    app = self.CreateCobaltApp(url)
+    with app:
+      # Wait until the playback starts.
+      app.WaitUntilPlayerStart()
+      app.WaitUntilAdsEnd()
+      # Let the playback play for 2 seconds.
+      app.WaitUntilMediaTimeReached(app.CurrentMediaTime() + 2)
+      # Suspend the app and wait the app enters background.
+      app.Suspend()
+      app.WaitUntilReachState(
+          lambda _app: not _app.ApplicationState().is_visible)
+      # Wait for 1 second before resume.
+      time.sleep(1)
+      # Resume the app and let it play for a few time.
+      app.Resume()
+      app.WaitUntilPlayerStart()
+      app.WaitUntilAdsEnd()
+      # Let the playback play for 2 seconds.
+      app.WaitUntilMediaTimeReached(app.CurrentMediaTime() + 2)
+
+  @unittest.skipIf(not TestCase.IsFeatureSupported(Features.SUSPEND_AND_RESUME),
+                   'Suspend and resume is not supported on this platform.')
+  def test_playback_h264(self):
+    self.run_test_with_url('https://www.youtube.com/tv#/watch?v=RACW52qnJMI')
+
+  @unittest.skipIf(not TestCase.IsFeatureSupported(Features.SUSPEND_AND_RESUME),
+                   'Suspend and resume is not supported on this platform.')
+  def test_encrypted_playback(self):
+    self.run_test_with_url('https://www.youtube.com/tv#/watch?v=Vx5lkGS4w30')
+
+  @unittest.skipIf(not TestCase.IsFeatureSupported(Features.SUSPEND_AND_RESUME),
+                   'Suspend and resume is not supported on this platform.')
+  def test_live_stream(self):
+    self.run_test_with_url('https://www.youtube.com/tv#/watch?v=KI1XlTQrsa0')
+
+  # Test for vp9 playback if supported.
+  @unittest.skipIf(not TestCase.IsFeatureSupported(Features.SUSPEND_AND_RESUME),
+                   'Suspend and resume is not supported on this platform.')
+  def test_playback_vp9(self):
+    self.run_test_with_url('https://www.youtube.com/tv#/watch?v=1La4QzGeaaQ')
+
+  # Test for av1 playback if supported.
+  @unittest.skipIf(not TestCase.IsFeatureSupported(Features.SUSPEND_AND_RESUME),
+                   'Suspend and resume is not supported on this platform.')
+  def test_playback_av1(self):
+    self.run_test_with_url('https://www.youtube.com/tv#/watch?v=iXvy8ZeCs5M')
+
+  # Test for vertical playback
+  @unittest.skipIf(not TestCase.IsFeatureSupported(Features.SUSPEND_AND_RESUME),
+                   'Suspend and resume is not supported on this platform.')
+  def test_vertical_playback(self):
+    self.run_test_with_url('https://www.youtube.com/tv#/watch?v=jNQXAC9IVRw')
diff --git a/src/cobalt/media_integration_tests/media_integration_tests_runner.py b/src/cobalt/media_integration_tests/media_integration_tests_runner.py
new file mode 100644
index 0000000..7db2ab2
--- /dev/null
+++ b/src/cobalt/media_integration_tests/media_integration_tests_runner.py
@@ -0,0 +1,143 @@
+# Copyright 2021 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.
+"""The media integration test runner.
+
+Usage:
+  To run all tests of a specific type:
+      "python media_integration_tests_runner.py
+      -p android-arm64 -c devel -w noinstall -log-level info
+      --type functionality"
+  To run a specific test (suspend_resume):
+      python media_integration_tests_runner.py
+      -p android-arm64 -c devel -w noinstall -log-level info
+      --type functionality --test_name suspend_resume"
+
+"""
+
+import argparse
+import importlib
+import logging
+import pkgutil
+import sys
+import unittest
+
+import _env  # pylint: disable=unused-import
+from cobalt.media_integration_tests.test_app import Features
+from cobalt.media_integration_tests.test_case import SetLauncherParams, SetSupportedFeatures
+from starboard.tools import abstract_launcher
+from starboard.tools import command_line
+from starboard.tools import log_level
+
+# Location of test files.
+_TESTS_PATH = {
+    'functionality': 'cobalt.media_integration_tests.functionality',
+    'endurance': 'cobalt.media_integration_tests.endurance',
+    'performance': 'cobalt.media_integration_tests.performance'
+}
+
+
+def GetSupportedFeatures(launcher_params):
+  launcher = abstract_launcher.LauncherFactory(
+      launcher_params.platform,
+      'cobalt',
+      launcher_params.config,
+      device_id=launcher_params.device_id,
+      target_params=None,
+      output_file=None,
+      out_directory=launcher_params.out_directory,
+      loader_platform=launcher_params.loader_platform,
+      loader_config=launcher_params.loader_config,
+      loader_out_directory=launcher_params.loader_out_directory)
+  return {
+      Features.SUSPEND_AND_RESUME: launcher.SupportsSystemSuspendResume(),
+      Features.SEND_KEYS: True,
+  }
+
+
+def GetTestPackagePath(test_type):
+  if _TESTS_PATH.has_key(test_type):
+    return _TESTS_PATH[test_type]
+  return None
+
+
+def GetAllTestNamesInPackage(package_path):
+  test_names = []
+  loader = pkgutil.get_loader(package_path)
+  for sub_module in pkgutil.walk_packages([loader.filename]):
+    _, sub_module_name, _ = sub_module
+    # Filter '_env' and '__init__'.
+    if sub_module_name[0] == '_':
+      continue
+    if not sub_module_name in test_names:
+      test_names.append(sub_module_name)
+  return test_names
+
+
+def LoadAllTests(package_path, all_test_names):
+  test_suite = unittest.TestSuite()
+  for test_name in all_test_names:
+    module = importlib.import_module(package_path + '.' + test_name)
+    test_suite.addTest(unittest.TestLoader().loadTestsFromModule(module))
+  return test_suite
+
+
+def main():
+  # TODO: Support filters.
+  parser = argparse.ArgumentParser()
+  parser.add_argument(
+      '--type',
+      required=True,
+      type=str,
+      help=('Type of the tests to run. It must be functionality, endurance or'
+            ' performance.'))
+  parser.add_argument(
+      '--test_name',
+      default=None,
+      type=str,
+      help=('Name of test to run. If not specified, it will run all tests in'
+            'the directory.'))
+  args, _ = parser.parse_known_args()
+
+  package_path = GetTestPackagePath(args.type)
+  if package_path is None:
+    logging.error('{%s} is not a valid test type.', args.type)
+    return 2
+
+  all_test_names = GetAllTestNamesInPackage(package_path)
+  specified_test_name = args.test_name
+  if specified_test_name is not None:
+    if not specified_test_name in all_test_names:
+      logging.error('{%s} is not a valid test name.', specified_test_name)
+      return 2
+    else:
+      all_test_names = [specified_test_name]
+
+  log_level.InitializeLogging(args)
+  launcher_params = command_line.CreateLauncherParams()
+  supported_features = GetSupportedFeatures(launcher_params)
+
+  # Update global variables in test case.
+  SetLauncherParams(launcher_params)
+  SetSupportedFeatures(supported_features)
+
+  unittest.installHandler()
+
+  test_suite = LoadAllTests(package_path, all_test_names)
+
+  return not unittest.TextTestRunner(
+      verbosity=0, stream=sys.stdout).run(test_suite).wasSuccessful()
+
+
+if __name__ == '__main__':
+  sys.exit(main())
diff --git a/src/cobalt/debug/remote/devtools/__init__.py b/src/cobalt/media_integration_tests/performance/__init__.py
similarity index 100%
copy from src/cobalt/debug/remote/devtools/__init__.py
copy to src/cobalt/media_integration_tests/performance/__init__.py
diff --git a/src/cobalt/media_integration_tests/performance/_env.py b/src/cobalt/media_integration_tests/performance/_env.py
new file mode 100644
index 0000000..a9d83bf
--- /dev/null
+++ b/src/cobalt/media_integration_tests/performance/_env.py
@@ -0,0 +1,26 @@
+#
+# Copyright 2021 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.
+#
+"""Ask the parent directory to load the project environment."""
+
+from imp import load_source
+from os import path
+import sys
+
+_ENV = path.abspath(path.join(path.dirname(__file__), path.pardir, '_env.py'))
+if not path.exists(_ENV):
+  print '%s: Can\'t find repo root.\nMissing parent: %s' % (__file__, _ENV)
+  sys.exit(1)
+load_source('', _ENV)
diff --git a/src/cobalt/media_integration_tests/test_app.py b/src/cobalt/media_integration_tests/test_app.py
new file mode 100644
index 0000000..d0f62dd
--- /dev/null
+++ b/src/cobalt/media_integration_tests/test_app.py
@@ -0,0 +1,744 @@
+# Copyright 2021 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.
+"""A module to support fundamental communications with Cobalt application."""
+
+import enum
+import json
+import logging
+import threading
+import time
+
+import _env  # pylint: disable=unused-import
+from cobalt.tools.automated_testing import cobalt_runner
+from cobalt.tools.automated_testing import webdriver_utils
+
+webdriver_keys = webdriver_utils.import_selenium_module('webdriver.common.keys')
+
+PERIODIC_QUERIES_INTERVAL_SECONDS = 0.1
+THREAD_EXIT_TIMEOUT_SECONDS = 10
+WAIT_INTERVAL_SECONDS = 0.5
+WAIT_UNTIL_REACH_STATE_DEFAULT_TIMEOUT_SECONDS = 30
+WAIT_UNTIL_ADS_END_DEFAULT_TIMEOUT_SECONDS = 120
+WAIT_UNTIL_MEDIA_TIME_REACHED_DEFAULT_TIMEOUT_SECONDS = 30
+
+
+def GetValueFromQueryResult(query_result, key, default):
+  if query_result is None:
+    return default
+
+  if not isinstance(query_result, dict):
+    return default
+
+  if not query_result.has_key(key):
+    return default
+
+  value = query_result[key]
+  default_value_type = type(default)
+  value_type = type(value)
+
+  if value is None:
+    return default
+
+  if value_type == default_value_type:
+    return value
+
+  if value_type in (int, float) and default_value_type in (int, float):
+    return value
+
+  # CVal returns unicode, so we need to decode them before using.
+  if default_value_type in (bool, int, float):
+    if value_type in (str, unicode):
+      try:
+        # Try to parse numbers and booleans.
+        parsed_value = json.loads(value)
+      except ValueError:
+        raise RuntimeError('Failed to parse query result.')
+
+      return parsed_value
+
+  elif default_value_type is str:
+    if value_type == unicode:
+      return value.encode('utf-8')
+
+  raise NotImplementedError('Convertion from (%s) to (%s) is not suppoted.' %
+                            (value_type, default_value_type))
+
+
+class AdditionalKeys():
+  """
+    Set of special keys codes for media control, corresponding to cobalt
+    webdriver AdditionalSpecialKey.
+  """
+  MEDIA_NEXT_TRACK = u'\uf000'
+  MEDIA_PREV_TRACK = u'\uf001'
+  MEDIA_STOP = u'\uf002'
+  MEDIA_PLAYPAUSE = u'\uf003'
+
+
+class Features(enum.Enum):
+  """Set of platform features."""
+  SUSPEND_AND_RESUME = 1
+  SEND_KEYS = 2
+
+
+class ApplicationState():
+  """Set of platform features."""
+
+  def __init__(self, query_result=None):
+    if not query_result is None and not isinstance(query_result, dict):
+      raise NotImplementedError
+
+    self.is_visible = GetValueFromQueryResult(query_result, 'is_visible', False)
+
+  def __eq__(self, other):
+    if not isinstance(other, self.__class__):
+      raise NotImplementedError
+    return self.is_visible == other.is_visible
+
+  def __ne__(self, other):
+    return not self.__eq__(other)
+
+  @staticmethod
+  def QueryJsCode():
+    return """
+      return {
+        is_visible: document.visibilityState === "visible",
+      }
+    """
+
+
+class ApplicationStateHandler():
+  """The handler of applicatoin state."""
+
+  def __init__(self, app):
+    self.app = app
+    self.state_change_handlers = []
+    self.app_state = ApplicationState()
+
+    self.app.RegisterPeriodicQuery('Application',
+                                   ApplicationState.QueryJsCode(),
+                                   self._ApplicatinStateQueryHandler)
+
+  def AddAppStateChangeHandler(self, handler):
+    self.state_change_handlers.append(handler)
+
+  def RemoveAppStateChangeHandler(self, handler):
+    self.state_change_handlers.remove(handler)
+
+  def _NotifyHandlersOnStateChanged(self):
+    for handler in self.state_change_handlers:
+      handler(self, self.app, self.app_state)
+
+  def _ApplicatinStateQueryHandler(self, app, query_name, query_result):
+    del app, query_name  # Unused here.
+    # Note that the callback is invoked on a different thread.
+    new_state = ApplicationState(query_result)
+    if self.app_state != new_state:
+      self.app_state = new_state
+      self._NotifyHandlersOnStateChanged()
+
+
+class PipelinePlayerState(enum.IntEnum):
+  """Set of pipeline states, equals to SbPlayerState."""
+  INITIALIZED = 0  # kSbPlayerStateInitialized
+  PREROLLING = 1  # kSbPlayerStatePrerolling
+  PRESENTING = 2  # kSbPlayerStatePresenting
+  ENDOFSTREAM = 3  # kSbPlayerStateEndOfStream
+  DESTROYED = 4  # kSbPlayerStateDestroyed
+
+
+class PipelineState():
+  """
+    The states of SbPlayerPipeline. We update the states periodically via
+    webdriver and logs. Note that the duration and timestamps are in
+    milliseconds.
+  """
+
+  def __init__(self, query_result=None):
+    # If there's no player existing, the query return unicode code "null".
+    if (not query_result is None and not query_result == u'null' and
+        not isinstance(query_result, dict)):
+      raise NotImplementedError
+
+    self.identifier = GetValueFromQueryResult(query_result, 'identifier', '')
+    self.is_started = GetValueFromQueryResult(query_result, 'is_started', False)
+    self.is_suspended = GetValueFromQueryResult(query_result, 'is_suspended',
+                                                False)
+    self.is_stopped = GetValueFromQueryResult(query_result, 'is_stopped', False)
+    self.is_ended = GetValueFromQueryResult(query_result, 'is_ended', False)
+    self.player_state = PipelinePlayerState(
+        GetValueFromQueryResult(query_result, 'player_state', 0))
+    self.volume = GetValueFromQueryResult(query_result, 'volume', 1.0)
+    self.playback_rate = GetValueFromQueryResult(query_result, 'playback_rate',
+                                                 1.0)
+    self.duration = GetValueFromQueryResult(query_result, 'duration', 0)
+    self.last_media_time = GetValueFromQueryResult(query_result,
+                                                   'last_media_time', 0)
+    self.max_video_capabilities = GetValueFromQueryResult(
+        query_result, 'max_video_capabilities', '')
+    self.seek_time = GetValueFromQueryResult(query_result, 'seek_time', 0)
+    self.first_written_audio_timestamp = GetValueFromQueryResult(
+        query_result, 'first_written_audio_timestamp', 0)
+    self.first_written_video_timestamp = GetValueFromQueryResult(
+        query_result, 'first_written_video_timestamp', 0)
+    self.last_written_audio_timestamp = GetValueFromQueryResult(
+        query_result, 'last_written_audio_timestamp', 0)
+    self.last_written_video_timestamp = GetValueFromQueryResult(
+        query_result, 'last_written_video_timestamp', 0)
+    self.video_width = GetValueFromQueryResult(query_result, 'video_width', 0)
+    self.video_height = GetValueFromQueryResult(query_result, 'video_height', 0)
+    self.is_audio_eos_written = GetValueFromQueryResult(query_result,
+                                                        'is_audio_eos_written',
+                                                        False)
+    self.is_video_eos_written = GetValueFromQueryResult(query_result,
+                                                        'is_video_eos_written',
+                                                        False)
+    # If |pipeline_status| is not 0, it indicates there's an error
+    # in the pipeline.
+    self.pipeline_status = GetValueFromQueryResult(query_result,
+                                                   'pipeline_status', 0)
+    self.error_message = GetValueFromQueryResult(query_result, 'error_message',
+                                                 '')
+
+  def __eq__(self, other):
+    if not isinstance(other, self.__class__):
+      raise NotImplementedError
+    return (self.identifier == other.identifier and
+            self.is_started == other.is_started and
+            self.is_suspended == other.identifier and
+            self.is_stopped == other.identifier and
+            self.is_ended == other.is_ended and
+            self.player_state == other.player_state and
+            self.volume == other.volume and
+            self.playback_rate == other.playback_rate and
+            self.duration == other.duration and
+            self.last_media_time == other.last_media_time and
+            self.max_video_capabilities == other.max_video_capabilities and
+            self.seek_time == other.seek_time and
+            self.first_written_audio_timestamp
+            == other.first_written_audio_timestamp and
+            self.first_written_video_timestamp
+            == other.first_written_video_timestamp and
+            self.last_written_audio_timestamp
+            == other.last_written_audio_timestamp and
+            self.last_written_video_timestamp
+            == other.last_written_video_timestamp and
+            self.video_width == other.video_width and
+            self.video_height == other.video_height and
+            self.is_audio_eos_written == other.is_audio_eos_written and
+            self.is_video_eos_written == other.is_video_eos_written and
+            self.pipeline_status == other.pipeline_status and
+            self.error_message == other.error_message)
+
+  def __ne__(self, other):
+    return not self.__eq__(other)
+
+  @staticmethod
+  def QueryJsCode():
+    return """
+      const primary_pipeline_keys = h5vcc.cVal.keys().filter(key =>
+        key.startsWith("Media.Pipeline.") &&
+        key.endsWith("MaxVideoCapabilities") &&
+        h5vcc.cVal.getValue(key).length === 0)
+      if (primary_pipeline_keys.length == 0) {
+        return "null"
+      }
+      const key_prefix = primary_pipeline_keys[0].slice(0, -".MaxVideoCapabilities".length)
+      return {
+        identifier: key_prefix.slice("Media.Pipeline.".length),
+        is_started: h5vcc.cVal.getValue(key_prefix + '.Started'),
+        is_suspended: h5vcc.cVal.getValue(key_prefix + '.Suspended'),
+        is_stopped: h5vcc.cVal.getValue(key_prefix + '.Stopped'),
+        is_ended: h5vcc.cVal.getValue(key_prefix + '.Ended'),
+        player_state: h5vcc.cVal.getValue(key_prefix + '.PlayerState'),
+        volume: h5vcc.cVal.getValue(key_prefix + '.Volume'),
+        playback_rate: h5vcc.cVal.getValue(key_prefix + '.PlaybackRate'),
+        duration: h5vcc.cVal.getValue(key_prefix + '.Duration'),
+        last_media_time: h5vcc.cVal.getValue(key_prefix + '.LastMediaTime'),
+        max_video_capabilities: h5vcc.cVal.getValue(key_prefix + '.MaxVideoCapabilities'),
+        seek_time: h5vcc.cVal.getValue(key_prefix + '.SeekTime'),
+        first_written_audio_timestamp:
+            h5vcc.cVal.getValue(key_prefix + '.FirstWrittenAudioTimestamp'),
+        first_written_video_timestamp:
+            h5vcc.cVal.getValue(key_prefix + '.FirstWrittenVideoTimestamp'),
+        last_written_audio_timestamp:
+            h5vcc.cVal.getValue(key_prefix + '.LastWrittenAudioTimestamp'),
+        last_written_video_timestamp:
+            h5vcc.cVal.getValue(key_prefix + '.LastWrittenVideoTimestamp'),
+        video_width: h5vcc.cVal.getValue(key_prefix + '.VideoWidth'),
+        video_height: h5vcc.cVal.getValue(key_prefix + '.VideoHeight'),
+        is_audio_eos_written: h5vcc.cVal.getValue(key_prefix + '.IsAudioEOSWritten'),
+        is_video_eos_written: h5vcc.cVal.getValue(key_prefix + '.IsVideoEOSWritten'),
+        pipeline_status: h5vcc.cVal.getValue(key_prefix + '.PipelineStatus'),
+        error_message: h5vcc.cVal.getValue(key_prefix + '.ErrorMessage'),
+      }
+    """
+
+  def IsPlaying(self):
+    return (len(self.identifier) > 0 and self.is_started and
+            not self.is_ended and not self.is_suspended and not self.is_stopped)
+
+
+class MediaSessionPlaybackState(enum.Enum):
+  """Set of media session playback states."""
+  NONE = 0
+  PAUSED = 1
+  PLAYING = 2
+
+  # Aliases to convert string to the enum.
+  none = 0
+  paused = 1
+  playing = 2
+
+
+class MediaSessionState():
+  """
+    The info we get from HTML MediaSession. We update the states periodically
+    via webdriver.
+  """
+
+  def __init__(self, query_result=None):
+    if not query_result is None and not isinstance(query_result, dict):
+      raise NotImplementedError
+
+    metadata = None
+    if isinstance(query_result, dict) and query_result.has_key('metadata'):
+      metadata = query_result['metadata']
+
+    self.title = GetValueFromQueryResult(metadata, 'title', '')
+    self.artist = GetValueFromQueryResult(metadata, 'artist', '')
+    self.album = GetValueFromQueryResult(metadata, 'album', '')
+    self.playback_state = MediaSessionPlaybackState[GetValueFromQueryResult(
+        query_result, 'playbackState', 'none')]
+
+  def __eq__(self, other):
+    if not isinstance(other, self.__class__):
+      raise NotImplementedError
+    return (self.title == other.title and self.artist == other.artist and
+            self.album == other.album and
+            self.playback_state == other.playback_state)
+
+  def __ne__(self, other):
+    if self.__eq__(other):
+      return False
+    return True
+
+  @staticmethod
+  def QueryJsCode():
+    return """
+      return {
+          metadata: navigator.mediaSession.metadata,
+          playbackState: navigator.mediaSession.playbackState,
+        }
+    """
+
+
+class VideoElementState():
+  """
+    The info we get from HTML video element. We update the states periodically
+    via webdriver.
+  """
+
+  def __init__(self, query_result=None):
+    # If there's no player existing, the query return unicode code "null".
+    if (not query_result is None and not query_result == u'null' and
+        not isinstance(query_result, dict)):
+      raise NotImplementedError
+
+    self.has_player = isinstance(query_result, dict)
+    self.current_time = GetValueFromQueryResult(query_result, 'current_time',
+                                                0.0)
+    self.duration = GetValueFromQueryResult(query_result, 'duration', 0.0)
+    self.paused = GetValueFromQueryResult(query_result, 'paused', False)
+    self.playback_rate = GetValueFromQueryResult(query_result, 'playback_rate',
+                                                 0.0)
+    self.volume = GetValueFromQueryResult(query_result, 'volume', 0.0)
+    self.dropped_video_frames = GetValueFromQueryResult(query_result,
+                                                        'dropped_video_frames',
+                                                        0)
+    self.total_video_frames = GetValueFromQueryResult(query_result,
+                                                      'total_video_frames', 0)
+
+  def __eq__(self, other):
+    if not isinstance(other, self.__class__):
+      raise NotImplementedError
+    return (self.has_player == other.has_player and
+            self.current_time == other.current_time and
+            self.duration == other.duration and self.paused == other.paused and
+            self.playback_rate == other.playback_rate and
+            self.volume == other.volume and
+            self.dropped_video_frames == other.dropped_video_frames and
+            self.total_video_frames == other.total_video_frames)
+
+  def __ne__(self, other):
+    return not self.__eq__(other)
+
+  @staticmethod
+  def QueryJsCode():
+    # Looking for a full screen video tag and return that as the primary player.
+    return """
+      const players = document.querySelectorAll("video");
+      if (players && players.length > 0) {
+        for (let i = 0; i < players.length; i++) {
+          const player = players[i]
+          const rect = player.getBoundingClientRect()
+          if (rect.width === window.innerWidth ||
+              rect.height === window.innerHeight) {
+            const quality = player.getVideoPlaybackQuality();
+            return {
+              current_time: player.currentTime,
+              duration: player.duration,
+              paused: player.paused,
+              playback_rate: player.playbackRate,
+              volume: player.volume,
+              dropped_video_frames: quality.droppedVideoFrames,
+              total_video_frames: quality.totalVideoFrames,
+            }
+          }
+        }
+      }
+      return "null"
+    """
+
+
+class PlayerStateHandler():
+  """The handler of player state."""
+
+  def __init__(self, app):
+    self.app = app
+    self.state_change_handlers = []
+    self.player_state = type('', (), {})()
+    self.player_state.pipeline_state = PipelineState()
+    self.player_state.media_session_state = MediaSessionState()
+    self.player_state.video_element_state = VideoElementState()
+
+    self.app.RegisterPeriodicQuery('MediaPipeline', PipelineState.QueryJsCode(),
+                                   self._PipelineStateQueryHandler)
+    self.app.RegisterPeriodicQuery('MediaSession',
+                                   MediaSessionState.QueryJsCode(),
+                                   self._MediaSessionStateQueryHandler)
+    self.app.RegisterPeriodicQuery('VideoElement',
+                                   VideoElementState.QueryJsCode(),
+                                   self._VideoElementStateQueryHandler)
+
+  def AddPlayerStateChangeHandler(self, handler):
+    self.state_change_handlers.append(handler)
+
+  def RemovePlayerStateChangeHandler(self, handler):
+    self.state_change_handlers.remove(handler)
+
+  def IsPlayerPlaying(self):
+    return self.player_state.pipeline_state.IsPlaying()
+
+  def _NotifyHandlersOnStateChanged(self):
+    for handler in self.state_change_handlers:
+      handler(self, self.player_state)
+
+  def _PipelineStateQueryHandler(self, app, query_name, query_result):
+    # Note that the callback is invoked on a different thread.
+    del app, query_name  # Unused here.
+    new_state = PipelineState(query_result)
+    if self.player_state.pipeline_state != new_state:
+      self.player_state.pipeline_state = new_state
+      self._NotifyHandlersOnStateChanged()
+
+  def _MediaSessionStateQueryHandler(self, app, query_name, query_result):
+    # Note that the callback is invoked on a different thread.
+    del app, query_name  # Unused here.
+    new_state = MediaSessionState(query_result)
+    if self.player_state.media_session_state != new_state:
+      self.player_state.media_session_state = new_state
+      self._NotifyHandlersOnStateChanged()
+
+  def _VideoElementStateQueryHandler(self, app, query_name, query_result):
+    # Note that the callback is invoked on a different thread.
+    del app, query_name  # Unused here.
+    new_state = VideoElementState(query_result)
+    if self.player_state.video_element_state != new_state:
+      self.player_state.video_element_state = new_state
+      self._NotifyHandlersOnStateChanged()
+
+
+class AdsState(enum.IntEnum):
+  """Set of ads states. The numeric values are used in ads state query."""
+  NONE = 0
+  PLAYING = 1
+  PLAYING_AND_SKIPPABLE = 2
+
+
+class TestApp():
+  """
+    A class encapsulating fundamental functions to control and query data
+    from Cobalt application.
+  """
+
+  def __init__(self,
+               launcher_params,
+               url,
+               supported_features,
+               log_file=None,
+               target_params=None,
+               success_message=None):
+    self.supported_features = supported_features
+    self.runner = cobalt_runner.CobaltRunner(
+        launcher_params=launcher_params,
+        url=url,
+        log_handler=self._OnNewLogLine,
+        log_file=log_file,
+        target_params=target_params,
+        success_message=success_message)
+    self.log_handlers = []
+    self.is_queries_changed = False
+    self.periodic_queries = {}
+    self.periodic_queries_lock = threading.Lock()
+    self.should_exit = threading.Event()
+    self.periodic_query_thread = threading.Thread(
+        target=self._RunPeriodicQueries)
+
+    self.app_state_handler = ApplicationStateHandler(self)
+    self.player_state_handler = PlayerStateHandler(self)
+
+  def __enter__(self):
+    try:
+      self.runner.__enter__()
+    except Exception:
+      # Potentially from thread.interrupt_main(). No need to start
+      # query thread.
+      return self
+
+    self.periodic_query_thread.start()
+    return self
+
+  def __exit__(self, *args):
+    self.should_exit.set()
+    self.periodic_query_thread.join(THREAD_EXIT_TIMEOUT_SECONDS)
+    return self.runner.__exit__(*args)
+
+  def _OnNewLogLine(self, line):
+    # Note that the function is called on cobalt runner reader thread.
+    # pass
+    self._NotifyHandlersOnNewLogLine(line)
+
+  def _NotifyHandlersOnNewLogLine(self, line):
+    for handler in self.log_handlers:
+      handler(self, line)
+
+  def ApplicationState(self):
+    return self.app_state_handler.app_state
+
+  def PlayerState(self):
+    return self.player_state_handler.player_state
+
+  def CurrentMediaTime(self):
+    # Convert timestamp from millisecond to second.
+    return float(self.PlayerState().pipeline_state.last_media_time) / 1000000.0
+
+  def Suspend(self):
+    if not self.supported_features[Features.SUSPEND_AND_RESUME]:
+      raise RuntimeError('Suspend is not supported.')
+    if not self.runner.launcher_is_running:
+      raise RuntimeError('Runner is not running.')
+    self.runner.SendSystemSuspend()
+
+  def Resume(self):
+    if not self.supported_features[Features.SUSPEND_AND_RESUME]:
+      raise RuntimeError('Resume is not supported.')
+    if not self.runner.launcher_is_running:
+      raise RuntimeError('Runner is not running.')
+    self.runner.SendSystemResume()
+
+  def SendKeys(self, keys):
+    if not self.supported_features[Features.SEND_KEYS]:
+      raise RuntimeError('SendKeys is not supported.')
+    if not self.runner.launcher_is_running:
+      raise RuntimeError('Runner is not running.')
+    self.runner.SendKeys(keys)
+
+  # The handler will receive parameters (TestApp, String).
+  def AddLogHandler(self, handler):
+    self.log_handlers.append(handler)
+
+  def RemoveLogHandler(self, handler):
+    self.log_handlers.remove(handler)
+
+  # The handler will receive parameters (TestApp, ApplicationState).
+  def AddAppStateChangeHandler(self, handler):
+    self.app_state_handler.AddAppStateChangeHandler(handler)
+
+  def RemoveAppStateChangeHandler(self, handler):
+    self.app_state_handler.RemoveAppStateChangeHandler(handler)
+
+  # The handler will receive parameters (TestApp, PlayerState).
+  def AddPlayerStateChangeHandler(self, handler):
+    self.player_state_handler.AddPlayerStateChangeHandler(handler)
+
+  def RemovePlayerStateChangeHandler(self, handler):
+    self.player_state_handler.RemoveAppStateChangeHandler(handler)
+
+  # The handler will receive parameters (TestApp, String, Dictionary).
+  def RegisterPeriodicQuery(self, query_name, query_js_code, result_handler):
+    if not isinstance(query_name, str):
+      raise RuntimeError('Query name must be a string.')
+    if self.periodic_queries.get(query_name):
+      raise RuntimeError('Duplicate query name is not allowed.')
+    # TODO: Validate js code.
+    with self.periodic_queries_lock:
+      self.is_queries_changed = True
+      self.periodic_queries[query_name] = (query_js_code, result_handler)
+
+  def UnregisterPeriodicQuery(self, query_name):
+    if not isinstance(query_name, str):
+      raise RuntimeError('Query name must be a string.')
+    with self.periodic_queries_lock:
+      self.is_queries_changed = True
+      self.periodic_queries.pop(query_name)
+
+  def _RunPeriodicQueries(self):
+    while True:
+      if self.should_exit.is_set():
+        break
+      # Wait until webdriver client attached to Cobalt.
+      if self.runner.test_script_started.is_set():
+        with self.periodic_queries_lock:
+          local_is_queries_changed = self.is_queries_changed
+          local_periodic_queries = self.periodic_queries
+          self.is_queries_changed = False
+        # Skip if there's no registered query.
+        if len(local_periodic_queries) == 0:
+          continue
+        # Generate javascript code and execute it.
+        js_code = self._GeneratePeriodicQueryJsCode(local_is_queries_changed,
+                                                    local_periodic_queries)
+        try:
+          result = self.runner.webdriver.execute_script(js_code)
+        except Exception as e:
+          raise RuntimeError('Periodic queries failed with error (%s)' %
+                             (str(e)))
+
+        for query_name in local_periodic_queries.keys():
+          if not result.get(query_name):
+            raise RuntimeError(
+                'There\'s something wrong in the queries result.')
+          local_periodic_queries[query_name][1](self, query_name,
+                                                result[query_name])
+
+      time.sleep(PERIODIC_QUERIES_INTERVAL_SECONDS)
+
+  _PERIODIC_QUERIES_JS_CODE = """
+    var ret = {}
+    for(var key in _media_integration_testing_queries) {
+      ret[key] = _media_integration_testing_queries[key]()
+    }
+    return ret
+  """
+
+  def _GeneratePeriodicQueryJsCode(self, is_queries_changed, periodic_queries):
+    js_code = ''
+    # Update registered queries at host side.
+    if is_queries_changed:
+      js_code += '_media_integration_testing_queries = {'
+      for query_name in periodic_queries:
+        js_code += query_name + ': function() {'
+        js_code += periodic_queries[query_name][0]
+        js_code += '},'
+      js_code += '}'
+    # Run queries and collect results.
+    js_code += self._PERIODIC_QUERIES_JS_CODE
+    return js_code
+
+  # The first input of |state_lambda| is an instance of TestApp.
+  def WaitUntilReachState(self, state_lambda, timeout=WAIT_UNTIL_REACH_STATE_DEFAULT_TIMEOUT_SECONDS):
+    start_time = time.time()
+    while not state_lambda(self) and time.time() - start_time < timeout:
+      time.sleep(WAIT_INTERVAL_SECONDS)
+    execute_interval = time.time() - start_time
+    if execute_interval > timeout:
+      raise RuntimeError('WaitUntilReachState timed out after (%f) seconds.' %
+                         (execute_interval))
+
+  def WaitUntilPlayerStart(self,
+                           timeout=WAIT_UNTIL_REACH_STATE_DEFAULT_TIMEOUT_SECONDS
+                          ):
+    self.WaitUntilReachState(
+        lambda _app: _app.player_state_handler.IsPlayerPlaying(), timeout)
+
+  # TODO: Need to verify if it works without corp network.
+  # TODO: Needs to recognize and skip survery.
+  """
+    The return values of the query, exact mapping of AdsState defined earlier
+    in this file.
+  """
+  _GET_ADS_STATE_QUERY_JS_CODE = """
+    if( document.getElementsByTagName("YTLR-AD-PREVIEW-RENDERER").length > 0 ) {
+      return 1
+    }
+    else if( document.getElementsByTagName("YTLR-SKIP-BUTTON-RENDERER").length > 0 ) {
+      return 2
+    }
+    return 0
+  """
+
+  def GetAdsState(self):
+    if not self.runner.test_script_started.is_set():
+      raise RuntimeError('Webdriver is not ready yet')
+    try:
+      result = self.runner.webdriver.execute_script(
+          self._GET_ADS_STATE_QUERY_JS_CODE)
+    except Exception as e:
+      raise RuntimeError('Ads query failed with error (%s)' % (str(e)))
+    return AdsState(result)
+
+  def WaitUntilAdsEnd(self, timeout=WAIT_UNTIL_ADS_END_DEFAULT_TIMEOUT_SECONDS):
+    start_time = time.time()
+    # There may be multiple ads and we need to wait all of them finished.
+    while time.time() - start_time < timeout:
+      # Wait until the content starts, otherwise the ads state may not be right.
+      self.WaitUntilReachState(lambda _app: _app.CurrentMediaTime() > 0,
+                               timeout)
+      ads_state = self.GetAdsState()
+      if ads_state == AdsState.NONE:
+        break
+      while ads_state != AdsState.NONE and time.time() - start_time < timeout:
+        ads_state = self.GetAdsState()
+        if ads_state == AdsState.PLAYING_AND_SKIPPABLE:
+          self.SendKeys(webdriver_keys.Keys.ENTER)
+          logging.info('Send enter key event to skip the ad.')
+        time.sleep(WAIT_INTERVAL_SECONDS)
+
+    execute_interval = time.time() - start_time
+    if execute_interval > timeout:
+      raise RuntimeError(
+          'WaitUntilReachState timed out after (%f) seconds, ads_state: (%d).' %
+          (execute_interval, ads_state))
+
+  def WaitUntilMediaTimeReached(
+      self,
+      media_time,
+      timeout=WAIT_UNTIL_MEDIA_TIME_REACHED_DEFAULT_TIMEOUT_SECONDS):
+    start_media_time = self.CurrentMediaTime()
+    if start_media_time > media_time:
+      return
+
+    # Wait until playback starts, otherwise playback rate could be 0.
+    self.WaitUntilReachState(
+        lambda _app: _app.CurrentMediaTime() > start_media_time, timeout)
+
+    playback_rate = self.PlayerState().pipeline_state.playback_rate
+    if playback_rate == 0:
+      raise NotImplementedError
+
+    adjusted_timeout = (media_time -
+                        self.CurrentMediaTime()) / playback_rate + timeout
+    self.WaitUntilReachState(lambda _app: _app.CurrentMediaTime() > media_time,
+                             adjusted_timeout)
diff --git a/src/cobalt/media_integration_tests/test_case.py b/src/cobalt/media_integration_tests/test_case.py
new file mode 100644
index 0000000..09e2ec2
--- /dev/null
+++ b/src/cobalt/media_integration_tests/test_case.py
@@ -0,0 +1,61 @@
+# Copyright 2021 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.
+"""The module of base media integration test case."""
+
+import logging
+import unittest
+
+import _env  # pylint: disable=unused-import
+from cobalt.media_integration_tests.test_app import TestApp
+
+# Global variables
+_launcher_params = None
+_supported_features = None
+
+
+def SetLauncherParams(launcher_params):
+  global _launcher_params
+  _launcher_params = launcher_params
+
+
+def SetSupportedFeatures(supported_features):
+  global _supported_features
+  _supported_features = supported_features
+
+
+class TestCase(unittest.TestCase):
+  """The base class for media integration test cases."""
+
+  def __init__(self, *args, **kwargs):
+    super(TestCase, self).__init__(*args, **kwargs)
+    self.launcher_params = _launcher_params
+    self.supported_features = _supported_features
+
+  def setUp(self):
+    logging.info('Running %s', str(self.id()))
+
+  def tearDown(self):
+    logging.info('Done %s', str(self.id()))
+
+  def CreateCobaltApp(self, url):
+    app = TestApp(
+        launcher_params=self.launcher_params,
+        supported_features=self.supported_features,
+        url=url)
+    return app
+
+  @staticmethod
+  def IsFeatureSupported(feature):
+    global _supported_features
+    return _supported_features[feature]
diff --git a/src/cobalt/script/v8c/conversion_helpers.cc b/src/cobalt/script/v8c/conversion_helpers.cc
index 3e8606c..4fa42e3 100644
--- a/src/cobalt/script/v8c/conversion_helpers.cc
+++ b/src/cobalt/script/v8c/conversion_helpers.cc
@@ -47,10 +47,13 @@
     return;
   }
 
-  // TODO: Handle UTF8 failure here somehow too.
-  v8::String::Utf8Value utf8_value(isolate, string);
-  DCHECK(0 <= utf8_value.length());
-  out_string->assign(*utf8_value, utf8_value.length());
+  // Resize the output string to the UTF-8 estimated size.
+  int length = string->Utf8Length(isolate);
+  out_string->resize(length);
+  DCHECK(out_string->size() == length);
+  // Encoding to a UTF-8  valid string (orphan surrogate code units replaced).
+  string->WriteUtf8(isolate, const_cast<char*>(out_string->data()), -1, nullptr,
+                    v8::String::REPLACE_INVALID_UTF8);
 }
 
 // ValueHandle -> JSValue
diff --git a/src/cobalt/script/v8c/v8c.gyp b/src/cobalt/script/v8c/v8c.gyp
index 1a2331d..1a85af0 100644
--- a/src/cobalt/script/v8c/v8c.gyp
+++ b/src/cobalt/script/v8c/v8c.gyp
@@ -13,6 +13,23 @@
 # limitations under the License.
 
 {
+  'target_defaults': {
+    'conditions': [
+        ['(target_arch=="arm64" or target_arch=="x64") and disable_v8_pointer_compression==0', {
+          'defines': [
+            # enables pointer compression on 64 bit platforms for Cobalt.
+            'V8_COMPRESS_POINTERS',
+            'V8_31BIT_SMIS_ON_64BIT_ARCH',
+          ],
+          'all_dependent_settings': {
+            'defines': [
+                'V8_COMPRESS_POINTERS',
+                'V8_31BIT_SMIS_ON_64BIT_ARCH',
+            ],
+          },
+        }],
+    ],
+  },
   'targets': [
     {
       'target_name': 'engine',
@@ -85,15 +102,6 @@
         '<(DEPTH)/third_party/v8/v8.gyp:v8_base_without_compiler',
         'embed_v8c_resources_as_header_files',
       ],
-      'conditions': [
-        ['target_arch=="arm64" or target_arch=="x64"', {
-          'defines': [
-            # enables pointer compression on 64 bit platforms for Cobalt.
-            'V8_COMPRESS_POINTERS',
-            'V8_31BIT_SMIS_ON_64BIT_ARCH',
-          ],
-        }],
-      ],
       'defines': [
         'ENGINE_SUPPORTS_INT64',
       ],
@@ -102,15 +110,6 @@
           'ENGINE_SUPPORTS_INDEXED_DELETERS',
           'ENGINE_SUPPORTS_INT64',
         ],
-        'conditions': [
-          ['target_arch=="arm64" or target_arch=="x64"', {
-            'defines': [
-              # enables pointer compression on 64 bit platforms for Cobalt.
-              'V8_COMPRESS_POINTERS',
-              'V8_31BIT_SMIS_ON_64BIT_ARCH',
-            ],
-          }],
-        ],
       },
     },
 
@@ -129,15 +128,6 @@
         '<(DEPTH)/third_party/v8/v8.gyp:v8_base_without_compiler',
         '<(DEPTH)/third_party/v8/v8.gyp:v8_libplatform',
       ],
-      'conditions': [
-        ['target_arch=="arm64" or target_arch=="x64"', {
-          'defines': [
-            # enables pointer compression on 64 bit platforms for Cobalt.
-            'V8_COMPRESS_POINTERS',
-            'V8_31BIT_SMIS_ON_64BIT_ARCH',
-          ],
-        }],
-      ],
     },
 
     {
diff --git a/src/cobalt/site/docs/reference/starboard/configuration-public.md b/src/cobalt/site/docs/reference/starboard/configuration-public.md
index c40b059..72102ed 100644
--- a/src/cobalt/site/docs/reference/starboard/configuration-public.md
+++ b/src/cobalt/site/docs/reference/starboard/configuration-public.md
@@ -61,7 +61,6 @@
 | Properties |
 | :--- |
 | **`SB_HAS_ON_SCREEN_KEYBOARD`**<br><br>Whether the current platform implements the on screen keyboard interface.<br><br>The default value in the Stub implementation is `0` |
-| **`SB_HAS_SPEECH_RECOGNIZER`**<br><br>Whether the current platform has speech recognizer.<br><br>The default value in the Stub implementation is `1` |
 | **`SB_HAS_SPEECH_SYNTHESIS`**<br><br>Whether the current platform has speech synthesis.<br><br>The default value in the Stub implementation is `1` |
 
 
diff --git a/src/cobalt/speech/speech_configuration.h b/src/cobalt/speech/speech_configuration.h
index 5bdda23..5458641 100644
--- a/src/cobalt/speech/speech_configuration.h
+++ b/src/cobalt/speech/speech_configuration.h
@@ -22,7 +22,7 @@
 #define SB_USE_SB_MICROPHONE 1
 #endif  // SB_API_VERSION >= 12 || SB_HAS(MICROPHONE)
 
-#if SB_API_VERSION >= 12 || SB_HAS(SPEECH_RECOGNIZER)
+#if SB_API_VERSION == 12 || (SB_HAS(SPEECH_RECOGNIZER) && SB_API_VERSION < 13)
 #define SB_USE_SB_SPEECH_RECOGNIZER 1
 #endif  // SB_API_VERSION >= 12 || SB_HAS(SPEECH_RECOGNIZER)
 
diff --git a/src/cobalt/speech/starboard_speech_recognizer.cc b/src/cobalt/speech/starboard_speech_recognizer.cc
index c52ee27..af7782d 100644
--- a/src/cobalt/speech/starboard_speech_recognizer.cc
+++ b/src/cobalt/speech/starboard_speech_recognizer.cc
@@ -16,6 +16,8 @@
 
 #if defined(SB_USE_SB_SPEECH_RECOGNIZER)
 
+#include <utility>
+
 #include "cobalt/base/tokens.h"
 #include "cobalt/speech/speech_recognition_error.h"
 #include "cobalt/speech/speech_recognition_event.h"
@@ -27,7 +29,9 @@
 
 // static
 bool StarboardSpeechRecognizer::IsSupported() {
-#if SB_API_VERSION >= 12
+#if SB_API_VERSION >= 13
+  return false;
+#elif SB_API_VERSION >= 12
   return SbSpeechRecognizerIsSupported();
 #else
   return true;
diff --git a/src/cobalt/speech/starboard_speech_recognizer.h b/src/cobalt/speech/starboard_speech_recognizer.h
index 055da4a..80b4ca0 100644
--- a/src/cobalt/speech/starboard_speech_recognizer.h
+++ b/src/cobalt/speech/starboard_speech_recognizer.h
@@ -21,10 +21,11 @@
 #include "cobalt/speech/speech_configuration.h"
 #include "cobalt/speech/speech_recognition_result_list.h"
 #include "cobalt/speech/speech_recognizer.h"
-#include "starboard/speech_recognizer.h"
 
 #if defined(SB_USE_SB_SPEECH_RECOGNIZER)
 
+#include "starboard/speech_recognizer.h"
+
 namespace cobalt {
 namespace speech {
 
@@ -54,6 +55,7 @@
       std::vector<SpeechRecognitionAlternative::Data>&& results, bool is_final);
 
   SbSpeechRecognizer speech_recognizer_;
+
   // Used for accumulating final results.
   SpeechRecognitionResults final_results_;
 
diff --git a/src/cobalt/tools/automated_testing/cobalt_runner.py b/src/cobalt/tools/automated_testing/cobalt_runner.py
index d1c878b..1c26ae3 100644
--- a/src/cobalt/tools/automated_testing/cobalt_runner.py
+++ b/src/cobalt/tools/automated_testing/cobalt_runner.py
@@ -85,7 +85,8 @@
                url,
                log_file=None,
                target_params=None,
-               success_message=None):
+               success_message=None,
+               log_handler=None):
     """CobaltRunner constructor.
 
     Args:
@@ -112,6 +113,8 @@
         'webdriver')
 
     self.launcher_params = launcher_params
+    self.log_handler = log_handler
+
     if log_file:
       self.log_file = open(log_file)
       logging.basicConfig(stream=self.log_file, level=logging.INFO)
@@ -152,6 +155,14 @@
     """Sends a system signal to put Cobalt into stopped state."""
     self.launcher.SendStop()
 
+  def SendSystemSuspend(self):
+    """Ask the system to suspend Cobalt."""
+    self.launcher.SendSystemSuspend()
+
+  def SendSystemResume(self):
+    """Ask the system to resume Cobalt."""
+    self.launcher.SendSystemResume()
+
   def SendDeepLink(self, link):
     """Sends a deep link to Cobalt."""
     return self.launcher.SendDeepLink(link)
@@ -175,17 +186,21 @@
     while True:
       line = self.launcher_read_pipe.readline()
       if line:
+        if self.log_handler is not None:
+          self.log_handler(line)
         self.log_file.write(line)
         # Calling flush() to ensure the logs are delivered timely.
         self.log_file.flush()
       else:
         break
 
-      if RE_WINDOWDRIVER_CREATED.search(line):
+      if not self.windowdriver_created.set() and \
+          RE_WINDOWDRIVER_CREATED.search(line):
         self.windowdriver_created.set()
         continue
 
-      if RE_WEBMODULE_LOADED.search(line):
+      if not self.webmodule_loaded.set() and \
+          RE_WEBMODULE_LOADED.search(line):
         self.webmodule_loaded.set()
         continue
 
diff --git a/src/cobalt/ui_navigation/interface.cc b/src/cobalt/ui_navigation/interface.cc
index b653332..326ae51 100644
--- a/src/cobalt/ui_navigation/interface.cc
+++ b/src/cobalt/ui_navigation/interface.cc
@@ -105,7 +105,7 @@
     interface.set_item_container_item = sb_ui_interface.set_item_container_item;
     interface.set_item_content_offset = sb_ui_interface.set_item_content_offset;
     interface.get_item_content_offset = sb_ui_interface.get_item_content_offset;
-#if SB_API_VERSION >= SB_UI_NAVIGATION2_VERSION
+#if SB_API_VERSION >= 13
     interface.set_item_focus_duration = sb_ui_interface.set_item_focus_duration;
     interface.do_batch_update = sb_ui_interface.do_batch_update;
 #else
diff --git a/src/cobalt/ui_navigation/nav_item.cc b/src/cobalt/ui_navigation/nav_item.cc
index 7d39bed..ff5eb6c 100644
--- a/src/cobalt/ui_navigation/nav_item.cc
+++ b/src/cobalt/ui_navigation/nav_item.cc
@@ -162,7 +162,7 @@
 void NavItem::UnfocusAll() {
   starboard::ScopedSpinLock lock(&g_pending_updates_lock);
   g_pending_focus = kNativeItemInvalid;
-#if SB_API_VERSION >= SB_UI_NAVIGATION2_VERSION
+#if SB_API_VERSION >= 13
   g_pending_updates->emplace_back(
       kNativeItemInvalid,
       base::Bind(GetInterface().set_focus, kNativeItemInvalid));
diff --git a/src/cobalt/updater/configurator.cc b/src/cobalt/updater/configurator.cc
index 925c06e..b8df78b 100644
--- a/src/cobalt/updater/configurator.cc
+++ b/src/cobalt/updater/configurator.cc
@@ -29,31 +29,6 @@
 // Default time constants.
 const int kDelayOneMinute = 60;
 const int kDelayOneHour = kDelayOneMinute * 60;
-const std::set<std::string> valid_channels = {
-    // Default channel for debug/devel builds.
-    "dev",
-    // Channel for dogfooders.
-    "dogfood",
-    // Default channel for gold builds.
-    "prod",
-    // Default channel for qa builds. A gold build can switch to this channel to
-    // get an official qa build.
-    "qa",
-    // Test an update with higher version than prod channel.
-    "test",
-    // Test an update with mismatched sabi.
-    "tmsabi",
-    // Test an update that does nothing.
-    "tnoop",
-    // Test an update that crashes.
-    "tcrash",
-    // Test an update that fails verification.
-    "tfailv",
-    // Test an update that works for one app only.
-    "t1app",
-    // Test a series of continuous updates with two channels.
-    "tseries1", "tseries2",
-};
 
 #if defined(COBALT_BUILD_TYPE_DEBUG) || defined(COBALT_BUILD_TYPE_DEVEL)
 const char kDefaultUpdaterChannel[] = "dev";
@@ -133,7 +108,10 @@
 std::string Configurator::GetLang() const {
   const char* locale_id = SbSystemGetLocaleId();
   if (!locale_id) {
-    return "";
+    // If Starboard failed to determine the locale, return a hardcoded, but
+    // valid BCP 47 language tag as required by
+    // https://html.spec.whatwg.org/commit-snapshots/e2f08b4e56d9a098038fb16c7ff6bb820a57cfab/#language-preferences
+    return "en-US";
   }
   std::string locale_string(locale_id);
   // POSIX platforms put time zone id at the end of the locale id, like
@@ -259,14 +237,6 @@
   updater_channel_ = updater_channel;
 }
 
-bool Configurator::IsChannelValid(const std::string& channel) {
-  if (!valid_channels.count(channel)) {
-    SetUpdaterStatus(std::string("Invalid channel requested"));
-    return false;
-  }
-  return true;
-}
-
 // The updater status is get by main web module thread and set by the updater
 // thread. The getter and set use a lock to prevent synchronization issue.
 std::string Configurator::GetUpdaterStatus() const {
diff --git a/src/cobalt/updater/configurator.h b/src/cobalt/updater/configurator.h
index c6fa12a..5314984 100644
--- a/src/cobalt/updater/configurator.h
+++ b/src/cobalt/updater/configurator.h
@@ -79,8 +79,6 @@
 
   void CompareAndSwapChannelChanged(int old_value, int new_value) override;
 
-  bool IsChannelValid(const std::string& channel);
-
   std::string GetUpdaterStatus() const override;
   void SetUpdaterStatus(const std::string& status) override;
 
diff --git a/src/cobalt/updater/one_app_only_sandbox.cc b/src/cobalt/updater/one_app_only_sandbox.cc
index f15f336..864c166 100644
--- a/src/cobalt/updater/one_app_only_sandbox.cc
+++ b/src/cobalt/updater/one_app_only_sandbox.cc
@@ -86,8 +86,7 @@
     return;
   }
   LOG(INFO) << "Starting application.";
-#if SB_API_VERSION >= SB_ADD_CONCEALED_STATE_SUPPORT_VERSION || \
-    SB_HAS(CONCEALED_STATE)
+#if SB_API_VERSION >= 13
   DCHECK(!g_application);
   g_application =
       new cobalt::browser::Application(quit_closure, false /*not_preload*/);
@@ -100,8 +99,7 @@
   } else {
     g_application->Start();
   }
-#endif  // SB_API_VERSION >= SB_ADD_CONCEALED_STATE_SUPPORT_VERSION ||
-        // SB_HAS(CONCEALED_STATE)
+#endif  // SB_API_VERSION >= 13
 }
 
 void StopApplication() {
diff --git a/src/cobalt/updater/updater_module.cc b/src/cobalt/updater/updater_module.cc
index 4cba4f3..db02d9a 100644
--- a/src/cobalt/updater/updater_module.cc
+++ b/src/cobalt/updater/updater_module.cc
@@ -51,6 +51,31 @@
 
 void QuitLoop(base::OnceClosure quit_closure) { std::move(quit_closure).Run(); }
 
+CobaltExtensionUpdaterNotificationState
+ComponentStateToCobaltExtensionUpdaterNotificationState(
+    ComponentState component_state) {
+  switch (component_state) {
+    case ComponentState::kChecking:
+      return kCobaltExtensionUpdaterNotificationStateChecking;
+    case ComponentState::kCanUpdate:
+      return kCobaltExtensionUpdaterNotificationStateUpdateAvailable;
+    case ComponentState::kDownloading:
+      return kCobaltExtensionUpdaterNotificationStateDownloading;
+    case ComponentState::kDownloaded:
+      return kCobaltExtensionUpdaterNotificationStateDownloaded;
+    case ComponentState::kUpdating:
+      return kCobaltExtensionUpdaterNotificationStateInstalling;
+    case ComponentState::kUpdated:
+      return kCobaltExtensionUpdaterNotificationStatekUpdated;
+    case ComponentState::kUpToDate:
+      return kCobaltExtensionUpdaterNotificationStatekUpdated;
+    case ComponentState::kUpdateError:
+      return kCobaltExtensionUpdaterNotificationStatekUpdateFailed;
+    default:
+      return kCobaltExtensionUpdaterNotificationStateNone;
+  }
+}
+
 }  // namespace
 
 namespace cobalt {
@@ -77,6 +102,11 @@
       status +=
           ", error code is " + std::to_string(crx_update_item_.error_code);
     }
+    if (updater_notification_ext_ != nullptr) {
+      updater_notification_ext_->UpdaterState(
+          ComponentStateToCobaltExtensionUpdaterNotificationState(
+              crx_update_item_.state));
+    }
   } else {
     status = "No status available";
   }
@@ -240,17 +270,30 @@
       base::TimeDelta::FromHours(kNextUpdateCheckHours));
 }
 
+// The following methods are called by other threads than the updater_thread_.
+
 void UpdaterModule::CompareAndSwapChannelChanged(int old_value, int new_value) {
-  updater_configurator_->CompareAndSwapChannelChanged(old_value, new_value);
+  auto config = updater_configurator_;
+  if (config) config->CompareAndSwapChannelChanged(old_value, new_value);
 }
 
-// The following three methods all called by the main web module thread.
 std::string UpdaterModule::GetUpdaterChannel() const {
-  return updater_configurator_->GetChannel();
+  auto config = updater_configurator_;
+  if (!config) return "";
+
+  return config->GetChannel();
 }
 
 void UpdaterModule::SetUpdaterChannel(const std::string& updater_channel) {
-  updater_configurator_->SetChannel(updater_channel);
+  auto config = updater_configurator_;
+  if (config) config->SetChannel(updater_channel);
+}
+
+std::string UpdaterModule::GetUpdaterStatus() const {
+  auto config = updater_configurator_;
+  if (!config) return "";
+
+  return config->GetUpdaterStatus();
 }
 
 void UpdaterModule::RunUpdateCheck() {
diff --git a/src/cobalt/updater/updater_module.h b/src/cobalt/updater/updater_module.h
index f2c1d02..49b8715 100644
--- a/src/cobalt/updater/updater_module.h
+++ b/src/cobalt/updater/updater_module.h
@@ -22,6 +22,7 @@
 #include "base/memory/scoped_refptr.h"
 #include "base/message_loop/message_loop.h"
 #include "base/threading/thread.h"
+#include "cobalt/extension/updater_notification.h"
 #include "cobalt/network/network_module.h"
 #include "cobalt/updater/configurator.h"
 #include "components/prefs/pref_service.h"
@@ -52,22 +53,22 @@
 };
 
 // Mapping a component state to an updater status.
-const std::map<ComponentState, UpdaterStatus>
-  component_to_updater_status_map = {
-      {ComponentState::kNew, UpdaterStatus::kNewUpdate},
-      {ComponentState::kChecking, UpdaterStatus::kChecking},
-      {ComponentState::kCanUpdate, UpdaterStatus::kUpdateAvailable},
-      {ComponentState::kDownloadingDiff, UpdaterStatus::kDownloadingDiff},
-      {ComponentState::kDownloading, UpdaterStatus::kDownloading},
-      {ComponentState::kDownloaded, UpdaterStatus::kDownloaded},
-      {ComponentState::kUpdatingDiff, UpdaterStatus::kUpdatingDiff},
-      {ComponentState::kUpdating, UpdaterStatus::kUpdating},
-      {ComponentState::kUpdated, UpdaterStatus::kUpdated},
-      {ComponentState::kUpToDate, UpdaterStatus::kUpToDate},
-      {ComponentState::kUpdateError, UpdaterStatus::kUpdateError},
-      {ComponentState::kUninstalled, UpdaterStatus::kUninstalled},
-      {ComponentState::kRun, UpdaterStatus::kRun},
-  };
+const std::map<ComponentState, UpdaterStatus> component_to_updater_status_map =
+    {
+        {ComponentState::kNew, UpdaterStatus::kNewUpdate},
+        {ComponentState::kChecking, UpdaterStatus::kChecking},
+        {ComponentState::kCanUpdate, UpdaterStatus::kUpdateAvailable},
+        {ComponentState::kDownloadingDiff, UpdaterStatus::kDownloadingDiff},
+        {ComponentState::kDownloading, UpdaterStatus::kDownloading},
+        {ComponentState::kDownloaded, UpdaterStatus::kDownloaded},
+        {ComponentState::kUpdatingDiff, UpdaterStatus::kUpdatingDiff},
+        {ComponentState::kUpdating, UpdaterStatus::kUpdating},
+        {ComponentState::kUpdated, UpdaterStatus::kUpdated},
+        {ComponentState::kUpToDate, UpdaterStatus::kUpToDate},
+        {ComponentState::kUpdateError, UpdaterStatus::kUpdateError},
+        {ComponentState::kUninstalled, UpdaterStatus::kUninstalled},
+        {ComponentState::kRun, UpdaterStatus::kRun},
+};
 
 // Translating an updater status to a status string.
 const std::map<UpdaterStatus, const char*> updater_status_string_map = {
@@ -94,7 +95,20 @@
   Observer(scoped_refptr<update_client::UpdateClient> update_client,
            scoped_refptr<Configurator> updater_configurator)
       : update_client_(update_client),
-        updater_configurator_(updater_configurator) {}
+        updater_configurator_(updater_configurator) {
+    const CobaltExtensionUpdaterNotificationApi* updater_notification_ext =
+        static_cast<const CobaltExtensionUpdaterNotificationApi*>(
+            SbSystemGetExtension(kCobaltExtensionUpdaterNotificationName));
+    if (updater_notification_ext &&
+        SbStringCompareAll(updater_notification_ext->name,
+                           kCobaltExtensionUpdaterNotificationName) == 0 &&
+        updater_notification_ext->version >= 1) {
+      updater_notification_ext_ = updater_notification_ext;
+    } else {
+      updater_notification_ext_ = nullptr;
+    }
+  }
+
 
   // Overrides for update_client::UpdateClient::Observer.
   void OnEvent(Events event, const std::string& id) override;
@@ -103,6 +117,7 @@
   scoped_refptr<update_client::UpdateClient> update_client_;
   scoped_refptr<Configurator> updater_configurator_;
   update_client::CrxUpdateItem crx_update_item_;
+  const CobaltExtensionUpdaterNotificationApi* updater_notification_ext_;
   DISALLOW_COPY_AND_ASSIGN(Observer);
 };
 
@@ -122,15 +137,10 @@
   void SetUpdaterChannel(const std::string& updater_channel);
 
   void CompareAndSwapChannelChanged(int old_value, int new_value);
-  bool IsChannelValid(const std::string& channel) {
-    return updater_configurator_->IsChannelValid(channel);
-  }
 
   void RunUpdateCheck();
 
-  std::string GetUpdaterStatus() const {
-    return updater_configurator_->GetUpdaterStatus();
-  }
+  std::string GetUpdaterStatus() const;
 
   void ResetInstallations();
 
diff --git a/src/cobalt/version.h b/src/cobalt/version.h
index 6016189..85eae78 100644
--- a/src/cobalt/version.h
+++ b/src/cobalt/version.h
@@ -35,6 +35,6 @@
 //                  release is cut.
 //.
 
-#define COBALT_VERSION "21.master.0"
+#define COBALT_VERSION "22.master.0"
 
 #endif  // COBALT_VERSION_H_
diff --git a/src/cobalt/webdriver/keyboard.cc b/src/cobalt/webdriver/keyboard.cc
index 285dc9e..b65672a 100644
--- a/src/cobalt/webdriver/keyboard.cc
+++ b/src/cobalt/webdriver/keyboard.cc
@@ -162,6 +162,28 @@
     dom::keycode::kLwin,       // kSpecialKey_Meta
 };
 
+// Besides of selenium defined special keys, we need additional special keys
+// for media control. The following utf-8 code could be provided as "keys"
+// sent to WebDriver, and should be mapped to the corresponding keyboard code.
+enum AdditionalSpecialKey {
+  kFirstAdditionalSpecialKey = 0xF000,
+  kSpecialKey_MediaNextTrack = kFirstAdditionalSpecialKey,
+  kSpecialKey_MediaPrevTrack,
+  kSpecialKey_MediaStop,
+  kSpecialKey_MediaPlayPause,
+  kLastAdditionalSpecialKey = kSpecialKey_MediaPlayPause,
+};
+
+// Mapping from an additional special keycode to virtual keycode. Subtract
+// kFirstAdditionalSpecialKey from the integer value of the WebDriver keycode
+// and index into this table.
+const int32 additional_special_keycode_mapping[] = {
+    dom::keycode::kMediaNextTrack,  // kSpecialKey_MediaNextTrack,
+    dom::keycode::kMediaPrevTrack,  // kSpecialKey_MediaPrevTrack,
+    dom::keycode::kMediaStop,       // kSpecialKey_MediaStop,
+    dom::keycode::kMediaPlayPause,  // kSpecialKey_MediaPlayPause,
+};
+
 // Check that the mapping is the expected size.
 const int kLargestMappingIndex = kLastSpecialKey - kFirstSpecialKey;
 COMPILE_ASSERT(arraysize(special_keycode_mapping) == kLargestMappingIndex + 1,
@@ -249,6 +271,11 @@
   return webdriver_key >= kFirstSpecialKey && webdriver_key < kLastSpecialKey;
 }
 
+bool IsAdditionalSpecialKey(int webdriver_key) {
+  return webdriver_key >= kFirstAdditionalSpecialKey &&
+         webdriver_key <= kLastAdditionalSpecialKey;
+}
+
 bool IsModifierKey(int webdriver_key) {
   return webdriver_key == kSpecialKey_Alt ||
          webdriver_key == kSpecialKey_Shift ||
@@ -294,6 +321,15 @@
   return KeyboardEvent::kDomKeyLocationStandard;
 }
 
+// Returns the keycode that corresponds to this additional special key.
+int32 GetAdditionalSpecialKeycode(int32 webdriver_key) {
+  DCHECK(IsAdditionalSpecialKey(webdriver_key));
+  int index = webdriver_key - kFirstAdditionalSpecialKey;
+  DCHECK_GE(index, 0);
+  DCHECK_LT(index, arraysize(additional_special_keycode_mapping));
+  return additional_special_keycode_mapping[index];
+}
+
 class KeyTranslator {
  public:
   explicit KeyTranslator(Keyboard::KeyboardEventVector* event_vector)
@@ -327,6 +363,14 @@
         KeyLocationCode location = GetSpecialKeyLocation(webdriver_key);
         AddKeyDownEvent(key_code, char_code, location);
         AddKeyUpEvent(key_code, char_code, location);
+      } else if (IsAdditionalSpecialKey(webdriver_key)) {
+        // Else if it's an additional special key, translate to key_code and
+        // send key events.
+        int32 key_code = GetAdditionalSpecialKeycode(webdriver_key);
+        int32 char_code = 0;
+        KeyLocationCode location = KeyboardEvent::kDomKeyLocationStandard;
+        AddKeyDownEvent(key_code, char_code, location);
+        AddKeyUpEvent(key_code, char_code, location);
       } else {
         DCHECK_GE(webdriver_key, 0);
         DCHECK_LT(webdriver_key, std::numeric_limits<char>::max());
diff --git a/src/cobalt/webdriver/protocol/moveto.cc b/src/cobalt/webdriver/protocol/moveto.cc
index a8a10f9..d9eb35e 100644
--- a/src/cobalt/webdriver/protocol/moveto.cc
+++ b/src/cobalt/webdriver/protocol/moveto.cc
@@ -12,10 +12,11 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
+#include "cobalt/webdriver/protocol/moveto.h"
+
 #include <memory>
 #include <string>
-
-#include "cobalt/webdriver/protocol/moveto.h"
+#include <utility>
 
 namespace cobalt {
 namespace webdriver {
@@ -43,7 +44,7 @@
 }
 
 base::Optional<Moveto> Moveto::FromValue(const base::Value* value) {
-  const base::DictionaryValue* dictionary_value;
+  const base::DictionaryValue* dictionary_value = nullptr;
   if (!value->GetAsDictionary(&dictionary_value)) {
     return base::nullopt;
   }
@@ -53,6 +54,12 @@
   if (dictionary_value->GetString(kElementKey, &element_id) &&
       !element_id.empty()) {
     element = ElementId(element_id);
+  } else {
+    const base::Value* element_value =
+        value->FindKeyOfType(kElementKey, base::Value::Type::DICTIONARY);
+    if (element_value) {
+      element = ElementId::FromValue(element_value);
+    }
   }
 
   int xoffset_value = 0;
diff --git a/src/cobalt/webdriver/testdata/simple_test.py b/src/cobalt/webdriver/testdata/simple_test.py
index d2cea99..d470c61 100755
--- a/src/cobalt/webdriver/testdata/simple_test.py
+++ b/src/cobalt/webdriver/testdata/simple_test.py
@@ -29,6 +29,37 @@
 POST = 'POST'
 DELETE = 'DELETE'
 
+# WebDriver Response Status Codes:
+# https://github.com/SeleniumHQ/selenium/wiki/JsonWireProtocol#Response-Status-Codes
+
+RESPONSE_STATUS_CODES = {
+    0: 'Success',
+    6: 'No Such Driver',
+    7: 'No Such Element',
+    8: 'No Such Frame',
+    9: 'Unknown Command',
+    10: 'Stale Element Reference',
+    11: 'Element Not Visible',
+    12: 'Invalid Element State',
+    13: 'Unknown Error',
+    15: 'Element Is Not Selectable',
+    17: 'JavaScript Error',
+    19: 'XPath Lookup Error',
+    21: 'Timeout',
+    23: 'No Such Window',
+    24: 'Invalid Cookie Domain',
+    25: 'Unable To Set Cookie',
+    26: 'Unexpected Alert Open',
+    27: 'No Alert Open Error',
+    28: 'Script Timeout',
+    29: 'Invalid Element Coordinates',
+    30: 'IME Not Available',
+    31: 'IME Engine Activation Failed',
+    32: 'Invalid Selector',
+    33: 'Session Not Created Exception',
+    34: 'Move Target Out Of Bounds'
+}
+
 
 def Request(request_type, path='', parameters=None):
   """Perform a WebDriver JSON Wire Protocol Request.
@@ -54,8 +85,11 @@
   if request.status_code == 200:
     return result
   else:
-    print '*** Error %d: %s' % (request.status_code, result['value']['message']
-                                if isinstance(result, dict) else result)
+    print('*** Error %d %s: \"%s\"' %
+          (request.status_code, RESPONSE_STATUS_CODES[result['status']]
+           if isinstance(result, dict) else 'unknown',
+           result['value']['message'] if isinstance(result, dict) else result))
+    print('*** Error %d: %s' % (request.status_code, result))
   return None
 
 
@@ -82,8 +116,9 @@
                    request_type,
                    path=None,
                    parameters=None):
-  return SessionRequest(session_id, request_type, 'element/%s/%s' %
-                        (element_id[u'ELEMENT'], path), parameters)
+  return SessionRequest(session_id, request_type,
+                        'element/%s/%s' % (element_id[u'ELEMENT'], path),
+                        parameters)
 
 
 def GetSessionID():
@@ -129,6 +164,20 @@
       f.close()
 
 
+def GetElementScreenShot(session_id, element_id, filename):
+  """Retrieve a Screenshot.
+
+  Args:
+    session_id: Value for ':sessionId' for the request
+    filename: The filename to write the PNG screenshot to
+  """
+  request = ElementRequest(session_id, element_id, GET, 'screenshot')
+  if request:
+    with open(filename, 'w') as f:
+      f.write(binascii.a2b_base64(request['value']))
+      f.close()
+
+
 def GetActiveElement(session_id):
   return SessionRequest(session_id, POST, 'element/active')['value']
 
@@ -171,32 +220,65 @@
 
 
 def ElementFind(session_id, using, value):
-  return SessionRequest(session_id, POST, 'element',
-                        {u'using': using,
-                         u'value': value})['value']
+  result = SessionRequest(session_id, POST, 'element', {
+      u'using': using,
+      u'value': value
+  })
+  return None if result is None else result['value']
 
 
 def MouseTest():
   # Do a simple test that hovers the mouse to the right from the active
   # element, then clicks on the element of class 'trending'.
   session_id = GetSessionID()
-  active_element = GetActiveElement(session_id)
-  print 'active_element : %s' % active_element
+  try:
+    active_element = GetActiveElement(session_id)
+    print('active_element : %s' % active_element)
 
-  for xoffset in range(0, 1900, 20):
-    print 'Moveto: %s' % Moveto(session_id, active_element, xoffset, 200)
-    time.sleep(0.05)
+    for xoffset in range(0, 1900, 20):
+      print('Moveto: %s' % Moveto(session_id, active_element, xoffset, 200))
+      time.sleep(0.05)
 
-  trending_element = ElementFind(session_id, 'class name', 'trending')
-  print 'trending_element : %s' % trending_element
+    selected_element = ElementFind(session_id, 'class name',
+                                   'ytlr-tile-renderer--focused')
+    print('selected_element : %s' % selected_element)
 
-  print 'ElementClick: %s' % ElementClick(session_id, trending_element, 0)
+    print('ElementClick: %s' % ElementClick(session_id, selected_element, 0))
+
+  except KeyboardInterrupt:
+    print('Bye')
+
+  DeleteSession(session_id)
+
+
+def ElementScreenShotTest():
+  # Do a simple test that hovers the mouse to the right from the active
+  # element, then clicks on the element of class 'trending'.
+  session_id = GetSessionID()
+  try:
+    selected_element = ElementFind(session_id, 'class name',
+                                   'ytlr-tile-renderer--focused')
+    print('Selected List element : %s' % selected_element)
+
+    # Write screenshots for the selected element, until interrupted.
+    while True:
+      selected_element = ElementFind(session_id, 'class name',
+                                     'ytlr-tile-renderer--focused')
+      print('Selected List element : %s' % selected_element)
+      if selected_element is not None:
+        print('GetElementScreenShot: %s' % GetElementScreenShot(
+            session_id, selected_element,
+            'element-' + selected_element['ELEMENT'] + '.png'))
+
+  except KeyboardInterrupt:
+    print('Bye')
 
   DeleteSession(session_id)
 
 
 def main():
   MouseTest()
+  ElementScreenShotTest()
 
 
 if __name__ == '__main__':
diff --git a/src/cobalt/webdriver/window_driver.cc b/src/cobalt/webdriver/window_driver.cc
index 483b6d2..79085d1 100644
--- a/src/cobalt/webdriver/window_driver.cc
+++ b/src/cobalt/webdriver/window_driver.cc
@@ -471,9 +471,6 @@
     script_executor_ = base::AsWeakPtr(script_executor.get());
   }
 
-  DLOG(INFO) << "Executing: " << script.function_body();
-  DLOG(INFO) << "Arguments: " << script.argument_array();
-
   auto gc_prevented_params =
       ScriptExecutorParams::Create(global_environment, script.function_body(),
                                    script.argument_array(), async_timeout);
diff --git a/src/components/update_client/url_fetcher_downloader.cc b/src/components/update_client/url_fetcher_downloader.cc
index 2959a57..83c5727 100644
--- a/src/components/update_client/url_fetcher_downloader.cc
+++ b/src/components/update_client/url_fetcher_downloader.cc
@@ -6,6 +6,7 @@
 
 #include <stdint.h>
 #include <stack>
+#include <string>
 #include <utility>
 #include <vector>
 
@@ -76,8 +77,7 @@
     std::unique_ptr<CrxDownloader> successor,
     scoped_refptr<NetworkFetcherFactory> network_fetcher_factory)
     : CrxDownloader(std::move(successor)),
-      network_fetcher_factory_(network_fetcher_factory) {
-}
+      network_fetcher_factory_(network_fetcher_factory) {}
 #endif
 
 UrlFetcherDownloader::~UrlFetcherDownloader() {
@@ -230,7 +230,11 @@
   // the request and avoid overloading the server in this case.
   // is not accepting requests for the moment.
   int error = -1;
+#if defined(STARBOARD)
+  if (!file_path.empty() && response_code_ == 200 && net_error == 0) {
+#else
   if (!file_path.empty() && response_code_ == 200) {
+#endif
     DCHECK_EQ(0, net_error);
     error = 0;
   } else if (response_code_ != -1) {
diff --git a/src/docker-compose.yml b/src/docker-compose.yml
index 6e9a3f6..794cdc0 100644
--- a/src/docker-compose.yml
+++ b/src/docker-compose.yml
@@ -99,7 +99,7 @@
       context: ./docker/linux
       dockerfile: stub/gn/Dockerfile
     image: cobalt-build-linux-stub-gn
-    depends_on: [ build-base ]
+    depends_on: [ stub ]
     environment:
       <<: *shared-build-env
       PLATFORM: stub
@@ -117,6 +117,18 @@
       PLATFORM: linux-x64x11
       CONFIG: ${CONFIG:-debug}
 
+  linux-x64x11-gn:
+    <<: *build-common-definitions
+    build:
+      context: ./docker/linux
+      dockerfile: linux-x64x11/gn/Dockerfile
+    image: cobalt-build-linux-gn
+    depends_on: [ linux-x64x11 ]
+    environment:
+      <<: *shared-build-env
+      PLATFORM: linux-x64x11
+      CONFIG: ${CONFIG:-debug}
+
   linux-x64x11-xenial:
     <<: *common-definitions
     <<: *build-volumes
@@ -202,7 +214,7 @@
     image: cobalt-build-raspi
     environment:
       <<: *shared-build-env
-      PLATFORM:
+      PLATFORM: ${PLATFORM:-raspi-2}
       CONFIG: ${CONFIG:-debug}
 
   # Define common build container for Evergreen
diff --git a/src/docker/linux/linux-x64x11/Dockerfile b/src/docker/linux/linux-x64x11/Dockerfile
index a3da610..3e8c8dc 100644
--- a/src/docker/linux/linux-x64x11/Dockerfile
+++ b/src/docker/linux/linux-x64x11/Dockerfile
@@ -26,6 +26,7 @@
         libasound2-dev \
         libxrender-dev \
         libxcomposite-dev \
+        libxi-dev \
     && apt-get clean autoclean \
     && apt-get autoremove -y --purge \
     && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* \
diff --git a/src/docker/linux/linux-x64x11/gn/Dockerfile b/src/docker/linux/linux-x64x11/gn/Dockerfile
new file mode 100644
index 0000000..05604af
--- /dev/null
+++ b/src/docker/linux/linux-x64x11/gn/Dockerfile
@@ -0,0 +1,4 @@
+FROM cobalt-build-linux
+
+CMD gn gen ${OUTDIR}/${PLATFORM}_${CONFIG} --args="target_platform=\"${PLATFORM}\" build_type=\"${CONFIG}\"" && \
+    ninja -j ${NINJA_PARALLEL} -C ${OUTDIR}/${PLATFORM}_${CONFIG}
diff --git a/src/docker/linux/raspi/Dockerfile b/src/docker/linux/raspi/Dockerfile
index e44471a..c05c2e8 100644
--- a/src/docker/linux/raspi/Dockerfile
+++ b/src/docker/linux/raspi/Dockerfile
@@ -15,7 +15,7 @@
 FROM cobalt-build-base
 
 ARG raspi_home=/root/raspi-home
-ARG raspi_sysroot=raspbian_lite_2017-07-05_sysroot.tar.xz
+ARG raspi_tools=cobalt_raspi_tools.tar.bz2
 
 # Required by the gyp build system.
 ENV RASPI_HOME=${raspi_home}
@@ -23,21 +23,22 @@
 RUN apt update -qqy \
     && apt install -qqy --no-install-recommends \
         g++-multilib \
-        xz-utils \
+        bzip2 \
     && apt-get clean autoclean \
     && apt-get autoremove -y --purge \
     && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* \
     && rm -rf /var/lib/{apt,dpkg,cache,log} \
     && echo "Done"
 
-RUN mkdir -p ${raspi_home}/tools \
-    && git clone https://github.com/raspberrypi/tools.git ${raspi_home}/tools
-
-RUN cd ${raspi_home} \
+# Get the combined toolchains package and trim the unneeded older versions
+RUN cd /tmp \
     && curl --silent -O -J \
-    "https://storage.googleapis.com/cobalt-static-storage/${raspi_sysroot}"
-
-RUN cd ${raspi_home} && tar Jxpvf ${raspi_sysroot}
+    "https://storage.googleapis.com/cobalt-static-storage/${raspi_tools}" \
+    && mkdir -p ${raspi_home} \
+    && cd ${raspi_home} \
+    && tar xjvf /tmp/${raspi_tools} \
+    && rm -rf sysroot tools/arm-bcm2708/arm-* tools/.git \
+    && rm /tmp/${raspi_tools}
 
 CMD /code/cobalt/build/gyp_cobalt -v -C ${CONFIG} ${PLATFORM} \
     && ninja -v -j ${NINJA_PARALLEL} -C ${OUTDIR}/${PLATFORM}_${CONFIG} ${TARGET:-cobalt_deploy}
diff --git a/src/docker/linux/stub/gn/Dockerfile b/src/docker/linux/stub/gn/Dockerfile
index 8332e58..3f4df9a 100644
--- a/src/docker/linux/stub/gn/Dockerfile
+++ b/src/docker/linux/stub/gn/Dockerfile
@@ -1,4 +1,4 @@
 FROM cobalt-build-linux-stub
 
-CMD gn gen ${OUTDIR}/${PLATFORM}_${CONFIG} --args="target_os=\"${PLATFORM}\" build_type=\"${CONFIG}\"" && \
+CMD gn gen ${OUTDIR}/${PLATFORM}_${CONFIG} --args="target_platform=\"${PLATFORM}\" build_type=\"${CONFIG}\"" && \
     ninja -v -C ${OUTDIR}/${PLATFORM}_${CONFIG}
diff --git a/src/nb/thread_collision_warner.h b/src/nb/thread_collision_warner.h
index 0737148..e0f1e34 100644
--- a/src/nb/thread_collision_warner.h
+++ b/src/nb/thread_collision_warner.h
@@ -15,7 +15,7 @@
 //
 //          In this case the macro DFAKE_SCOPED_LOCK has to be
 //          used, it checks that if a thread is inside the push/pop then
-//          noone else is still inside the pop/push
+//          no one else is still inside the pop/push
 //
 // class NonThreadSafeQueue {
 //  public:
@@ -34,7 +34,7 @@
 //
 //          In this case the macro DFAKE_SCOPED_RECURSIVE_LOCK
 //          has to be used, it checks that if a thread is inside the push/pop
-//          then noone else is still inside the pop/push
+//          then no one else is still inside the pop/push
 //
 // class NonThreadSafeQueue {
 //  public:
@@ -93,7 +93,7 @@
 //   DFAKE_MUTEX(shareable_section_);
 // };
 
-#if !defined(NDEBUG)
+#if !defined(NDEBUG) || defined(DCHECK_ALWAYS_ON)
 
 // Defines a class member that acts like a mutex. It is used only as a
 // verification tool.
@@ -138,7 +138,7 @@
 class ThreadCollisionWarner {
  public:
   // The parameter asserter is there only for test purpose
-  ThreadCollisionWarner(AsserterBase* asserter = new DCheckAsserter())
+  explicit ThreadCollisionWarner(AsserterBase* asserter = new DCheckAsserter())
       : valid_thread_id_(0), counter_(0), asserter_(asserter) {}
 
   ~ThreadCollisionWarner() { delete asserter_; }
diff --git a/src/net/url_request/url_fetcher_core.cc b/src/net/url_request/url_fetcher_core.cc
index f23ee8b..749cd00 100644
--- a/src/net/url_request/url_fetcher_core.cc
+++ b/src/net/url_request/url_fetcher_core.cc
@@ -137,16 +137,23 @@
       total_response_bytes_(-1),
       traffic_annotation_(traffic_annotation) {
   CHECK(original_url_.is_valid());
+  DCHECK(delegate_);
 
+  const base::CommandLine& command_line =
+      *base::CommandLine::ForCurrentProcess();
   const CobaltExtensionUrlFetcherObserverApi* observer_extension =
       static_cast<const CobaltExtensionUrlFetcherObserverApi*>(
           SbSystemGetExtension(kCobaltExtensionUrlFetcherObserverName));
-  if (observer_extension &&
+  if (command_line.HasSwitch(URL_FETCHER_COMMAND_LINE_SWITCH) &&
+      observer_extension &&
       SbStringCompareAll(observer_extension->name,
                          kCobaltExtensionUrlFetcherObserverName) == 0 &&
       observer_extension->version >= 1) {
     observer_extension_ = observer_extension;
-    observer_extension_->FetcherCreated(original_url_.spec().c_str());
+    observer_extension_->FetcherCreated(
+        original_url_.spec()
+            .substr(0, URL_FETCHER_OBSERVER_MAX_URL_SIZE)
+            .c_str());
   } else {
     observer_extension_ = nullptr;
   }
@@ -612,7 +619,10 @@
 
 URLFetcherCore::~URLFetcherCore() {
   if (observer_extension_ != nullptr) {
-    observer_extension_->FetcherDestroyed(original_url_.spec().c_str());
+    observer_extension_->FetcherDestroyed(
+        original_url_.spec()
+            .substr(0, URL_FETCHER_OBSERVER_MAX_URL_SIZE)
+            .c_str());
   }
   // |request_| should be NULL. If not, it's unsafe to delete it here since we
   // may not be on the IO thread.
@@ -643,7 +653,10 @@
   DCHECK(network_task_runner_->BelongsToCurrentThread());
 
   if (observer_extension_ != nullptr) {
-    observer_extension_->StartURLRequest(original_url_.spec().c_str());
+    observer_extension_->StartURLRequest(
+        original_url_.spec()
+            .substr(0, URL_FETCHER_OBSERVER_MAX_URL_SIZE)
+            .c_str());
   }
   if (was_cancelled_) {
     // Since StartURLRequest() is posted as a *delayed* task, it may
@@ -1116,8 +1129,10 @@
 #if defined(STARBOARD)
 void URLFetcherCore::GetLoadTimingInfo(
     const net::LoadTimingInfo& timing_info) {
-  DCHECK(delegate_);
-  delegate_->ReportLoadTimingInfo(timing_info);
+  // Check if the URLFetcherCore has been stopped before.
+  if (delegate_) {
+    delegate_->ReportLoadTimingInfo(timing_info);
+  }
 }
 #endif  // defined(STARBOARD)
 
diff --git a/src/starboard/BUILD.gn b/src/starboard/BUILD.gn
index cec7a29..b421b3e 100644
--- a/src/starboard/BUILD.gn
+++ b/src/starboard/BUILD.gn
@@ -17,6 +17,7 @@
 
   deps = [
     ":starboard",
+    "//starboard/client_porting/cwrappers:cwrappers_test",
     "//starboard/client_porting/eztime",
     "//starboard/client_porting/eztime:eztime_test",
     "//starboard/client_porting/icu_init",
@@ -29,7 +30,7 @@
   ]
 
   if (gl_type != "none") {
-    deps += [ "//starboard/examples/glclear:starboard_gclear_example" ]
+    deps += [ "//starboard/examples/glclear:starboard_glclear_example" ]
   }
 
   if (has_platform_targets) {
@@ -42,15 +43,33 @@
     deps += [ ":starboard_platform_tests" ]
   }
 
+  if (sb_filter_based_player) {
+    deps += [
+      "//starboard/shared/starboard/player/filter/testing:player_filter_tests",
+      "//starboard/shared/starboard/player/filter/tools:audio_dmp_player",
+    ]
+  }
+
   if (sb_enable_benchmark) {
     deps += [ "//starboard/benchmark" ]
   }
+
+  if (!sb_is_evergreen) {
+    deps += [ "//third_party/lz4_lib:lz4" ]
+
+    if (sb_is_evergreen_compatible) {
+      deps += [
+        "//third_party/crashpad/client",
+        "//third_party/crashpad/handler",
+      ]
+    }
+  }
 }
 
 group("starboard") {
   public_deps = [ ":starboard_headers_only" ]
 
-  if (sb_evergreen) {
+  if (sb_is_evergreen) {
     public_deps += []
   } else {
     public_deps += [
@@ -60,9 +79,8 @@
       "//starboard/common",
     ]
 
-    if (sb_evergreen_compatible) {
-      # TODO(andrewsavage): This should not be stubbed out
-      public_deps += [ "//third_party/crashpad/wrapper:wrapper_stub" ]
+    if (sb_is_evergreen_compatible) {
+      public_deps += [ "//third_party/crashpad/wrapper" ]
     } else {
       public_deps += [ "//third_party/crashpad/wrapper:wrapper_stub" ]
     }
@@ -76,7 +94,7 @@
   }
 }
 
-source_set("starboard_headers_only") {
+static_library("starboard_headers_only") {
   # We include starboard/common/log.h in starboard_headers, but some common
   # files include starboard headers.
   check_includes = false
diff --git a/src/starboard/CHANGELOG.md b/src/starboard/CHANGELOG.md
index 40aab86..898bb96 100644
--- a/src/starboard/CHANGELOG.md
+++ b/src/starboard/CHANGELOG.md
@@ -14,8 +14,96 @@
 can be found in the comments of the "Experimental Feature Defines" section of
 [configuration.h](configuration.h).
 
+## Version 13
+### Changed lifecycle events to add support for a concealed state.
+
+* The *Pause* event is renamed to *Blur*.
+* The *Unpause* event is renamed to *Focus*.
+* The *Suspend* event is replaced by *Conceal* and *Freeze*.
+* The *Resume* event is replaced by *Unfreeze* and *Reveal*.
+
+Most platforms should only need to replace 'Pause' with 'Blur', 'Unpause' with
+'Focus', 'Suspend' with 'Freeze', and 'Resume' with 'Reveal'.
+
+Since there is no longer a special *Preloading* state, applications should no
+longer use the *Start* event when a preloaded application is brought to the
+foreground. Instead, the same event(s) used for backgrounded applications
+(*Concealed* or *Frozen*) should be used.
+
+See `cobalt/doc/lifecycle.md` for more details.
+
+### Added network connectivity events and function.
+
+Added `kSbEventTypeOsNetworkDisconnected` and `kSbEventTypeOsNetworkConnected`
+so the platform can provide hints to the application of network connectivity
+changes.
+
+Added function `SbSystemNetworkIsDisconnected()` to allow the application to
+query the network connectivity status.
+
+### Added an event for date/time configuration changes.
+
+If the platform detects a change in the date/time configuration (e.g. timezone
+change), then it should send the new `kSbEventDateTimeConfigurationChanged`
+event.
+
+### Deprected speech recognizer API.
+
+The `starboard/speech_recognizer.h` APIs have been deprecated -- even for
+platforms that define SB_HAS(SPEECH_RECOGNIZER). Instead, the application is
+expected to use the `starboard/microphone.h` APIs.
+
+### Updated platform-based UI navigation API.
+
+Added functions to direct the platform's UI engine to maintain focus on an item
+for a specific time before allowing focus to change. Also added a function to
+perform a batch of UI updates so that UI changes are atomic.
+
+Functionality for a few existing APIs were clarified without changing the API
+itself.
+
+### Fixed spelling on accessibility events.
+
+Changed `kSbEventTypeAccessiblityTextToSpeechSettingsChanged` to
+`kSbEventTypeAccessibilityTextToSpeechSettingsChanged`.
+
+Changed `kSbEventTypeAccessiblitySettingsChanged` to
+`kSbEventTypeAccessibilitySettingsChanged`.
+
+### Deprecated some starboard macros.
+
+The following macros have been removed:
+
+* `SB_TRUE`
+* `SB_FALSE`
+* `SB_OVERRIDE`
+* `SB_DISALLOW_COPY_AND_ASSIGN`
+
+### Deprecated some standalone starboard functions.
+
+The following starboard functions have been removed:
+
+* `SbCharacterIsAlphanumeric`
+* `SbCharacterIsDigit`
+* `SbCharacterIsHexDigit`
+* `SbCharacterIsSpace`
+* `SbCharacterIsUpper`
+* `SbCharacterToLower`
+* `SbCharacterToUpper`
+* `SbDoubleAbsolute`
+* `SbDoubleExponent`
+* `SbDoubleFloor`
+* `SbDoubleIsFinite`
+* `SbDoubleIsNan`
+* `SbStringParseDouble`
+* `SbStringParseSignedInteger`
+* `SbStringParseUInt64`
+* `SbStringParseUnsignedInteger`
+* `SbSystemBinarySearch`
+* `SbSystemSort`
+
 ## Version 12
-###  Add support for platform-based UI navigation.
+### Add support for platform-based UI navigation.
 
 The system can be disabled by implementing the function
 `SbUiNavGetInterface()` to return `false`.  Platform-based UI navigation
diff --git a/src/starboard/android/apk/app/src/main/java/dev/cobalt/coat/StarboardBridge.java b/src/starboard/android/apk/app/src/main/java/dev/cobalt/coat/StarboardBridge.java
index 55254ac..495b761 100644
--- a/src/starboard/android/apk/app/src/main/java/dev/cobalt/coat/StarboardBridge.java
+++ b/src/starboard/android/apk/app/src/main/java/dev/cobalt/coat/StarboardBridge.java
@@ -66,7 +66,6 @@
   private UserAuthorizer userAuthorizer;
   private AudioOutputManager audioOutputManager;
   private CobaltMediaSession cobaltMediaSession;
-  private VoiceRecognizer voiceRecognizer;
   private AudioPermissionRequester audioPermissionRequester;
   private KeyboardEditor keyboardEditor;
   private NetworkStatus networkStatus;
@@ -119,8 +118,6 @@
     this.cobaltMediaSession =
         new CobaltMediaSession(appContext, activityHolder, audioOutputManager);
     this.audioPermissionRequester = new AudioPermissionRequester(appContext, activityHolder);
-    this.voiceRecognizer =
-        new VoiceRecognizer(appContext, activityHolder, audioPermissionRequester);
     this.networkStatus = new NetworkStatus(appContext);
   }
 
@@ -565,13 +562,6 @@
     return keyboardEditor;
   }
 
-  /** Returns Java layer implementation for AndroidVoiceRecognizer */
-  @SuppressWarnings("unused")
-  @UsedByNative
-  VoiceRecognizer getVoiceRecognizer() {
-    return voiceRecognizer;
-  }
-
   /** Returns Java layer implementation for AudioPermissionRequester */
   @SuppressWarnings("unused")
   @UsedByNative
diff --git a/src/starboard/android/apk/app/src/main/java/dev/cobalt/coat/VoiceRecognizer.java b/src/starboard/android/apk/app/src/main/java/dev/cobalt/coat/VoiceRecognizer.java
deleted file mode 100644
index 799aef9..0000000
--- a/src/starboard/android/apk/app/src/main/java/dev/cobalt/coat/VoiceRecognizer.java
+++ /dev/null
@@ -1,202 +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.
-
-package dev.cobalt.coat;
-
-import static dev.cobalt.util.Log.TAG;
-
-import android.app.Activity;
-import android.content.Context;
-import android.content.Intent;
-import android.os.Bundle;
-import android.os.Handler;
-import android.os.Looper;
-import android.speech.RecognitionListener;
-import android.speech.RecognizerIntent;
-import android.speech.SpeechRecognizer;
-import dev.cobalt.util.Holder;
-import dev.cobalt.util.Log;
-import dev.cobalt.util.UsedByNative;
-import java.util.ArrayList;
-
-/**
- * This class uses Android's SpeechRecognizer to perform speech recognition. Using Android's
- * platform recognizer offers several benefits such as good quality and good local fallback when no
- * data connection is available.
- */
-public class VoiceRecognizer {
-  private final Context context;
-  private final Holder<Activity> activityHolder;
-  private final Handler mainHandler = new Handler(Looper.getMainLooper());
-  private final AudioPermissionRequester audioPermissionRequester;
-  private SpeechRecognizer speechRecognizer;
-
-  // Native pointer to C++ SbSpeechRecognizerImpl.
-  private long nativeSpeechRecognizerImpl;
-
-  // Remember if we are using continuous recognition.
-  private boolean continuous;
-  private boolean interimResults;
-  private int maxAlternatives;
-
-  // Internal class to handle events from Android's SpeechRecognizer and route
-  // them to native.
-  class Listener implements RecognitionListener {
-    @Override
-    public void onBeginningOfSpeech() {
-      nativeOnSpeechDetected(nativeSpeechRecognizerImpl, true);
-    }
-
-    @Override
-    public void onBufferReceived(byte[] buffer) {}
-
-    @Override
-    public void onEndOfSpeech() {
-      nativeOnSpeechDetected(nativeSpeechRecognizerImpl, false);
-    }
-
-    @Override
-    public void onError(int error) {
-      nativeOnError(nativeSpeechRecognizerImpl, error);
-      reset();
-    }
-
-    @Override
-    public void onEvent(int eventType, Bundle params) {}
-
-    @Override
-    public void onPartialResults(Bundle bundle) {
-      handleResults(bundle, false);
-    }
-
-    @Override
-    public void onReadyForSpeech(Bundle params) {}
-
-    @Override
-    public void onResults(Bundle bundle) {
-      handleResults(bundle, true);
-      reset();
-    }
-
-    @Override
-    public void onRmsChanged(float rmsdB) {}
-
-    private void handleResults(Bundle bundle, boolean isFinal) {
-      ArrayList<String> list = bundle.getStringArrayList(SpeechRecognizer.RESULTS_RECOGNITION);
-      String[] results = list.toArray(new String[list.size()]);
-      float[] scores = bundle.getFloatArray(SpeechRecognizer.CONFIDENCE_SCORES);
-      nativeOnResults(nativeSpeechRecognizerImpl, results, scores, isFinal);
-    }
-  };
-
-  public VoiceRecognizer(
-      Context context,
-      Holder<Activity> activityHolder,
-      AudioPermissionRequester audioPermissionRequester) {
-    this.context = context;
-    this.activityHolder = activityHolder;
-    this.audioPermissionRequester = audioPermissionRequester;
-  }
-
-  @SuppressWarnings("unused")
-  @UsedByNative
-  public void startRecognition(
-      boolean continuous,
-      boolean interimResults,
-      int maxAlternatives,
-      long nativeSpeechRecognizer) {
-    this.continuous = continuous;
-    this.interimResults = interimResults;
-    this.maxAlternatives = maxAlternatives;
-    this.nativeSpeechRecognizerImpl = nativeSpeechRecognizer;
-
-    if (this.audioPermissionRequester.requestRecordAudioPermission(
-        this.nativeSpeechRecognizerImpl) &&
-        SpeechRecognizer.isRecognitionAvailable(context)) {
-      startRecognitionInternal();
-    } else {
-      mainHandler.post(
-          new Runnable() {
-            @Override
-            public void run() {
-              nativeOnError(
-                  nativeSpeechRecognizerImpl, SpeechRecognizer.ERROR_INSUFFICIENT_PERMISSIONS);
-            }
-          });
-    }
-  }
-
-  @SuppressWarnings("unused")
-  @UsedByNative
-  public void stopRecognition() {
-    Runnable runnable =
-        new Runnable() {
-          @Override
-          public void run() {
-            if (Looper.myLooper() != Looper.getMainLooper()) {
-              throw new RuntimeException("Must be called in main thread.");
-            }
-            if (speechRecognizer == null) {
-              return;
-            }
-            reset();
-          }
-        };
-    mainHandler.post(runnable);
-  }
-
-  private void startRecognitionInternal() {
-    Runnable runnable =
-        new Runnable() {
-          @Override
-          public void run() {
-            if (Looper.myLooper() != Looper.getMainLooper()) {
-              throw new RuntimeException("Must be called in main thread.");
-            }
-            speechRecognizer = SpeechRecognizer.createSpeechRecognizer(context);
-            speechRecognizer.setRecognitionListener(new Listener());
-            Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
-            intent.putExtra(
-                RecognizerIntent.EXTRA_LANGUAGE_MODEL, RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);
-            intent.putExtra("android.speech.extra.DICTATION_MODE", continuous);
-            intent.putExtra(RecognizerIntent.EXTRA_PARTIAL_RESULTS, interimResults);
-            intent.putExtra(RecognizerIntent.EXTRA_MAX_RESULTS, maxAlternatives);
-            speechRecognizer.startListening(intent);
-          }
-        };
-    mainHandler.post(runnable);
-  }
-
-  private void reset() {
-    try {
-      speechRecognizer.destroy();
-    } catch (IllegalArgumentException ex) {
-      // Soft handling
-      Log.e(TAG, "Error in speechRecognizer.destroy()!", ex);
-    }
-    speechRecognizer = null;
-
-    nativeSpeechRecognizerImpl = 0;
-    continuous = false;
-    interimResults = false;
-    maxAlternatives = 1;
-  }
-
-  private native void nativeOnSpeechDetected(long nativeSpeechRecognizerImpl, boolean detected);
-
-  private native void nativeOnError(long nativeSpeechRecognizerImpl, int error);
-
-  private native void nativeOnResults(
-      long nativeSpeechRecognizerImpl, String[] results, float[] confidences, boolean isFinal);
-}
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 37f8b0b..eaeb513 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
@@ -125,7 +125,7 @@
 
   public void setLifecycleCallback(LifecycleCallback lifecycleCallback) {
     this.lifecycleCallback = lifecycleCallback;
-    if (lifecycleCallback != null) {
+    if (lifecycleCallback != null && this.mediaSession != null) {
       lifecycleCallback.onMediaSessionLifecycle(
           this.mediaSession.isActive(), this.mediaSession.getSessionToken());
     }
diff --git a/src/starboard/android/apk/build.id b/src/starboard/android/apk/build.id
index da7d572..258e9df 100644
--- a/src/starboard/android/apk/build.id
+++ b/src/starboard/android/apk/build.id
@@ -1 +1 @@
-301684
\ No newline at end of file
+302142
\ No newline at end of file
diff --git a/src/starboard/android/apk/cobalt-gradle.sh b/src/starboard/android/apk/cobalt-gradle.sh
index 156c8f2..a5b430f 100755
--- a/src/starboard/android/apk/cobalt-gradle.sh
+++ b/src/starboard/android/apk/cobalt-gradle.sh
@@ -54,7 +54,7 @@
 # Allow parallel gradle builds, as defined by a COBALT_GRADLE_BUILD_COUNT envvar
 # or default to 1 if that's not set (so buildbot only runs 1 gradle at a time).
 BUCKETS=${COBALT_GRADLE_BUILD_COUNT:-1}
-if [ "$BUCKETS"==1 ]; then
+if [ "$BUCKETS" -eq 1 ]; then
   echo "Gradle daemon and parallel gradle disabled for Cobalt build"
   GRADLE_ARGS+=(
     "-Dorg.gradle.parallel=false"
diff --git a/src/starboard/android/shared/configuration_public.h b/src/starboard/android/shared/configuration_public.h
index 69d12af..c4c448e 100644
--- a/src/starboard/android/shared/configuration_public.h
+++ b/src/starboard/android/shared/configuration_public.h
@@ -155,9 +155,6 @@
 
 // --- Platform Specific Configuration ---------------------------------------
 
-// Enable SB_HAS_CONCEALED_STATE support.
-#define SB_HAS_CONCEALED_STATE 1
-
 // --- Platform Specific Audits ----------------------------------------------
 
 #if !defined(__GNUC__)
diff --git a/src/starboard/android/shared/gyp_configuration.py b/src/starboard/android/shared/gyp_configuration.py
index 7212b55..4a8fd94 100644
--- a/src/starboard/android/shared/gyp_configuration.py
+++ b/src/starboard/android/shared/gyp_configuration.py
@@ -293,6 +293,9 @@
           # Android currently does not support multi-video playback, which
           # the following tests depend upon.
           'VideoDecoderTests/VideoDecoderTest.ThreeMoreDecoders/*',
+
+          # The video pipeline will hang if it doesn't receive any input.
+          'PlayerComponentsTests/PlayerComponentsTest.EOSWithoutInput/*',
       ],
       'nplb': [
           # This test is failing because localhost is not defined for IPv6 in
diff --git a/src/starboard/android/shared/jni_env_ext.cc b/src/starboard/android/shared/jni_env_ext.cc
index a42359e..06535d5 100644
--- a/src/starboard/android/shared/jni_env_ext.cc
+++ b/src/starboard/android/shared/jni_env_ext.cc
@@ -40,6 +40,8 @@
 namespace android {
 namespace shared {
 
+// Warning: use __android_log_write for logging in this file.
+
 // static
 void JniEnvExt::Initialize(JniEnvExt* env, jobject starboard_bridge) {
   SB_DCHECK(g_tls_key == kSbThreadLocalKeyInvalid);
@@ -49,10 +51,10 @@
   env->GetJavaVM(&g_vm);
 
   SB_DCHECK(g_application_class_loader == NULL);
-  g_application_class_loader = env->ConvertLocalRefToGlobalRef(
-      env->CallObjectMethodOrAbort(env->GetObjectClass(starboard_bridge),
-                                   "getClassLoader",
-                                   "()Ljava/lang/ClassLoader;"));
+  g_application_class_loader =
+      env->ConvertLocalRefToGlobalRef(env->CallObjectMethodOrAbort(
+          env->GetObjectClass(starboard_bridge), "getClassLoader",
+          "()Ljava/lang/ClassLoader;"));
 
   SB_DCHECK(g_starboard_bridge == NULL);
   g_starboard_bridge = env->NewGlobalRef(starboard_bridge);
@@ -75,7 +77,7 @@
     // Tell the JVM our thread name so it doesn't change it.
     char thread_name[16];
     SbThreadGetName(thread_name, sizeof(thread_name));
-    JavaVMAttachArgs args { JNI_VERSION_1_6, thread_name, NULL };
+    JavaVMAttachArgs args{JNI_VERSION_1_6, thread_name, NULL};
     g_vm->AttachCurrentThread(&env, &args);
     // We don't use the value, but any non-NULL means we have to detach.
     SbThreadSetLocalValue(g_tls_key, env);
diff --git a/src/starboard/android/shared/jni_env_ext.h b/src/starboard/android/shared/jni_env_ext.h
index 24ce327..5a9bde9 100644
--- a/src/starboard/android/shared/jni_env_ext.h
+++ b/src/starboard/android/shared/jni_env_ext.h
@@ -40,6 +40,9 @@
 // instances in a single step, with even simpler methods to call Java methods on
 // the StarboardBridge.
 struct JniEnvExt : public JNIEnv {
+  // Warning: use __android_log_write for logging in this file to avoid infinite
+  // recursion.
+
   // One-time initialization to be called before starting the application.
   static void Initialize(JniEnvExt* jni_env, jobject starboard_bridge);
 
diff --git a/src/starboard/android/shared/model_year_test.cc b/src/starboard/android/shared/model_year_test.cc
new file mode 100644
index 0000000..1197242
--- /dev/null
+++ b/src/starboard/android/shared/model_year_test.cc
@@ -0,0 +1,43 @@
+// Copyright 2021 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 <string>
+
+#include "testing/gtest/include/gtest/gtest.h"
+
+namespace starboard {
+namespace android {
+namespace shared {
+namespace {
+
+TEST(ModelYearTest, YearIsFourDigitsOrUnknown) {
+  const size_t kValueSize = 1024;
+  char value[kValueSize] = {0};
+  SbMemorySet(value, 0xCD, kValueSize);
+  bool result =
+      SbSystemGetProperty(kSbSystemPropertyModelYear, value, kValueSize);
+  SB_DCHECK(result);
+  std::string year = value;
+  if (year == "unknown") {
+    return;
+  }
+  EXPECT_EQ(4, year.length());
+  EXPECT_EQ(std::string::npos, year.find_first_not_of("0123456789"));
+  EXPECT_EQ("20", year.substr(0, 2));
+}
+
+}  // namespace
+}  // namespace shared
+}  // namespace android
+}  // namespace starboard
diff --git a/src/starboard/android/shared/speech_recognizer_impl.cc b/src/starboard/android/shared/speech_recognizer_impl.cc
deleted file mode 100644
index bb6653b..0000000
--- a/src/starboard/android/shared/speech_recognizer_impl.cc
+++ /dev/null
@@ -1,331 +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 "starboard/shared/starboard/speech_recognizer/speech_recognizer_internal.h"
-
-#include <android/native_activity.h>
-#include <jni.h>
-
-#include <limits>
-#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/string.h"
-#include "starboard/shared/starboard/thread_checker.h"
-
-namespace starboard {
-namespace android {
-namespace shared {
-
-namespace {
-// Android speech recognizer error.
-// Reference:
-// https://developer.android.com/reference/android/speech/SpeechRecognizer.html
-enum SpeechRecognizerErrorCode {
-  kErrorNetworkTimeout = 1,
-  kErrorNetwork = 2,
-  kErrorAudio = 3,
-  kErrorService = 4,
-  kErrorClient = 5,
-  kErrorSpeechTimeout = 6,
-  kErrorNoMatch = 7,
-  kErrorRecognizerBusy = 8,
-  kErrorInsufficientPermissions = 9,
-};
-}  // namespace
-
-class SbSpeechRecognizerImpl : public SbSpeechRecognizerPrivate {
- public:
-  explicit SbSpeechRecognizerImpl(const SbSpeechRecognizerHandler* handler);
-  ~SbSpeechRecognizerImpl();
-
-  // Called from constructor's thread.
-  bool Start(const SbSpeechConfiguration* configuration) override;
-  void Stop() override;
-  void Cancel() override;
-
-  // Called from Android's UI thread.
-  void OnSpeechDetected(bool detected);
-  void OnError(int error);
-  void OnResults(const std::vector<std::string>& results,
-                 const std::vector<float>& confidences,
-                 bool is_final);
-
- private:
-  SbSpeechRecognizerHandler handler_;
-  jobject j_voice_recognizer_;
-  bool is_started_;
-
-  ::starboard::shared::starboard::ThreadChecker thread_checker_;
-};
-
-SbSpeechRecognizerImpl::SbSpeechRecognizerImpl(
-    const SbSpeechRecognizerHandler* handler)
-    : handler_(*handler), is_started_(false) {
-  JniEnvExt* env = JniEnvExt::Get();
-  jobject local_ref = env->CallStarboardObjectMethodOrAbort(
-      "getVoiceRecognizer", "()Ldev/cobalt/coat/VoiceRecognizer;");
-  j_voice_recognizer_ = env->ConvertLocalRefToGlobalRef(local_ref);
-}
-
-SbSpeechRecognizerImpl::~SbSpeechRecognizerImpl() {
-  SB_DCHECK(thread_checker_.CalledOnValidThread());
-
-  Cancel();
-
-  JniEnvExt* env = JniEnvExt::Get();
-  env->DeleteGlobalRef(j_voice_recognizer_);
-}
-
-bool SbSpeechRecognizerImpl::Start(const SbSpeechConfiguration* configuration) {
-  SB_DCHECK(thread_checker_.CalledOnValidThread());
-  SB_DCHECK(configuration);
-
-  if (is_started_) {
-    return false;
-  }
-
-  JniEnvExt* env = JniEnvExt::Get();
-  env->CallVoidMethodOrAbort(
-      j_voice_recognizer_, "startRecognition", "(ZZIJ)V",
-      configuration->continuous, configuration->interim_results,
-      configuration->max_alternatives, reinterpret_cast<jlong>(this));
-
-  is_started_ = true;
-  return true;
-}
-
-void SbSpeechRecognizerImpl::Stop() {
-  SB_DCHECK(thread_checker_.CalledOnValidThread());
-
-  if (!is_started_) {
-    return;
-  }
-
-  JniEnvExt* env = JniEnvExt::Get();
-  env->CallVoidMethodOrAbort(j_voice_recognizer_, "stopRecognition", "()V");
-
-  is_started_ = false;
-}
-
-void SbSpeechRecognizerImpl::Cancel() {
-  Stop();
-}
-
-void SbSpeechRecognizerImpl::OnSpeechDetected(bool detected) {
-  // Called from Android's UI thread instead of constructor's thread.
-  SB_DCHECK(!thread_checker_.CalledOnValidThread());
-
-  handler_.on_speech_detected(handler_.context, detected);
-}
-
-void SbSpeechRecognizerImpl::OnError(int error) {
-  // Called from Android's UI thread instead of constructor's thread.
-  SB_DCHECK(!thread_checker_.CalledOnValidThread());
-
-  SbSpeechRecognizerError recognizer_error;
-  switch (error) {
-    case kErrorNetworkTimeout:
-      recognizer_error = kSbNetworkError;
-      break;
-    case kErrorNetwork:
-      recognizer_error = kSbNetworkError;
-      break;
-    case kErrorAudio:
-      recognizer_error = kSbAudioCaptureError;
-      break;
-    case kErrorService:
-      recognizer_error = kSbNetworkError;
-      break;
-    case kErrorClient:
-      recognizer_error = kSbAborted;
-      break;
-    case kErrorSpeechTimeout:
-      recognizer_error = kSbNoSpeechError;
-      break;
-    case kErrorRecognizerBusy:
-    case kErrorInsufficientPermissions:
-      recognizer_error = kSbNotAllowed;
-      break;
-    case kErrorNoMatch:
-      // Maybe keep listening until found a match or time-out triggered by
-      // client.
-      recognizer_error = kSbNoSpeechError;
-      break;
-  }
-  handler_.on_error(handler_.context, recognizer_error);
-}
-
-void SbSpeechRecognizerImpl::OnResults(const std::vector<std::string>& results,
-                                       const std::vector<float>& confidences,
-                                       bool is_final) {
-  // Called from Android's UI thread instead of constructor's thread.
-  SB_DCHECK(!thread_checker_.CalledOnValidThread());
-
-  bool has_confidence = (confidences.size() != 0);
-  if (has_confidence) {
-    SB_DCHECK(confidences.size() == results.size());
-  }
-  int kSpeechResultSize = results.size();
-  std::vector<SbSpeechResult> speech_results(kSpeechResultSize);
-  for (int i = 0; i < kSpeechResultSize; ++i) {
-    // The callback is responsible for freeing the buffer with
-    // SbMemoryDeallocate.
-    speech_results[i].transcript = SbStringDuplicate(results[i].c_str());
-    speech_results[i].confidence =
-        has_confidence ? confidences[i]
-                       : std::numeric_limits<float>::quiet_NaN();
-  }
-  handler_.on_results(handler_.context, speech_results.data(),
-                      kSpeechResultSize, is_final);
-}
-
-}  // namespace shared
-}  // namespace android
-}  // namespace starboard
-
-namespace {
-
-using starboard::android::shared::JniEnvExt;
-
-starboard::Mutex s_speech_recognizer_mutex_;
-SbSpeechRecognizer s_speech_recognizer = kSbSpeechRecognizerInvalid;
-}  // namespace
-
-// static
-SbSpeechRecognizer SbSpeechRecognizerPrivate::CreateSpeechRecognizer(
-    const SbSpeechRecognizerHandler* handler) {
-  starboard::ScopedLock lock(s_speech_recognizer_mutex_);
-
-  SB_DCHECK(!SbSpeechRecognizerIsValid(s_speech_recognizer));
-  s_speech_recognizer =
-      new starboard::android::shared::SbSpeechRecognizerImpl(handler);
-  return s_speech_recognizer;
-}
-
-// static
-void SbSpeechRecognizerPrivate::DestroySpeechRecognizer(
-    SbSpeechRecognizer speech_recognizer) {
-  starboard::ScopedLock lock(s_speech_recognizer_mutex_);
-
-  SB_DCHECK(s_speech_recognizer == speech_recognizer);
-  SB_DCHECK(SbSpeechRecognizerIsValid(s_speech_recognizer));
-  delete s_speech_recognizer;
-  s_speech_recognizer = kSbSpeechRecognizerInvalid;
-}
-
-extern "C" SB_EXPORT_PLATFORM void
-Java_dev_cobalt_coat_VoiceRecognizer_nativeOnSpeechDetected(
-    JNIEnv* env,
-    jobject jcaller,
-    jlong nativeSpeechRecognizerImpl,
-    jboolean detected) {
-  starboard::ScopedLock lock(s_speech_recognizer_mutex_);
-
-  starboard::android::shared::SbSpeechRecognizerImpl* native =
-      reinterpret_cast<starboard::android::shared::SbSpeechRecognizerImpl*>(
-          nativeSpeechRecognizerImpl);
-  // This is called by the Android UI thread and it is possible that the
-  // SbSpeechRecognizer is destroyed before this is called.
-  if (native != s_speech_recognizer) {
-    SB_DLOG(WARNING) << "The speech recognizer is destroyed.";
-    return;
-  }
-
-  native->OnSpeechDetected(detected);
-}
-
-extern "C" SB_EXPORT_PLATFORM void
-Java_dev_cobalt_coat_VoiceRecognizer_nativeOnError(
-    JNIEnv* env,
-    jobject jcaller,
-    jlong nativeSpeechRecognizerImpl,
-    jint error) {
-  starboard::ScopedLock lock(s_speech_recognizer_mutex_);
-
-  starboard::android::shared::SbSpeechRecognizerImpl* native =
-      reinterpret_cast<starboard::android::shared::SbSpeechRecognizerImpl*>(
-          nativeSpeechRecognizerImpl);
-  // This is called by the Android UI thread and it is possible that the
-  // SbSpeechRecognizer is destroyed before this is called.
-  if (native != s_speech_recognizer) {
-    SB_DLOG(WARNING) << "The speech recognizer is destroyed.";
-    return;
-  }
-
-  native->OnError(error);
-}
-
-extern "C" SB_EXPORT_PLATFORM void
-Java_dev_cobalt_coat_VoiceRecognizer_nativeHandlePermission(
-    JNIEnv* env,
-    jobject jcaller,
-    jlong nativeSpeechRecognizerImpl,
-    jboolean is_granted) {
-  starboard::ScopedLock lock(s_speech_recognizer_mutex_);
-
-  starboard::android::shared::SbSpeechRecognizerImpl* native =
-      reinterpret_cast<starboard::android::shared::SbSpeechRecognizerImpl*>(
-          nativeSpeechRecognizerImpl);
-  // This is called by the Android UI thread and it is possible that the
-  // SbSpeechRecognizer is destroyed before this is called.
-  if (native != s_speech_recognizer) {
-    SB_DLOG(WARNING) << "The speech recognizer is destroyed.";
-    return;
-  }
-  if (!is_granted) {
-    native->OnError(starboard::android::shared::kErrorInsufficientPermissions);
-  }
-}
-
-extern "C" SB_EXPORT_PLATFORM void
-Java_dev_cobalt_coat_VoiceRecognizer_nativeOnResults(
-    JniEnvExt* env,
-    jobject unused_this,
-    jlong nativeSpeechRecognizerImpl,
-    jobjectArray results,
-    jfloatArray confidences,
-    jboolean is_final) {
-  starboard::ScopedLock lock(s_speech_recognizer_mutex_);
-
-  starboard::android::shared::SbSpeechRecognizerImpl* native =
-      reinterpret_cast<starboard::android::shared::SbSpeechRecognizerImpl*>(
-          nativeSpeechRecognizerImpl);
-  // This is called by the Android UI thread and it is possible that the
-  // SbSpeechRecognizer is destroyed before this is called.
-  if (native != s_speech_recognizer) {
-    SB_DLOG(WARNING) << "The speech recognizer is destroyed.";
-    return;
-  }
-
-  std::vector<std::string> options;
-  jint argc = env->GetArrayLength(results);
-  for (jint i = 0; i < argc; i++) {
-    starboard::android::shared::ScopedLocalJavaRef<jstring> element(
-        env->GetObjectArrayElement(results, i));
-    std::string utf_str = env->GetStringStandardUTFOrAbort(element.Get());
-    options.push_back(utf_str);
-  }
-
-  std::vector<float> scores(options.size(), 0.0);
-  if (confidences != NULL) {
-    SB_DCHECK(argc == env->GetArrayLength(results));
-    float* confidences_array = env->GetFloatArrayElements(confidences, NULL);
-    std::copy(confidences_array, confidences_array + argc, scores.begin());
-    env->ReleaseFloatArrayElements(confidences, confidences_array, 0);
-  }
-  native->OnResults(options, scores, is_final);
-}
diff --git a/src/starboard/android/shared/starboard_platform.gypi b/src/starboard/android/shared/starboard_platform.gypi
index 74bf44e..87bad6c 100644
--- a/src/starboard/android/shared/starboard_platform.gypi
+++ b/src/starboard/android/shared/starboard_platform.gypi
@@ -147,7 +147,6 @@
         'player_set_bounds.cc',
         'player_set_playback_rate.cc',
         'sanitizer_options.cc',
-        'speech_recognizer_impl.cc',
         'speech_synthesis_cancel.cc',
         'speech_synthesis_internal.cc',
         'speech_synthesis_is_supported.cc',
@@ -414,13 +413,6 @@
         '<(DEPTH)/starboard/shared/starboard/new.cc',
         '<(DEPTH)/starboard/shared/starboard/queue_application.cc',
         '<(DEPTH)/starboard/shared/starboard/queue_application.h',
-        '<(DEPTH)/starboard/shared/starboard/speech_recognizer/speech_recognizer_cancel.cc',
-        '<(DEPTH)/starboard/shared/starboard/speech_recognizer/speech_recognizer_create.cc',
-        '<(DEPTH)/starboard/shared/starboard/speech_recognizer/speech_recognizer_destroy.cc',
-        '<(DEPTH)/starboard/shared/starboard/speech_recognizer/speech_recognizer_internal.h',
-        '<(DEPTH)/starboard/shared/starboard/speech_recognizer/speech_recognizer_is_supported.cc',
-        '<(DEPTH)/starboard/shared/starboard/speech_recognizer/speech_recognizer_start.cc',
-        '<(DEPTH)/starboard/shared/starboard/speech_recognizer/speech_recognizer_stop.cc',
         '<(DEPTH)/starboard/shared/starboard/string_concat.cc',
         '<(DEPTH)/starboard/shared/starboard/string_concat_wide.cc',
         '<(DEPTH)/starboard/shared/starboard/string_copy.cc',
diff --git a/src/starboard/android/shared/starboard_platform_tests.gypi b/src/starboard/android/shared/starboard_platform_tests.gypi
index 5b8fe50..0c34f23 100644
--- a/src/starboard/android/shared/starboard_platform_tests.gypi
+++ b/src/starboard/android/shared/starboard_platform_tests.gypi
@@ -23,6 +23,7 @@
         '<(DEPTH)/starboard/common/test_main.cc',
         '<@(media_tests_sources)',
         'jni_env_ext_test.cc',
+        'model_year_test.cc',
         'video_frame_tracker_test.cc',
       ],
       'defines': [
diff --git a/src/starboard/android/shared/system_get_property.cc b/src/starboard/android/shared/system_get_property.cc
index 192dabc..b77d103 100644
--- a/src/starboard/android/shared/system_get_property.cc
+++ b/src/starboard/android/shared/system_get_property.cc
@@ -104,8 +104,24 @@
     case kSbSystemPropertyChipsetModelNumber:
       return GetAndroidSystemProperty("ro.board.platform", out_value,
                                       value_length, kUnknownValue);
-    case kSbSystemPropertyModelYear:
-       return false;
+    case kSbSystemPropertyModelYear: {
+      char key1[PROP_VALUE_MAX] = "";
+      SB_DCHECK(GetAndroidSystemProperty("ro.oem.key1", key1, PROP_VALUE_MAX,
+                                         kUnknownValue));
+      if (SbStringCompareAll(key1, kUnknownValue) == 0 ||
+          SbStringGetLength(key1) < 10) {
+        return CopyStringAndTestIfSuccess(out_value, value_length,
+                                          kUnknownValue);
+      }
+      // See
+      // https://support.google.com/androidpartners_androidtv/answer/9351639?hl=en
+      // for the format of key1.
+      std::string year = "20";
+      year += key1[9];
+      year += key1[10];
+      return CopyStringAndTestIfSuccess(out_value, value_length, year.c_str());
+    }
+
 #if SB_API_VERSION >= 12
     case kSbSystemPropertySystemIntegratorName:
 #else
@@ -125,8 +141,8 @@
     case kSbSystemPropertyUserAgentAuxField: {
       JniEnvExt* env = JniEnvExt::Get();
       ScopedLocalJavaRef<jstring> aux_string(
-          env->CallStarboardObjectMethodOrAbort(
-              "getUserAgentAuxField", "()Ljava/lang/String;"));
+          env->CallStarboardObjectMethodOrAbort("getUserAgentAuxField",
+                                                "()Ljava/lang/String;"));
 
       std::string utf_str = env->GetStringStandardUTFOrAbort(aux_string.Get());
       bool success =
diff --git a/src/starboard/benchmark/BUILD.gn b/src/starboard/benchmark/BUILD.gn
index ffe1e80..39319c7 100644
--- a/src/starboard/benchmark/BUILD.gn
+++ b/src/starboard/benchmark/BUILD.gn
@@ -14,7 +14,6 @@
 
 target(final_executable_type, "benchmark") {
   testonly = true
-  defines = [ "STARBOARD_IMPLEMENTATION" ]
 
   sources = [
     "//starboard/common/benchmark_main.cc",
@@ -26,4 +25,6 @@
     "//starboard",
     "//third_party/google_benchmark",
   ]
+
+  configs += [ "//starboard/build/config:starboard_implementation" ]
 }
diff --git a/src/starboard/build/config/BUILD.gn b/src/starboard/build/config/BUILD.gn
index 2b84450..05310b8 100644
--- a/src/starboard/build/config/BUILD.gn
+++ b/src/starboard/build/config/BUILD.gn
@@ -12,10 +12,6 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-config("include_root") {
-  include_dirs = [ "//" ]
-}
-
 config("base") {
   defines = []
 
@@ -59,7 +55,7 @@
   if (current_toolchain == host_toolchain) {
     if (host_os == "linux") {
       ldflags = [ "-pthread" ]
-      cflags_cc = [ "--std=gnu++14" ]
+      cflags_cc = [ "-std=gnu++14" ]
 
       if (target_cpu == "arm" || target_cpu == "x86") {
         cflags = [ "-m32" ]
@@ -114,19 +110,19 @@
     defines += [ "SB_IS_LIBRARY=1" ]
   }
 
-  if (sb_evergreen) {
+  if (sb_is_evergreen) {
     defines += [ "SB_IS_EVERGREEN=1" ]
   }
 
-  if (sb_evergreen_compatible) {
+  if (sb_is_evergreen_compatible) {
     defines += [ "SB_IS_EVERGREEN_COMPATIBLE=1" ]
   }
 
-  if (sb_evergreen_compatible_libunwind) {
+  if (sb_evergreen_compatible_use_libunwind) {
     defines += [ "SB_IS_EVERGREEN_COMPATIBLE_LIBUNWIND=1" ]
   }
 
-  if (sb_evergreen_compatible_lite) {
+  if (sb_evergreen_compatible_enable_lite) {
     defines += [ "SB_IS_EVERGREEN_COMPATIBLE_LITE=1" ]
   }
 
@@ -136,3 +132,20 @@
     "STARBOARD_THREAD_TYPES_INCLUDE=\"$starboard_path/thread_types_public.h\"",
   ]
 }
+
+config("starboard_implementation") {
+  # This allows the benchmarks to include internal only header files.
+  defines = [ "STARBOARD_IMPLEMENTATION" ]
+}
+
+config("speed") {
+  if (defined(speed_config_path)) {
+    configs = [ speed_config_path ]
+  }
+}
+
+config("size") {
+  if (defined(size_config_path)) {
+    configs = [ size_config_path ]
+  }
+}
diff --git a/src/starboard/build/config/BUILDCONFIG.gn b/src/starboard/build/config/BUILDCONFIG.gn
index a1f6de5..9aca1ef 100644
--- a/src/starboard/build/config/BUILDCONFIG.gn
+++ b/src/starboard/build/config/BUILDCONFIG.gn
@@ -12,7 +12,6 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-import("//starboard/build/config/os_definitions.gni")
 import("//starboard/build/platforms.gni")
 
 declare_args() {
@@ -23,8 +22,27 @@
   target_platform = "stub"
 
   is_starboard = true
+
+  cobalt_fastbuild = getenv("IS_CI") == 1
 }
 
+is_debug = build_type == "debug"
+is_devel = build_type == "devel"
+is_qa = build_type == "qa"
+is_gold = build_type == "gold"
+assert(is_debug || is_devel || is_qa || is_gold)
+
+declare_args() {
+  use_asan = is_debug || is_devel
+}
+
+# Set some variables we never want to change.
+sb_allows_memory_tracking = !is_gold
+host_byteorder = "little"
+is_official_build = false  # Chromium's build files expect this to be set.
+
+# The os/cpu definitions are here to set the current platform type in
+# os_definitions.gni below.
 if (target_os == "") {
   target_os = host_os
 }
@@ -37,24 +55,20 @@
 if (current_cpu == "") {
   current_cpu = target_cpu
 }
+import("//starboard/build/config/os_definitions.gni")
 
-is_debug = build_type == "debug"
-is_devel = build_type == "devel"
-is_qa = build_type == "qa"
-is_gold = build_type == "gold"
-assert(is_debug || is_devel || is_qa || is_gold)
-
-# Set some variables we never want to change
-sb_allows_memory_tracking = !is_gold
-host_byteorder = "little"
-is_official_build = false  # Chromium's build files expect this to be set.
-
-starboard_path = platforms["$target_platform"]
-import("//$starboard_path/platform_configuration/configuration.gni")
-
-host_toolchain = "//$starboard_path/toolchain:host"  # TODO(andrewsavage)
-shlib_extension = ".so"  # TODO(andrewsavage)
-set_default_toolchain(host_toolchain)
+# Get the path to the starboard implementation and include its GN
+# configuration.
+foreach(platform, platforms) {
+  if (platform.name == target_platform) {
+    starboard_path = platform.path
+  }
+}
+assert(defined(starboard_path),
+       "Please port your platform to starboard/build/platforms.gni")
+host_toolchain = "//$starboard_path/toolchain:host"
+_default_toolchain = "//$starboard_path/toolchain:target"
+set_default_toolchain(_default_toolchain)
 
 # =============================================================================
 # TARGET DEFAULTS
@@ -74,9 +88,11 @@
 # sub-config of an existing one, most commonly the main "compiler" one.
 
 default_compiler_configs = [
+  "//build/config/compiler:default_include_dirs",
+  "//build/config/compiler:no_exceptions",
   "//starboard/build/config:base",
   "//starboard/build/config:host",
-  "//starboard/build/config:include_root",
+  "//starboard/build/config:size",
   "//starboard/build/config:target",
   "//$starboard_path/platform_configuration",
 ]
@@ -101,38 +117,47 @@
   configs = default_compiler_configs
 }
 
+import("//$starboard_path/platform_configuration/configuration.gni")
+import("//starboard/build/config/build_assertions.gni")
+
+# Set up the method of generating the install targets as defined by the
+# platform.
 import("$install_target_path")
 template("executable") {
   executable(target_name) {
-    forward_variables_from(invoker, "*")
+    forward_variables_from(invoker, "*", [ "install_target" ])
   }
 
-  executable_target_name = target_name
-  install_target(target_name + "_install") {
-    forward_variables_from(invoker,
-                           [
-                             "content",
-                             "testonly",
-                           ])
-    installable_target_name = executable_target_name
-    type = "executable"
+  if (!defined(invoker.install_target) || invoker.install_target) {
+    executable_target_name = target_name
+    install_target(target_name + "_install") {
+      forward_variables_from(invoker,
+                             [
+                               "content",
+                               "testonly",
+                             ])
+      installable_target_name = executable_target_name
+      type = "executable"
+    }
   }
 }
 
 template("shared_library") {
   shared_library(target_name) {
-    forward_variables_from(invoker, "*")
+    forward_variables_from(invoker, "*", [ "install_target" ])
   }
 
-  shared_library_target_name = target_name
-  install_target(target_name + "_install") {
-    forward_variables_from(invoker,
-                           [
-                             "content",
-                             "testonly",
-                           ])
-    installable_target_name = shared_library_target_name
-    type = "shared_library"
+  if (!defined(invoker.install_target) || invoker.install_target) {
+    shared_library_target_name = target_name
+    install_target(target_name + "_install") {
+      forward_variables_from(invoker,
+                             [
+                               "content",
+                               "testonly",
+                             ])
+      installable_target_name = shared_library_target_name
+      type = "shared_library"
+    }
   }
 }
 
diff --git a/src/starboard/build/config/base_configuration.gni b/src/starboard/build/config/base_configuration.gni
index eb54e90..8afb8e2 100644
--- a/src/starboard/build/config/base_configuration.gni
+++ b/src/starboard/build/config/base_configuration.gni
@@ -40,17 +40,17 @@
   sb_install_output_dir = "$root_out_dir/install"
 
   # Whether this is an Evergreen build.
-  sb_evergreen = false
+  sb_is_evergreen = false
 
   # Whether this is an Evergreen compatible platform. A compatible platform
   # can run the elf_loader and launch the Evergreen build.
-  sb_evergreen_compatible = false
+  sb_is_evergreen_compatible = false
 
   # Whether to use the libunwind library on Evergreen compatible platform.
-  sb_evergreen_compatible_libunwind = false
+  sb_evergreen_compatible_use_libunwind = false
 
   # Whether to adopt Evergreen Lite on the Evergreen compatible platform.
-  sb_evergreen_compatible_lite = false
+  sb_evergreen_compatible_enable_lite = false
 
   # The variables allow changing the target type on platforms where the
   # native code may require an additional packaging step (ex. Android).
@@ -83,12 +83,8 @@
   # Used to enable benchmarks.
   sb_enable_benchmark = false
 
-  # This variable dictates whether a given target should be compiled with
-  # optimization flags for size vs. speed.
-  optimize_target_for_speed = false
-
   # Where the Starboard ABI file for this platform can be found.
-  sabi_path = ""
+  sabi_path = "starboard/sabi/default/sabi.json"
 
   # Whether the platform implements platforms tests.
   has_platform_tests = false
diff --git a/src/starboard/build/config/build_assertions.gni b/src/starboard/build/config/build_assertions.gni
new file mode 100644
index 0000000..4162c0e
--- /dev/null
+++ b/src/starboard/build/config/build_assertions.gni
@@ -0,0 +1,26 @@
+# Copyright 2021 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.
+
+# Use this file to ensure no conflicting GN build arguments are set for the
+# platform being built.
+
+assert(!(sb_is_evergreen && sb_is_evergreen_compatible),
+       "Cannot be both evergreen and evergreen compatible.")
+
+assert(
+    !sb_evergreen_compatible_use_libunwind || sb_is_evergreen_compatible,
+    "Can only specify sb_evergreen_compatible_use_libunwind on an evergreen-compatible platform.")
+
+assert(!sb_evergreen_compatible_enable_lite || sb_is_evergreen_compatible,
+       "Can only enable evergreen lite on an evergreen-comptaible platform.")
diff --git a/src/starboard/build/config/migration_changes.md b/src/starboard/build/config/migration_changes.md
index 24961c9..3d91910 100644
--- a/src/starboard/build/config/migration_changes.md
+++ b/src/starboard/build/config/migration_changes.md
@@ -12,6 +12,10 @@
 ## Renamed:
 sb_deploy_output_dir -> sb_install_output_dir
 OS == starboard -> is_starboard
+sb_evergreen -> sb_is_evergreen
+sb_evergreen_compatible -> sb_is_evergreen_compatible
+sb_evergreen_compatible_libunwind -> sb_evergreen_compatible_use_libunwind
+sb_evergreen_compatible_lite -> sb_evergreen_compatible_enable_lite
 
 ## Added:
 has_platform_tests
diff --git a/src/starboard/build/config/sabi/BUILD.gn b/src/starboard/build/config/sabi/BUILD.gn
index cec64e2..8b03959 100644
--- a/src/starboard/build/config/sabi/BUILD.gn
+++ b/src/starboard/build/config/sabi/BUILD.gn
@@ -38,7 +38,10 @@
                   ],
                   "trim string")
 
+  mock_sabi_id = "\"MOCK_SABI_ID\""
+
   defines = [
+    "SB_SABI_JSON_ID=$mock_sabi_id",
     "SB_API_VERSION=$sb_api_version",
 
     "SB_IS_ARCH_${arch_uppercase}=1",
diff --git a/src/starboard/build/platforms.gni b/src/starboard/build/platforms.gni
index 22c1b91..d09b131 100644
--- a/src/starboard/build/platforms.gni
+++ b/src/starboard/build/platforms.gni
@@ -16,6 +16,21 @@
 # implementation. To add another platform, simply add another entry in the same
 # style to this list.
 
-platforms = {
-  stub = "starboard/stub"
-}
+platforms = [
+  {
+    name = "stub"
+    path = "starboard/stub"
+  },
+  {
+    name = "linux-x64x11"
+    path = "starboard/linux/x64x11"
+  },
+  {
+    name = "linux-x64x11-egl"
+    path = "starboard/linux/x64x11/egl"
+  },
+  {
+    name = "linux-x64x11-internal"
+    path = "starboard/linux/x64x11/internal"
+  },
+]
diff --git a/src/starboard/build/test.gni b/src/starboard/build/test.gni
new file mode 100644
index 0000000..4015b1c
--- /dev/null
+++ b/src/starboard/build/test.gni
@@ -0,0 +1,10 @@
+template("test") {
+  executable(target_name) {
+    testonly = true
+    forward_variables_from(invoker, "*")
+  }
+}
+
+set_defaults("test") {
+  configs = default_compiler_configs
+}
diff --git a/src/starboard/build/toolchain/gcc_toolchain.gni b/src/starboard/build/toolchain/gcc_toolchain.gni
deleted file mode 100644
index b886aaf..0000000
--- a/src/starboard/build/toolchain/gcc_toolchain.gni
+++ /dev/null
@@ -1,604 +0,0 @@
-# Copyright (c) 2013 The Chromium Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-# Cobalt defaults:
-#   clang.CCompiler(path=cc_path),
-#   clang.CxxCompiler(path=cxx_path),
-#   clang.AssemblerWithCPreprocessor(path=cc_path),
-#   ar.StaticThinLinker(),
-#   ar.StaticLinker(),
-#   clangxx.ExecutableLinker(path=cxx_path, write_group=True),
-#   clangxx.SharedLibraryLinker(path=cxx_path),
-#   cp.Copy(),
-#   touch.Stamp(),
-#   bash.Shell(),
-# maps to:
-#   tool("cc")
-#   tool("cxx")
-#   tool("asm")
-#   tool("alink")
-#   tool("alink")
-#   tool("link")
-#   tool("solink")
-#   tool("copy")
-#   tool("stamp")
-#   TODO (is shell necessary? maybe tool("action")?)
-# TODO(andrewsavage):
-# use command_launcher for ccache
-# pool size
-# figure out imports below
-# possibly add -x to commands (just clang?)
-# add T flag to ar for thin archive? look at "//build/config/compiler:thin_archive"
-
-# import("//build/config/compiler/compiler.gni")
-# import("//build/config/sanitizers/sanitizers.gni")
-# import("//build/config/v8_target_cpu.gni")
-# import("//build/toolchain/cc_wrapper.gni")
-
-declare_args() {
-  command_launcher = ""
-}
-
-# This template defines a toolchain for something that works like gcc
-# (including clang).
-#
-# It requires the following variables specifying the executables to run:
-#  - ar
-#  - cc
-#  - cxx
-#  - ld
-#
-# Optional parameters that control the tools:
-#
-#  - extra_cflags
-#      Extra flags to be appended when compiling C files (but not C++ files).
-#  - extra_cppflags
-#      Extra flags to be appended when compiling both C and C++ files. "CPP"
-#      stands for "C PreProcessor" in this context, although it can be
-#      used for non-preprocessor flags as well. Not to be confused with
-#      "CXX" (which follows).
-#  - extra_cxxflags
-#      Extra flags to be appended when compiling C++ files (but not C files).
-#  - extra_asmflags
-#      Extra flags to be appended when compiling assembly.
-#  - extra_ldflags
-#      Extra flags to be appended when linking
-#
-#  - link_outputs
-#      The content of this array, if specified, will be added to the list of
-#      outputs from the link command. This can be useful in conjunction with
-#      the post_link parameter.
-#  - use_unstripped_as_runtime_outputs
-#      When |strip| is set, mark unstripped executables as runtime deps rather
-#      than stripped ones.
-#  - post_link
-#      The content of this string, if specified, will be run as a separate
-#      command following the the link command.
-#  - deps
-#      Just forwarded to the toolchain definition.
-#  - executable_extension
-#      If this string is specified it will be used for the file extension
-#      for an executable, rather than using no extension; targets will
-#      still be able to override the extension using the output_extension
-#      variable.
-#  - rebuild_define
-#      The contents of this string, if specified, will be passed as a #define
-#      to the toolchain. It can be used to force recompiles whenever a
-#      toolchain is updated.
-#  - shlib_extension
-#      If this string is specified it will be used for the file extension
-#      for a shared library, rather than default value specified in
-#      toolchain.gni
-#  - strip
-#      Location of the strip executable. When specified, strip will be run on
-#      all shared libraries and executables as they are built. The pre-stripped
-#      artifacts will be put in lib.unstripped/ and exe.unstripped/.
-template("gcc_toolchain") {
-  toolchain(target_name) {
-    assert(defined(invoker.ar), "gcc_toolchain() must specify a \"ar\" value")
-    assert(defined(invoker.cc), "gcc_toolchain() must specify a \"cc\" value")
-    assert(defined(invoker.cxx), "gcc_toolchain() must specify a \"cxx\" value")
-    assert(defined(invoker.ld), "gcc_toolchain() must specify a \"ld\" value")
-
-    # This define changes when the toolchain changes, forcing a rebuild.
-    # Nothing should ever use this define.
-    if (defined(invoker.rebuild_define)) {
-      rebuild_string = "-D" + invoker.rebuild_define + " "
-    } else {
-      rebuild_string = ""
-    }
-
-    # GN's syntax can't handle more than one scope dereference at once, like
-    # "invoker.toolchain_args.foo", so make a temporary to hold the toolchain
-    # args so we can do "invoker_toolchain_args.foo".
-    assert(defined(invoker.toolchain_args),
-           "Toolchains must specify toolchain_args")
-    invoker_toolchain_args = invoker.toolchain_args
-
-    # assert(defined(invoker_toolchain_args.current_cpu),
-    #        "toolchain_args must specify a current_cpu")
-    # assert(defined(invoker_toolchain_args.current_os),
-    #        "toolchain_args must specify a current_os")
-
-    # When invoking this toolchain not as the default one, these args will be
-    # passed to the build. They are ignored when this is the default toolchain.
-    toolchain_args = {
-      # Populate toolchain args from the invoker.
-      forward_variables_from(invoker_toolchain_args, "*")
-
-      # The host toolchain value computed by the default toolchain's setup
-      # needs to be passed through unchanged to all secondary toolchains to
-      # ensure that it's always the same, regardless of the values that may be
-      # set on those toolchains.
-      # host_toolchain = host_toolchain
-
-      # if (!defined(invoker_toolchain_args.v8_current_cpu)) {
-      #   v8_current_cpu = invoker_toolchain_args.current_cpu
-      # }
-    }
-
-    cc_wrapper = ""  # TODO(andrewsavage)
-    if (defined(toolchain_args.cc_wrapper)) {
-      toolchain_cc_wrapper = toolchain_args.cc_wrapper
-    } else {
-      toolchain_cc_wrapper = cc_wrapper
-    }
-
-    if (defined(toolchain_args.command_launcher)) {
-      command_launcher = toolchain_args.command_launcher
-    } else {
-      command_launcher = command_launcher
-    }
-
-    compiler_prefix = "${toolchain_cc_wrapper} "
-
-    # Create a distinct variable for "asm", since coverage runs pass a bunch of
-    # flags to clang/clang++ that are nonsensical on assembler runs.
-    asm_prefix = compiler_prefix
-
-    cc = compiler_prefix + invoker.cc
-    cxx = compiler_prefix + invoker.cxx
-    asm = asm_prefix + invoker.cc
-    ar = invoker.ar
-    ld = invoker.ld
-    if (defined(invoker.readelf)) {
-      readelf = invoker.readelf
-    } else {
-      readelf = "readelf"
-    }
-    if (defined(invoker.nm)) {
-      nm = invoker.nm
-    } else {
-      nm = "nm"
-    }
-    if (defined(invoker.dwp)) {
-      dwp_switch = " --dwp=\"${invoker.dwp}\""
-    } else {
-      dwp_switch = ""
-    }
-
-    if (defined(invoker.shlib_extension)) {
-      default_shlib_extension = invoker.shlib_extension
-    } else {
-      default_shlib_extension = shlib_extension
-    }
-
-    if (defined(invoker.default_shlib_subdir)) {
-      default_shlib_subdir = invoker.default_shlib_subdir
-    } else {
-      default_shlib_subdir = ""
-    }
-
-    if (defined(invoker.executable_extension)) {
-      default_executable_extension = invoker.executable_extension
-    } else {
-      default_executable_extension = ""
-    }
-
-    # Bring these into our scope for string interpolation with default values.
-    if (defined(invoker.extra_cflags) && invoker.extra_cflags != "") {
-      extra_cflags = " " + invoker.extra_cflags
-    } else {
-      extra_cflags = ""
-    }
-
-    if (defined(invoker.extra_cppflags) && invoker.extra_cppflags != "") {
-      extra_cppflags = " " + invoker.extra_cppflags
-    } else {
-      extra_cppflags = ""
-    }
-
-    if (defined(invoker.extra_cxxflags) && invoker.extra_cxxflags != "") {
-      extra_cxxflags = " " + invoker.extra_cxxflags
-    } else {
-      extra_cxxflags = ""
-    }
-
-    if (defined(invoker.extra_asmflags) && invoker.extra_asmflags != "") {
-      extra_asmflags = " " + invoker.extra_asmflags
-    } else {
-      extra_asmflags = ""
-    }
-
-    if (defined(invoker.extra_ldflags) && invoker.extra_ldflags != "") {
-      extra_ldflags = " " + invoker.extra_ldflags
-    } else {
-      extra_ldflags = ""
-    }
-
-    enable_linker_map = defined(invoker.enable_linker_map) &&
-                        invoker.enable_linker_map && generate_linker_map
-
-    # These library switches can apply to all tools below.
-    lib_switch = "-l"
-    lib_dir_switch = "-L"
-
-    # Object files go in this directory.
-    object_subdir = "{{target_out_dir}}/{{label_name}}"
-
-    tool("cc") {
-      depfile = "{{output}}.d"
-      precompiled_header_type = "gcc"
-      command_launcher = command_launcher
-      command = "$cc -x c -MMD -MF $depfile ${rebuild_string}{{defines}} {{include_dirs}} {{cflags}} {{cflags_c}}${extra_cppflags}${extra_cflags} -c {{source}} -o {{output}}"
-      depsformat = "gcc"
-      description = "CC {{output}}"
-      outputs = [ "$object_subdir/{{source_name_part}}.o" ]
-    }
-
-    tool("cxx") {
-      depfile = "{{output}}.d"
-      precompiled_header_type = "gcc"
-      command_launcher = command_launcher
-      command = "$cxx -x c++ -MMD -MF $depfile ${rebuild_string}{{defines}} {{include_dirs}} {{cflags}} {{cflags_cc}}${extra_cppflags}${extra_cxxflags} -c {{source}} -o {{output}}"
-      depsformat = "gcc"
-      description = "CXX {{output}}"
-      outputs = [ "$object_subdir/{{source_name_part}}.o" ]
-    }
-
-    tool("objc") {
-      depfile = "{{output}}.d"
-      precompiled_header_type = "gcc"
-      command = "$cc -x objective-c -MMD -MF $depfile {{defines}} {{include_dirs}} {{framework_dirs}} {{cflags}} {{cflags_objc}} -c {{source}} -o {{output}}"
-      depsformat = "gcc"
-      description = "OBJC {{output}}"
-      outputs = [ "$object_subdir/{{source_name_part}}.o" ]
-    }
-
-    tool("objcxx") {
-      depfile = "{{output}}.d"
-      precompiled_header_type = "gcc"
-      command = "$cxx -x objective-c++ -MMD -MF $depfile {{defines}} {{include_dirs}} {{framework_dirs}} {{cflags}} {{cflags_objcc}} -c {{source}} -o {{output}}"
-      depsformat = "gcc"
-      description = "OBJCXX {{output}}"
-      outputs = [ "$object_subdir/{{source_name_part}}.o" ]
-    }
-
-    tool("asm") {
-      # For GCC we can just use the C compiler to compile assembly.
-      depfile = "{{output}}.d"
-      command = "$asm -x assembler-with-cpp -MMD -MF $depfile ${rebuild_string}{{defines}} {{include_dirs}} {{asmflags}}${extra_asmflags} -c {{source}} -o {{output}}"
-      depsformat = "gcc"
-      description = "ASM {{output}}"
-      outputs = [ "$object_subdir/{{source_name_part}}.o" ]
-    }
-
-    tool("alink") {
-      rspfile = "{{output}}.rsp"
-      rspfile_content = "{{inputs}}"
-      command = "\"$ar\" {{arflags}} -r -c -s -D {{output}} @\"$rspfile\""
-
-      # Remove the output file first so that ar doesn't try to modify the
-      # existing file.
-      if (host_os == "win") {
-        # TODO(andrewsavage): rm on windows
-        # tool_wrapper_path =
-        #     rebase_path("//build/toolchain/win/tool_wrapper.py", root_build_dir)
-        # command = "cmd /c $python_path $tool_wrapper_path delete-file {{output}} && $command"
-      } else {
-        command = "rm -f {{output}} && $command"
-      }
-
-      # Almost all targets build with //build/config/compiler:thin_archive which
-      # adds -T to arflags.
-      description = "AR {{output}}"
-      outputs = [ "{{output_dir}}/{{target_output_name}}{{output_extension}}" ]
-
-      # Shared libraries go in the target out directory by default so we can
-      # generate different targets with the same name and not have them collide.
-      default_output_dir = "{{target_out_dir}}"
-      default_output_extension = ".a"
-      output_prefix = "lib"
-    }
-
-    tool("solink") {
-      soname = "{{target_output_name}}{{output_extension}}"  # e.g. "libfoo.so".
-      sofile = "{{output_dir}}/$soname"  # Possibly including toolchain dir.
-      rspfile = sofile + ".rsp"
-
-      # TODO(andrewsavage): poolsize?
-
-      if (defined(invoker.strip)) {
-        unstripped_sofile = "{{root_out_dir}}/lib.unstripped/$soname"
-      } else {
-        unstripped_sofile = sofile
-      }
-
-      # These variables are not built into GN but are helpers that
-      # implement (1) linking to produce a .so, (2) extracting the symbols
-      # from that file (3) if the extracted list differs from the existing
-      # .TOC file, overwrite it, otherwise, don't change it.
-      tocfile = sofile + ".TOC"
-
-      link_command = "$ld -shared -Wl,-soname=\"$soname\" {{ldflags}}${extra_ldflags} -o \"$unstripped_sofile\" @\"$rspfile\""
-
-      # Generate a map file to be used for binary size analysis.
-      # Map file adds ~10% to the link time on a z620.
-      # With target_os="android", libchrome.so.map.gz is ~20MB.
-      map_switch = ""
-      if (enable_linker_map) {
-        map_file = "$unstripped_sofile.map.gz"
-        map_switch = " --map-file \"$map_file\""
-      }
-
-      assert(defined(readelf), "to solink you must have a readelf")
-      assert(defined(nm), "to solink you must have an nm")
-      strip_switch = ""
-      if (defined(invoker.strip)) {
-        strip_switch = "--strip=${invoker.strip} "
-      }
-
-      # TODO(andrewsavage): see if we can replace this with simplified toolchain
-      # This needs a Python script to avoid using a complex shell command
-      # requiring sh control structures, pipelines, and POSIX utilities.
-      # The host might not have a POSIX shell and utilities (e.g. Windows).
-      solink_wrapper =
-          rebase_path("//build/toolchain/gcc_solink_wrapper.py", root_build_dir)
-      command = "$python_path \"$solink_wrapper\" --readelf=\"$readelf\" --nm=\"$nm\" $strip_switch$dwp_switch --sofile=\"$unstripped_sofile\" --tocfile=\"$tocfile\"$map_switch --output=\"$sofile\" -- $link_command"
-
-      if (target_cpu == "mipsel" && is_component_build && is_android) {
-        rspfile_content = "-Wl,--start-group -Wl,--whole-archive {{inputs}} {{solibs}} -Wl,--no-whole-archive {{libs}} -Wl,--end-group"
-      } else {
-        rspfile_content = "-Wl,--whole-archive {{inputs}} {{solibs}} -Wl,--no-whole-archive {{libs}}"
-      }
-
-      description = "SOLINK $sofile"
-
-      # Use this for {{output_extension}} expansions unless a target manually
-      # overrides it (in which case {{output_extension}} will be what the target
-      # specifies).
-      default_output_extension = default_shlib_extension
-
-      default_output_dir = "{{root_out_dir}}${default_shlib_subdir}"
-
-      output_prefix = "lib"
-
-      # Since the above commands only updates the .TOC file when it changes, ask
-      # Ninja to check if the timestamp actually changed to know if downstream
-      # dependencies should be recompiled.
-      restat = true
-
-      # Tell GN about the output files. It will link to the sofile but use the
-      # tocfile for dependency management.
-      outputs = [
-        sofile,
-        tocfile,
-      ]
-      if (sofile != unstripped_sofile) {
-        outputs += [ unstripped_sofile ]
-        if (defined(invoker.use_unstripped_as_runtime_outputs) &&
-            invoker.use_unstripped_as_runtime_outputs) {
-          runtime_outputs = [ unstripped_sofile ]
-        }
-      }
-
-      # Clank build will generate DWP files when Fission is used.
-      # Other builds generate DWP files outside of the gn link targets, if at
-      # all.
-      if (defined(invoker.dwp)) {
-        outputs += [ unstripped_sofile + ".dwp" ]
-        if (defined(invoker.use_unstripped_as_runtime_outputs) &&
-            invoker.use_unstripped_as_runtime_outputs) {
-          runtime_outputs += [ unstripped_sofile + ".dwp" ]
-        }
-      }
-      if (defined(map_file)) {
-        outputs += [ map_file ]
-      }
-      link_output = sofile
-      depend_output = tocfile
-    }
-
-    tool("solink_module") {
-      soname = "{{target_output_name}}{{output_extension}}"  # e.g. "libfoo.so".
-      sofile = "{{output_dir}}/$soname"
-      rspfile = sofile + ".rsp"
-
-      # pool = "//build/toolchain:link_pool($default_toolchain)"
-
-      if (defined(invoker.strip)) {
-        unstripped_sofile = "{{root_out_dir}}/lib.unstripped/$soname"
-      } else {
-        unstripped_sofile = sofile
-      }
-
-      command = "$ld -shared {{ldflags}}${extra_ldflags} -o \"$unstripped_sofile\" -Wl,-soname=\"$soname\" @\"$rspfile\""
-
-      if (defined(invoker.strip)) {
-        strip_command = "${invoker.strip} -o \"$sofile\" \"$unstripped_sofile\""
-        command += " && " + strip_command
-      }
-      rspfile_content = "-Wl,--whole-archive {{inputs}} {{solibs}} -Wl,--no-whole-archive {{libs}}"
-
-      description = "SOLINK_MODULE $sofile"
-
-      # Use this for {{output_extension}} expansions unless a target manually
-      # overrides it (in which case {{output_extension}} will be what the target
-      # specifies).
-      if (defined(invoker.loadable_module_extension)) {
-        default_output_extension = invoker.loadable_module_extension
-      } else {
-        default_output_extension = default_shlib_extension
-      }
-
-      default_output_dir = "{{root_out_dir}}${default_shlib_subdir}"
-
-      output_prefix = "lib"
-
-      outputs = [ sofile ]
-      if (sofile != unstripped_sofile) {
-        outputs += [ unstripped_sofile ]
-        if (defined(invoker.use_unstripped_as_runtime_outputs) &&
-            invoker.use_unstripped_as_runtime_outputs) {
-          runtime_outputs = [ unstripped_sofile ]
-        }
-      }
-    }
-
-    tool("link") {
-      exename = "{{target_output_name}}{{output_extension}}"
-      outfile = "{{output_dir}}/$exename"
-      rspfile = "$outfile.rsp"
-      unstripped_outfile = outfile
-
-      # pool = "//build/toolchain:link_pool($default_toolchain)"
-
-      # Use this for {{output_extension}} expansions unless a target manually
-      # overrides it (in which case {{output_extension}} will be what the target
-      # specifies).
-      default_output_extension = default_executable_extension
-
-      default_output_dir = "{{root_out_dir}}"
-
-      if (defined(invoker.strip)) {
-        unstripped_outfile = "{{root_out_dir}}/exe.unstripped/$exename"
-      }
-
-      start_group_flag = ""
-      end_group_flag = ""
-      if (current_os != "aix") {
-        # the "--start-group .. --end-group" feature isn't available on the aix ld.
-        start_group_flag = "-Wl,--start-group"
-        end_group_flag = "-Wl,--end-group "
-      }
-      link_command = "$ld {{ldflags}}${extra_ldflags} -o \"$unstripped_outfile\" $start_group_flag @\"$rspfile\" {{solibs}} $end_group_flag {{libs}}"
-
-      # Generate a map file to be used for binary size analysis.
-      # Map file adds ~10% to the link time on a z620.
-      # With target_os="android", libchrome.so.map.gz is ~20MB.
-      # map_switch = ""
-      # if (enable_linker_map) {
-      #   map_file = "$unstripped_outfile.map.gz"
-      #   map_switch = " --map-file \"$map_file\""
-      # }
-
-      # strip_switch = ""
-      # if (defined(invoker.strip)) {
-      #   strip_switch = " --strip=\"${invoker.strip}\" --unstripped-file=\"$unstripped_outfile\""
-      # }
-
-      # TODO(andrewsavage): can we replace this with what's in the simlpified toolchain?
-      # link_wrapper =
-      #     rebase_path("//build/toolchain/gcc_link_wrapper.py", root_build_dir)
-      # command = "$python_path \"$link_wrapper\" --output=\"$outfile\"$strip_switch$map_switch$dwp_switch -- $link_command"
-      command = link_command
-
-      description = "LINK $outfile"
-      rspfile_content = "{{inputs}}"
-      outputs = [ outfile ]
-      if (outfile != unstripped_outfile) {
-        outputs += [ unstripped_outfile ]
-        if (defined(invoker.use_unstripped_as_runtime_outputs) &&
-            invoker.use_unstripped_as_runtime_outputs) {
-          runtime_outputs = [ unstripped_outfile ]
-        }
-      }
-
-      # Clank build will generate DWP files when Fission is used.
-      # Other builds generate DWP files outside of the gn link targets, if at
-      # all.
-      if (defined(invoker.dwp)) {
-        outputs += [ unstripped_outfile + ".dwp" ]
-        if (defined(invoker.use_unstripped_as_runtime_outputs) &&
-            invoker.use_unstripped_as_runtime_outputs) {
-          runtime_outputs += [ unstripped_outfile + ".dwp" ]
-        }
-      }
-      if (defined(invoker.link_outputs)) {
-        outputs += invoker.link_outputs
-      }
-      if (defined(map_file)) {
-        outputs += [ map_file ]
-      }
-    }
-
-    # TODO(andrewsavage)
-    stamp_command = "touch {{output}}"
-    copy_command = "rm -rf {{output}} && cp -af {{source}} {{output}}"
-    stamp_description = "STAMP {{output}}"
-    copy_description = "COPY {{source}} {{output}}"
-
-    # These two are really entirely generic, but have to be repeated in
-    # each toolchain because GN doesn't allow a template to be used here.
-    # See //build/toolchain/toolchain.gni for details.
-    tool("stamp") {
-      # TODO(andrewsavage): use "//build/toolchain/toolchain.gni" or find another option
-      command = stamp_command
-      description = stamp_description
-    }
-    tool("copy") {
-      # TODO(andrewsavage): use "//build/toolchain/toolchain.gni" or find another option
-      command = copy_command
-      description = copy_description
-    }
-
-    # tool("action") {
-    #   pool = "//build/toolchain:action_pool($default_toolchain)"
-    # }
-
-    forward_variables_from(invoker, [ "deps" ])
-  }
-}
-
-# This is a shorthand for gcc_toolchain instances based on the Chromium-built
-# version of Clang. Only the toolchain_cpu and toolchain_os variables need to
-# be specified by the invoker, and optionally toolprefix if it's a
-# cross-compile case. Note that for a cross-compile case this toolchain
-# requires a config to pass the appropriate -target option, or else it will
-# actually just be doing a native compile. The invoker can optionally override
-# use_gold too.
-template("clang_toolchain") {
-  if (defined(invoker.toolprefix)) {
-    toolprefix = invoker.toolprefix
-  } else {
-    toolprefix = ""
-  }
-  clang_base_path = invoker.clang_base_path
-
-  gcc_toolchain(target_name) {
-    prefix = rebase_path("$clang_base_path/bin", root_build_dir)
-    cc = "$prefix/clang"
-    cxx = "$prefix/clang++"
-    ld = cxx
-    readelf = "${toolprefix}readelf"
-    ar = "${prefix}/llvm-ar"
-    nm = "${prefix}/llvm-nm"
-
-    forward_variables_from(invoker,
-                           [
-                             "strip",
-                             "default_shlib_subdir",
-                             "enable_linker_map",
-                             "use_unstripped_as_runtime_outputs",
-                           ])
-
-    toolchain_args = {
-      if (defined(invoker.toolchain_args)) {
-        forward_variables_from(invoker.toolchain_args, "*")
-      }
-      is_clang = true
-      command_launcher = "ccache"
-    }
-  }
-}
diff --git a/src/starboard/character.h b/src/starboard/character.h
index 2f05056..397b496 100644
--- a/src/starboard/character.h
+++ b/src/starboard/character.h
@@ -21,7 +21,7 @@
 
 #include "starboard/configuration.h"
 
-#if SB_API_VERSION < SB_CHARACTER_APIS_DEPRECATED_VERSION
+#if SB_API_VERSION < 13
 #include "starboard/export.h"
 #include "starboard/types.h"
 
@@ -79,5 +79,5 @@
 }  // extern "C"
 #endif
 
-#endif  // SB_API_VERSION < SB_CHARACTER_APIS_DEPRECATED_VERSION
+#endif  // SB_API_VERSION < 13
 #endif  // STARBOARD_CHARACTER_H_
diff --git a/src/starboard/client_porting/cwrappers/BUILD.gn b/src/starboard/client_porting/cwrappers/BUILD.gn
index a98f447..c9fd093 100644
--- a/src/starboard/client_porting/cwrappers/BUILD.gn
+++ b/src/starboard/client_porting/cwrappers/BUILD.gn
@@ -12,8 +12,22 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-source_set("cwrappers") {
+static_library("cwrappers") {
   sources = [ "pow_wrapper.cc" ]
 
   public_deps = [ "//starboard/common" ]
 }
+
+target(gtest_target_type, "cwrappers_test") {
+  testonly = true
+  sources = [
+    "//starboard/common/test_main.cc",
+    "pow_wrapper_test.cc",
+  ]
+  public_deps = [
+    ":cwrappers",
+    "//starboard",
+    "//testing/gmock",
+    "//testing/gtest",
+  ]
+}
diff --git a/src/starboard/client_porting/eztime/BUILD.gn b/src/starboard/client_porting/eztime/BUILD.gn
index 912e10d..ce50e45 100644
--- a/src/starboard/client_porting/eztime/BUILD.gn
+++ b/src/starboard/client_porting/eztime/BUILD.gn
@@ -12,15 +12,17 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-source_set("eztime") {
+static_library("eztime") {
   sources = [
     "eztime.cc",
     "eztime.h",
   ]
 
-  public_deps = [
+  deps = [
     "//starboard:starboard_headers_only",
     "//starboard/client_porting/icu_init",
+    "//starboard/common",
+    "//third_party/icu",
   ]
 }
 
diff --git a/src/starboard/client_porting/icu_init/BUILD.gn b/src/starboard/client_porting/icu_init/BUILD.gn
index ea44684..73989ce 100644
--- a/src/starboard/client_porting/icu_init/BUILD.gn
+++ b/src/starboard/client_porting/icu_init/BUILD.gn
@@ -12,13 +12,13 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-source_set("icu_init") {
+static_library("icu_init") {
   sources = [
     "icu_init.cc",
     "icu_init.h",
   ]
 
-  public_deps = [
+  deps = [
     "//starboard/common",
     "//third_party/icu",
   ]
diff --git a/src/starboard/common/BUILD.gn b/src/starboard/common/BUILD.gn
index bb3b724..28920c1 100644
--- a/src/starboard/common/BUILD.gn
+++ b/src/starboard/common/BUILD.gn
@@ -15,7 +15,10 @@
 # The "common" target contains facilities provided by Starboard that are common
 # to all platforms.
 
-source_set("common") {
+# This must be a static_library, not a source_set. When using a source_set, we
+# see duplicate definition errors when compiling new.cc because of our
+# overloaded operators.
+static_library("common") {
   public_deps = [ "//starboard:starboard_headers_only" ]
   check_includes = false
 
diff --git a/src/starboard/common/log.cc b/src/starboard/common/log.cc
index cd9509c..b8ded29 100644
--- a/src/starboard/common/log.cc
+++ b/src/starboard/common/log.cc
@@ -29,7 +29,11 @@
 namespace starboard {
 namespace logging {
 namespace {
+#if SB_LOGGING_IS_OFFICIAL_BUILD
+SbLogPriority g_min_log_level = kSbLogPriorityFatal;
+#else
 SbLogPriority g_min_log_level = kSbLogPriorityUnknown;
+#endif
 
 #if defined(COMPILER_MSVC)
 #pragma optimize("", off)
@@ -51,11 +55,7 @@
 }
 
 SbLogPriority GetMinLogLevel() {
-#if SB_LOGGING_IS_OFFICIAL_BUILD
-  return SB_LOG_FATAL;
-#else
   return g_min_log_level;
-#endif
 }
 
 SbLogPriority StringToLogLevel(const std::string& log_level) {
diff --git a/src/starboard/common/log.h b/src/starboard/common/log.h
index 6146167..61a6ebf 100644
--- a/src/starboard/common/log.h
+++ b/src/starboard/common/log.h
@@ -123,7 +123,8 @@
 #define SB_LAZY_STREAM(stream, condition) \
   !(condition) ? (void)0 : ::starboard::logging::LogMessageVoidify() & (stream)
 
-#if SB_LOGGING_IS_OFFICIAL_BUILD
+#if SB_LOGGING_IS_OFFICIAL_BUILD && !SB_IS(EVERGREEN) && \
+    !SB_IS(EVERGREEN_COMPATIBLE)
 #define SB_LOG_IS_ON(severity)                         \
   ((::starboard::logging::SB_LOG_##severity >=         \
     ::starboard::logging::SB_LOG_FATAL)                \
diff --git a/src/starboard/common/optional.h b/src/starboard/common/optional.h
index 23a9616..6c65763 100644
--- a/src/starboard/common/optional.h
+++ b/src/starboard/common/optional.h
@@ -17,6 +17,7 @@
 
 #include <algorithm>
 #include <iosfwd>
+#include <utility>
 
 #include "starboard/common/log.h"
 #include "starboard/configuration.h"
@@ -272,7 +273,7 @@
   void SetValue(T&& value) {  // NOLINT(build/c++11)
     new (void_value()) T(std::move(value));
     engaged_ = true;
-#if !defined(NDEBUG)
+#if !defined(NDEBUG) || defined(DCHECK_ALWAYS_ON)
     value_ptr_ = static_cast<const T*>(void_value());
 #endif
   }
@@ -282,7 +283,7 @@
   void SetValue(const U& value) {
     new (void_value()) T(value);
     engaged_ = true;
-#if !defined(NDEBUG)
+#if !defined(NDEBUG) || defined(DCHECK_ALWAYS_ON)
     value_ptr_ = static_cast<const T*>(void_value());
 #endif
   }
@@ -293,7 +294,7 @@
     if (engaged_) {
       static_cast<T*>(void_value())->~T();
       engaged_ = false;
-#if !defined(NDEBUG)
+#if !defined(NDEBUG) || defined(DCHECK_ALWAYS_ON)
       value_ptr_ = NULL;
 #endif
     }
@@ -303,7 +304,7 @@
   // state.
   void InitializeAsDisengaged() {
     engaged_ = false;
-#if !defined(NDEBUG)
+#if !defined(NDEBUG) || defined(DCHECK_ALWAYS_ON)
     value_ptr_ = NULL;
 #endif
   }
@@ -317,7 +318,7 @@
   SB_ALIGNAS(SB_ALIGNOF(T)) uint8_t value_memory_[sizeof(T)];
   // This boolean tracks whether or not the object is constructed yet or not.
   bool engaged_;
-#if !defined(NDEBUG)
+#if !defined(NDEBUG) || defined(DCHECK_ALWAYS_ON)
   // In debug builds, this member makes it easy to inspect the value contained
   // in the optional via a debugger.
   const T* value_ptr_;
@@ -409,7 +410,7 @@
 
 namespace std {
 template <typename T>
-struct hash<::starboard::optional<T> > {
+struct hash<::starboard::optional<T>> {
  public:
   size_t operator()(const ::starboard::optional<T>& value) const {
     return (value ? value_hash_(value.value()) : 0);
diff --git a/src/starboard/common/thread_collision_warner.h b/src/starboard/common/thread_collision_warner.h
index b199ebd..a1844ed 100644
--- a/src/starboard/common/thread_collision_warner.h
+++ b/src/starboard/common/thread_collision_warner.h
@@ -15,7 +15,7 @@
 //
 //          In this case the macro DFAKE_SCOPED_LOCK has to be
 //          used, it checks that if a thread is inside the push/pop then
-//          noone else is still inside the pop/push
+//          no one else is still inside the pop/push
 //
 // class NonThreadSafeQueue {
 //  public:
@@ -34,7 +34,7 @@
 //
 //          In this case the macro DFAKE_SCOPED_RECURSIVE_LOCK
 //          has to be used, it checks that if a thread is inside the push/pop
-//          then noone else is still inside the pop/push
+//          then no one else is still inside the pop/push
 //
 // class NonThreadSafeQueue {
 //  public:
@@ -93,7 +93,7 @@
 //   DFAKE_MUTEX(shareable_section_);
 // };
 
-#if !defined(NDEBUG)
+#if !defined(NDEBUG) || defined(DCHECK_ALWAYS_ON)
 
 // Defines a class member that acts like a mutex. It is used only as a
 // verification tool.
@@ -138,7 +138,7 @@
 class ThreadCollisionWarner {
  public:
   // The parameter asserter is there only for test purpose
-  ThreadCollisionWarner(AsserterBase* asserter = new DCheckAsserter());
+  explicit ThreadCollisionWarner(AsserterBase* asserter = new DCheckAsserter());
 
   ~ThreadCollisionWarner();
 
diff --git a/src/starboard/configuration.h b/src/starboard/configuration.h
index bbaa847..fafa6e8 100644
--- a/src/starboard/configuration.h
+++ b/src/starboard/configuration.h
@@ -44,7 +44,7 @@
 // The API version that is currently open for changes, and therefore is not
 // stable or frozen. Production-oriented ports should avoid declaring that they
 // implement the experimental Starboard API version.
-#define SB_EXPERIMENTAL_API_VERSION 13
+#define SB_EXPERIMENTAL_API_VERSION 14
 
 // The next API version to be frozen, but is still subject to emergency
 // changes. It is reasonable to base a port on the Release Candidate API
@@ -65,47 +65,6 @@
 //   //   exposes functionality for my new feature.
 //   #define SB_MY_EXPERIMENTAL_FEATURE_VERSION SB_EXPERIMENTAL_API_VERSION
 
-// Add Concealed state support.
-#define SB_ADD_CONCEALED_STATE_SUPPORT_VERSION 14
-
-// Iteration on UI navigation API.
-#define SB_UI_NAVIGATION2_VERSION SB_EXPERIMENTAL_API_VERSION
-
-// Deprecated the SB_OVERRIDE macro.
-#define SB_OVERRIDE_DEPRECATED_VERSION SB_EXPERIMENTAL_API_VERSION
-
-// Deprecated the SB_DISALLOW_COPY_AND_ASSIGN macro.
-#define SB_DISALLOW_COPY_AND_ASSIGN_DEPRECATED_VERSION \
-  SB_EXPERIMENTAL_API_VERSION
-
-// Deprecated SB_TRUE and SB_FALSE.
-#define SB_TRUE_FALSE_DEPRECATED_VERSION SB_EXPERIMENTAL_API_VERSION
-
-// Deprecated SbSystemSort
-#define SB_SYSTEM_SORT_DEPRECATED_VERSION SB_EXPERIMENTAL_API_VERSION
-
-// Deprecated SbSystemBinarySearch
-#define SB_SYSTEM_BINARY_SEARCH_DEPRECATED_VERSION SB_EXPERIMENTAL_API_VERSION
-
-// Deprecated Starboard character APIs
-#define SB_CHARACTER_APIS_DEPRECATED_VERSION SB_EXPERIMENTAL_API_VERSION
-
-// Deprecated Starboard double APIs
-#define SB_DOUBLE_APIS_DEPRECATED_VERSION SB_EXPERIMENTAL_API_VERSION
-
-// Deprecated Starboard stdlib equivalent APIs
-#define SB_STDLIB_APIS_DEPRECATED_VERSION SB_EXPERIMENTAL_API_VERSION
-
-// Introduce Network connectivity APIs
-#define SB_NETWORK_EVENTS_VERSION SB_EXPERIMENTAL_API_VERSION
-
-// Rename misspelled accessibility event types
-#define SB_ACCESSIBILITY_EVENTS_RENAMED_VERSION SB_EXPERIMENTAL_API_VERSION
-
-// Introduce event for date / time configuration changes
-#define SB_EVENT_DATE_TIME_CONFIGURATION_CHANGED_VERSION \
-  SB_EXPERIMENTAL_API_VERSION
-
 // --- Release Candidate Feature Defines -------------------------------------
 
 // --- Common Detected Features ----------------------------------------------
@@ -118,7 +77,7 @@
 
 // --- Common Helper Macros --------------------------------------------------
 
-#if SB_API_VERSION < SB_TRUE_FALSE_DEPRECATED_VERSION
+#if SB_API_VERSION < 13
 #define SB_TRUE 1
 #define SB_FALSE 0
 #else
@@ -183,7 +142,7 @@
 #define SB_STRINGIFY(x) SB_STRINGIFY2(x)
 #define SB_STRINGIFY2(x) #x
 
-#if SB_API_VERSION < SB_DISALLOW_COPY_AND_ASSIGN_DEPRECATED_VERSION
+#if SB_API_VERSION < 13
 // A macro to disallow the copy constructor and operator= functions
 // This should be used in the private: declarations for a class
 #define SB_DISALLOW_COPY_AND_ASSIGN(TypeName) \
@@ -192,7 +151,7 @@
 #else
 #define SB_DISALLOW_COPY_AND_ASSIGN \
   #error "The SB_DISALLOW_COPY_AND_ASSIGN macro is deprecated."
-#endif  // SB_DISALLOW_COPY_AND_ASSIGN_DEPRECATED_VERSION < SB_API_VERSION
+#endif  // SB_API_VERSION < 13
 
 // An enumeration of values for the kSbPreferredByteOrder configuration
 // variable.  Setting this up properly means avoiding slow color swizzles when
@@ -277,7 +236,7 @@
 
 // Declares a function as overriding a virtual function on compilers that
 // support it.
-#if SB_API_VERSION < SB_OVERRIDE_DEPRECATED_VERSION
+#if SB_API_VERSION < 13
 #if !defined(SB_OVERRIDE)
 #if defined(COMPILER_MSVC)
 #define SB_OVERRIDE override
@@ -290,7 +249,7 @@
 #else
 #define SB_OVERRIDE \
   #error "The SB_OVERRIDE macro is deprecated. Please use \"override\" instead."
-#endif  // SB_API_VERSION < SB_OVERRIDE_DEPRECATED_VERSION
+#endif  // SB_API_VERSION < 13
 
 // Declare numeric literals of signed 64-bit type.
 #if !defined(SB_INT64_C)
@@ -936,12 +895,6 @@
 #error "SB_HAS_DRM_SESSION_CLOSED should not be defined for API version >= 10."
 #endif  // defined(SB_HAS_DRM_SESSION_CLOSED)
 
-#if SB_API_VERSION < SB_SPEECH_RECOGNIZER_IS_REQUIRED
-#if !defined(SB_HAS_SPEECH_RECOGNIZER)
-#error "Your platform must define SB_HAS_SPEECH_RECOGNIZER."
-#endif  // !defined(SB_HAS_SPEECH_RECOGNIZER)
-#endif  // SB_API_VERSION < SB_SPEECH_RECOGNIZER_IS_REQUIRED
-
 #if SB_API_VERSION < 12
 #if !defined(SB_HAS_ON_SCREEN_KEYBOARD)
 #error "Your platform must define SB_HAS_ON_SCREEN_KEYBOARD."
@@ -1014,8 +967,12 @@
 // the gyp variable `gl_type` which indicates what kind of GL implementation
 // is available.
 #if !defined(SB_HAS_GLES2)
+#if defined(SB_GN_GL_TYPE_IS_NONE)
+#define SB_HAS_GLES2 !SB_GN_GL_TYPE_IS_NONE
+#else
 #define SB_HAS_GLES2 !SB_GYP_GL_TYPE_IS_NONE
 #endif
+#endif
 
 // --- Deprecated Feature Macros -----------------------------------------------
 
diff --git a/src/starboard/cpu_features.h b/src/starboard/cpu_features.h
index f3afafe..d52749f 100644
--- a/src/starboard/cpu_features.h
+++ b/src/starboard/cpu_features.h
@@ -94,6 +94,10 @@
   bool has_vfp;
   // VFP version 3
   bool has_vfp3;
+#if SB_API_VERSION >= 13
+  // VFP version 4
+  bool has_vfp4;
+#endif
   // VFP version 3 with 32 D-registers.
   bool has_vfp3_d32;
   // SDIV and UDIV hardware division in ARM mode.
diff --git a/src/starboard/double.h b/src/starboard/double.h
index 4f62d99..4592f91 100644
--- a/src/starboard/double.h
+++ b/src/starboard/double.h
@@ -22,7 +22,7 @@
 #include "starboard/export.h"
 #include "starboard/types.h"
 
-#if SB_API_VERSION < SB_DOUBLE_APIS_DEPRECATED_VERSION
+#if SB_API_VERSION < 13
 
 #ifdef __cplusplus
 extern "C" {
@@ -61,5 +61,5 @@
 }  // extern "C"
 #endif
 
-#endif  // SB_API_VERSION < SB_DOUBLE_APIS_DEPRECATED_VERSION
+#endif  // SB_API_VERSION < 13
 #endif  // STARBOARD_DOUBLE_H_
diff --git a/src/starboard/egl_and_gles/BUILD.gn b/src/starboard/egl_and_gles/BUILD.gn
index 41dbb9b..ccf1cd83 100644
--- a/src/starboard/egl_and_gles/BUILD.gn
+++ b/src/starboard/egl_and_gles/BUILD.gn
@@ -23,5 +23,30 @@
 # in the configuration.gni for the current platform.
 
 group("egl_and_gles") {
-  public_deps = [ ":egl_and_gles_$gl_type" ]
+  deps = [ ":egl_and_gles_$gl_type" ]
+}
+
+group("egl_and_gles_system_gles2") {
+  # Use the system-provided implementation of GLES2.
+}
+
+declare_args() {
+  enable_d3d11_feature_level_11 = false
+}
+
+config("egl_and_gles_angle_config") {
+  include_dirs = [ "//third_party/angle/include" ]
+  if (is_win && enable_d3d11_feature_level_11) {
+    defines = [ "GL_GLEXT_PROTOTYPES" ]
+  }
+}
+
+if (gl_type == "angle") {
+  group("egl_and_gles_angle") {
+    public_deps = [
+      "//third_party/angle:libEGL",
+      "//third_party/angle:libGLESv2",
+    ]
+    public_configs = [ ":egl_and_gles_angle_config" ]
+  }
 }
diff --git a/src/starboard/linux/x64x11/vulkan/starboard_platform.gyp b/src/starboard/elf_loader/BUILD.gn
similarity index 60%
copy from src/starboard/linux/x64x11/vulkan/starboard_platform.gyp
copy to src/starboard/elf_loader/BUILD.gn
index 82c4436..e150d2f 100644
--- a/src/starboard/linux/x64x11/vulkan/starboard_platform.gyp
+++ b/src/starboard/elf_loader/BUILD.gn
@@ -1,4 +1,4 @@
-# Copyright 2017 The Cobalt Authors. All Rights Reserved.
+# Copyright 2021 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.
@@ -11,8 +11,21 @@
 # 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.
-{
-  'includes': [
-    '../shared/starboard_platform_target.gypi',
-  ],
+
+static_library("evergreen_info") {
+  sources = [
+    "evergreen_info.cc",
+    "evergreen_info.h",
+  ]
+
+  public_deps = [ "//starboard/common" ]
+}
+
+static_library("evergreen_config") {
+  sources = [
+    "evergreen_config.cc",
+    "evergreen_config.h",
+  ]
+
+  public_deps = [ "//starboard/common" ]
 }
diff --git a/src/starboard/elf_loader/exported_symbols.cc b/src/starboard/elf_loader/exported_symbols.cc
index 803766b..75c8128 100644
--- a/src/starboard/elf_loader/exported_symbols.cc
+++ b/src/starboard/elf_loader/exported_symbols.cc
@@ -40,7 +40,9 @@
 #include "starboard/player.h"
 #include "starboard/socket.h"
 #include "starboard/socket_waiter.h"
+#if SB_API_VERSION < 13
 #include "starboard/speech_recognizer.h"
+#endif
 #include "starboard/speech_synthesis.h"
 #include "starboard/storage.h"
 #include "starboard/string.h"
@@ -75,7 +77,7 @@
   REGISTER_SYMBOL(SbByteSwapU16);
   REGISTER_SYMBOL(SbByteSwapU32);
   REGISTER_SYMBOL(SbByteSwapU64);
-#if SB_API_VERSION < SB_CHARACTER_APIS_DEPRECATED_VERSION
+#if SB_API_VERSION < 13
   REGISTER_SYMBOL(SbCharacterIsAlphanumeric);
   REGISTER_SYMBOL(SbCharacterIsDigit);
   REGISTER_SYMBOL(SbCharacterIsHexDigit);
@@ -83,7 +85,7 @@
   REGISTER_SYMBOL(SbCharacterIsUpper);
   REGISTER_SYMBOL(SbCharacterToLower);
   REGISTER_SYMBOL(SbCharacterToUpper);
-#endif  // SB_API_VERSION < SB_CHARACTER_APIS_DEPRECATED_VERSION
+#endif  // SB_API_VERSION < 13
   REGISTER_SYMBOL(SbConditionVariableBroadcast);
   REGISTER_SYMBOL(SbConditionVariableCreate);
   REGISTER_SYMBOL(SbConditionVariableDestroy);
@@ -97,13 +99,13 @@
   REGISTER_SYMBOL(SbDirectoryCreate);
   REGISTER_SYMBOL(SbDirectoryGetNext);
   REGISTER_SYMBOL(SbDirectoryOpen);
-#if SB_API_VERSION < SB_DOUBLE_APIS_DEPRECATED_VERSION
+#if SB_API_VERSION < 13
   REGISTER_SYMBOL(SbDoubleAbsolute);
   REGISTER_SYMBOL(SbDoubleExponent);
   REGISTER_SYMBOL(SbDoubleFloor);
   REGISTER_SYMBOL(SbDoubleIsFinite);
   REGISTER_SYMBOL(SbDoubleIsNan);
-#endif  // SB_API_VERSION < SB_DOUBLE_APIS_DEPRECATED_VERSION
+#endif  // SB_API_VERSION < 13
   REGISTER_SYMBOL(SbDrmCloseSession);
   REGISTER_SYMBOL(SbDrmCreateSystem);
   REGISTER_SYMBOL(SbDrmDestroySystem);
@@ -226,14 +228,14 @@
   REGISTER_SYMBOL(SbStringFormatWide);
   REGISTER_SYMBOL(SbStringGetLength);
   REGISTER_SYMBOL(SbStringGetLengthWide);
-#if SB_API_VERSION < SB_STDLIB_APIS_DEPRECATED_VERSION
+#if SB_API_VERSION < 13
   REGISTER_SYMBOL(SbStringParseDouble);
   REGISTER_SYMBOL(SbStringParseSignedInteger);
   REGISTER_SYMBOL(SbStringParseUInt64);
   REGISTER_SYMBOL(SbStringParseUnsignedInteger);
 #endif
   REGISTER_SYMBOL(SbStringScan);
-#if SB_API_VERSION < SB_SYSTEM_BINARY_SEARCH_DEPRECATED_VERSION
+#if SB_API_VERSION < 13
   REGISTER_SYMBOL(SbSystemBinarySearch);
 #endif
   REGISTER_SYMBOL(SbSystemBreakIntoDebugger);
@@ -256,8 +258,7 @@
   REGISTER_SYMBOL(SbSystemHideSplashScreen);
   REGISTER_SYMBOL(SbSystemIsDebuggerAttached);
   REGISTER_SYMBOL(SbSystemRaisePlatformError);
-#if SB_API_VERSION >= SB_ADD_CONCEALED_STATE_SUPPORT_VERSION || \
-    SB_HAS(CONCEALED_STATE)
+#if SB_API_VERSION >= 13
   REGISTER_SYMBOL(SbSystemRequestBlur);
   REGISTER_SYMBOL(SbSystemRequestConceal);
   REGISTER_SYMBOL(SbSystemRequestFocus);
@@ -269,12 +270,11 @@
   REGISTER_SYMBOL(SbSystemRequestStop);
   REGISTER_SYMBOL(SbSystemRequestSuspend);
   REGISTER_SYMBOL(SbSystemRequestUnpause);
-#endif  // SB_API_VERSION >= SB_ADD_CONCEALED_STATE_SUPPORT_VERSION ||
-        // SB_HAS(CONCEALED_STATE)
+#endif  // SB_API_VERSION >= 13
 
-#if SB_API_VERSION < SB_SYSTEM_SORT_DEPRECATED_VERSION
+#if SB_API_VERSION < 13
   REGISTER_SYMBOL(SbSystemSort);
-#endif  // SB_API_VERSION < SB_SYSTEM_SORT_DEPRECATED_VERSION
+#endif  // SB_API_VERSION < 13
 
   REGISTER_SYMBOL(SbSystemSymbolize);
   REGISTER_SYMBOL(SbThreadCreate);
@@ -380,17 +380,17 @@
 #endif  // SB_API_VERSION >= 12 ||
         // SB_HAS(TIME_THREAD_NOW)
 
-#if SB_API_VERSION >= 12
+#if SB_API_VERSION == 12
   REGISTER_SYMBOL(SbSpeechRecognizerIsSupported);
 #endif
-#if SB_API_VERSION >= 12 || SB_HAS(SPEECH_RECOGNIZER)
+#if SB_API_VERSION == 12 || (SB_API_VERSION < 12 && SB_HAS(SPEECH_RECOGNIZER))
   REGISTER_SYMBOL(SbSpeechRecognizerCreate);
   REGISTER_SYMBOL(SbSpeechRecognizerDestroy);
   REGISTER_SYMBOL(SbSpeechRecognizerStart);
   REGISTER_SYMBOL(SbSpeechRecognizerStop);
   REGISTER_SYMBOL(SbSpeechRecognizerCancel);
 #endif  // SB_API_VERSION >= 12 ||
-        // SB_HAS(SPEECH_RECOGNIZER)
+        // (SB_API_VERSION < 12 && SB_HAS(SPEECH_RECOGNIZER))
 
 #if SB_API_VERSION >= 12
   REGISTER_SYMBOL(SbSpeechSynthesisIsSupported);
@@ -460,9 +460,9 @@
   REGISTER_SYMBOL(kSbUserMaxSignedIn);
 #endif  // SB_API_VERSION >= 12
 
-#if SB_API_VERSION >= SB_NETWORK_EVENTS_VERSION
+#if SB_API_VERSION >= 13
   REGISTER_SYMBOL(SbSystemNetworkIsDisconnected);
-#endif  // SB_API_VERSION >= SB_NETWORK_EVENTS_VERSION
+#endif  // SB_API_VERSION >= 13
 }  // NOLINT
 
 const void* ExportedSymbols::Lookup(const char* name) {
diff --git a/src/starboard/event.h b/src/starboard/event.h
index 1769547..3649d12 100644
--- a/src/starboard/event.h
+++ b/src/starboard/event.h
@@ -12,7 +12,7 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-// For platforms that define SB_HAS_CONCEALED_STATE
+// For SB_API_VERSION >= 13
 //
 // Module Overview: Starboard Event module
 //
@@ -89,7 +89,7 @@
 // Note that the application is always expected to transition through |BLURRED|,
 // |CONCEALED| to |FROZEN| before receiving |Stop| or being killed.
 //
-// For platforms that do not define SB_HAS_CONCEALED_STATE
+// For SB_API_VERSION < 13
 //
 // Module Overview: Starboard Event module
 //
@@ -176,8 +176,7 @@
 // system. Each event is accompanied by a void* data argument, and each event
 // must define the type of the value pointed to by that data argument, if any.
 typedef enum SbEventType {
-#if SB_API_VERSION >= SB_ADD_CONCEALED_STATE_SUPPORT_VERSION || \
-    SB_HAS(CONCEALED_STATE)
+#if SB_API_VERSION >= 13
   // Applications should perform initialization and prepare to react to
   // subsequent events, but must not initialize any graphics resources (through
   // GL or SbBlitter). The intent of this event is to allow the application to
@@ -311,8 +310,7 @@
   // event is handled. Can only be received after a Suspend event, in the
   // SUSPENDED state. No data argument.
   kSbEventTypeStop,
-#endif  // SB_API_VERSION >= SB_ADD_CONCEALED_STATE_SUPPORT_VERSION ||
-        // SB_HAS(CONCEALED_STATE)
+#endif  // SB_API_VERSION >= 13
 
   // A user input event, including keyboard, mouse, gesture, or something else.
   // SbInputData (from input.h) is passed as the data argument.
@@ -351,11 +349,11 @@
   // using older starboard versions should use
   // kSbEventTypeAccessib(i)litySettingsChanged for text-to-speech settings
   // changes.
-#if SB_API_VERSION >= SB_ACCESSIBILITY_EVENTS_RENAMED_VERSION
+#if SB_API_VERSION >= 13
   kSbEventTypeAccessibilitySettingsChanged,
 #else
   kSbEventTypeAccessiblitySettingsChanged,
-#endif  // SB_API_VERSION >= SB_ACCESSIBILITY_EVENTS_RENAMED_VERSION
+#endif  // SB_API_VERSION >= 13
 
   // An optional event that platforms may send to indicate that the application
   // may soon be terminated (or crash) due to low memory availability. The
@@ -425,14 +423,14 @@
 
 #if SB_API_VERSION >= 12
   // The platform's text-to-speech settings have changed.
-#if SB_API_VERSION >= SB_ACCESSIBILITY_EVENTS_RENAMED_VERSION
+#if SB_API_VERSION >= 13
   kSbEventTypeAccessibilityTextToSpeechSettingsChanged,
 #else
   kSbEventTypeAccessiblityTextToSpeechSettingsChanged,
-#endif  // SB_API_VERSION >= SB_ACCESSIBILITY_EVENTS_RENAMED_VERSION
+#endif  // SB_API_VERSION >= 13
 #endif  // SB_API_VERSION >= 12
 
-#if SB_API_VERSION >= SB_NETWORK_EVENTS_VERSION
+#if SB_API_VERSION >= 13
   // The platform has detected a network disconnection. There are likely to
   // be cases where the platform cannot detect the disconnection but the
   // platform should make a best effort to send an event of this type when
@@ -448,12 +446,12 @@
   kSbEventTypeOsNetworkConnected,
 #endif  // SB_API_VERSION >= SB_EXPERIMENTAL_API_VERSION
 
-#if SB_API_VERSION >= SB_EVENT_DATE_TIME_CONFIGURATION_CHANGED_VERSION
+#if SB_API_VERSION >= 13
   // The platform has detected a date and/or time configuration change (such
   // as a change in the timezone setting). This should trigger the application
   // to re-query the relevant APIs to update the date and time.
   kSbEventDateTimeConfigurationChanged,
-#endif  // SB_API_VERSION >= SB_EVENT_DATE_TIME_CONFIGURATION_CHANGED_VERSION
+#endif  // SB_API_VERSION >= 13
 } SbEventType;
 
 // Structure representing a Starboard event and its data.
diff --git a/src/starboard/evergreen/arm/hardfp/configuration_public.h b/src/starboard/evergreen/arm/hardfp/configuration_public.h
index dca541d..17677a7 100644
--- a/src/starboard/evergreen/arm/hardfp/configuration_public.h
+++ b/src/starboard/evergreen/arm/hardfp/configuration_public.h
@@ -124,9 +124,6 @@
 // Whether the current platform implements the on screen keyboard interface.
 #define SB_HAS_ON_SCREEN_KEYBOARD 0
 
-// Whether the current platform has speech recognizer.
-#define SB_HAS_SPEECH_RECOGNIZER 0
-
 // Whether the current platform has speech synthesis.
 #define SB_HAS_SPEECH_SYNTHESIS 0
 
diff --git a/src/starboard/evergreen/arm/softfp/configuration_public.h b/src/starboard/evergreen/arm/softfp/configuration_public.h
index 8187911..4862aa4 100644
--- a/src/starboard/evergreen/arm/softfp/configuration_public.h
+++ b/src/starboard/evergreen/arm/softfp/configuration_public.h
@@ -127,9 +127,6 @@
 // Whether the current platform implements the on screen keyboard interface.
 #define SB_HAS_ON_SCREEN_KEYBOARD 0
 
-// Whether the current platform has speech recognizer.
-#define SB_HAS_SPEECH_RECOGNIZER 0
-
 // Whether the current platform has speech synthesis.
 #define SB_HAS_SPEECH_SYNTHESIS 0
 
diff --git a/src/starboard/evergreen/arm64/configuration_public.h b/src/starboard/evergreen/arm64/configuration_public.h
index 243ed7c..224cc09 100644
--- a/src/starboard/evergreen/arm64/configuration_public.h
+++ b/src/starboard/evergreen/arm64/configuration_public.h
@@ -127,9 +127,6 @@
 // Whether the current platform implements the on screen keyboard interface.
 #define SB_HAS_ON_SCREEN_KEYBOARD 0
 
-// Whether the current platform has speech recognizer.
-#define SB_HAS_SPEECH_RECOGNIZER 0
-
 // Whether the current platform has speech synthesis.
 #define SB_HAS_SPEECH_SYNTHESIS 0
 
diff --git a/src/starboard/evergreen/shared/starboard_platform.gypi b/src/starboard/evergreen/shared/starboard_platform.gypi
index 1a205c7..d0bab6a 100644
--- a/src/starboard/evergreen/shared/starboard_platform.gypi
+++ b/src/starboard/evergreen/shared/starboard_platform.gypi
@@ -14,12 +14,6 @@
 {
   'variables':  {
     'speech_stub_sources': [
-      '<(DEPTH)/starboard/shared/stub/speech_recognizer_cancel.cc',
-      '<(DEPTH)/starboard/shared/stub/speech_recognizer_create.cc',
-      '<(DEPTH)/starboard/shared/stub/speech_recognizer_destroy.cc',
-      '<(DEPTH)/starboard/shared/stub/speech_recognizer_is_supported.cc',
-      '<(DEPTH)/starboard/shared/stub/speech_recognizer_start.cc',
-      '<(DEPTH)/starboard/shared/stub/speech_recognizer_stop.cc',
       '<(DEPTH)/starboard/shared/stub/speech_synthesis_cancel.cc',
       '<(DEPTH)/starboard/shared/stub/speech_synthesis_is_supported.cc',
       '<(DEPTH)/starboard/shared/stub/speech_synthesis_speak.cc',
diff --git a/src/starboard/evergreen/testing/tests/out_of_storage_test.sh b/src/starboard/evergreen/testing/tests/out_of_storage_test.sh
index 5f69e22..3e13e55 100755
--- a/src/starboard/evergreen/testing/tests/out_of_storage_test.sh
+++ b/src/starboard/evergreen/testing/tests/out_of_storage_test.sh
@@ -46,7 +46,7 @@
   OLD_TIMEOUT="${TIMEOUT}"
   TIMEOUT=300
 
-  cycle_cobalt "file:///tests/${TEST_FILE}?channel=test" "${TEST_NAME}.0.log" "Failed to update, log "error" code is 12"
+  cycle_cobalt "file:///tests/${TEST_FILE}?channel=test" "${TEST_NAME}.0.log" "Failed to update, log \"error\" code is 12"
 
   # Remove the symbolic link.
   run_command "rm -f ${STORAGE_DIR}" 1> /dev/null
diff --git a/src/starboard/evergreen/x64/configuration_public.h b/src/starboard/evergreen/x64/configuration_public.h
index 14b5102..93a0b4f 100644
--- a/src/starboard/evergreen/x64/configuration_public.h
+++ b/src/starboard/evergreen/x64/configuration_public.h
@@ -124,9 +124,6 @@
 // Whether the current platform implements the on screen keyboard interface.
 #define SB_HAS_ON_SCREEN_KEYBOARD 0
 
-// Whether the current platform has speech recognizer.
-#define SB_HAS_SPEECH_RECOGNIZER 0
-
 // Whether the current platform has speech synthesis.
 #define SB_HAS_SPEECH_SYNTHESIS 0
 
diff --git a/src/starboard/examples/glclear/BUILD.gn b/src/starboard/examples/glclear/BUILD.gn
index 20347b3..3b8cbe1 100644
--- a/src/starboard/examples/glclear/BUILD.gn
+++ b/src/starboard/examples/glclear/BUILD.gn
@@ -14,7 +14,7 @@
 
 target(final_executable_type, "starboard_glclear_example") {
   deps = [ "//starboard" ]
-  if (!sb_evergreen) {
+  if (!sb_is_evergreen) {
     deps += [ "//starboard/egl_and_gles" ]
   }
 
diff --git a/src/starboard/examples/window/main.cc b/src/starboard/examples/window/main.cc
index 27c80a0..4a6099d 100644
--- a/src/starboard/examples/window/main.cc
+++ b/src/starboard/examples/window/main.cc
@@ -45,8 +45,7 @@
       g_window = SbWindowCreate(NULL);
       SB_CHECK(SbWindowIsValid(g_window));
 
-#if SB_API_VERSION >= SB_ADD_CONCEALED_STATE_SUPPORT_VERSION || \
-    SB_HAS(CONCEALED_STATE)
+#if SB_API_VERSION >= 13
       SB_LOG(INFO) << "    F1 - Blur";
       SB_LOG(INFO) << "    F2 - Focus";
       SB_LOG(INFO) << "    F3 - Conceal";
@@ -57,8 +56,7 @@
       SB_LOG(INFO) << "    F2 - Unpause";
       SB_LOG(INFO) << "    F3 - Suspend";
       SB_LOG(INFO) << "    F5 - Stop";
-#endif  // SB_API_VERSION >= SB_ADD_CONCEALED_STATE_SUPPORT_VERSION ||
-        // SB_HAS(CONCEALED_STATE)
+#endif  // SB_API_VERSION >= 13
       break;
     }
     case kSbEventTypeInput: {
@@ -67,9 +65,8 @@
       SB_LOG(INFO) << "INPUT: type=" << data->type
                    << ", window=" << data->window
                    << ", device_type=" << data->device_type
-                   << ", device_id=" << data->device_id
-                   << ", key=0x" << std::hex << data->key
-                   << ", character=" << data->character
+                   << ", device_id=" << data->device_id << ", key=0x"
+                   << std::hex << data->key << ", character=" << data->character
                    << ", modifiers=0x" << std::hex << data->key_modifiers
                    << ", location=" << std::dec << data->key_location
                    << ", position="
@@ -95,8 +92,7 @@
           SB_LOG(INFO) << keys.str();
         }
       }
-#if  SB_API_VERSION >= SB_ADD_CONCEALED_STATE_SUPPORT_VERSION || \
-     SB_HAS(CONCEALED_STATE)
+#if SB_API_VERSION >= 13
       switch (data->key) {
         case kSbKeyF1:
           SbSystemRequestBlur();
@@ -135,12 +131,10 @@
           // Do nothing.
           break;
       }
-#endif  // SB_API_VERSION >= SB_ADD_CONCEALED_STATE_SUPPORT_VERSION ||
-        // SB_HAS(CONCEALED_STATE)
+#endif  // SB_API_VERSION >= 13
       break;
     }
-#if SB_API_VERSION >= SB_ADD_CONCEALED_STATE_SUPPORT_VERSION || \
-    SB_HAS(CONCEALED_STATE)
+#if SB_API_VERSION >= 13
     case kSbEventTypeBlur: {
       SB_LOG(INFO) << "BLUR";
       break;
@@ -192,8 +186,7 @@
       SB_LOG(INFO) << "UNPAUSE";
       break;
     }
-#endif  // SB_API_VERSION >= SB_ADD_CONCEALED_STATE_SUPPORT_VERSION ||
-        // SB_HAS(CONCEALED_STATE)
+#endif  // SB_API_VERSION >= 13
     default:
       SB_LOG(INFO) << "Event Type " << event->type << " not handled.";
       break;
diff --git a/src/starboard/linux/shared/BUILD.gn b/src/starboard/linux/shared/BUILD.gn
new file mode 100644
index 0000000..16214db
--- /dev/null
+++ b/src/starboard/linux/shared/BUILD.gn
@@ -0,0 +1,411 @@
+# Copyright 2021 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.
+
+declare_args() {
+  has_cdm = false
+}
+
+group("starboard_platform") {
+  public_deps = [
+    ":starboard_base_symbolize",
+    ":starboard_platform_sources",
+    "//starboard/common",
+    "//starboard/shared/ffmpeg:ffmpeg_dynamic_load",
+    "//starboard/shared/starboard/media:media_util",
+    "//starboard/shared/starboard/player",
+  ]
+
+  deps = [
+    "//third_party/libevent",
+    "//third_party/opus",
+  ]
+
+  if (sb_is_evergreen_compatible) {
+    public_deps += [ "//starboard/elf_loader:evergreen_config" ]
+
+    if (!sb_evergreen_compatible_enable_lite) {
+      public_deps += [ "//starboard/loader_app:pending_restart" ]
+    }
+  }
+
+  if (sb_evergreen_compatible_use_libunwind) {
+    deps += [ "//third_party/llvm-project/libunwind:unwind_starboard" ]
+  }
+}
+
+static_library("starboard_base_symbolize") {
+  sources = [
+    "//base/third_party/symbolize/demangle.cc",
+    "//base/third_party/symbolize/symbolize.cc",
+  ]
+  public_deps = [ "//starboard/elf_loader:evergreen_info" ]
+}
+
+static_library("starboard_platform_sources") {
+  check_includes = false
+  sources = [
+    "//starboard/linux/shared/atomic_public.h",
+    "//starboard/linux/shared/audio_sink_type_dispatcher.cc",
+    "//starboard/linux/shared/configuration.cc",
+    "//starboard/linux/shared/configuration.h",
+    "//starboard/linux/shared/configuration_constants.cc",
+    "//starboard/linux/shared/configuration_public.h",
+    "//starboard/linux/shared/decode_target_get_info.cc",
+    "//starboard/linux/shared/decode_target_internal.cc",
+    "//starboard/linux/shared/decode_target_internal.h",
+    "//starboard/linux/shared/decode_target_release.cc",
+    "//starboard/linux/shared/media_is_audio_supported.cc",
+    "//starboard/linux/shared/media_is_video_supported.cc",
+    "//starboard/linux/shared/player_components_factory.cc",
+    "//starboard/linux/shared/system_get_connection_type.cc",
+    "//starboard/linux/shared/system_get_device_type.cc",
+    "//starboard/linux/shared/system_get_extensions.cc",
+    "//starboard/linux/shared/system_get_path.cc",
+    "//starboard/linux/shared/system_has_capability.cc",
+    "//starboard/shared/alsa/alsa_audio_sink_type.cc",
+    "//starboard/shared/alsa/alsa_audio_sink_type.h",
+    "//starboard/shared/alsa/alsa_util.cc",
+    "//starboard/shared/alsa/alsa_util.h",
+    "//starboard/shared/deviceauth/deviceauth_internal.cc",
+    "//starboard/shared/dlmalloc/memory_map.cc",
+    "//starboard/shared/dlmalloc/memory_protect.cc",
+    "//starboard/shared/dlmalloc/memory_unmap.cc",
+    "//starboard/shared/egl/system_egl.cc",
+    "//starboard/shared/gcc/atomic_gcc_public.h",
+    "//starboard/shared/gles/system_gles2.cc",
+    "//starboard/shared/iso/character_is_alphanumeric.cc",
+    "//starboard/shared/iso/character_is_digit.cc",
+    "//starboard/shared/iso/character_is_hex_digit.cc",
+    "//starboard/shared/iso/character_is_space.cc",
+    "//starboard/shared/iso/character_is_upper.cc",
+    "//starboard/shared/iso/character_to_lower.cc",
+    "//starboard/shared/iso/character_to_upper.cc",
+    "//starboard/shared/iso/directory_close.cc",
+    "//starboard/shared/iso/directory_get_next.cc",
+    "//starboard/shared/iso/directory_open.cc",
+    "//starboard/shared/iso/double_absolute.cc",
+    "//starboard/shared/iso/double_exponent.cc",
+    "//starboard/shared/iso/double_floor.cc",
+    "//starboard/shared/iso/double_is_finite.cc",
+    "//starboard/shared/iso/double_is_nan.cc",
+    "//starboard/shared/iso/memory_allocate_unchecked.cc",
+    "//starboard/shared/iso/memory_compare.cc",
+    "//starboard/shared/iso/memory_copy.cc",
+    "//starboard/shared/iso/memory_find_byte.cc",
+    "//starboard/shared/iso/memory_free.cc",
+    "//starboard/shared/iso/memory_move.cc",
+    "//starboard/shared/iso/memory_reallocate_unchecked.cc",
+    "//starboard/shared/iso/memory_set.cc",
+    "//starboard/shared/iso/string_compare.cc",
+    "//starboard/shared/iso/string_compare_all.cc",
+    "//starboard/shared/iso/string_find_character.cc",
+    "//starboard/shared/iso/string_find_last_character.cc",
+    "//starboard/shared/iso/string_find_string.cc",
+    "//starboard/shared/iso/string_get_length.cc",
+    "//starboard/shared/iso/string_get_length_wide.cc",
+    "//starboard/shared/iso/string_parse_double.cc",
+    "//starboard/shared/iso/string_parse_signed_integer.cc",
+    "//starboard/shared/iso/string_parse_uint64.cc",
+    "//starboard/shared/iso/string_parse_unsigned_integer.cc",
+    "//starboard/shared/iso/string_scan.cc",
+    "//starboard/shared/iso/system_binary_search.cc",
+    "//starboard/shared/iso/system_sort.cc",
+    "//starboard/shared/libdav1d/dav1d_video_decoder.cc",
+    "//starboard/shared/libdav1d/dav1d_video_decoder.h",
+    "//starboard/shared/libde265/de265_library_loader.cc",
+    "//starboard/shared/libde265/de265_library_loader.h",
+    "//starboard/shared/libde265/de265_video_decoder.cc",
+    "//starboard/shared/libde265/de265_video_decoder.h",
+    "//starboard/shared/libevent/socket_waiter_add.cc",
+    "//starboard/shared/libevent/socket_waiter_create.cc",
+    "//starboard/shared/libevent/socket_waiter_destroy.cc",
+    "//starboard/shared/libevent/socket_waiter_internal.cc",
+    "//starboard/shared/libevent/socket_waiter_remove.cc",
+    "//starboard/shared/libevent/socket_waiter_wait.cc",
+    "//starboard/shared/libevent/socket_waiter_wait_timed.cc",
+    "//starboard/shared/libevent/socket_waiter_wake_up.cc",
+    "//starboard/shared/libvpx/vpx_video_decoder.cc",
+    "//starboard/shared/libvpx/vpx_video_decoder.h",
+    "//starboard/shared/linux/byte_swap.cc",
+    "//starboard/shared/linux/cpu_features_get.cc",
+    "//starboard/shared/linux/dev_input/dev_input.cc",
+    "//starboard/shared/linux/dev_input/dev_input.h",
+    "//starboard/shared/linux/get_home_directory.cc",
+    "//starboard/shared/linux/memory_get_stack_bounds.cc",
+    "//starboard/shared/linux/page_internal.cc",
+    "//starboard/shared/linux/socket_get_interface_address.cc",
+    "//starboard/shared/linux/system_get_random_data.cc",
+    "//starboard/shared/linux/system_get_stack.cc",
+    "//starboard/shared/linux/system_get_total_cpu_memory.cc",
+    "//starboard/shared/linux/system_get_used_cpu_memory.cc",
+    "//starboard/shared/linux/system_is_debugger_attached.cc",
+    "//starboard/shared/linux/system_network_status.cc",
+    "//starboard/shared/linux/system_symbolize.cc",
+    "//starboard/shared/linux/thread_get_id.cc",
+    "//starboard/shared/linux/thread_get_name.cc",
+    "//starboard/shared/linux/thread_set_name.cc",
+    "//starboard/shared/nouser/user_get_current.cc",
+    "//starboard/shared/nouser/user_get_property.cc",
+    "//starboard/shared/nouser/user_get_signed_in.cc",
+    "//starboard/shared/nouser/user_internal.cc",
+    "//starboard/shared/opus/opus_audio_decoder.cc",
+    "//starboard/shared/opus/opus_audio_decoder.h",
+    "//starboard/shared/posix/directory_create.cc",
+    "//starboard/shared/posix/file_atomic_replace.cc",
+    "//starboard/shared/posix/file_can_open.cc",
+    "//starboard/shared/posix/file_close.cc",
+    "//starboard/shared/posix/file_delete.cc",
+    "//starboard/shared/posix/file_exists.cc",
+    "//starboard/shared/posix/file_flush.cc",
+    "//starboard/shared/posix/file_get_info.cc",
+    "//starboard/shared/posix/file_get_path_info.cc",
+    "//starboard/shared/posix/file_open.cc",
+    "//starboard/shared/posix/file_read.cc",
+    "//starboard/shared/posix/file_seek.cc",
+    "//starboard/shared/posix/file_truncate.cc",
+    "//starboard/shared/posix/file_write.cc",
+    "//starboard/shared/posix/log.cc",
+    "//starboard/shared/posix/log_flush.cc",
+    "//starboard/shared/posix/log_format.cc",
+    "//starboard/shared/posix/log_is_tty.cc",
+    "//starboard/shared/posix/log_raw.cc",
+    "//starboard/shared/posix/memory_allocate_aligned_unchecked.cc",
+    "//starboard/shared/posix/memory_flush.cc",
+    "//starboard/shared/posix/memory_free_aligned.cc",
+    "//starboard/shared/posix/set_non_blocking_internal.cc",
+    "//starboard/shared/posix/socket_accept.cc",
+    "//starboard/shared/posix/socket_bind.cc",
+    "//starboard/shared/posix/socket_clear_last_error.cc",
+    "//starboard/shared/posix/socket_connect.cc",
+    "//starboard/shared/posix/socket_create.cc",
+    "//starboard/shared/posix/socket_destroy.cc",
+    "//starboard/shared/posix/socket_free_resolution.cc",
+    "//starboard/shared/posix/socket_get_last_error.cc",
+    "//starboard/shared/posix/socket_get_local_address.cc",
+    "//starboard/shared/posix/socket_internal.cc",
+    "//starboard/shared/posix/socket_is_connected.cc",
+    "//starboard/shared/posix/socket_is_connected_and_idle.cc",
+    "//starboard/shared/posix/socket_is_ipv6_supported.cc",
+    "//starboard/shared/posix/socket_join_multicast_group.cc",
+    "//starboard/shared/posix/socket_listen.cc",
+    "//starboard/shared/posix/socket_receive_from.cc",
+    "//starboard/shared/posix/socket_resolve.cc",
+    "//starboard/shared/posix/socket_send_to.cc",
+    "//starboard/shared/posix/socket_set_broadcast.cc",
+    "//starboard/shared/posix/socket_set_receive_buffer_size.cc",
+    "//starboard/shared/posix/socket_set_reuse_address.cc",
+    "//starboard/shared/posix/socket_set_send_buffer_size.cc",
+    "//starboard/shared/posix/socket_set_tcp_keep_alive.cc",
+    "//starboard/shared/posix/socket_set_tcp_no_delay.cc",
+    "//starboard/shared/posix/socket_set_tcp_window_scaling.cc",
+    "//starboard/shared/posix/storage_write_record.cc",
+    "//starboard/shared/posix/string_compare_no_case.cc",
+    "//starboard/shared/posix/string_compare_no_case_n.cc",
+    "//starboard/shared/posix/string_compare_wide.cc",
+    "//starboard/shared/posix/string_format.cc",
+    "//starboard/shared/posix/string_format_wide.cc",
+    "//starboard/shared/posix/system_break_into_debugger.cc",
+    "//starboard/shared/posix/system_clear_last_error.cc",
+    "//starboard/shared/posix/system_get_error_string.cc",
+    "//starboard/shared/posix/system_get_last_error.cc",
+    "//starboard/shared/posix/system_get_locale_id.cc",
+    "//starboard/shared/posix/system_get_number_of_processors.cc",
+    "//starboard/shared/posix/thread_sleep.cc",
+    "//starboard/shared/posix/time_get_monotonic_now.cc",
+    "//starboard/shared/posix/time_get_monotonic_thread_now.cc",
+    "//starboard/shared/posix/time_get_now.cc",
+    "//starboard/shared/posix/time_is_time_thread_now_supported.cc",
+    "//starboard/shared/posix/time_zone_get_current.cc",
+    "//starboard/shared/posix/time_zone_get_name.cc",
+    "//starboard/shared/pthread/condition_variable_broadcast.cc",
+    "//starboard/shared/pthread/condition_variable_create.cc",
+    "//starboard/shared/pthread/condition_variable_destroy.cc",
+    "//starboard/shared/pthread/condition_variable_signal.cc",
+    "//starboard/shared/pthread/condition_variable_wait.cc",
+    "//starboard/shared/pthread/condition_variable_wait_timed.cc",
+    "//starboard/shared/pthread/mutex_acquire.cc",
+    "//starboard/shared/pthread/mutex_acquire_try.cc",
+    "//starboard/shared/pthread/mutex_create.cc",
+    "//starboard/shared/pthread/mutex_destroy.cc",
+    "//starboard/shared/pthread/mutex_release.cc",
+    "//starboard/shared/pthread/once.cc",
+    "//starboard/shared/pthread/thread_context_get_pointer.cc",
+    "//starboard/shared/pthread/thread_context_internal.cc",
+    "//starboard/shared/pthread/thread_context_internal.h",
+    "//starboard/shared/pthread/thread_create.cc",
+    "//starboard/shared/pthread/thread_create_local_key.cc",
+    "//starboard/shared/pthread/thread_create_priority.h",
+    "//starboard/shared/pthread/thread_destroy_local_key.cc",
+    "//starboard/shared/pthread/thread_detach.cc",
+    "//starboard/shared/pthread/thread_get_current.cc",
+    "//starboard/shared/pthread/thread_get_local_value.cc",
+    "//starboard/shared/pthread/thread_is_equal.cc",
+    "//starboard/shared/pthread/thread_join.cc",
+    "//starboard/shared/pthread/thread_sampler_create.cc",
+    "//starboard/shared/pthread/thread_sampler_destroy.cc",
+    "//starboard/shared/pthread/thread_sampler_freeze.cc",
+    "//starboard/shared/pthread/thread_sampler_internal.cc",
+    "//starboard/shared/pthread/thread_sampler_internal.h",
+    "//starboard/shared/pthread/thread_sampler_is_supported.cc",
+    "//starboard/shared/pthread/thread_sampler_thaw.cc",
+    "//starboard/shared/pthread/thread_set_local_value.cc",
+    "//starboard/shared/pthread/thread_yield.cc",
+    "//starboard/shared/pulse/pulse_audio_sink_type.cc",
+    "//starboard/shared/pulse/pulse_audio_sink_type.h",
+    "//starboard/shared/pulse/pulse_dynamic_load_dispatcher.cc",
+    "//starboard/shared/pulse/pulse_dynamic_load_dispatcher.h",
+    "//starboard/shared/signal/crash_signals.h",
+    "//starboard/shared/signal/crash_signals_sigaction.cc",
+    "//starboard/shared/signal/suspend_signals.cc",
+    "//starboard/shared/signal/suspend_signals.h",
+    "//starboard/shared/signal/system_request_conceal.cc",
+    "//starboard/shared/signal/system_request_freeze.cc",
+    "//starboard/shared/signal/system_request_suspend.cc",
+    "//starboard/shared/starboard/application.cc",
+    "//starboard/shared/starboard/audio_sink/audio_sink_create.cc",
+    "//starboard/shared/starboard/audio_sink/audio_sink_destroy.cc",
+    "//starboard/shared/starboard/audio_sink/audio_sink_get_max_channels_5_1.cc",
+    "//starboard/shared/starboard/audio_sink/audio_sink_get_min_buffer_size_in_frames.cc",
+    "//starboard/shared/starboard/audio_sink/audio_sink_get_nearest_supported_sample_frequency.cc",
+    "//starboard/shared/starboard/audio_sink/audio_sink_internal.cc",
+    "//starboard/shared/starboard/audio_sink/audio_sink_internal.h",
+    "//starboard/shared/starboard/audio_sink/audio_sink_is_audio_frame_storage_type_supported_interleaved_only.cc",
+    "//starboard/shared/starboard/audio_sink/audio_sink_is_audio_sample_type_supported_float32_only.cc",
+    "//starboard/shared/starboard/audio_sink/audio_sink_is_valid.cc",
+    "//starboard/shared/starboard/audio_sink/stub_audio_sink_type.cc",
+    "//starboard/shared/starboard/audio_sink/stub_audio_sink_type.h",
+    "//starboard/shared/starboard/command_line.cc",
+    "//starboard/shared/starboard/command_line.h",
+    "//starboard/shared/starboard/crash_handler.cc",
+    "//starboard/shared/starboard/crash_handler.h",
+    "//starboard/shared/starboard/directory_can_open.cc",
+    "//starboard/shared/starboard/event_cancel.cc",
+    "//starboard/shared/starboard/event_schedule.cc",
+    "//starboard/shared/starboard/file_atomic_replace_write_file.cc",
+    "//starboard/shared/starboard/file_atomic_replace_write_file.h",
+    "//starboard/shared/starboard/file_mode_string_to_flags.cc",
+    "//starboard/shared/starboard/file_storage/storage_close_record.cc",
+    "//starboard/shared/starboard/file_storage/storage_delete_record.cc",
+    "//starboard/shared/starboard/file_storage/storage_get_record_size.cc",
+    "//starboard/shared/starboard/file_storage/storage_open_record.cc",
+    "//starboard/shared/starboard/file_storage/storage_read_record.cc",
+    "//starboard/shared/starboard/log_mutex.cc",
+    "//starboard/shared/starboard/log_mutex.h",
+    "//starboard/shared/starboard/log_raw_dump_stack.cc",
+    "//starboard/shared/starboard/log_raw_format.cc",
+    "//starboard/shared/starboard/media/media_can_play_mime_and_key_system.cc",
+    "//starboard/shared/starboard/media/media_get_audio_buffer_budget.cc",
+    "//starboard/shared/starboard/media/media_get_audio_configuration_5_1.cc",
+    "//starboard/shared/starboard/media/media_get_audio_output_count_single_audio_output.cc",
+    "//starboard/shared/starboard/media/media_get_buffer_alignment.cc",
+    "//starboard/shared/starboard/media/media_get_buffer_allocation_unit.cc",
+    "//starboard/shared/starboard/media/media_get_buffer_garbage_collection_duration_threshold.cc",
+    "//starboard/shared/starboard/media/media_get_buffer_padding.cc",
+    "//starboard/shared/starboard/media/media_get_buffer_storage_type.cc",
+    "//starboard/shared/starboard/media/media_get_initial_buffer_capacity.cc",
+    "//starboard/shared/starboard/media/media_get_max_buffer_capacity.cc",
+    "//starboard/shared/starboard/media/media_get_progressive_buffer_budget.cc",
+    "//starboard/shared/starboard/media/media_get_video_buffer_budget.cc",
+    "//starboard/shared/starboard/media/media_is_buffer_pool_allocate_on_demand.cc",
+    "//starboard/shared/starboard/media/media_is_buffer_using_memory_pool.cc",
+    "//starboard/shared/starboard/media/media_is_transfer_characteristics_supported.cc",
+    "//starboard/shared/starboard/media/mime_type.cc",
+    "//starboard/shared/starboard/media/mime_type.h",
+    "//starboard/shared/starboard/memory.cc",
+    "//starboard/shared/starboard/player/player_output_mode_supported.cc",
+    "//starboard/shared/starboard/queue_application.cc",
+    "//starboard/shared/starboard/string_concat.cc",
+    "//starboard/shared/starboard/string_concat_wide.cc",
+    "//starboard/shared/starboard/string_copy.cc",
+    "//starboard/shared/starboard/string_copy_wide.cc",
+    "//starboard/shared/starboard/string_duplicate.cc",
+    "//starboard/shared/starboard/system_get_random_uint64.cc",
+    "//starboard/shared/starboard/system_request_blur.cc",
+    "//starboard/shared/starboard/system_request_focus.cc",
+    "//starboard/shared/starboard/system_request_pause.cc",
+    "//starboard/shared/starboard/system_request_reveal.cc",
+    "//starboard/shared/starboard/system_request_stop.cc",
+    "//starboard/shared/starboard/system_request_unpause.cc",
+    "//starboard/shared/starboard/system_supports_resume.cc",
+    "//starboard/shared/starboard/window_set_default_options.cc",
+    "//starboard/shared/stub/accessibility_get_caption_settings.cc",
+    "//starboard/shared/stub/accessibility_get_display_settings.cc",
+    "//starboard/shared/stub/accessibility_get_text_to_speech_settings.cc",
+    "//starboard/shared/stub/accessibility_set_captions_enabled.cc",
+    "//starboard/shared/stub/cryptography_create_transformer.cc",
+    "//starboard/shared/stub/cryptography_destroy_transformer.cc",
+    "//starboard/shared/stub/cryptography_get_tag.cc",
+    "//starboard/shared/stub/cryptography_set_authenticated_data.cc",
+    "//starboard/shared/stub/cryptography_set_initialization_vector.cc",
+    "//starboard/shared/stub/cryptography_transform.cc",
+    "//starboard/shared/stub/media_is_output_protected.cc",
+    "//starboard/shared/stub/media_set_audio_write_duration.cc",
+    "//starboard/shared/stub/media_set_output_protection.cc",
+    "//starboard/shared/stub/microphone_close.cc",
+    "//starboard/shared/stub/microphone_create.cc",
+    "//starboard/shared/stub/microphone_destroy.cc",
+    "//starboard/shared/stub/microphone_get_available.cc",
+    "//starboard/shared/stub/microphone_is_sample_rate_supported.cc",
+    "//starboard/shared/stub/microphone_open.cc",
+    "//starboard/shared/stub/microphone_read.cc",
+    "//starboard/shared/stub/speech_synthesis_cancel.cc",
+    "//starboard/shared/stub/speech_synthesis_is_supported.cc",
+    "//starboard/shared/stub/speech_synthesis_speak.cc",
+    "//starboard/shared/stub/system_get_total_gpu_memory.cc",
+    "//starboard/shared/stub/system_get_used_gpu_memory.cc",
+    "//starboard/shared/stub/system_hide_splash_screen.cc",
+    "//starboard/shared/stub/system_network_is_disconnected.cc",
+    "//starboard/shared/stub/system_raise_platform_error.cc",
+    "//starboard/shared/stub/system_sign_with_certification_secret_key.cc",
+    "//starboard/shared/stub/thread_create_priority.cc",
+    "//starboard/shared/stub/ui_nav_get_interface.cc",
+    "//starboard/shared/stub/window_blur_on_screen_keyboard.cc",
+    "//starboard/shared/stub/window_focus_on_screen_keyboard.cc",
+    "//starboard/shared/stub/window_get_diagonal_size_in_inches.cc",
+    "//starboard/shared/stub/window_get_on_screen_keyboard_bounding_rect.cc",
+    "//starboard/shared/stub/window_hide_on_screen_keyboard.cc",
+    "//starboard/shared/stub/window_is_on_screen_keyboard_shown.cc",
+    "//starboard/shared/stub/window_on_screen_keyboard_is_supported.cc",
+    "//starboard/shared/stub/window_on_screen_keyboard_suggestions_supported.cc",
+    "//starboard/shared/stub/window_set_on_screen_keyboard_keep_focus.cc",
+    "//starboard/shared/stub/window_show_on_screen_keyboard.cc",
+    "//starboard/shared/stub/window_update_on_screen_keyboard_suggestions.cc",
+  ]
+  if (has_cdm) {
+    # TODO(andrewsavage)
+  } else {
+    sources += [
+      "//starboard/shared/stub/drm_close_session.cc",
+      "//starboard/shared/stub/drm_create_system.cc",
+      "//starboard/shared/stub/drm_destroy_system.cc",
+      "//starboard/shared/stub/drm_generate_session_update_request.cc",
+      "//starboard/shared/stub/drm_get_metrics.cc",
+      "//starboard/shared/stub/drm_is_server_certificate_updatable.cc",
+      "//starboard/shared/stub/drm_update_server_certificate.cc",
+      "//starboard/shared/stub/drm_update_session.cc",
+      "//starboard/shared/stub/media_is_supported.cc",
+    ]
+  }
+
+  public_deps = [
+    "//starboard:starboard_headers_only",
+    "//starboard/shared/starboard/player/filter:filter_based_player_sources",
+  ]
+  deps = [ "//third_party/boringssl:crypto" ]
+  configs += [
+    "//starboard/build/config:starboard_implementation",
+    "//third_party/de265_includes",
+    "//third_party/pulseaudio_includes",
+  ]
+}
diff --git a/src/starboard/linux/shared/configuration_public.h b/src/starboard/linux/shared/configuration_public.h
index 5805d4f..81fb6b6 100644
--- a/src/starboard/linux/shared/configuration_public.h
+++ b/src/starboard/linux/shared/configuration_public.h
@@ -190,9 +190,6 @@
 #endif
 // --- I/O Configuration -----------------------------------------------------
 
-// Whether the current platform has speech recognizer.
-#define SB_HAS_SPEECH_RECOGNIZER 0
-
 // Whether the current platform has speech synthesis.
 #define SB_HAS_SPEECH_SYNTHESIS 0
 
diff --git a/src/starboard/linux/shared/platform_configuration/BUILD.gn b/src/starboard/linux/shared/platform_configuration/BUILD.gn
new file mode 100644
index 0000000..674105a
--- /dev/null
+++ b/src/starboard/linux/shared/platform_configuration/BUILD.gn
@@ -0,0 +1,211 @@
+# Copyright 2021 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.
+
+config("compiler_flags") {
+  cflags = []
+  cflags_c = []
+  cflags_cc = []
+  defines = []
+  ldflags = []
+
+  if (is_debug) {
+    cflags += [
+      "-frtti",
+      "-O0",
+    ]
+  } else if (is_devel) {
+    cflags += [
+      "-frtti",
+      "-O2",
+    ]
+  } else {
+    cflags += [
+      "-fno-rtti",
+      "-gline-tables-only",
+    ]
+  }
+
+  if (is_clang) {
+    ldflags += [ "-fuse-ld=lld" ]
+    cflags += [
+      "-Werror",
+      "-fcolor-diagnostics",
+
+      # Default visibility to hidden, to enable dead stripping.
+      "-fvisibility=hidden",
+
+      # Warn for implicit type conversions that may change a value.
+      "-Wconversion",
+      "-Wno-c++14-compat",
+
+      # This complains about 'override', which we use heavily.
+      "-Wno-c++14-extensions",
+
+      # Warns on switches on enums that cover all enum values but
+      # also contain a default: branch. Chrome is full of that.
+      "-Wno-covered-switch-default",
+
+      # protobuf uses hash_map.
+      "-Wno-deprecated",
+
+      # Don"t warn about the "struct foo f = {0};" initialization pattern.
+      "-Wno-missing-field-initializers",
+
+      # Do not warn for implicit sign conversions.
+      "-Wno-sign-conversion",
+      "-fno-strict-aliasing",  # See http://crbug.com/32204
+
+      # Triggered by the COMPILE_ASSERT macro.
+      "-Wno-unused-local-typedef",
+
+      # Do not warn if a function or variable cannot be implicitly
+      # instantiated.
+      "-Wno-undefined-var-template",
+
+      # Do not warn about an implicit exception spec mismatch.
+      "-Wno-implicit-exception-spec-mismatch",
+
+      # Do not warn about unused function params.
+      "-Wno-unused-parameter",
+    ]
+  }
+
+  if (!cobalt_fastbuild && (is_debug || is_devel)) {
+    cflags += [ "-g" ]
+  }
+
+  defines += [
+    # By default, <EGL/eglplatform.h> pulls in some X11 headers that have some
+    # nasty macros (|Status|, for example) that conflict with Chromium base.
+    "MESA_EGL_NO_X11_HEADERS",
+  ]
+  cflags_c += [
+    # Limit to C99. This allows Linux to be a canary build for any
+    # C11 features that are not supported on some platforms' compilers.
+    "-std=c99",
+  ]
+  cflags_cc = [ "-std=gnu++14" ]
+  ldflags += [
+    "-Wl,-rpath=\$ORIGIN/lib",
+
+    # Cleanup unused sections
+    "-Wl,-gc-sections",
+  ]
+
+  if (sb_pedantic_warnings) {
+    cflags += [
+      "-Wall",
+      "-Wextra",
+      "-Wunreachable-code",
+    ]
+  } else {
+    cflags += [
+      # 'this' pointer cannot be NULL...pointer may be assumed
+      # to always convert to true.
+      "-Wno-undefined-bool-conversion",
+
+      # Skia doesn't use overrides.
+      "-Wno-inconsistent-missing-override",
+
+      # Do not warn for implicit type conversions that may change a value.
+      "-Wno-conversion",
+
+      # shifting a negative signed value is undefined
+      "-Wno-shift-negative-value",
+
+      # Width of bit-field exceeds width of its type- value will be truncated
+      "-Wno-bitfield-width",
+      "-Wno-undefined-var-template",
+    ]
+  }
+
+  if (use_asan) {
+    cflags += [
+      "-fsanitize=address",
+      "-fno-omit-frame-pointer",
+    ]
+    ldflags += [
+      "-fsanitize=address",
+
+      # Force linking of the helpers in sanitizer_options.cc
+      "-Wl,-u_sanitizer_options_link_helper",
+    ]
+    defines += [ "ADDRESS_SANITIZER" ]
+  }
+}
+
+config("platform_configuration") {
+  defines = []
+  ldflags = []
+  libs = [
+    "asound",
+    "dl",
+    "pthread",
+    "rt",
+  ]
+
+  if (!sb_is_evergreen) {
+    ldflags += [ "-static-libstdc++" ]
+  }
+
+  defines += [
+    # Defined to get format macro constants from <inttypes.h>.
+    "__STDC_FORMAT_MACROS",
+    "COBALT_LINUX",
+
+    # Enable GNU extensions to get prototypes like ffsl.
+    "_GNU_SOURCE=1",
+  ]
+
+  if (is_debug) {
+    defines += [
+      "_GLIBCXX_DEBUG",
+      "_LIBCPP_DEBUG=1",
+    ]
+  } else if (is_devel) {
+    defines += [
+      "_GLIBCXX_DEBUG",
+      "_LIBCPP_DEBUG=0",
+    ]
+  }
+}
+
+config("libraries") {
+  ldflags = [ "-Wl,--wrap=eglSwapBuffers" ]
+  libs = [
+    "X11",
+    "Xcomposite",
+    "Xrender",
+  ]
+}
+
+config("speed") {
+  cflags = [
+    "-O2",
+
+    # Compile symbols in separate sections
+    "-ffunction-sections",
+    "-fdata-sections",
+  ]
+}
+
+config("size") {
+  cflags = [
+    "-Os",
+
+    # Compile symbols in separate sections
+    "-ffunction-sections",
+    "-fdata-sections",
+  ]
+}
diff --git a/src/starboard/linux/shared/platform_configuration/configuration.gni b/src/starboard/linux/shared/platform_configuration/configuration.gni
new file mode 100644
index 0000000..437b035
--- /dev/null
+++ b/src/starboard/linux/shared/platform_configuration/configuration.gni
@@ -0,0 +1,28 @@
+# Copyright 2021 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("//starboard/build/config/base_configuration.gni")
+
+yasm_exists = true
+
+sb_static_contents_output_data_dir = "$root_out_dir/content"
+
+sb_enable_benchmark = true
+
+install_target_path = "//starboard/build/install/install_target.gni"
+
+sb_enable_opus_sse = false
+
+speed_config_path = "//starboard/linux/shared/platform_configuration:speed"
+size_config_path = "//starboard/linux/shared/platform_configuration:size"
diff --git a/src/starboard/linux/shared/starboard_platform.gypi b/src/starboard/linux/shared/starboard_platform.gypi
index edac2b8..76f7cc1 100644
--- a/src/starboard/linux/shared/starboard_platform.gypi
+++ b/src/starboard/linux/shared/starboard_platform.gypi
@@ -45,6 +45,7 @@
       '<(DEPTH)/starboard/shared/alsa/alsa_audio_sink_type.h',
       '<(DEPTH)/starboard/shared/alsa/alsa_util.cc',
       '<(DEPTH)/starboard/shared/alsa/alsa_util.h',
+      '<(DEPTH)/starboard/shared/deviceauth/deviceauth_internal.cc',
       '<(DEPTH)/starboard/shared/dlmalloc/memory_map.cc',
       '<(DEPTH)/starboard/shared/dlmalloc/memory_protect.cc',
       '<(DEPTH)/starboard/shared/dlmalloc/memory_unmap.cc',
@@ -117,6 +118,7 @@
       '<(DEPTH)/starboard/shared/linux/system_get_total_cpu_memory.cc',
       '<(DEPTH)/starboard/shared/linux/system_get_used_cpu_memory.cc',
       '<(DEPTH)/starboard/shared/linux/system_is_debugger_attached.cc',
+      '<(DEPTH)/starboard/shared/linux/system_network_status.cc',
       '<(DEPTH)/starboard/shared/linux/system_symbolize.cc',
       '<(DEPTH)/starboard/shared/linux/thread_get_id.cc',
       '<(DEPTH)/starboard/shared/linux/thread_get_name.cc',
@@ -328,19 +330,12 @@
       '<(DEPTH)/starboard/shared/stub/microphone_is_sample_rate_supported.cc',
       '<(DEPTH)/starboard/shared/stub/microphone_open.cc',
       '<(DEPTH)/starboard/shared/stub/microphone_read.cc',
-      '<(DEPTH)/starboard/shared/stub/speech_recognizer_cancel.cc',
-      '<(DEPTH)/starboard/shared/stub/speech_recognizer_create.cc',
-      '<(DEPTH)/starboard/shared/stub/speech_recognizer_destroy.cc',
-      '<(DEPTH)/starboard/shared/stub/speech_recognizer_is_supported.cc',
-      '<(DEPTH)/starboard/shared/stub/speech_recognizer_start.cc',
-      '<(DEPTH)/starboard/shared/stub/speech_recognizer_stop.cc',
       '<(DEPTH)/starboard/shared/stub/speech_synthesis_cancel.cc',
       '<(DEPTH)/starboard/shared/stub/speech_synthesis_is_supported.cc',
       '<(DEPTH)/starboard/shared/stub/speech_synthesis_speak.cc',
       '<(DEPTH)/starboard/shared/stub/system_get_total_gpu_memory.cc',
       '<(DEPTH)/starboard/shared/stub/system_get_used_gpu_memory.cc',
       '<(DEPTH)/starboard/shared/stub/system_hide_splash_screen.cc',
-      '<(DEPTH)/starboard/shared/stub/system_network_is_disconnected.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/thread_create_priority.cc',
diff --git a/src/starboard/linux/x64x11/BUILD.gn b/src/starboard/linux/x64x11/BUILD.gn
new file mode 100644
index 0000000..c443ead
--- /dev/null
+++ b/src/starboard/linux/x64x11/BUILD.gn
@@ -0,0 +1,32 @@
+# Copyright 2021 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.
+
+static_library("starboard_platform") {
+  check_includes = false
+
+  sources = [
+    "//starboard/linux/x64x11/main.cc",
+    "//starboard/shared/starboard/player/video_dmp_common.cc",
+    "//starboard/shared/starboard/player/video_dmp_common.h",
+    "//starboard/shared/starboard/player/video_dmp_writer.cc",
+    "//starboard/shared/starboard/player/video_dmp_writer.h",
+  ]
+
+  public_deps = [
+    "//starboard/linux/x64x11/shared:starboard_platform",
+    "//starboard/shared/starboard/player:video_dmp",
+  ]
+
+  configs += [ "//starboard/build/config:starboard_implementation" ]
+}
diff --git a/src/starboard/linux/x64x11/egl/BUILD.gn b/src/starboard/linux/x64x11/egl/BUILD.gn
new file mode 100644
index 0000000..c443ead
--- /dev/null
+++ b/src/starboard/linux/x64x11/egl/BUILD.gn
@@ -0,0 +1,32 @@
+# Copyright 2021 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.
+
+static_library("starboard_platform") {
+  check_includes = false
+
+  sources = [
+    "//starboard/linux/x64x11/main.cc",
+    "//starboard/shared/starboard/player/video_dmp_common.cc",
+    "//starboard/shared/starboard/player/video_dmp_common.h",
+    "//starboard/shared/starboard/player/video_dmp_writer.cc",
+    "//starboard/shared/starboard/player/video_dmp_writer.h",
+  ]
+
+  public_deps = [
+    "//starboard/linux/x64x11/shared:starboard_platform",
+    "//starboard/shared/starboard/player:video_dmp",
+  ]
+
+  configs += [ "//starboard/build/config:starboard_implementation" ]
+}
diff --git a/src/starboard/linux/x64x11/vulkan/starboard_platform.gyp b/src/starboard/linux/x64x11/egl/platform_configuration/BUILD.gn
similarity index 72%
copy from src/starboard/linux/x64x11/vulkan/starboard_platform.gyp
copy to src/starboard/linux/x64x11/egl/platform_configuration/BUILD.gn
index 82c4436..53e2774 100644
--- a/src/starboard/linux/x64x11/vulkan/starboard_platform.gyp
+++ b/src/starboard/linux/x64x11/egl/platform_configuration/BUILD.gn
@@ -1,4 +1,4 @@
-# Copyright 2017 The Cobalt Authors. All Rights Reserved.
+# Copyright 2021 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.
@@ -11,8 +11,11 @@
 # 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.
-{
-  'includes': [
-    '../shared/starboard_platform_target.gypi',
-  ],
+
+config("platform_configuration") {
+  configs = [ "//starboard/linux/x64x11/platform_configuration" ]
+  libs = [
+    "EGL",
+    "GLESv2",
+  ]
 }
diff --git a/src/starboard/linux/x64x11/vulkan/starboard_platform.gyp b/src/starboard/linux/x64x11/egl/platform_configuration/configuration.gni
similarity index 75%
copy from src/starboard/linux/x64x11/vulkan/starboard_platform.gyp
copy to src/starboard/linux/x64x11/egl/platform_configuration/configuration.gni
index 82c4436..1daab75 100644
--- a/src/starboard/linux/x64x11/vulkan/starboard_platform.gyp
+++ b/src/starboard/linux/x64x11/egl/platform_configuration/configuration.gni
@@ -1,4 +1,4 @@
-# Copyright 2017 The Cobalt Authors. All Rights Reserved.
+# Copyright 2021 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.
@@ -11,8 +11,8 @@
 # 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.
-{
-  'includes': [
-    '../shared/starboard_platform_target.gypi',
-  ],
-}
+
+import(
+    "//starboard/linux/x64x11/shared/platform_configuration/configuration.gni")
+
+gl_type = "system_gles2"
diff --git a/src/starboard/linux/x64x11/egl/toolchain/BUILD.gn b/src/starboard/linux/x64x11/egl/toolchain/BUILD.gn
new file mode 100644
index 0000000..2a91e84
--- /dev/null
+++ b/src/starboard/linux/x64x11/egl/toolchain/BUILD.gn
@@ -0,0 +1,26 @@
+# Copyright 2021 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("//build/toolchain/gcc_toolchain.gni")
+
+_home_dir = getenv("HOME")
+_clang_base_path = "$_home_dir/starboard-toolchains/x86_64-linux-gnu-clang-chromium-365097-f7e52fbd-8"
+
+clang_toolchain("host") {
+  clang_base_path = _clang_base_path
+}
+
+clang_toolchain("target") {
+  clang_base_path = _clang_base_path
+}
diff --git a/src/starboard/linux/x64x11/vulkan/starboard_platform.gyp b/src/starboard/linux/x64x11/platform_configuration/BUILD.gn
similarity index 71%
copy from src/starboard/linux/x64x11/vulkan/starboard_platform.gyp
copy to src/starboard/linux/x64x11/platform_configuration/BUILD.gn
index 82c4436..23738ec 100644
--- a/src/starboard/linux/x64x11/vulkan/starboard_platform.gyp
+++ b/src/starboard/linux/x64x11/platform_configuration/BUILD.gn
@@ -1,4 +1,4 @@
-# Copyright 2017 The Cobalt Authors. All Rights Reserved.
+# Copyright 2021 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.
@@ -11,8 +11,10 @@
 # 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.
-{
-  'includes': [
-    '../shared/starboard_platform_target.gypi',
-  ],
+
+config("platform_configuration") {
+  configs = [
+    "//starboard/build/config/sabi",
+    "//starboard/linux/x64x11/shared/platform_configuration",
+  ]
 }
diff --git a/src/starboard/linux/x64x11/vulkan/starboard_platform.gyp b/src/starboard/linux/x64x11/platform_configuration/configuration.gni
similarity index 73%
copy from src/starboard/linux/x64x11/vulkan/starboard_platform.gyp
copy to src/starboard/linux/x64x11/platform_configuration/configuration.gni
index 82c4436..50471ce 100644
--- a/src/starboard/linux/x64x11/vulkan/starboard_platform.gyp
+++ b/src/starboard/linux/x64x11/platform_configuration/configuration.gni
@@ -1,4 +1,4 @@
-# Copyright 2017 The Cobalt Authors. All Rights Reserved.
+# Copyright 2021 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.
@@ -11,8 +11,9 @@
 # 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.
-{
-  'includes': [
-    '../shared/starboard_platform_target.gypi',
-  ],
-}
+
+import(
+    "//starboard/linux/x64x11/shared/platform_configuration/configuration.gni")
+
+gl_type = "angle"
+angle_enable_gl = true
diff --git a/src/starboard/linux/x64x11/sbversion/11/starboard_platform.gyp b/src/starboard/linux/x64x11/sbversion/11/starboard_platform.gyp
index d67c740..6ef1aec 100644
--- a/src/starboard/linux/x64x11/sbversion/11/starboard_platform.gyp
+++ b/src/starboard/linux/x64x11/sbversion/11/starboard_platform.gyp
@@ -21,4 +21,14 @@
     # is that we just want this file to *be* the parent gyp file.
     '<(DEPTH)/starboard/linux/x64x11/starboard_platform.gyp',
   ],
+  'variables': {
+      'starboard_platform_sources': [
+        '<(DEPTH)/starboard/shared/stub/speech_recognizer_cancel.cc',
+        '<(DEPTH)/starboard/shared/stub/speech_recognizer_create.cc',
+        '<(DEPTH)/starboard/shared/stub/speech_recognizer_destroy.cc',
+        '<(DEPTH)/starboard/shared/stub/speech_recognizer_is_supported.cc',
+        '<(DEPTH)/starboard/shared/stub/speech_recognizer_start.cc',
+        '<(DEPTH)/starboard/shared/stub/speech_recognizer_stop.cc',
+      ],
+  }
 }
diff --git a/src/starboard/linux/x64x11/sbversion/12/starboard_platform.gyp b/src/starboard/linux/x64x11/sbversion/12/starboard_platform.gyp
index a2ca957..e5908a1 100644
--- a/src/starboard/linux/x64x11/sbversion/12/starboard_platform.gyp
+++ b/src/starboard/linux/x64x11/sbversion/12/starboard_platform.gyp
@@ -21,4 +21,14 @@
     # is that we just want this file to *be* the parent gyp file.
     '<(DEPTH)/starboard/linux/x64x11/starboard_platform.gyp',
   ],
+  'variables': {
+      'starboard_platform_sources': [
+        '<(DEPTH)/starboard/shared/stub/speech_recognizer_cancel.cc',
+        '<(DEPTH)/starboard/shared/stub/speech_recognizer_create.cc',
+        '<(DEPTH)/starboard/shared/stub/speech_recognizer_destroy.cc',
+        '<(DEPTH)/starboard/shared/stub/speech_recognizer_is_supported.cc',
+        '<(DEPTH)/starboard/shared/stub/speech_recognizer_start.cc',
+        '<(DEPTH)/starboard/shared/stub/speech_recognizer_stop.cc',
+      ],
+  },
 }
diff --git a/src/starboard/linux/x64x11/shared/BUILD.gn b/src/starboard/linux/x64x11/shared/BUILD.gn
new file mode 100644
index 0000000..c433086
--- /dev/null
+++ b/src/starboard/linux/x64x11/shared/BUILD.gn
@@ -0,0 +1,57 @@
+# Copyright 2021 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.
+
+declare_args() {
+  has_private_system_properties = false
+}
+
+group("starboard_platform") {
+  public_deps = [
+    ":starboard_platform_sources",
+    "//starboard/egl_and_gles",
+    "//starboard/linux/shared:starboard_platform",
+  ]
+
+  deps = [ "//third_party/libjpeg" ]
+}
+
+static_library("starboard_platform_sources") {
+  check_includes = false
+  sources = [
+    "//starboard/linux/x64x11/sanitizer_options.cc",
+    "//starboard/linux/x64x11/system_get_property.cc",
+    "//starboard/linux/x64x11/system_get_property_impl.cc",
+    "//starboard/shared/libjpeg/image_decode.cc",
+    "//starboard/shared/libjpeg/image_is_decode_supported.cc",
+    "//starboard/shared/libjpeg/jpeg_image_decoder.cc",
+    "//starboard/shared/libjpeg/jpeg_image_decoder.h",
+    "//starboard/shared/starboard/link_receiver.cc",
+    "//starboard/shared/x11/application_x11.cc",
+    "//starboard/shared/x11/egl_swap_buffers.cc",
+    "//starboard/shared/x11/player_set_bounds.cc",
+    "//starboard/shared/x11/window_create.cc",
+    "//starboard/shared/x11/window_destroy.cc",
+    "//starboard/shared/x11/window_get_platform_handle.cc",
+    "//starboard/shared/x11/window_get_size.cc",
+    "//starboard/shared/x11/window_internal.cc",
+  ]
+
+  if (has_private_system_properties) {
+    sources += [ "//starboard/keyboxes/linux/system_properties.cc" ]
+  } else {
+    sources += [ "//starboard/linux/x64x11/public_system_properties.cc" ]
+  }
+
+  configs += [ "//starboard/build/config:starboard_implementation" ]
+}
diff --git a/src/starboard/linux/x64x11/shared/platform_configuration/BUILD.gn b/src/starboard/linux/x64x11/shared/platform_configuration/BUILD.gn
new file mode 100644
index 0000000..e2ea5bf
--- /dev/null
+++ b/src/starboard/linux/x64x11/shared/platform_configuration/BUILD.gn
@@ -0,0 +1,29 @@
+# Copyright 2021 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.
+
+config("platform_configuration") {
+  configs = [
+    ":libraries",
+    "//starboard/linux/shared/platform_configuration",
+    "//starboard/linux/shared/platform_configuration:compiler_flags",
+  ]
+}
+
+config("libraries") {
+  configs = [ "//starboard/linux/shared/platform_configuration:libraries" ]
+  libs = [
+    "//third_party/libdav1d/platforms/linux-x64/libdav1d.a",
+    "//third_party/libvpx/platforms/linux-x64/libvpx.a",
+  ]
+}
diff --git a/src/starboard/linux/x64x11/vulkan/starboard_platform.gyp b/src/starboard/linux/x64x11/shared/platform_configuration/configuration.gni
similarity index 65%
copy from src/starboard/linux/x64x11/vulkan/starboard_platform.gyp
copy to src/starboard/linux/x64x11/shared/platform_configuration/configuration.gni
index 82c4436..457369f 100644
--- a/src/starboard/linux/x64x11/vulkan/starboard_platform.gyp
+++ b/src/starboard/linux/x64x11/shared/platform_configuration/configuration.gni
@@ -1,4 +1,4 @@
-# Copyright 2017 The Cobalt Authors. All Rights Reserved.
+# Copyright 2021 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.
@@ -11,8 +11,10 @@
 # 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.
-{
-  'includes': [
-    '../shared/starboard_platform_target.gypi',
-  ],
-}
+
+import("//starboard/linux/shared/platform_configuration/configuration.gni")
+
+sb_is_evergreen_compatible = true
+sb_evergreen_compatible_use_libunwind = true
+
+sabi_path = "//starboard/sabi/x64/sysv/sabi-v$sb_api_version.json"
diff --git a/src/starboard/linux/x64x11/system_get_property_impl.cc b/src/starboard/linux/x64x11/system_get_property_impl.cc
index 90b7c62..ef405ed 100644
--- a/src/starboard/linux/x64x11/system_get_property_impl.cc
+++ b/src/starboard/linux/x64x11/system_get_property_impl.cc
@@ -44,8 +44,8 @@
 }
 
 bool GetSystemProperty(SbSystemPropertyId property_id,
-                         char* out_value,
-                         int value_length) {
+                       char* out_value,
+                       int value_length) {
   if (!out_value || !value_length) {
     return false;
   }
@@ -77,11 +77,6 @@
       return CopyStringAndTestIfSuccess(out_value, value_length,
                                         kCertificationScope);
 
-    case kSbSystemPropertyBase64EncodedCertificationSecret:
-      if (kBase64EncodedCertificationSecret[0] == '\0')
-        return false;
-      return CopyStringAndTestIfSuccess(out_value, value_length,
-                                        kBase64EncodedCertificationSecret);
 
     default:
       SB_DLOG(WARNING) << __FUNCTION__
diff --git a/src/starboard/linux/x64x11/toolchain/BUILD.gn b/src/starboard/linux/x64x11/toolchain/BUILD.gn
index 537fb8a..2a91e84 100644
--- a/src/starboard/linux/x64x11/toolchain/BUILD.gn
+++ b/src/starboard/linux/x64x11/toolchain/BUILD.gn
@@ -12,7 +12,15 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-import("//starboard/build/toolchain/gcc_toolchain.gni")
+import("//build/toolchain/gcc_toolchain.gni")
 
-gcc_toolchain("toolchain") {
+_home_dir = getenv("HOME")
+_clang_base_path = "$_home_dir/starboard-toolchains/x86_64-linux-gnu-clang-chromium-365097-f7e52fbd-8"
+
+clang_toolchain("host") {
+  clang_base_path = _clang_base_path
+}
+
+clang_toolchain("target") {
+  clang_base_path = _clang_base_path
 }
diff --git a/src/starboard/linux/x64x11/vulkan/atomic_public.h b/src/starboard/linux/x64x11/vulkan/atomic_public.h
deleted file mode 100644
index 10f2749..0000000
--- a/src/starboard/linux/x64x11/vulkan/atomic_public.h
+++ /dev/null
@@ -1,20 +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 STARBOARD_LINUX_X64X11_VULKAN_ATOMIC_PUBLIC_H_
-#define STARBOARD_LINUX_X64X11_VULKAN_ATOMIC_PUBLIC_H_
-
-#include "starboard/linux/shared/atomic_public.h"
-
-#endif  // STARBOARD_LINUX_X64X11_VULKAN_ATOMIC_PUBLIC_H_
diff --git a/src/starboard/linux/x64x11/vulkan/configuration_public.h b/src/starboard/linux/x64x11/vulkan/configuration_public.h
deleted file mode 100644
index 2beca8c..0000000
--- a/src/starboard/linux/x64x11/vulkan/configuration_public.h
+++ /dev/null
@@ -1,21 +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 STARBOARD_LINUX_X64X11_VULKAN_CONFIGURATION_PUBLIC_H_
-#define STARBOARD_LINUX_X64X11_VULKAN_CONFIGURATION_PUBLIC_H_
-
-// Include the Linux configuration that's common between all x64x11 Linuxes.
-#include "starboard/linux/x64x11/configuration_public.h"
-
-#endif  // STARBOARD_LINUX_X64X11_VULKAN_CONFIGURATION_PUBLIC_H_
diff --git a/src/starboard/linux/x64x11/vulkan/gyp_configuration.gypi b/src/starboard/linux/x64x11/vulkan/gyp_configuration.gypi
deleted file mode 100644
index 35099e9..0000000
--- a/src/starboard/linux/x64x11/vulkan/gyp_configuration.gypi
+++ /dev/null
@@ -1,46 +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.
-
-{
-  'target_defaults': {
-    'default_configuration': 'linux-x64x11-vulkan_debug',
-    'configurations': {
-      'linux-x64x11-vulkan_debug': {
-        'inherit_from': ['debug_base'],
-      },
-      'linux-x64x11-vulkan_devel': {
-        'inherit_from': ['devel_base'],
-      },
-      'linux-x64x11-vulkan_qa': {
-        'inherit_from': ['qa_base'],
-      },
-      'linux-x64x11-vulkan_gold': {
-        'inherit_from': ['gold_base'],
-      },
-    }, # end of configurations
-  },
-
-  'includes': [
-    '../gyp_configuration.gypi',
-  ],
-
-  'variables': {
-    'gl_type': 'system_gles2',
-
-    'platform_libraries': [
-      '-lEGL',
-      '-lGLESv2',
-    ],
-  },
-}
diff --git a/src/starboard/linux/x64x11/vulkan/gyp_configuration.py b/src/starboard/linux/x64x11/vulkan/gyp_configuration.py
deleted file mode 100644
index 64148c0..0000000
--- a/src/starboard/linux/x64x11/vulkan/gyp_configuration.py
+++ /dev/null
@@ -1,22 +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.
-"""Starboard Linux X64 X11 VULKAN platform configuration."""
-
-from starboard.linux.x64x11 import gyp_configuration as linux_configuration
-
-
-def CreatePlatformConfig():
-  return linux_configuration.LinuxX64X11Configuration(
-      'linux-x64x11-vulkan',
-      sabi_json_path='starboard/sabi/x64/sysv/sabi-v{sb_api_version}.json')
diff --git a/src/starboard/linux/x64x11/vulkan/starboard_platform_tests.gyp b/src/starboard/linux/x64x11/vulkan/starboard_platform_tests.gyp
deleted file mode 100644
index 0ea8622..0000000
--- a/src/starboard/linux/x64x11/vulkan/starboard_platform_tests.gyp
+++ /dev/null
@@ -1,18 +0,0 @@
-# Copyright 2018 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.
-{
-  'includes': [
-    '<(DEPTH)/starboard/linux/shared/starboard_platform_tests.gypi',
-  ],
-}
diff --git a/src/starboard/linux/x64x11/vulkan/thread_types_public.h b/src/starboard/linux/x64x11/vulkan/thread_types_public.h
deleted file mode 100644
index a40933a..0000000
--- a/src/starboard/linux/x64x11/vulkan/thread_types_public.h
+++ /dev/null
@@ -1,22 +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.
-
-// Includes threading primitive types and initializers.
-
-#ifndef STARBOARD_LINUX_X64X11_VULKAN_THREAD_TYPES_PUBLIC_H_
-#define STARBOARD_LINUX_X64X11_VULKAN_THREAD_TYPES_PUBLIC_H_
-
-#include "starboard/linux/x64x11/thread_types_public.h"
-
-#endif  // STARBOARD_LINUX_X64X11_VULKAN_THREAD_TYPES_PUBLIC_H_
diff --git a/src/starboard/linux/x64x11/vulkan/starboard_platform.gyp b/src/starboard/loader_app/BUILD.gn
similarity index 70%
copy from src/starboard/linux/x64x11/vulkan/starboard_platform.gyp
copy to src/starboard/loader_app/BUILD.gn
index 82c4436..dba9360 100644
--- a/src/starboard/linux/x64x11/vulkan/starboard_platform.gyp
+++ b/src/starboard/loader_app/BUILD.gn
@@ -1,4 +1,4 @@
-# Copyright 2017 The Cobalt Authors. All Rights Reserved.
+# Copyright 2021 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.
@@ -11,8 +11,12 @@
 # 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.
-{
-  'includes': [
-    '../shared/starboard_platform_target.gypi',
-  ],
+
+static_library("pending_restart") {
+  sources = [
+    "pending_restart.cc",
+    "pending_restart.h",
+  ]
+
+  public_deps = [ "//starboard:starboard_headers_only" ]
 }
diff --git a/src/starboard/nplb/BUILD.gn b/src/starboard/nplb/BUILD.gn
index e85ab2f..52e56bd 100644
--- a/src/starboard/nplb/BUILD.gn
+++ b/src/starboard/nplb/BUILD.gn
@@ -157,9 +157,7 @@
     "memory_map_test.cc",
     "memory_move_test.cc",
     "memory_reallocate_test.cc",
-
-    # TODO(andrewsavage)
-    # "memory_reporter_test.cc",
+    "memory_reporter_test.cc",
     "memory_set_test.cc",
     "microphone_close_test.cc",
     "microphone_create_test.cc",
@@ -213,12 +211,6 @@
     "socket_waiter_wait_timed_test.cc",
     "socket_waiter_wake_up_test.cc",
     "socket_wrapper_test.cc",
-    "speech_recognizer_cancel_test.cc",
-    "speech_recognizer_create_test.cc",
-    "speech_recognizer_destroy_test.cc",
-    "speech_recognizer_helper.h",
-    "speech_recognizer_start_test.cc",
-    "speech_recognizer_stop_test.cc",
     "speech_synthesis_basic_test.cc",
     "state_machine_test.cc",
     "storage_close_record_test.cc",
@@ -266,6 +258,7 @@
     "system_has_capability_test.cc",
     "system_hide_splash_screen_test.cc",
     "system_is_debugger_attached_test.cc",
+    "system_network_status_test.cc",
     "system_sign_with_certification_secret_key_test.cc",
     "system_sort_test.cc",
     "system_symbolize_test.cc",
@@ -302,13 +295,9 @@
     "window_get_size_test.cc",
   ]
 
-  # TODO(andrewsavage): remove -fno-exceptions
-
-  # This allows the tests to include internal only header files.
-  defines = [ "STARBOARD_IMPLEMENTATION" ]
+  deps = [ "//starboard/nplb/testdata/file_tests:nplb_file_tests_data" ]
 
   public_deps = [
-    ":nplb_file_tests_data",
     "//starboard",
     "//starboard/common",
     "//starboard/shared/starboard/media:media_util",
@@ -320,19 +309,10 @@
   if (gl_type != "none") {
     public_deps += [ "//starboard/egl_and_gles" ]
   }
-}
 
-copy("nplb_file_tests_data") {
-  sources = [
-    "testdata/file_tests/dir_with_files/file11",
-    "testdata/file_tests/dir_with_files/file12",
-    "testdata/file_tests/dir_with_only_subdir/dir_with_files/file21",
-    "testdata/file_tests/dir_with_only_subdir/dir_with_files/file22",
-    "testdata/file_tests/file01",
-    "testdata/file_tests/file_with_long_name_and_contents_for_seek_testing_1234567890",
+  configs += [
+    "//build/config/compiler:exceptions",
+    "//starboard/build/config:starboard_implementation",
   ]
-
-  subdir = "starboard/nplb/file_tests"
-
-  outputs = [ "$sb_static_contents_output_data_dir/test/$subdir/{{source_root_relative_dir}}/{{source_file_part}}" ]
+  configs -= [ "//build/config/compiler:no_exceptions" ]
 }
diff --git a/src/starboard/nplb/character_is_alphanumeric_test.cc b/src/starboard/nplb/character_is_alphanumeric_test.cc
index dc9090c..45f6bca 100644
--- a/src/starboard/nplb/character_is_alphanumeric_test.cc
+++ b/src/starboard/nplb/character_is_alphanumeric_test.cc
@@ -15,7 +15,7 @@
 #include "starboard/character.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
-#if SB_API_VERSION < SB_CHARACTER_APIS_DEPRECATED_VERSION
+#if SB_API_VERSION < 13
 
 namespace starboard {
 namespace nplb {
@@ -46,4 +46,4 @@
 }  // namespace nplb
 }  // namespace starboard
 
-#endif  // SB_API_VERSION < SB_CHARACTER_APIS_DEPRECATED_VERSION
+#endif  // SB_API_VERSION < 13
diff --git a/src/starboard/nplb/character_is_digit_test.cc b/src/starboard/nplb/character_is_digit_test.cc
index f275a25..c1a1f31 100644
--- a/src/starboard/nplb/character_is_digit_test.cc
+++ b/src/starboard/nplb/character_is_digit_test.cc
@@ -15,7 +15,7 @@
 #include "starboard/character.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
-#if SB_API_VERSION < SB_CHARACTER_APIS_DEPRECATED_VERSION
+#if SB_API_VERSION < 13
 
 namespace starboard {
 namespace nplb {
@@ -46,4 +46,4 @@
 }  // namespace nplb
 }  // namespace starboard
 
-#endif  // SB_API_VERSION < SB_CHARACTER_APIS_DEPRECATED_VERSION
+#endif  // SB_API_VERSION < 13
diff --git a/src/starboard/nplb/character_is_hex_digit_test.cc b/src/starboard/nplb/character_is_hex_digit_test.cc
index 499fdbb..92bccf6 100644
--- a/src/starboard/nplb/character_is_hex_digit_test.cc
+++ b/src/starboard/nplb/character_is_hex_digit_test.cc
@@ -15,7 +15,7 @@
 #include "starboard/character.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
-#if SB_API_VERSION < SB_CHARACTER_APIS_DEPRECATED_VERSION
+#if SB_API_VERSION < 13
 
 namespace starboard {
 namespace nplb {
@@ -46,4 +46,4 @@
 }  // namespace nplb
 }  // namespace starboard
 
-#endif  // SB_API_VERSION < SB_CHARACTER_APIS_DEPRECATED_VERSION
+#endif  // SB_API_VERSION < 13
diff --git a/src/starboard/nplb/character_is_space_test.cc b/src/starboard/nplb/character_is_space_test.cc
index a4e3816..ca09fb8 100644
--- a/src/starboard/nplb/character_is_space_test.cc
+++ b/src/starboard/nplb/character_is_space_test.cc
@@ -15,7 +15,7 @@
 #include "starboard/character.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
-#if SB_API_VERSION < SB_CHARACTER_APIS_DEPRECATED_VERSION
+#if SB_API_VERSION < 13
 
 namespace starboard {
 namespace nplb {
@@ -46,4 +46,4 @@
 }  // namespace nplb
 }  // namespace starboard
 
-#endif  // SB_API_VERSION < SB_CHARACTER_APIS_DEPRECATED_VERSION
+#endif  // SB_API_VERSION < 13
diff --git a/src/starboard/nplb/character_is_upper_test.cc b/src/starboard/nplb/character_is_upper_test.cc
index 8b49842..6e17c56 100644
--- a/src/starboard/nplb/character_is_upper_test.cc
+++ b/src/starboard/nplb/character_is_upper_test.cc
@@ -15,7 +15,7 @@
 #include "starboard/character.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
-#if SB_API_VERSION < SB_CHARACTER_APIS_DEPRECATED_VERSION
+#if SB_API_VERSION < 13
 
 namespace starboard {
 namespace nplb {
@@ -46,4 +46,4 @@
 }  // namespace nplb
 }  // namespace starboard
 
-#endif  // SB_API_VERSION < SB_CHARACTER_APIS_DEPRECATED_VERSION
+#endif  // SB_API_VERSION < 13
diff --git a/src/starboard/nplb/character_to_lower_test.cc b/src/starboard/nplb/character_to_lower_test.cc
index cac6208..2d9e6bd 100644
--- a/src/starboard/nplb/character_to_lower_test.cc
+++ b/src/starboard/nplb/character_to_lower_test.cc
@@ -18,7 +18,7 @@
 #include "starboard/character.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
-#if SB_API_VERSION < SB_CHARACTER_APIS_DEPRECATED_VERSION
+#if SB_API_VERSION < 13
 
 namespace starboard {
 namespace nplb {
@@ -44,4 +44,4 @@
 }  // namespace nplb
 }  // namespace starboard
 
-#endif  // SB_API_VERSION < SB_CHARACTER_APIS_DEPRECATED_VERSION
+#endif  // SB_API_VERSION < 13
diff --git a/src/starboard/nplb/character_to_upper_test.cc b/src/starboard/nplb/character_to_upper_test.cc
index d3e1019..f7d2a5a 100644
--- a/src/starboard/nplb/character_to_upper_test.cc
+++ b/src/starboard/nplb/character_to_upper_test.cc
@@ -18,7 +18,7 @@
 #include "starboard/character.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
-#if SB_API_VERSION < SB_CHARACTER_APIS_DEPRECATED_VERSION
+#if SB_API_VERSION < 13
 
 namespace starboard {
 namespace nplb {
@@ -44,4 +44,4 @@
 }  // namespace nplb
 }  // namespace starboard
 
-#endif  // SB_API_VERSION < SB_CHARACTER_APIS_DEPRECATED_VERSION
+#endif  // SB_API_VERSION < 13
diff --git a/src/starboard/nplb/cpu_features_get_test.cc b/src/starboard/nplb/cpu_features_get_test.cc
index 81fb90e..8b387e3 100644
--- a/src/starboard/nplb/cpu_features_get_test.cc
+++ b/src/starboard/nplb/cpu_features_get_test.cc
@@ -35,6 +35,9 @@
   EXPECT_EQ(false, features.arm.has_thumb2);
   EXPECT_EQ(false, features.arm.has_vfp);
   EXPECT_EQ(false, features.arm.has_vfp3);
+#if SB_API_VERSION >= 13
+  EXPECT_EQ(false, features.arm.has_vfp4);
+#endif
   EXPECT_EQ(false, features.arm.has_vfp3_d32);
   EXPECT_EQ(false, features.arm.has_idiva);
   EXPECT_EQ(false, features.arm.has_aes);
@@ -118,7 +121,7 @@
 #if SB_IS(ARCH_ARM) || SB_IS(ARCH_ARM64)
     EXPECT_TRUE(features.architecture == kSbCPUFeaturesArchitectureArm ||
                 features.architecture == kSbCPUFeaturesArchitectureArm64);
-#else   // !SB_IS(ARCH_ARM) && !SB_IS(ARCH_ARM64)
+#else  // !SB_IS(ARCH_ARM) && !SB_IS(ARCH_ARM64)
     ExpectArmInvalid(features);
 #endif  // SB_IS(ARCH_ARM) || SB_IS(ARCH_ARM64)
 
diff --git a/src/starboard/nplb/double_absolute_test.cc b/src/starboard/nplb/double_absolute_test.cc
index 20ab6bb..76484c4 100644
--- a/src/starboard/nplb/double_absolute_test.cc
+++ b/src/starboard/nplb/double_absolute_test.cc
@@ -17,7 +17,7 @@
 #include "starboard/double.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
-#if SB_API_VERSION < SB_DOUBLE_APIS_DEPRECATED_VERSION
+#if SB_API_VERSION < 13
 
 namespace starboard {
 namespace nplb {
@@ -37,4 +37,4 @@
 }  // namespace nplb
 }  // namespace starboard
 
-#endif  // SB_API_VERSION < SB_DOUBLE_APIS_DEPRECATED_VERSION
+#endif  // SB_API_VERSION < 13
diff --git a/src/starboard/nplb/double_exponent_test.cc b/src/starboard/nplb/double_exponent_test.cc
index add7069..61acd86 100644
--- a/src/starboard/nplb/double_exponent_test.cc
+++ b/src/starboard/nplb/double_exponent_test.cc
@@ -17,7 +17,7 @@
 #include "starboard/double.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
-#if SB_API_VERSION < SB_DOUBLE_APIS_DEPRECATED_VERSION
+#if SB_API_VERSION < 13
 
 namespace starboard {
 namespace nplb {
@@ -49,4 +49,4 @@
 }  // namespace nplb
 }  // namespace starboard
 
-#endif  // SB_API_VERSION < SB_DOUBLE_APIS_DEPRECATED_VERSION
+#endif  // SB_API_VERSION < 13
diff --git a/src/starboard/nplb/double_floor_test.cc b/src/starboard/nplb/double_floor_test.cc
index eb2d166..8c65560 100644
--- a/src/starboard/nplb/double_floor_test.cc
+++ b/src/starboard/nplb/double_floor_test.cc
@@ -15,7 +15,7 @@
 #include "starboard/double.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
-#if SB_API_VERSION < SB_DOUBLE_APIS_DEPRECATED_VERSION
+#if SB_API_VERSION < 13
 
 namespace starboard {
 namespace nplb {
@@ -31,4 +31,4 @@
 }  // namespace nplb
 }  // namespace starboard
 
-#endif  // SB_API_VERSION < SB_DOUBLE_APIS_DEPRECATED_VERSION
+#endif  // SB_API_VERSION < 13
diff --git a/src/starboard/nplb/double_is_finite_test.cc b/src/starboard/nplb/double_is_finite_test.cc
index 0cc9621..4b7cf7c 100644
--- a/src/starboard/nplb/double_is_finite_test.cc
+++ b/src/starboard/nplb/double_is_finite_test.cc
@@ -17,7 +17,7 @@
 #include "starboard/double.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
-#if SB_API_VERSION < SB_DOUBLE_APIS_DEPRECATED_VERSION
+#if SB_API_VERSION < 13
 
 namespace starboard {
 namespace nplb {
@@ -32,4 +32,4 @@
 }  // namespace nplb
 }  // namespace starboard
 
-#endif  // SB_API_VERSION < SB_DOUBLE_APIS_DEPRECATED_VERSION
+#endif  // SB_API_VERSION < 13
diff --git a/src/starboard/nplb/double_is_nan_test.cc b/src/starboard/nplb/double_is_nan_test.cc
index e16869a..54bb39e 100644
--- a/src/starboard/nplb/double_is_nan_test.cc
+++ b/src/starboard/nplb/double_is_nan_test.cc
@@ -17,7 +17,7 @@
 #include "starboard/double.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
-#if SB_API_VERSION < SB_DOUBLE_APIS_DEPRECATED_VERSION
+#if SB_API_VERSION < 13
 
 namespace starboard {
 namespace nplb {
@@ -35,4 +35,4 @@
 }  // namespace nplb
 }  // namespace starboard
 
-#endif  // SB_API_VERSION < SB_DOUBLE_APIS_DEPRECATED_VERSION
+#endif  // SB_API_VERSION < 13
diff --git a/src/starboard/nplb/nplb.gyp b/src/starboard/nplb/nplb.gyp
index 4f04a9b..35c48ba 100644
--- a/src/starboard/nplb/nplb.gyp
+++ b/src/starboard/nplb/nplb.gyp
@@ -224,12 +224,6 @@
         'socket_waiter_wait_timed_test.cc',
         'socket_waiter_wake_up_test.cc',
         'socket_wrapper_test.cc',
-        'speech_recognizer_cancel_test.cc',
-        'speech_recognizer_create_test.cc',
-        'speech_recognizer_destroy_test.cc',
-        'speech_recognizer_helper.h',
-        'speech_recognizer_start_test.cc',
-        'speech_recognizer_stop_test.cc',
         'speech_synthesis_basic_test.cc',
         'state_machine_test.cc',
         'storage_close_record_test.cc',
@@ -277,6 +271,7 @@
         'system_has_capability_test.cc',
         'system_hide_splash_screen_test.cc',
         'system_is_debugger_attached_test.cc',
+        'system_network_status_test.cc',
         'system_sort_test.cc',
         'system_sign_with_certification_secret_key_test.cc',
         'system_symbolize_test.cc',
@@ -355,7 +350,10 @@
       'type': 'none',
       'variables': {
         'content_test_input_files': [
-          '<(DEPTH)/starboard/nplb/testdata/file_tests/',
+          '<(DEPTH)/starboard/nplb/testdata/file_tests/dir_with_files',
+          '<(DEPTH)/starboard/nplb/testdata/file_tests/dir_with_only_subdir',
+          '<(DEPTH)/starboard/nplb/testdata/file_tests/file01',
+          '<(DEPTH)/starboard/nplb/testdata/file_tests/file_with_long_name_and_contents_for_seek_testing_1234567890',
         ],
         'content_test_output_subdir': 'starboard/nplb/file_tests',
       },
diff --git a/src/starboard/nplb/nplb_evergreen_compat_tests/BUILD.gn b/src/starboard/nplb/nplb_evergreen_compat_tests/BUILD.gn
index f68fa6b..b6efbad 100644
--- a/src/starboard/nplb/nplb_evergreen_compat_tests/BUILD.gn
+++ b/src/starboard/nplb/nplb_evergreen_compat_tests/BUILD.gn
@@ -23,7 +23,7 @@
     "sabi_test.cc",
   ]
 
-  if (!sb_evergreen_compatible_lite) {
+  if (!sb_evergreen_compatible_enable_lite) {
     sources += [
       "icu_test.cc",
       "max_file_name_test.cc",
diff --git a/src/starboard/nplb/nplb_evergreen_compat_tests/sabi_test.cc b/src/starboard/nplb/nplb_evergreen_compat_tests/sabi_test.cc
index ac659ac..e4c93da 100644
--- a/src/starboard/nplb/nplb_evergreen_compat_tests/sabi_test.cc
+++ b/src/starboard/nplb/nplb_evergreen_compat_tests/sabi_test.cc
@@ -148,6 +148,66 @@
     "\"target_arch\":\"x64\",\"target_arch_sub\":\"\",\"word_size\":64}";
 #endif  // SB_API_VERSION == 13
 
+#if SB_API_VERSION == 14
+const char* kSabiJsonIdArmHardfp =
+    "{\"alignment_char\":1,\"alignment_double\":8,\"alignment_float\":4,"
+    "\"alignment_int\":4,\"alignment_llong\":8,\"alignment_long\":4,"
+    "\"alignment_pointer\":4,\"alignment_short\":2,\"calling_convention\":"
+    "\"eabi\",\"endianness\":\"little\",\"floating_point_abi\":\"hard\","
+    "\"floating_point_fpu\":\"vfpv3\",\"sb_api_version\":14,\"signedness_of_"
+    "char\":\"signed\",\"signedness_of_enum\":\"signed\",\"size_of_char\":1,"
+    "\"size_of_double\":8,\"size_of_enum\":4,\"size_of_float\":4,\"size_of_"
+    "int\":4,\"size_of_llong\":8,\"size_of_long\":4,\"size_of_pointer\":4,"
+    "\"size_of_short\":2,\"target_arch\":\"arm\",\"target_arch_sub\":\"v7a\","
+    "\"word_size\":32}";
+
+const char* kSabiJsonIdArmSoftfp =
+    "{\"alignment_char\":1,\"alignment_double\":8,\"alignment_float\":4,"
+    "\"alignment_int\":4,\"alignment_llong\":8,\"alignment_long\":4,"
+    "\"alignment_pointer\":4,\"alignment_short\":2,\"calling_convention\":"
+    "\"eabi\",\"endianness\":\"little\",\"floating_point_abi\":\"softfp\","
+    "\"floating_point_fpu\":\"vfpv3\",\"sb_api_version\":14,\"signedness_of_"
+    "char\":\"signed\",\"signedness_of_enum\":\"signed\",\"size_of_char\":1,"
+    "\"size_of_double\":8,\"size_of_enum\":4,\"size_of_float\":4,\"size_of_"
+    "int\":4,\"size_of_llong\":8,\"size_of_long\":4,\"size_of_pointer\":4,"
+    "\"size_of_short\":2,\"target_arch\":\"arm\",\"target_arch_sub\":\"v7a\","
+    "\"word_size\":32}";
+
+const char* kSabiJsonIdArm64 =
+    "{\"alignment_char\":1,\"alignment_double\":8,\"alignment_float\":4,"
+    "\"alignment_int\":4,\"alignment_llong\":8,\"alignment_long\":8,"
+    "\"alignment_pointer\":8,\"alignment_short\":2,\"calling_convention\":"
+    "\"aarch64\",\"endianness\":\"little\",\"floating_point_abi\":\"\","
+    "\"floating_point_fpu\":\"\",\"sb_api_version\":14,\"signedness_of_char\":"
+    "\"signed\",\"signedness_of_enum\":\"signed\",\"size_of_char\":1,\"size_of_"
+    "double\":8,\"size_of_enum\":4,\"size_of_float\":4,\"size_of_int\":4,"
+    "\"size_of_llong\":8,\"size_of_long\":8,\"size_of_pointer\":8,\"size_of_"
+    "short\":2,\"target_arch\":\"arm64\",\"target_arch_sub\":\"v8a\",\"word_"
+    "size\":64}";
+
+const char* kSabiJsonIdX86 =
+    "{\"alignment_char\":1,\"alignment_double\":8,\"alignment_float\":4,"
+    "\"alignment_int\":4,\"alignment_llong\":8,\"alignment_long\":4,"
+    "\"alignment_pointer\":4,\"alignment_short\":2,\"calling_convention\":"
+    "\"sysv\",\"endianness\":\"little\",\"floating_point_abi\":\"\",\"floating_"
+    "point_fpu\":\"\",\"sb_api_version\":14,\"signedness_of_char\":\"signed\","
+    "\"signedness_of_enum\":\"signed\",\"size_of_char\":1,\"size_of_double\":8,"
+    "\"size_of_enum\":4,\"size_of_float\":4,\"size_of_int\":4,\"size_of_"
+    "llong\":8,\"size_of_long\":4,\"size_of_pointer\":4,\"size_of_short\":2,"
+    "\"target_arch\":\"x86\",\"target_arch_sub\":\"\",\"word_size\":32}";
+
+const char* kSabiJsonIdX64Sysv =
+    "{\"alignment_char\":1,\"alignment_double\":8,\"alignment_float\":4,"
+    "\"alignment_int\":4,\"alignment_llong\":8,\"alignment_long\":8,"
+    "\"alignment_pointer\":8,\"alignment_short\":2,\"calling_convention\":"
+    "\"sysv\",\"endianness\":\"little\",\"floating_point_abi\":\"\",\"floating_"
+    "point_fpu\":\"\",\"sb_api_version\":14,\"signedness_of_char\":\"signed\","
+    "\"signedness_of_enum\":\"signed\",\"size_of_char\":1,\"size_of_double\":8,"
+    "\"size_of_enum\":4,\"size_of_float\":4,\"size_of_int\":4,\"size_of_"
+    "llong\":8,\"size_of_long\":8,\"size_of_pointer\":8,\"size_of_short\":2,"
+    "\"target_arch\":\"x64\",\"target_arch_sub\":\"\",\"word_size\":64}";
+#endif  // SB_API_VERSION == 14
+
 class SabiTest : public ::testing::Test {
  protected:
   SabiTest() {}
diff --git a/src/starboard/nplb/string_parse_double_test.cc b/src/starboard/nplb/string_parse_double_test.cc
index fbea9cb..60e67f5a5 100644
--- a/src/starboard/nplb/string_parse_double_test.cc
+++ b/src/starboard/nplb/string_parse_double_test.cc
@@ -21,7 +21,7 @@
 #include "starboard/double.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
-#if SB_API_VERSION < SB_DOUBLE_APIS_DEPRECATED_VERSION
+#if SB_API_VERSION < 13
 
 namespace starboard {
 namespace nplb {
@@ -255,4 +255,4 @@
 }  // namespace nplb
 }  // namespace starboard
 
-#endif  // SB_API_VERSION < SB_DOUBLE_APIS_DEPRECATED_VERSION
+#endif  // SB_API_VERSION < 13
diff --git a/src/starboard/nplb/string_parse_signed_integer_test.cc b/src/starboard/nplb/string_parse_signed_integer_test.cc
index 796e9b5..a36030f 100644
--- a/src/starboard/nplb/string_parse_signed_integer_test.cc
+++ b/src/starboard/nplb/string_parse_signed_integer_test.cc
@@ -18,7 +18,7 @@
 #include "starboard/common/string.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
-#if SB_API_VERSION < SB_STDLIB_APIS_DEPRECATED_VERSION
+#if SB_API_VERSION < 13
 
 namespace starboard {
 namespace nplb {
@@ -52,4 +52,4 @@
 }  // namespace nplb
 }  // namespace starboard
 
-#endif  // SB_API_VERSION < SB_STDLIB_APIS_DEPRECATED_VERSION
+#endif  // SB_API_VERSION < 13
diff --git a/src/starboard/nplb/string_parse_uint64_test.cc b/src/starboard/nplb/string_parse_uint64_test.cc
index 3def91d..d9accb5 100644
--- a/src/starboard/nplb/string_parse_uint64_test.cc
+++ b/src/starboard/nplb/string_parse_uint64_test.cc
@@ -18,7 +18,7 @@
 #include "starboard/common/string.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
-#if SB_API_VERSION < SB_STDLIB_APIS_DEPRECATED_VERSION
+#if SB_API_VERSION < 13
 
 namespace starboard {
 namespace nplb {
@@ -52,4 +52,4 @@
 }  // namespace nplb
 }  // namespace starboard
 
-#endif  // SB_API_VERSION < SB_STDLIB_APIS_DEPRECATED_VERSION
+#endif  // SB_API_VERSION < 13
diff --git a/src/starboard/nplb/string_parse_unsigned_integer_test.cc b/src/starboard/nplb/string_parse_unsigned_integer_test.cc
index b1b1bb3..f8f5a85 100644
--- a/src/starboard/nplb/string_parse_unsigned_integer_test.cc
+++ b/src/starboard/nplb/string_parse_unsigned_integer_test.cc
@@ -18,7 +18,7 @@
 #include "starboard/common/string.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
-#if SB_API_VERSION < SB_STDLIB_APIS_DEPRECATED_VERSION
+#if SB_API_VERSION < 13
 
 namespace starboard {
 namespace nplb {
@@ -55,4 +55,4 @@
 }  // namespace nplb
 }  // namespace starboard
 
-#endif  // SB_API_VERSION < SB_STDLIB_APIS_DEPRECATED_VERSION
+#endif  // SB_API_VERSION < 13
diff --git a/src/starboard/nplb/system_binary_search_test.cc b/src/starboard/nplb/system_binary_search_test.cc
index 869d8d4..871609c 100644
--- a/src/starboard/nplb/system_binary_search_test.cc
+++ b/src/starboard/nplb/system_binary_search_test.cc
@@ -19,7 +19,7 @@
 #include "starboard/system.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
-#if SB_API_VERSION < SB_SYSTEM_BINARY_SEARCH_DEPRECATED_VERSION
+#if SB_API_VERSION < 13
 
 namespace starboard {
 namespace nplb {
@@ -45,4 +45,4 @@
 }  // namespace nplb
 }  // namespace starboard
 
-#endif  // #if SB_API_VERSION < SB_SYSTEM_BINARY_SEARCH_DEPRECATED_VERSION
+#endif  // #if SB_API_VERSION < 13
diff --git a/src/starboard/nplb/system_network_status_test.cc b/src/starboard/nplb/system_network_status_test.cc
new file mode 100644
index 0000000..417c649
--- /dev/null
+++ b/src/starboard/nplb/system_network_status_test.cc
@@ -0,0 +1,37 @@
+// Copyright 2021 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.
+
+// Here we are not trying to do anything fancy, just to really sanity check that
+// this is hooked up to something.
+
+#include "starboard/common/log.h"
+#include "starboard/common/string.h"
+#include "starboard/system.h"
+#include "testing/gtest/include/gtest/gtest.h"
+
+#if SB_API_VERSION >= 13
+
+namespace starboard {
+namespace nplb {
+namespace {
+
+TEST(SbSystemNetworkIsDisconnectedTest, SunnyDay) {
+  bool ret = SbSystemNetworkIsDisconnected();
+}
+
+}  // namespace
+}  // namespace nplb
+}  // namespace starboard
+
+#endif  // SB_API_VERSION >= 13
diff --git a/src/starboard/nplb/system_sort_test.cc b/src/starboard/nplb/system_sort_test.cc
index 55acc34..a2b71a0 100644
--- a/src/starboard/nplb/system_sort_test.cc
+++ b/src/starboard/nplb/system_sort_test.cc
@@ -19,7 +19,7 @@
 #include "starboard/system.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
-#if SB_API_VERSION < SB_SYSTEM_SORT_DEPRECATED_VERSION
+#if SB_API_VERSION < 13
 
 namespace starboard {
 namespace nplb {
@@ -47,4 +47,4 @@
 }  // namespace nplb
 }  // namespace starboard
 
-#endif  // SB_API_VERSION < SB_SYSTEM_SORT_DEPRECATED_VERSION
+#endif  // SB_API_VERSION < 13
diff --git a/src/starboard/nplb/testdata/file_tests/BUILD.gn b/src/starboard/nplb/testdata/file_tests/BUILD.gn
new file mode 100644
index 0000000..1566e4f
--- /dev/null
+++ b/src/starboard/nplb/testdata/file_tests/BUILD.gn
@@ -0,0 +1,28 @@
+# Copyright 2021 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.
+
+copy("nplb_file_tests_data") {
+  sources = [
+    "dir_with_files/file11",
+    "dir_with_files/file12",
+    "dir_with_only_subdir/dir_with_files/file21",
+    "dir_with_only_subdir/dir_with_files/file22",
+    "file01",
+    "file_with_long_name_and_contents_for_seek_testing_1234567890",
+  ]
+
+  subdir = "starboard/nplb/file_tests"
+
+  outputs = [ "$sb_static_contents_output_data_dir/test/$subdir/{{source_target_relative}}" ]
+}
diff --git a/src/starboard/nplb/unsafe_math_test.cc b/src/starboard/nplb/unsafe_math_test.cc
index ec266bf..d0ec184 100644
--- a/src/starboard/nplb/unsafe_math_test.cc
+++ b/src/starboard/nplb/unsafe_math_test.cc
@@ -18,7 +18,7 @@
 #include "starboard/double.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
-#if SB_API_VERSION < SB_DOUBLE_APIS_DEPRECATED_VERSION
+#if SB_API_VERSION < 13
 
 namespace starboard {
 namespace nplb {
@@ -152,4 +152,4 @@
 }  // namespace nplb
 }  // namespace starboard
 
-#endif  // SB_API_VERSION < SB_DOUBLE_APIS_DEPRECATED_VERSION
+#endif  // SB_API_VERSION < 13
diff --git a/src/starboard/raspi/2/sbversion/12/starboard_platform.gyp b/src/starboard/raspi/2/sbversion/12/starboard_platform.gyp
index b88e4d9..0a1da3c 100644
--- a/src/starboard/raspi/2/sbversion/12/starboard_platform.gyp
+++ b/src/starboard/raspi/2/sbversion/12/starboard_platform.gyp
@@ -18,4 +18,14 @@
     # is that we just want this file to *be* the parent gyp file.
     '<(DEPTH)/starboard/raspi/2/starboard_platform.gyp',
   ],
+  'variables': {
+      'starboard_platform_sources': [
+        '<(DEPTH)/starboard/shared/stub/speech_recognizer_cancel.cc',
+        '<(DEPTH)/starboard/shared/stub/speech_recognizer_create.cc',
+        '<(DEPTH)/starboard/shared/stub/speech_recognizer_destroy.cc',
+        '<(DEPTH)/starboard/shared/stub/speech_recognizer_is_supported.cc',
+        '<(DEPTH)/starboard/shared/stub/speech_recognizer_start.cc',
+        '<(DEPTH)/starboard/shared/stub/speech_recognizer_stop.cc',
+      ],
+  },
 }
diff --git a/src/starboard/raspi/shared/configuration_public.h b/src/starboard/raspi/shared/configuration_public.h
index 955f143..9889381 100644
--- a/src/starboard/raspi/shared/configuration_public.h
+++ b/src/starboard/raspi/shared/configuration_public.h
@@ -120,9 +120,6 @@
 // Whether the current platform implements the on screen keyboard interface.
 #define SB_HAS_ON_SCREEN_KEYBOARD 0
 
-// Whether the current platform has speech recognizer.
-#define SB_HAS_SPEECH_RECOGNIZER 0
-
 // Whether the current platform has speech synthesis.
 #define SB_HAS_SPEECH_SYNTHESIS 0
 
diff --git a/src/starboard/raspi/shared/gyp_configuration.py b/src/starboard/raspi/shared/gyp_configuration.py
index cf514c3..a178635 100644
--- a/src/starboard/raspi/shared/gyp_configuration.py
+++ b/src/starboard/raspi/shared/gyp_configuration.py
@@ -171,6 +171,9 @@
           # not repair these failing tests for now.
           'VideoDecoderTests/VideoDecoderTest.EndOfStreamWithoutAnyInput/0',
           'VideoDecoderTests/VideoDecoderTest.MultipleResets/0',
+          # Filter failed tests.
+          'PlayerComponentsTests/PlayerComponentsTest.*',
+
       ],
   }
 
diff --git a/src/starboard/raspi/shared/starboard_platform.gypi b/src/starboard/raspi/shared/starboard_platform.gypi
index 5fc6388..0cdabb0 100644
--- a/src/starboard/raspi/shared/starboard_platform.gypi
+++ b/src/starboard/raspi/shared/starboard_platform.gypi
@@ -17,6 +17,7 @@
   ],
   'variables': {
     'sb_pedantic_warnings': 1,
+    'starboard_platform_sources%': [],
   },
   'targets': [
     {
@@ -38,6 +39,7 @@
       'target_name': 'starboard_platform',
       'type': 'static_library',
       'sources': [
+        '<@(starboard_platform_sources)',
         '<@(filter_based_player_sources)',
         '<(DEPTH)/starboard/linux/shared/atomic_public.h',
         '<(DEPTH)/starboard/linux/shared/configuration_constants.cc',
@@ -368,12 +370,6 @@
         '<(DEPTH)/starboard/shared/stub/microphone_is_sample_rate_supported.cc',
         '<(DEPTH)/starboard/shared/stub/microphone_open.cc',
         '<(DEPTH)/starboard/shared/stub/microphone_read.cc',
-        '<(DEPTH)/starboard/shared/stub/speech_recognizer_cancel.cc',
-        '<(DEPTH)/starboard/shared/stub/speech_recognizer_create.cc',
-        '<(DEPTH)/starboard/shared/stub/speech_recognizer_destroy.cc',
-        '<(DEPTH)/starboard/shared/stub/speech_recognizer_is_supported.cc',
-        '<(DEPTH)/starboard/shared/stub/speech_recognizer_start.cc',
-        '<(DEPTH)/starboard/shared/stub/speech_recognizer_stop.cc',
         '<(DEPTH)/starboard/shared/stub/speech_synthesis_cancel.cc',
         '<(DEPTH)/starboard/shared/stub/speech_synthesis_is_supported.cc',
         '<(DEPTH)/starboard/shared/stub/speech_synthesis_speak.cc',
diff --git a/src/starboard/sabi/arm/hardfp/sabi-v14.json b/src/starboard/sabi/arm/hardfp/sabi-v14.json
new file mode 100644
index 0000000..6f284a9
--- /dev/null
+++ b/src/starboard/sabi/arm/hardfp/sabi-v14.json
@@ -0,0 +1,31 @@
+{
+  "variables": {
+    "sb_api_version": 14,
+    "target_arch": "arm",
+    "target_arch_sub": "v7a",
+    "word_size": 32,
+    "endianness": "little",
+    "calling_convention": "eabi",
+    "floating_point_abi": "hard",
+    "floating_point_fpu": "vfpv3",
+    "signedness_of_char": "signed",
+    "signedness_of_enum": "signed",
+    "alignment_char":    1,
+    "alignment_double":  8,
+    "alignment_float":   4,
+    "alignment_int":     4,
+    "alignment_llong":   8,
+    "alignment_long":    4,
+    "alignment_pointer": 4,
+    "alignment_short":   2,
+    "size_of_char":    1,
+    "size_of_double":  8,
+    "size_of_enum":    4,
+    "size_of_float":   4,
+    "size_of_int":     4,
+    "size_of_llong":   8,
+    "size_of_long":    4,
+    "size_of_pointer": 4,
+    "size_of_short":   2
+  }
+}
diff --git a/src/starboard/sabi/arm/softfp/sabi-v14.json b/src/starboard/sabi/arm/softfp/sabi-v14.json
new file mode 100644
index 0000000..5a71b3c
--- /dev/null
+++ b/src/starboard/sabi/arm/softfp/sabi-v14.json
@@ -0,0 +1,31 @@
+{
+  "variables": {
+    "sb_api_version": 14,
+    "target_arch": "arm",
+    "target_arch_sub": "v7a",
+    "word_size": 32,
+    "endianness": "little",
+    "calling_convention": "eabi",
+    "floating_point_abi": "softfp",
+    "floating_point_fpu": "vfpv3",
+    "signedness_of_char": "signed",
+    "signedness_of_enum": "signed",
+    "alignment_char":    1,
+    "alignment_double":  8,
+    "alignment_float":   4,
+    "alignment_int":     4,
+    "alignment_llong":   8,
+    "alignment_long":    4,
+    "alignment_pointer": 4,
+    "alignment_short":   2,
+    "size_of_char":    1,
+    "size_of_double":  8,
+    "size_of_enum":    4,
+    "size_of_float":   4,
+    "size_of_int":     4,
+    "size_of_llong":   8,
+    "size_of_long":    4,
+    "size_of_pointer": 4,
+    "size_of_short":   2
+  }
+}
diff --git a/src/starboard/sabi/arm64/sabi-v14.json b/src/starboard/sabi/arm64/sabi-v14.json
new file mode 100644
index 0000000..6c5948e
--- /dev/null
+++ b/src/starboard/sabi/arm64/sabi-v14.json
@@ -0,0 +1,31 @@
+{
+  "variables": {
+    "sb_api_version": 14,
+    "target_arch": "arm64",
+    "target_arch_sub": "v8a",
+    "word_size": 64,
+    "endianness": "little",
+    "calling_convention": "aarch64",
+    "floating_point_abi": "",
+    "floating_point_fpu": "",
+    "signedness_of_char": "signed",
+    "signedness_of_enum": "signed",
+    "alignment_char":    1,
+    "alignment_double":  8,
+    "alignment_float":   4,
+    "alignment_int":     4,
+    "alignment_llong":   8,
+    "alignment_long":    8,
+    "alignment_pointer": 8,
+    "alignment_short":   2,
+    "size_of_char":    1,
+    "size_of_double":  8,
+    "size_of_enum":    4,
+    "size_of_float":   4,
+    "size_of_int":     4,
+    "size_of_llong":   8,
+    "size_of_long":    8,
+    "size_of_pointer": 8,
+    "size_of_short":   2
+  }
+}
diff --git a/src/starboard/sabi/omaha_request.py b/src/starboard/sabi/omaha_request.py
new file mode 100644
index 0000000..3d496d1
--- /dev/null
+++ b/src/starboard/sabi/omaha_request.py
@@ -0,0 +1,130 @@
+#!/usr/bin/env python
+
+# Copyright 2021 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.
+"""Posts an Evergreen update check against Omaha backends."""
+
+import _env  # pylint: disable=unused-import
+
+import argparse
+import sys
+import requests
+import simplejson
+
+from starboard.sabi import generate_sabi_id
+
+# The Evergreen application ID on Omaha.
+_APP_ID = '{6D4E53F3-CC64-4CB8-B6BD-AB0B8F300E1C}'
+
+# The production Omaha endpoint.
+_ENDPOINT = 'https://tools.google.com/service/update2/json'
+
+# The qa Omaha endpoint.
+_ENDPOINT_QA = 'https://omaha-qa.sandbox.google.com/service/update2/json'
+
+_HEADERS = {'Content-type': 'application/json'}
+
+# A minified Evergreen update request that would be POST'd to an Omaha backend.
+_REQUEST = {
+    'request': {
+        '@os': 'starboard',
+        '@updater': 'cobalt',
+        'acceptformat': 'crx2,crx3',
+        'app': [{
+            'appid': _APP_ID,
+            'enabled': True,
+            'ping': {
+                'r': -2
+            },
+            'updatecheck': {},
+        }],
+        'arch': '',
+        'chipset': '',
+        'dedup': 'cr',
+        'firmware': '',
+        'hw': {},
+        'jsengine': 'v8/8.8.278.8-jit',
+        'lang': 'en_US',
+        'manufacturer': '',
+        'model': '',
+        'nacl_arch': '',
+        'os': {
+            'arch': '',
+            'platform': ''
+        },
+        'prodchannel': 'qa',
+        'prodversion': '21',
+        'protocol': '3.1',
+        'requestid': '',
+        'sessionid': '',
+        'uastring': '',
+        'updaterchannelchanged': 'False',
+        'updaterversion': '21',
+        'year': ''
+    }
+}
+
+
+def main():
+  arg_parser = argparse.ArgumentParser()
+  arg_parser.add_argument(
+      '-b',
+      '--brand',
+      default='',
+      help='Which brand to use.',
+  )
+  arg_parser.add_argument(
+      '-c',
+      '--channel',
+      default='qa',
+      help='Which channel to use.',
+  )
+  arg_parser.add_argument(
+      '-q',
+      '--qa',
+      action='store_true',
+      default=False,
+      help='Whether to use the Omaha QA backend.',
+  )
+  arg_parser.add_argument(
+      '-s',
+      '--sbversion',
+      default='12',
+      help='Which Starboard API version to use.',
+  )
+  arg_parser.add_argument(
+      '-v',
+      '--version',
+      default='1.0.0',
+      help='Which Evergreen version to use.',
+  )
+  args, _ = arg_parser.parse_known_args()
+
+  _REQUEST['request']['SABI'] = generate_sabi_id.DoMain()
+  _REQUEST['request']['brand'] = args.brand
+  _REQUEST['request']['updaterchannel'] = args.channel
+  _REQUEST['request']['sbversion'] = args.sbversion
+  _REQUEST['request']['app'][0]['version'] = args.version
+
+  print(
+      requests.post(
+          _ENDPOINT_QA if args.qa else _ENDPOINT,
+          data=simplejson.dumps(_REQUEST),
+          headers=_HEADERS).text)
+
+  return 0
+
+
+if __name__ == '__main__':
+  sys.exit(main())
diff --git a/src/starboard/sabi/sabi.py b/src/starboard/sabi/sabi.py
index 09d04a3..a49ae2e 100644
--- a/src/starboard/sabi/sabi.py
+++ b/src/starboard/sabi/sabi.py
@@ -13,4 +13,4 @@
 # limitations under the License.
 """Source of truth of the default/experimental Starboard API version."""
 
-SB_API_VERSION = 13
+SB_API_VERSION = 14
diff --git a/src/starboard/sabi/schema/sabi-v14.schema.json b/src/starboard/sabi/schema/sabi-v14.schema.json
new file mode 100644
index 0000000..2cc0342
--- /dev/null
+++ b/src/starboard/sabi/schema/sabi-v14.schema.json
@@ -0,0 +1,172 @@
+{
+  "title": "Starboard ABI Schema",
+  "description": "This schema validates that a Starboard ABI file contains the required keys, no extras, and that the corresponding values are valid.",
+  "type": "object",
+  "properties": {
+    "sb_api_version": {
+      "type": "integer",
+      "description": "The Starboard API version.",
+      "enum": [14]
+    },
+    "target_arch": {
+      "type": "string",
+      "description": "The targeted architecture.",
+      "enum": ["arm", "arm64", "x86", "x64"]
+    },
+    "target_arch_sub": {
+      "type": "string",
+      "description": "The targeted sub-architecture.",
+      "enum": ["v7a", "v8a", ""]
+    },
+    "word_size": {
+      "type": "integer",
+      "description": "The word size.",
+      "enum": [32, 64]
+    },
+    "endianness": {
+      "type": "string",
+      "description": "The endianness.",
+      "enum": ["big", "little"]
+    },
+    "calling_convention": {
+      "type": "string",
+      "description": "The calling convention.",
+      "enum": ["sysv", "eabi", "windows", "aarch64"]
+    },
+    "floating_point_abi": {
+      "type": "string",
+      "description": "The floating-point ABI.",
+      "enum": ["hard", "softfp", ""]
+    },
+    "floating_point_fpu": {
+      "type": "string",
+      "description": "The floating-point hardware, if available.",
+      "enum": ["vfpv2", "vfpv3", ""]
+    },
+    "signedness_of_char": {
+      "type": "string",
+      "description": "The signedness of the 'char' data type.",
+      "enum": ["signed", "unsigned"]
+    },
+    "signedness_of_enum": {
+      "type": "string",
+      "description": "The signedness of the 'enum' data type.",
+      "enum": ["signed", "unsigned"]
+    },
+    "alignment_char": {
+      "type": "integer",
+      "description": "The alignment of the 'char' data type.",
+      "enum": [1]
+    },
+    "alignment_double": {
+      "type": "integer",
+      "description": "The alignment of the 'double' data type.",
+      "enum": [8]
+    },
+    "alignment_float": {
+      "type": "integer",
+      "description": "The alignment of the 'float' data type.",
+      "enum": [4]
+    },
+    "alignment_int": {
+      "type": "integer",
+      "description": "The alignment of the 'int' data type.",
+      "enum": [4]
+    },
+    "alignment_llong": {
+      "type": "integer",
+      "description": "The alignment of the 'long long' data type.",
+      "enum": [8]
+    },
+    "alignment_long": {
+      "type": "integer",
+      "description": "The alignment of the 'long' data type.",
+      "enum": [4, 8]
+    },
+    "alignment_pointer": {
+      "type": "integer",
+      "description": "The alignment of pointers.",
+      "enum": [4, 8]
+    },
+    "alignment_short": {
+      "type": "integer",
+      "description": "The alignment of the 'short' data type.",
+      "enum": [2]
+    },
+    "size_of_char": {
+      "type": "integer",
+      "description": "The size of the 'char' data type.",
+      "enum": [1]
+    },
+    "size_of_double": {
+      "type": "integer",
+      "description": "The size of the 'double' data type.",
+      "enum": [8]
+    },
+    "size_of_enum": {
+      "type": "integer",
+      "description": "The size of the 'enum' data type.",
+      "enum": [4]
+    },
+    "size_of_float": {
+      "type": "integer",
+      "description": "The size of the 'float' data type.",
+      "enum": [4]
+    },
+    "size_of_int": {
+      "type": "integer",
+      "description": "The size of the 'int' data type.",
+      "enum": [4]
+    },
+    "size_of_llong": {
+      "type": "integer",
+      "description": "The size of the 'long long' data type.",
+      "enum": [8]
+    },
+    "size_of_long": {
+      "type": "integer",
+      "description": "The size of the 'long' data type.",
+      "enum": [4, 8]
+    },
+    "size_of_pointer": {
+      "type": "integer",
+      "description": "The size of pointers.",
+      "enum": [4, 8]
+    },
+    "size_of_short": {
+      "type": "integer",
+      "description": "The size of the 'short' data type.",
+      "enum": [2]
+    }
+  },
+  "required": [
+    "sb_api_version",
+    "target_arch",
+    "target_arch_sub",
+    "word_size",
+    "endianness",
+    "calling_convention",
+    "floating_point_abi",
+    "floating_point_fpu",
+    "signedness_of_char",
+    "signedness_of_enum",
+    "alignment_char",
+    "alignment_double",
+    "alignment_float",
+    "alignment_int",
+    "alignment_llong",
+    "alignment_long",
+    "alignment_pointer",
+    "alignment_short",
+    "size_of_char",
+    "size_of_enum",
+    "size_of_double",
+    "size_of_float",
+    "size_of_int",
+    "size_of_llong",
+    "size_of_long",
+    "size_of_pointer",
+    "size_of_short"
+  ],
+  "additionalProperties": false
+}
diff --git a/src/starboard/sabi/x64/sysv/sabi-v14.json b/src/starboard/sabi/x64/sysv/sabi-v14.json
new file mode 100644
index 0000000..19e4a67
--- /dev/null
+++ b/src/starboard/sabi/x64/sysv/sabi-v14.json
@@ -0,0 +1,31 @@
+{
+  "variables": {
+    "sb_api_version": 14,
+    "target_arch": "x64",
+    "target_arch_sub": "",
+    "word_size": 64,
+    "endianness": "little",
+    "calling_convention": "sysv",
+    "floating_point_abi": "",
+    "floating_point_fpu": "",
+    "signedness_of_char": "signed",
+    "signedness_of_enum": "signed",
+    "alignment_char":    1,
+    "alignment_double":  8,
+    "alignment_float":   4,
+    "alignment_int":     4,
+    "alignment_llong":   8,
+    "alignment_long":    8,
+    "alignment_pointer": 8,
+    "alignment_short":   2,
+    "size_of_char":    1,
+    "size_of_double":  8,
+    "size_of_enum":    4,
+    "size_of_float":   4,
+    "size_of_int":     4,
+    "size_of_llong":   8,
+    "size_of_long":    8,
+    "size_of_pointer": 8,
+    "size_of_short":   2
+  }
+}
diff --git a/src/starboard/sabi/x64/windows/sabi-v14.json b/src/starboard/sabi/x64/windows/sabi-v14.json
new file mode 100644
index 0000000..f296236
--- /dev/null
+++ b/src/starboard/sabi/x64/windows/sabi-v14.json
@@ -0,0 +1,31 @@
+{
+  "variables": {
+    "sb_api_version": 14,
+    "target_arch": "x64",
+    "target_arch_sub": "",
+    "word_size": 64,
+    "endianness": "little",
+    "calling_convention": "windows",
+    "floating_point_abi": "",
+    "floating_point_fpu": "",
+    "signedness_of_char": "signed",
+    "signedness_of_enum": "signed",
+    "alignment_char":    1,
+    "alignment_double":  8,
+    "alignment_float":   4,
+    "alignment_int":     4,
+    "alignment_llong":   8,
+    "alignment_long":    4,
+    "alignment_pointer": 8,
+    "alignment_short":   2,
+    "size_of_char":    1,
+    "size_of_double":  8,
+    "size_of_enum":    4,
+    "size_of_float":   4,
+    "size_of_int":     4,
+    "size_of_llong":   8,
+    "size_of_long":    4,
+    "size_of_pointer": 8,
+    "size_of_short":   2
+  }
+}
diff --git a/src/starboard/sabi/x86/sabi-v14.json b/src/starboard/sabi/x86/sabi-v14.json
new file mode 100644
index 0000000..ca6aeb6
--- /dev/null
+++ b/src/starboard/sabi/x86/sabi-v14.json
@@ -0,0 +1,31 @@
+{
+  "variables": {
+    "sb_api_version": 14,
+    "target_arch": "x86",
+    "target_arch_sub": "",
+    "word_size": 32,
+    "endianness": "little",
+    "calling_convention": "sysv",
+    "floating_point_abi": "",
+    "floating_point_fpu": "",
+    "signedness_of_char": "signed",
+    "signedness_of_enum": "signed",
+    "alignment_char":    1,
+    "alignment_double":  8,
+    "alignment_float":   4,
+    "alignment_int":     4,
+    "alignment_llong":   8,
+    "alignment_long":    4,
+    "alignment_pointer": 4,
+    "alignment_short":   2,
+    "size_of_char":    1,
+    "size_of_double":  8,
+    "size_of_enum":    4,
+    "size_of_float":   4,
+    "size_of_int":     4,
+    "size_of_llong":   8,
+    "size_of_long":    4,
+    "size_of_pointer": 4,
+    "size_of_short":   2
+  }
+}
diff --git a/src/starboard/shared/deviceauth/deviceauth_internal.cc b/src/starboard/shared/deviceauth/deviceauth_internal.cc
new file mode 100644
index 0000000..416e270
--- /dev/null
+++ b/src/starboard/shared/deviceauth/deviceauth_internal.cc
@@ -0,0 +1,91 @@
+// Copyright 2021 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"
+
+#include <string.h>
+#include <string>
+
+#include "starboard/common/log.h"
+#include "starboard/linux/x64x11/system_properties.h"
+#include "third_party/boringssl/src/include/openssl/hmac.h"
+#include "third_party/modp_b64/modp_b64.h"
+
+#include "starboard/shared/deviceauth/deviceauth_internal.h"
+
+#if SB_API_VERSION >= 11
+
+namespace {
+bool Base64Decode(const std::string& input, std::string* output) {
+  std::string temp;
+  temp.resize(modp_b64_decode_len(input.size()));
+
+  // does not null terminate result since result is binary data!
+  size_t input_size = input.size();
+  int output_size = modp_b64_decode(&(temp[0]), input.data(), input_size);
+  if (output_size == MODP_B64_ERROR)
+    return false;
+
+  temp.resize(output_size);
+  output->swap(temp);
+  return true;
+}
+}  // namespace
+
+namespace starboard {
+namespace shared {
+namespace deviceauth {
+
+// This function is meant to exist purely for reference.
+//
+// Implementation that uses a compiled-in key.
+// The application may already fallback to querying for the secret key and
+// applying this same logic if this function returns false.  Because of that,
+// if you are considering using this implementation in production, it's quite
+// possible that simply using the stub version of this function would work
+// just as well for you.  A more production-ready version of this function might
+// forward to an internal API that signs the message in a hardware-backed secure
+// keystore.
+bool SignWithCertificationSecretKey(const char* secret_key,
+                                    const uint8_t* message,
+                                    size_t message_size_in_bytes,
+                                    uint8_t* digest,
+                                    size_t digest_size_in_bytes) {
+  if (digest_size_in_bytes < 32) {
+    SB_LOG(ERROR) << "SbSystemSignWithCertificationSecretKey() must be called "
+                  << "with an output digest buffer size of at least 32 bytes.";
+    return false;
+  }
+  const size_t kBase64EncodedCertificationSecretLength = 1023;
+  char base_64_secret_property[kBase64EncodedCertificationSecretLength + 1] = {
+      0};
+  strncpy(base_64_secret_property, kBase64EncodedCertificationSecret,
+          kBase64EncodedCertificationSecretLength);
+
+  std::string secret;
+  SB_CHECK(Base64Decode(base_64_secret_property, &secret));
+
+  uint8_t* result = HMAC(EVP_sha256(), secret.data(), secret.size(), message,
+                         message_size_in_bytes, digest, nullptr);
+
+  return result == digest;
+}
+
+} // namespace deviceauth
+
+} // namespace shared
+
+} // namespace starboard
+
+#endif  // SB_API_VERSION >= 11
diff --git a/src/starboard/shared/deviceauth/deviceauth_internal.h b/src/starboard/shared/deviceauth/deviceauth_internal.h
new file mode 100644
index 0000000..c2f7b62
--- /dev/null
+++ b/src/starboard/shared/deviceauth/deviceauth_internal.h
@@ -0,0 +1,35 @@
+// Copyright 2021 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_SHARED_DEVICEAUTH_DEVICEAUTH_INTERNAL_H_
+#define STARBOARD_SHARED_DEVICEAUTH_DEVICEAUTH_INTERNAL_H_
+
+#include <cstddef>
+#include <cstdint>
+
+namespace starboard {
+namespace shared {
+namespace deviceauth {
+
+bool SignWithCertificationSecretKey(const char* secret_key,
+                                    const uint8_t* message,
+                                    size_t message_size_in_bytes,
+                                    uint8_t* digest,
+                                    size_t digest_size_in_bytes);
+
+}  // namespace deviceauth
+}  // namespace shared
+}  // namespace starboard
+
+#endif  // STARBOARD_SHARED_DEVICEAUTH_DEVICEAUTH_INTERNAL_H_
diff --git a/src/starboard/shared/ffmpeg/BUILD.gn b/src/starboard/shared/ffmpeg/BUILD.gn
new file mode 100644
index 0000000..d298a03
--- /dev/null
+++ b/src/starboard/shared/ffmpeg/BUILD.gn
@@ -0,0 +1,87 @@
+# Copyright 2021 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.
+
+ffmpeg_specialization_sources = [
+  "ffmpeg_audio_decoder_impl.cc",
+  "ffmpeg_audio_decoder_impl.h",
+  "ffmpeg_common.h",
+  "ffmpeg_video_decoder_impl.cc",
+  "ffmpeg_video_decoder_impl.h",
+]
+
+static_library("ffmpeg_dynamic_load") {
+  sources = [
+    "ffmpeg_dynamic_load_audio_decoder_impl.cc",
+    "ffmpeg_dynamic_load_dispatch_impl.cc",
+    "ffmpeg_dynamic_load_video_decoder_impl.cc",
+  ]
+  public_deps = [
+    ":ffmpeg.57.107.100",
+    ":ffmpeg.58.35.100",
+    ":ffmpeg_dispatch_sources",
+    ":libav.54.35.1",
+    ":libav.56.1.0",
+  ]
+}
+
+static_library("ffmpeg_linked") {
+  check_includes = false
+  sources = ffmpeg_specialization_sources + [
+              "ffmpeg_linked_audio_decoder_impl.cc",
+              "ffmpeg_linked_dispatch_impl.cc",
+              "ffmpeg_linked_video_decoder_impl.cc",
+            ]
+  public_deps = [ ":ffmpeg_dispatch_sources" ]
+}
+
+# We recompile the specialization sources for each different library version.
+# Changing include_dirs changes where implementations in the sources look.
+template("versioned_ffmpeg_library") {
+  not_needed(invoker, "*")
+  static_library(target_name) {
+    check_includes = false
+    sources = ffmpeg_specialization_sources
+    public_deps = [ "//starboard/common" ]
+
+    configs += [
+      "//starboard/build/config:starboard_implementation",
+      ":${target_name}_config",
+    ]
+  }
+
+  config("${target_name}_config") {
+    include_dirs = [ "//third_party/ffmpeg_includes/$target_name" ]
+  }
+}
+
+versioned_ffmpeg_library("libav.54.35.1") {
+}
+versioned_ffmpeg_library("libav.56.1.0") {
+}
+versioned_ffmpeg_library("ffmpeg.57.107.100") {
+}
+versioned_ffmpeg_library("ffmpeg.58.35.100") {
+}
+
+static_library("ffmpeg_dispatch_sources") {
+  check_includes = false
+  sources = [
+    "ffmpeg_audio_decoder.h",
+    "ffmpeg_dispatch.cc",
+    "ffmpeg_dispatch.h",
+    "ffmpeg_video_decoder.h",
+  ]
+
+  public_configs = [ "//starboard/build/config:starboard_implementation" ]
+}
diff --git a/src/starboard/shared/iso/character_is_alphanumeric.cc b/src/starboard/shared/iso/character_is_alphanumeric.cc
index ef8ca88..f282bab 100644
--- a/src/starboard/shared/iso/character_is_alphanumeric.cc
+++ b/src/starboard/shared/iso/character_is_alphanumeric.cc
@@ -16,8 +16,8 @@
 
 #include <ctype.h>
 
-#if SB_API_VERSION < SB_CHARACTER_APIS_DEPRECATED_VERSION
+#if SB_API_VERSION < 13
 bool SbCharacterIsAlphanumeric(int c) {
   return isalnum(c);
 }
-#endif  // SB_API_VERSION < SB_CHARACTER_APIS_DEPRECATED_VERSION
+#endif  // SB_API_VERSION < 13
diff --git a/src/starboard/shared/iso/character_is_digit.cc b/src/starboard/shared/iso/character_is_digit.cc
index 9cd7e83..e1c0b5b 100644
--- a/src/starboard/shared/iso/character_is_digit.cc
+++ b/src/starboard/shared/iso/character_is_digit.cc
@@ -16,8 +16,8 @@
 
 #include <ctype.h>
 
-#if SB_API_VERSION < SB_CHARACTER_APIS_DEPRECATED_VERSION
+#if SB_API_VERSION < 13
 bool SbCharacterIsDigit(int c) {
   return isdigit(c);
 }
-#endif  // SB_API_VERSION < SB_CHARACTER_APIS_DEPRECATED_VERSION
+#endif  // SB_API_VERSION < 13
diff --git a/src/starboard/shared/iso/character_is_hex_digit.cc b/src/starboard/shared/iso/character_is_hex_digit.cc
index dbeaad1..c17143a 100644
--- a/src/starboard/shared/iso/character_is_hex_digit.cc
+++ b/src/starboard/shared/iso/character_is_hex_digit.cc
@@ -16,8 +16,8 @@
 
 #include <ctype.h>
 
-#if SB_API_VERSION < SB_CHARACTER_APIS_DEPRECATED_VERSION
+#if SB_API_VERSION < 13
 bool SbCharacterIsHexDigit(int c) {
   return isxdigit(c);
 }
-#endif  // SB_API_VERSION < SB_CHARACTER_APIS_DEPRECATED_VERSION
+#endif  // SB_API_VERSION < 13
diff --git a/src/starboard/shared/iso/character_is_space.cc b/src/starboard/shared/iso/character_is_space.cc
index acd4d91..84cb697 100644
--- a/src/starboard/shared/iso/character_is_space.cc
+++ b/src/starboard/shared/iso/character_is_space.cc
@@ -15,8 +15,8 @@
 #include "starboard/character.h"
 
 #include <ctype.h>
-#if SB_API_VERSION < SB_CHARACTER_APIS_DEPRECATED_VERSION
+#if SB_API_VERSION < 13
 bool SbCharacterIsSpace(int c) {
   return isspace(c);
 }
-#endif  // SB_API_VERSION < SB_CHARACTER_APIS_DEPRECATED_VERSION
+#endif  // SB_API_VERSION < 13
diff --git a/src/starboard/shared/iso/character_is_upper.cc b/src/starboard/shared/iso/character_is_upper.cc
index 8259f6e..34c808c 100644
--- a/src/starboard/shared/iso/character_is_upper.cc
+++ b/src/starboard/shared/iso/character_is_upper.cc
@@ -16,8 +16,8 @@
 
 #include <ctype.h>
 
-#if SB_API_VERSION < SB_CHARACTER_APIS_DEPRECATED_VERSION
+#if SB_API_VERSION < 13
 bool SbCharacterIsUpper(int c) {
   return isupper(c);
 }
-#endif  // SB_API_VERSION < SB_CHARACTER_APIS_DEPRECATED_VERSION
+#endif  // SB_API_VERSION < 13
diff --git a/src/starboard/shared/iso/character_to_lower.cc b/src/starboard/shared/iso/character_to_lower.cc
index 46a8ebe..efd3527 100644
--- a/src/starboard/shared/iso/character_to_lower.cc
+++ b/src/starboard/shared/iso/character_to_lower.cc
@@ -16,8 +16,8 @@
 
 #include <ctype.h>
 
-#if SB_API_VERSION < SB_CHARACTER_APIS_DEPRECATED_VERSION
+#if SB_API_VERSION < 13
 int SbCharacterToLower(int c) {
   return tolower(c);
 }
-#endif  // SB_API_VERSION < SB_CHARACTER_APIS_DEPRECATED_VERSION
+#endif  // SB_API_VERSION < 13
diff --git a/src/starboard/shared/iso/character_to_upper.cc b/src/starboard/shared/iso/character_to_upper.cc
index ba12d52..47d59de 100644
--- a/src/starboard/shared/iso/character_to_upper.cc
+++ b/src/starboard/shared/iso/character_to_upper.cc
@@ -16,8 +16,8 @@
 
 #include <ctype.h>
 
-#if SB_API_VERSION < SB_CHARACTER_APIS_DEPRECATED_VERSION
+#if SB_API_VERSION < 13
 int SbCharacterToUpper(int c) {
   return toupper(c);
 }
-#endif  // SB_API_VERSION < SB_CHARACTER_APIS_DEPRECATED_VERSION
+#endif  // SB_API_VERSION < 13
diff --git a/src/starboard/shared/iso/double_absolute.cc b/src/starboard/shared/iso/double_absolute.cc
index 759d847..0d999a9 100644
--- a/src/starboard/shared/iso/double_absolute.cc
+++ b/src/starboard/shared/iso/double_absolute.cc
@@ -16,8 +16,8 @@
 
 #include <math.h>
 
-#if SB_API_VERSION < SB_DOUBLE_APIS_DEPRECATED_VERSION
+#if SB_API_VERSION < 13
 double SbDoubleAbsolute(double d) {
   return fabs(d);
 }
-#endif  // SB_API_VERSION < SB_DOUBLE_APIS_DEPRECATED_VERSION
+#endif  // SB_API_VERSION < 13
diff --git a/src/starboard/shared/iso/double_exponent.cc b/src/starboard/shared/iso/double_exponent.cc
index d75b1d0..4de7a13 100644
--- a/src/starboard/shared/iso/double_exponent.cc
+++ b/src/starboard/shared/iso/double_exponent.cc
@@ -16,8 +16,8 @@
 
 #include <math.h>
 
-#if SB_API_VERSION < SB_DOUBLE_APIS_DEPRECATED_VERSION
+#if SB_API_VERSION < 13
 double SbDoubleExponent(const double base, const double exponent) {
   return pow(base, exponent);
 }
-#endif  // SB_API_VERSION < SB_DOUBLE_APIS_DEPRECATED_VERSION
+#endif  // SB_API_VERSION < 13
diff --git a/src/starboard/shared/iso/double_floor.cc b/src/starboard/shared/iso/double_floor.cc
index 532d80d..376515f 100644
--- a/src/starboard/shared/iso/double_floor.cc
+++ b/src/starboard/shared/iso/double_floor.cc
@@ -16,8 +16,8 @@
 
 #include <math.h>
 
-#if SB_API_VERSION < SB_DOUBLE_APIS_DEPRECATED_VERSION
+#if SB_API_VERSION < 13
 double SbDoubleFloor(double d) {
   return floor(d);
 }
-#endif  // SB_API_VERSION < SB_DOUBLE_APIS_DEPRECATED_VERSION
+#endif  // SB_API_VERSION < 13
diff --git a/src/starboard/shared/iso/double_is_finite.cc b/src/starboard/shared/iso/double_is_finite.cc
index ac1834f..16f6830 100644
--- a/src/starboard/shared/iso/double_is_finite.cc
+++ b/src/starboard/shared/iso/double_is_finite.cc
@@ -19,8 +19,8 @@
 
 #include "starboard/common/log.h"
 
-#if SB_API_VERSION < SB_DOUBLE_APIS_DEPRECATED_VERSION
+#if SB_API_VERSION < 13
 bool SbDoubleIsFinite(const double d) {
   return (fpclassify(d) != FP_INFINITE);
 }
-#endif  // SB_API_VERSION < SB_DOUBLE_APIS_DEPRECATED_VERSION
+#endif  // SB_API_VERSION < 13
diff --git a/src/starboard/shared/iso/double_is_nan.cc b/src/starboard/shared/iso/double_is_nan.cc
index 83d786d..1b0a6f4 100644
--- a/src/starboard/shared/iso/double_is_nan.cc
+++ b/src/starboard/shared/iso/double_is_nan.cc
@@ -16,8 +16,8 @@
 
 #include <math.h>
 
-#if SB_API_VERSION < SB_DOUBLE_APIS_DEPRECATED_VERSION
+#if SB_API_VERSION < 13
 bool SbDoubleIsNan(const double d) {
   return isnan(d);
 }
-#endif  // SB_API_VERSION < SB_DOUBLE_APIS_DEPRECATED_VERSION
+#endif  // SB_API_VERSION < 13
diff --git a/src/starboard/shared/iso/string_parse_double.cc b/src/starboard/shared/iso/string_parse_double.cc
index f74b228..a18be75 100644
--- a/src/starboard/shared/iso/string_parse_double.cc
+++ b/src/starboard/shared/iso/string_parse_double.cc
@@ -17,11 +17,11 @@
 #include <stdlib.h>
 #include "starboard/common/log.h"
 
-#if SB_API_VERSION < SB_STDLIB_APIS_DEPRECATED_VERSION
+#if SB_API_VERSION < 13
 
 double SbStringParseDouble(const char* start, char** out_end) {
   SB_DCHECK(start != NULL) << "start must be a valid pointer";
   return strtod(start, out_end);
 }
 
-#endif  // SB_API_VERSION < SB_STDLIB_APIS_DEPRECATED_VERSION
+#endif  // SB_API_VERSION < 13
diff --git a/src/starboard/shared/iso/string_parse_signed_integer.cc b/src/starboard/shared/iso/string_parse_signed_integer.cc
index 6eda6e5..872cf91 100644
--- a/src/starboard/shared/iso/string_parse_signed_integer.cc
+++ b/src/starboard/shared/iso/string_parse_signed_integer.cc
@@ -16,11 +16,11 @@
 
 #include <stdlib.h>
 
-#if SB_API_VERSION < SB_STDLIB_APIS_DEPRECATED_VERSION
+#if SB_API_VERSION < 13
 
 // NOLINTNEXTLINE(runtime/int)
 long SbStringParseSignedInteger(const char* start, char** out_end, int base) {
   return strtol(start, out_end, base);
 }
 
-#endif  // SB_API_VERSION < SB_STDLIB_APIS_DEPRECATED_VERSION
+#endif  // SB_API_VERSION < 13
diff --git a/src/starboard/shared/iso/string_parse_uint64.cc b/src/starboard/shared/iso/string_parse_uint64.cc
index 1b91465..8de22c4 100644
--- a/src/starboard/shared/iso/string_parse_uint64.cc
+++ b/src/starboard/shared/iso/string_parse_uint64.cc
@@ -16,10 +16,10 @@
 
 #include <stdlib.h>
 
-#if SB_API_VERSION < SB_STDLIB_APIS_DEPRECATED_VERSION
+#if SB_API_VERSION < 13
 
 uint64_t SbStringParseUInt64(const char* start, char** out_end, int base) {
   return strtoull(start, out_end, base);
 }
 
-#endif  // SB_API_VERSION < SB_STDLIB_APIS_DEPRECATED_VERSION
+#endif  // SB_API_VERSION < 13
diff --git a/src/starboard/shared/iso/string_parse_unsigned_integer.cc b/src/starboard/shared/iso/string_parse_unsigned_integer.cc
index 1e22f88..5f91931 100644
--- a/src/starboard/shared/iso/string_parse_unsigned_integer.cc
+++ b/src/starboard/shared/iso/string_parse_unsigned_integer.cc
@@ -16,7 +16,7 @@
 
 #include <stdlib.h>
 
-#if SB_API_VERSION < SB_STDLIB_APIS_DEPRECATED_VERSION
+#if SB_API_VERSION < 13
 
 // NOLINTNEXTLINE(runtime/int)
 unsigned long SbStringParseUnsignedInteger(const char* start,
@@ -25,4 +25,4 @@
   return strtoul(start, out_end, base);
 }
 
-#endif  // SB_API_VERSION < SB_STDLIB_APIS_DEPRECATED_VERSION
+#endif  // SB_API_VERSION < 13
diff --git a/src/starboard/shared/iso/system_binary_search.cc b/src/starboard/shared/iso/system_binary_search.cc
index 9e7a6cc..13cf7b4 100644
--- a/src/starboard/shared/iso/system_binary_search.cc
+++ b/src/starboard/shared/iso/system_binary_search.cc
@@ -16,7 +16,7 @@
 
 #include <stdlib.h>
 
-#if SB_API_VERSION < SB_SYSTEM_BINARY_SEARCH_DEPRECATED_VERSION
+#if SB_API_VERSION < 13
 void* SbSystemBinarySearch(const void* key,
                            const void* base,
                            size_t element_count,
@@ -24,4 +24,4 @@
                            SbSystemComparator comparator) {
   return bsearch(key, base, element_count, element_width, comparator);
 }
-#endif  // SB_API_VERSION < SB_SYSTEM_BINARY_SEARCH_DEPRECATED_VERSION
+#endif  // SB_API_VERSION < 13
diff --git a/src/starboard/shared/linux/singleton.h b/src/starboard/shared/linux/singleton.h
new file mode 100644
index 0000000..7e6fcea
--- /dev/null
+++ b/src/starboard/shared/linux/singleton.h
@@ -0,0 +1,66 @@
+// Copyright 2021 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.
+
+// Module Overview: Starboard Once module
+//
+// Onces represent initializations that should only ever happen once per
+// process, in a thread-safe way.
+
+#ifndef STARBOARD_NXSWITCH_SINGLETON_H_
+#define STARBOARD_NXSWITCH_SINGLETON_H_
+
+#include "starboard/once.h"
+#include "starboard/shared/internal_only.h"
+
+namespace starboard {
+
+// Singleton helper class.
+template <typename Type>
+class Singleton {
+ public:
+  Singleton() {}
+
+  // This helper class assumes that Type has a function
+  // "bool Initialize();" that returns false when
+  // initialization fails.
+
+  static Type* GetOrCreateInstance() {
+    static SbOnceControl s_once_flag = SB_ONCE_INITIALIZER;
+    static Type* s_singleton = NULL;
+    struct Local {
+      static void Init() {
+        Type* singleton = new Type();
+        if (singleton && singleton->Type::Initialize()) {
+          s_singleton = singleton;
+        }
+      }
+    };
+    SbOnce(&s_once_flag, Local::Init);
+    return s_singleton;
+  }
+
+  // Prevent copying and moving.
+  Singleton(Singleton const&) = delete;
+  Singleton& operator=(const Singleton&) = delete;
+  // Prevent deleting.
+  void operator delete(void* p) = delete;
+
+ protected:
+  // Prevent destroying.
+  ~Singleton();
+};
+
+}  // namespace starboard
+
+#endif  // STARBOARD_NXSWITCH_SINGLETON_H_
diff --git a/src/starboard/shared/linux/system_network_status.cc b/src/starboard/shared/linux/system_network_status.cc
new file mode 100644
index 0000000..d019301
--- /dev/null
+++ b/src/starboard/shared/linux/system_network_status.cc
@@ -0,0 +1,132 @@
+// Copyright 2021 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 <asm/types.h>
+#include <errno.h>
+#include <linux/netlink.h>
+#include <linux/rtnetlink.h>
+#include <memory.h>
+#include <stdio.h>
+#include <sys/socket.h>
+#include <unistd.h>
+#include <cstring>
+
+#include "starboard/common/log.h"
+#include "starboard/shared/linux/singleton.h"
+#include "starboard/shared/linux/system_network_status.h"
+#include "starboard/shared/starboard/application.h"
+#include "starboard/system.h"
+
+#if SB_API_VERSION >= 13
+
+namespace {
+
+// This function will repeatedly run on the NetworkNotifier thread untile the
+// Cobalt application is kill. This function checks kernel message for IP
+// address changes.
+bool GetOnlineStatus(bool* is_online_ptr, int netlink_fd) {
+  SB_DCHECK(is_online_ptr != NULL);
+
+  struct sockaddr_nl sa;
+  memset(&sa, 0, sizeof(sa));
+  sa.nl_family = AF_NETLINK;
+  sa.nl_groups = RTMGRP_IPV4_IFADDR;
+  sa.nl_pid = getpid();
+  int bind_result = bind(netlink_fd, (struct sockaddr*)&sa, sizeof(sa));
+  SB_DCHECK(bind_result == 0);
+
+  char buf[8192];
+  struct iovec iov;
+  iov.iov_base = buf;
+  iov.iov_len = sizeof(buf);
+
+  struct msghdr msg;
+  {
+    msg.msg_name = &sa;
+    msg.msg_namelen = sizeof(sa);
+    msg.msg_iov = &iov;
+    msg.msg_iovlen = 1;
+  }
+
+  ssize_t status;
+  status = recvmsg(netlink_fd, &msg, MSG_DONTWAIT);
+  bool has_message = false;
+  while (status >= 0) {
+    SB_DCHECK(msg.msg_namelen == sizeof(sa));
+
+    struct nlmsghdr* header;
+
+    for (header = (struct nlmsghdr*)buf; status >= (ssize_t)sizeof(*header);) {
+      int len = header->nlmsg_len;
+      int l = len - sizeof(*header);
+
+      SB_DCHECK(l >= 0);
+      SB_DCHECK(len <= status);
+
+      switch (header->nlmsg_type) {
+        case RTM_DELADDR:
+          *is_online_ptr = false;
+          has_message = true;
+          break;
+        case RTM_NEWADDR:
+          *is_online_ptr = true;
+          has_message = true;
+          break;
+      }
+
+      status -= NLMSG_ALIGN(len);
+      header = (struct nlmsghdr*)((char*)header + NLMSG_ALIGN(len));
+    }
+    status = recvmsg(netlink_fd, &msg, MSG_DONTWAIT);
+  }
+
+  return has_message;
+}
+
+}  // namespace
+
+bool NetworkNotifier::Initialize() {
+  SB_DCHECK(!SbThreadIsValid(notifier_thread_));
+  notifier_thread_ = SbThreadCreate(
+      0, kSbThreadPriorityLow, kSbThreadNoAffinity, false, "NetworkNotifier",
+      &NetworkNotifier::NotifierThreadEntry, this);
+  SB_DCHECK(SbThreadIsValid(notifier_thread_));
+  return true;
+}
+
+void* NetworkNotifier::NotifierThreadEntry(void* context) {
+  auto* notifier = static_cast<NetworkNotifier*>(context);
+  int netlink_fd = socket(AF_NETLINK, SOCK_RAW, NETLINK_ROUTE);
+  bool is_online;
+  do {
+    if (GetOnlineStatus(&is_online, netlink_fd)) {
+      notifier->set_online(is_online);
+      auto* application = starboard::shared::starboard::Application::Get();
+      if (is_online) {
+        application->InjectOsNetworkConnectedEvent();
+      } else {
+        application->InjectOsNetworkDisconnectedEvent();
+      }
+    }
+    usleep(1000);
+  } while (1);
+
+  return nullptr;
+}
+
+bool SbSystemNetworkIsDisconnected() {
+  return !NetworkNotifier::GetOrCreateInstance()->is_online();
+}
+
+#endif  // SB_API_VERSION >= 13
diff --git a/src/starboard/shared/linux/system_network_status.h b/src/starboard/shared/linux/system_network_status.h
new file mode 100644
index 0000000..0c48196
--- /dev/null
+++ b/src/starboard/shared/linux/system_network_status.h
@@ -0,0 +1,40 @@
+// Copyright 2021 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_SHARED_LINUX_SYSTEM_NETWORK_STATUS_H_
+#define STARBOARD_SHARED_LINUX_SYSTEM_NETWORK_STATUS_H_
+
+#if SB_API_VERSION >= 13
+
+#include "starboard/shared/linux/singleton.h"
+#include "starboard/system.h"
+#include "starboard/thread.h"
+
+class NetworkNotifier : public starboard::Singleton<NetworkNotifier> {
+ public:
+  bool Initialize();
+
+  static void* NotifierThreadEntry(void* context);
+
+  bool is_online() { return is_online_; }
+  void set_online(bool is_online) { is_online_ = is_online; }
+
+ private:
+  SbThread notifier_thread_;
+  bool is_online_ = true;
+};
+
+#endif  // SB_API_VERSION >= 13
+
+#endif  // STARBOARD_SHARED_LINUX_SYSTEM_NETWORK_STATUS_H_
diff --git a/src/starboard/shared/signal/suspend_signals.cc b/src/starboard/shared/signal/suspend_signals.cc
index 0220389..bc05466 100644
--- a/src/starboard/shared/signal/suspend_signals.cc
+++ b/src/starboard/shared/signal/suspend_signals.cc
@@ -59,8 +59,7 @@
   ::sigaction(signal_id, &action, NULL);
 }
 
-#if SB_API_VERSION >= SB_ADD_CONCEALED_STATE_SUPPORT_VERSION || \
-    SB_HAS(CONCEALED_STATE)
+#if SB_API_VERSION >= 13
 void Conceal(int signal_id) {
   SignalMask(kAllSignals, SIG_BLOCK);
   LogSignalCaught(signal_id);
@@ -104,8 +103,7 @@
   starboard::Application::Get()->Unpause(NULL, NULL);
   SignalMask(kAllSignals, SIG_UNBLOCK);
 }
-#endif  // SB_API_VERSION >= SB_ADD_CONCEALED_STATE_SUPPORT_VERSION ||
-        // SB_HAS(CONCEALED_STATE)
+#endif  // SB_API_VERSION >= 13
 
 void LowMemory(int signal_id) {
   SignalMask(kAllSignals, SIG_BLOCK);
@@ -164,8 +162,7 @@
   // http://pubs.opengroup.org/onlinepubs/009695399/functions/xsh_chap02_04.html
   SignalMask(kAllSignals, SIG_BLOCK);
 
-#if SB_API_VERSION >= SB_ADD_CONCEALED_STATE_SUPPORT_VERSION || \
-    SB_HAS(CONCEALED_STATE)
+#if SB_API_VERSION >= 13
   SetSignalHandler(SIGUSR1, &Conceal);
   SetSignalHandler(SIGUSR2, &LowMemory);
   SetSignalHandler(SIGCONT, &Focus);
@@ -177,8 +174,7 @@
   SetSignalHandler(SIGUSR2, &LowMemory);
   SetSignalHandler(SIGCONT, &Resume);
   ConfigureSignalHandlerThread(true);
-#endif  // SB_API_VERSION >= SB_ADD_CONCEALED_STATE_SUPPORT_VERSION ||
-        // SB_HAS(CONCEALED_STATE)
+#endif  // SB_API_VERSION >= 13
 }
 
 void UninstallSuspendSignalHandlers() {
@@ -188,11 +184,9 @@
   SetSignalHandler(SIGUSR1, SIG_DFL);
   SetSignalHandler(SIGUSR2, SIG_DFL);
   SetSignalHandler(SIGCONT, SIG_DFL);
-#if SB_API_VERSION >= SB_ADD_CONCEALED_STATE_SUPPORT_VERSION || \
-    SB_HAS(CONCEALED_STATE)
+#if SB_API_VERSION >= 13
   SetSignalHandler(SIGPWR, SIG_DFL);
-#endif  // SB_API_VERSION >= SB_ADD_CONCEALED_STATE_SUPPORT_VERSION ||
-        // SB_HAS(CONCEALED_STATE)
+#endif  // SB_API_VERSION >= 13
   ConfigureSignalHandlerThread(false);
 }
 
diff --git a/src/starboard/shared/signal/system_request_conceal.cc b/src/starboard/shared/signal/system_request_conceal.cc
index 0208148..696e93b 100644
--- a/src/starboard/shared/signal/system_request_conceal.cc
+++ b/src/starboard/shared/signal/system_request_conceal.cc
@@ -16,10 +16,8 @@
 
 #include "starboard/shared/starboard/application.h"
 
-#if SB_API_VERSION >= SB_ADD_CONCEALED_STATE_SUPPORT_VERSION || \
-    SB_HAS(CONCEALED_STATE)
+#if SB_API_VERSION >= 13
 void SbSystemRequestConceal() {
   starboard::shared::starboard::Application::Get()->Conceal(NULL, NULL);
 }
-#endif  // SB_API_VERSION >= SB_ADD_CONCEALED_STATE_SUPPORT_VERSION ||
-        // SB_HAS(CONCEALED_STATE)
+#endif  // SB_API_VERSION >= 13
diff --git a/src/starboard/shared/signal/system_request_freeze.cc b/src/starboard/shared/signal/system_request_freeze.cc
index b2cbc47..0aeda27 100644
--- a/src/starboard/shared/signal/system_request_freeze.cc
+++ b/src/starboard/shared/signal/system_request_freeze.cc
@@ -21,8 +21,7 @@
 #include "starboard/loader_app/pending_restart.h"
 #endif  // SB_IS(EVERGREEN_COMPATIBLE) && !SB_IS(EVERGREEN_COMPATIBLE_LITE)
 
-#if SB_API_VERSION >= SB_ADD_CONCEALED_STATE_SUPPORT_VERSION || \
-    SB_HAS(CONCEALED_STATE)
+#if SB_API_VERSION >= 13
 void FreezeDone(void* /*context*/) {
   // Stop all thread execution after fully transitioning into Frozen.
   // This would stop the platform's background thread, such as:
@@ -47,5 +46,4 @@
   starboard::shared::starboard::Application::Get()->Freeze(NULL, &FreezeDone);
 #endif  // SB_IS(EVERGREEN_COMPATIBLE) && !SB_IS(EVERGREEN_COMPATIBLE_LITE)
 }
-#endif  // SB_API_VERSION >= SB_ADD_CONCEALED_STATE_SUPPORT_VERSION ||
-        // SB_HAS(CONCEALED_STATE)
+#endif  // SB_API_VERSION >= 13
diff --git a/src/starboard/shared/signal/system_request_freeze_no_freezedone_callback.cc b/src/starboard/shared/signal/system_request_freeze_no_freezedone_callback.cc
index 5264446..ad245d6 100644
--- a/src/starboard/shared/signal/system_request_freeze_no_freezedone_callback.cc
+++ b/src/starboard/shared/signal/system_request_freeze_no_freezedone_callback.cc
@@ -21,9 +21,7 @@
 #include "starboard/loader_app/pending_restart.h"
 #endif  // SB_IS(EVERGREEN_COMPATIBLE) && !SB_IS(EVERGREEN_COMPATIBLE_LITE)
 
-#if SB_API_VERSION >= SB_ADD_CONCEALED_STATE_SUPPORT_VERSION || \
-    SB_HAS(CONCEALED_STATE)
-
+#if SB_API_VERSION >= 13
 void SbSystemRequestFreeze() {
 #if SB_IS(EVERGREEN_COMPATIBLE) && !SB_IS(EVERGREEN_COMPATIBLE_LITE)
   if (starboard::loader_app::IsPendingRestart()) {
@@ -43,5 +41,4 @@
   starboard::shared::starboard::Application::Get()->Freeze(NULL, NULL);
 #endif  // SB_IS(EVERGREEN_COMPATIBLE) && !SB_IS(EVERGREEN_COMPATIBLE_LITE)
 }
-#endif  // SB_API_VERSION >= SB_ADD_CONCEALED_STATE_SUPPORT_VERSION ||
-        // SB_HAS(CONCEALED_STATE)
+#endif  // SB_API_VERSION >= 13
diff --git a/src/starboard/shared/signal/system_request_suspend.cc b/src/starboard/shared/signal/system_request_suspend.cc
index fbbe42a..20d8faf 100644
--- a/src/starboard/shared/signal/system_request_suspend.cc
+++ b/src/starboard/shared/signal/system_request_suspend.cc
@@ -21,8 +21,7 @@
 #include "starboard/loader_app/pending_restart.h"
 #endif  // SB_IS(EVERGREEN_COMPATIBLE) && !SB_IS(EVERGREEN_COMPATIBLE_LITE)
 
-#if SB_API_VERSION < SB_ADD_CONCEALED_STATE_SUPPORT_VERSION && \
-    !SB_HAS(CONCEALED_STATE)
+#if SB_API_VERSION < 13
 void SuspendDone(void* /*context*/) {
   // Stop all thread execution after fully transitioning into Suspended.
   raise(SIGSTOP);
@@ -42,5 +41,4 @@
   starboard::shared::starboard::Application::Get()->Suspend(NULL, &SuspendDone);
 #endif  // SB_IS(EVERGREEN_COMPATIBLE) && !SB_IS(EVERGREEN_COMPATIBLE_LITE)
 }
-#endif  // SB_API_VERSION < SB_ADD_CONCEALED_STATE_SUPPORT_VERSION &&
-        // !SB_HAS(CONCEALED_STATE)
+#endif  // SB_API_VERSION < 13
diff --git a/src/starboard/shared/starboard/application.cc b/src/starboard/shared/starboard/application.cc
index 405eb25..765dda7 100644
--- a/src/starboard/shared/starboard/application.cc
+++ b/src/starboard/shared/starboard/application.cc
@@ -114,7 +114,11 @@
     ::starboard::logging::SetMinLogLevel(::starboard::logging::StringToLogLevel(
         command_line_->GetSwitchValue(kMinLogLevel)));
   } else {
+#if SB_LOGGING_IS_OFFICIAL_BUILD
+    ::starboard::logging::SetMinLogLevel(::starboard::logging::SB_LOG_FATAL);
+#else
     ::starboard::logging::SetMinLogLevel(::starboard::logging::SB_LOG_INFO);
+#endif
   }
 
   return RunLoop();
@@ -124,8 +128,7 @@
   return command_line_.get();
 }
 
-#if SB_API_VERSION >= SB_ADD_CONCEALED_STATE_SUPPORT_VERSION || \
-    SB_HAS(CONCEALED_STATE)
+#if SB_API_VERSION >= 13
 void Application::Blur(void* context, EventHandledCallback callback) {
   Inject(new Event(kSbEventTypeBlur, context, callback));
 }
@@ -149,7 +152,6 @@
 void Application::Unfreeze(void* context, EventHandledCallback callback) {
   Inject(new Event(kSbEventTypeUnfreeze, context, callback));
 }
-
 #else
 void Application::Pause(void* context, EventHandledCallback callback) {
   Inject(new Event(kSbEventTypePause, context, callback));
@@ -166,8 +168,7 @@
 void Application::Resume(void* context, EventHandledCallback callback) {
   Inject(new Event(kSbEventTypeResume, context, callback));
 }
-#endif  // SB_API_VERSION >= SB_ADD_CONCEALED_STATE_SUPPORT_VERSION ||
-        // SB_HAS(CONCEALED_STATE)
+#endif  // SB_API_VERSION >= 13
 
 void Application::Stop(int error_level) {
   Event* event = new Event(kSbEventTypeStop, NULL, NULL);
@@ -175,7 +176,7 @@
   Inject(event);
 }
 
-void Application::Link(const char *link_data) {
+void Application::Link(const char* link_data) {
   SB_DCHECK(link_data) << "You must call Link with link_data.";
   Inject(new Event(kSbEventTypeLink, SbStringDuplicate(link_data),
                    SbMemoryDeallocate));
@@ -185,6 +186,16 @@
   Inject(new Event(kSbEventTypeLowMemory, NULL, NULL));
 }
 
+#if SB_API_VERSION >= 13
+void Application::InjectOsNetworkDisconnectedEvent() {
+  Inject(new Event(kSbEventTypeOsNetworkDisconnected, NULL, NULL));
+}
+
+void Application::InjectOsNetworkConnectedEvent() {
+  Inject(new Event(kSbEventTypeOsNetworkConnected, NULL, NULL));
+}
+#endif
+
 void Application::WindowSizeChanged(void* context,
                                     EventHandledCallback callback) {
   Inject(new Event(kSbEventTypeWindowSizeChanged, context, callback));
@@ -224,13 +235,11 @@
 
 void Application::DispatchStart() {
   SB_DCHECK(IsCurrentThread());
-#if SB_API_VERSION >= SB_ADD_CONCEALED_STATE_SUPPORT_VERSION || \
-    SB_HAS(CONCEALED_STATE)
+#if SB_API_VERSION >= 13
   SB_DCHECK(state_ == kStateUnstarted);
 #else
   SB_DCHECK(state_ == kStateUnstarted || state_ == kStatePreloading);
-#endif  // SB_API_VERSION >= SB_ADD_CONCEALED_STATE_SUPPORT_VERSION ||
-        // SB_HAS(CONCEALED_STATE)
+#endif  // SB_API_VERSION >= 13
   DispatchAndDelete(CreateInitialEvent(kSbEventTypeStart));
 }
 
@@ -253,8 +262,7 @@
   // Ensure the event is deleted unless it is released.
   scoped_ptr<Event> scoped_event(event);
 
-#if SB_API_VERSION >= SB_ADD_CONCEALED_STATE_SUPPORT_VERSION || \
-    SB_HAS(CONCEALED_STATE)
+#if SB_API_VERSION >= 13
   // Ensure that we go through the the appropriate lifecycle events based on the
   // current state.
   switch (scoped_event->event->type) {
@@ -280,7 +288,7 @@
           return true;
         case kStateFrozen:
           Inject(new Event(kSbEventTypeUnfreeze, NULL, NULL));
-          // The fall-through is intentional.
+        // The fall-through is intentional.
         case kStateConcealed:
           Inject(new Event(kSbEventTypeReveal, NULL, NULL));
           Inject(scoped_event.release());
@@ -331,7 +339,7 @@
           return true;
         case kStateStarted:
           Inject(new Event(kSbEventTypeBlur, NULL, NULL));
-          // The fall-through is intentional
+        // The fall-through is intentional
         case kStateBlurred:
           Inject(new Event(kSbEventTypeConceal, NULL, NULL));
           Inject(scoped_event.release());
@@ -363,10 +371,10 @@
           return true;
         case kStateStarted:
           Inject(new Event(kSbEventTypeBlur, NULL, NULL));
-          // The fall-through is intentional.
+        // The fall-through is intentional.
         case kStateBlurred:
           Inject(new Event(kSbEventTypeConceal, NULL, NULL));
-          // The fall-through is intentional.
+        // The fall-through is intentional.
         case kStateConcealed:
           Inject(new Event(kSbEventTypeFreeze, NULL, NULL));
           Inject(scoped_event.release());
@@ -470,12 +478,10 @@
     default:
       break;
   }
-#endif  // SB_API_VERSION >= SB_ADD_CONCEALED_STATE_SUPPORT_VERSION ||
-        // SB_HAS(CONCEALED_STATE)
+#endif  // SB_API_VERSION >= 13
 
   SbEventHandle(scoped_event->event);
-#if SB_API_VERSION >= SB_ADD_CONCEALED_STATE_SUPPORT_VERSION || \
-    SB_HAS(CONCEALED_STATE)
+#if SB_API_VERSION >= 13
   switch (scoped_event->event->type) {
     case kSbEventTypePreload:
       SB_DCHECK(state() == kStateUnstarted);
@@ -550,8 +556,7 @@
     default:
       break;
   }
-#endif  // SB_API_VERSION >= SB_ADD_CONCEALED_STATE_SUPPORT_VERSION ||
-        // SB_HAS(CONCEALED_STATE)
+#endif  // SB_API_VERSION >= 13
   // Should not be unstarted after the first event.
   SB_DCHECK(state() != kStateUnstarted);
   return true;
@@ -573,7 +578,7 @@
   // Cobalt web_platform_tests expect an extra argv[argc] set to NULL.
   start_data->argument_values = new char*[start_data->argument_count + 1];
   start_data->argument_values[start_data->argument_count] = NULL;
-  for (int i=0; i < start_data->argument_count; i++) {
+  for (int i = 0; i < start_data->argument_count; i++) {
     start_data->argument_values[i] = const_cast<char*>(args[i].c_str());
   }
   start_data->link = start_link_;
diff --git a/src/starboard/shared/starboard/application.h b/src/starboard/shared/starboard/application.h
index da8a45b..534ee37 100644
--- a/src/starboard/shared/starboard/application.h
+++ b/src/starboard/shared/starboard/application.h
@@ -52,8 +52,7 @@
   // Signature for a function that will be called at the beginning of Teardown.
   typedef void (*TeardownCallback)(void);
 
-#if SB_API_VERSION >= SB_ADD_CONCEALED_STATE_SUPPORT_VERSION || \
-    SB_HAS(CONCEALED_STATE)
+#if SB_API_VERSION >= 13
   // Enumeration of states that the application can be in.
   enum State {
     // The initial Unstarted state.
@@ -106,8 +105,7 @@
     // Suspended state.
     kStateStopped,
   };
-#endif  // SB_API_VERSION >= SB_ADD_CONCEALED_STATE_SUPPORT_VERSION ||
-        // SB_HAS(CONCEALED_STATE)
+#endif  // SB_API_VERSION >= 13
 
   // Structure to keep track of scheduled events, also used as the data argument
   // for kSbEventTypeScheduled Events.
@@ -204,8 +202,7 @@
   // NULL until Run() is called.
   const CommandLine* GetCommandLine();
 
-#if SB_API_VERSION >= SB_ADD_CONCEALED_STATE_SUPPORT_VERSION || \
-    SB_HAS(CONCEALED_STATE)
+#if SB_API_VERSION >= 13
   // Signals that the application should transition from STARTED to BLURRED as
   // soon as possible. Does nothing if already BLURRED or CONCEALED. May be
   // called from an external thread.
@@ -268,7 +265,6 @@
   // as appropriate for the current state. May be called from an external
   // thread.
   void Stop(int error_level);
-
 #else
   // Signals that the application should transition from STARTED to PAUSED as
   // soon as possible. Does nothing if already PAUSED or SUSPENDED. May be
@@ -310,8 +306,7 @@
   // possible. Will transition through PAUSED and SUSPENDED to STOPPED as
   // appropriate for the current state. May be called from an external thread.
   void Stop(int error_level);
-#endif  // SB_API_VERSION >= SB_ADD_CONCEALED_STATE_SUPPORT_VERSION ||
-        // SB_HAS(CONCEALED_STATE)
+#endif  // SB_API_VERSION >= 13
 
   // Injects a link event to the application with the given |link_data|, which
   // must be a null-terminated string. Makes a copy of |link_data|, so it only
@@ -322,6 +317,11 @@
   // Injects an event of type kSbEventTypeLowMemory to the application.
   void InjectLowMemoryEvent();
 
+#if SB_API_VERSION >= 13
+  void InjectOsNetworkDisconnectedEvent();
+  void InjectOsNetworkConnectedEvent();
+#endif
+
   // Inject a window size change event.
   //
   // |context|: A context value to pass to |callback| on event completion. Must
diff --git a/src/starboard/shared/starboard/media/BUILD.gn b/src/starboard/shared/starboard/media/BUILD.gn
index 1ad8f29..1e7355b 100644
--- a/src/starboard/shared/starboard/media/BUILD.gn
+++ b/src/starboard/shared/starboard/media/BUILD.gn
@@ -13,6 +13,7 @@
 # limitations under the License.
 
 static_library("media_util") {
+  check_includes = false
   sources = [
     "//starboard/shared/starboard/media/avc_util.cc",
     "//starboard/shared/starboard/media/avc_util.h",
@@ -26,10 +27,6 @@
     "//starboard/shared/starboard/media/vp9_util.h",
   ]
 
-  defines = [
-    # This allows the tests to include internal only header files.
-    "STARBOARD_IMPLEMENTATION",
-  ]
-
   public_deps = [ "//starboard/common" ]
+  configs += [ "//starboard/build/config:starboard_implementation" ]
 }
diff --git a/src/starboard/shared/starboard/player/BUILD.gn b/src/starboard/shared/starboard/player/BUILD.gn
index 7463843..d76c25e 100644
--- a/src/starboard/shared/starboard/player/BUILD.gn
+++ b/src/starboard/shared/starboard/player/BUILD.gn
@@ -14,6 +14,37 @@
 
 import("//starboard/shared/starboard/player/testdata/sha_files.gni")
 
+static_library("player") {
+  check_includes = false
+  sources = [
+    "//starboard/shared/starboard/player/decoded_audio_internal.cc",
+    "//starboard/shared/starboard/player/decoded_audio_internal.h",
+    "//starboard/shared/starboard/player/input_buffer_internal.cc",
+    "//starboard/shared/starboard/player/input_buffer_internal.h",
+    "//starboard/shared/starboard/player/job_queue.cc",
+    "//starboard/shared/starboard/player/job_queue.h",
+    "//starboard/shared/starboard/player/job_thread.cc",
+    "//starboard/shared/starboard/player/job_thread.h",
+    "//starboard/shared/starboard/player/player_create.cc",
+    "//starboard/shared/starboard/player/player_destroy.cc",
+    "//starboard/shared/starboard/player/player_get_current_frame.cc",
+    "//starboard/shared/starboard/player/player_get_info2.cc",
+    "//starboard/shared/starboard/player/player_get_maximum_number_of_samples_per_write.cc",
+    "//starboard/shared/starboard/player/player_get_preferred_output_mode_prefer_punchout.cc",
+    "//starboard/shared/starboard/player/player_internal.cc",
+    "//starboard/shared/starboard/player/player_internal.h",
+    "//starboard/shared/starboard/player/player_seek2.cc",
+    "//starboard/shared/starboard/player/player_set_bounds.cc",
+    "//starboard/shared/starboard/player/player_set_playback_rate.cc",
+    "//starboard/shared/starboard/player/player_set_volume.cc",
+    "//starboard/shared/starboard/player/player_worker.cc",
+    "//starboard/shared/starboard/player/player_worker.h",
+    "//starboard/shared/starboard/player/player_write_end_of_stream.cc",
+    "//starboard/shared/starboard/player/player_write_sample2.cc",
+  ]
+  configs += [ "//starboard/build/config:starboard_implementation" ]
+}
+
 static_library("video_dmp") {
   sources = [
     "//starboard/shared/starboard/player/file_cache_reader.cc",
@@ -25,11 +56,7 @@
   ]
 
   public_deps = [ "//starboard/common" ]
-
-  defines = [
-    # This allows the tests to include internal only header files.
-    "STARBOARD_IMPLEMENTATION",
-  ]
+  configs += [ "//starboard/build/config:starboard_implementation" ]
 }
 
 action("player_download_test_data") {
@@ -67,6 +94,6 @@
     "--sha1",
     sha1_dir,
     "--output",
-    outdir,
+    rebase_path(outdir, root_build_dir),
   ]
 }
diff --git a/src/starboard/shared/starboard/player/filter/BUILD.gn b/src/starboard/shared/starboard/player/filter/BUILD.gn
new file mode 100644
index 0000000..c37a424
--- /dev/null
+++ b/src/starboard/shared/starboard/player/filter/BUILD.gn
@@ -0,0 +1,76 @@
+# Copyright 2021 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.
+
+static_library("filter_based_player_sources") {
+  check_includes = false
+  sources = [
+    "//starboard/shared/starboard/player/filter/adaptive_audio_decoder_internal.cc",
+    "//starboard/shared/starboard/player/filter/adaptive_audio_decoder_internal.h",
+    "//starboard/shared/starboard/player/filter/audio_channel_layout_mixer.h",
+    "//starboard/shared/starboard/player/filter/audio_channel_layout_mixer_impl.cc",
+    "//starboard/shared/starboard/player/filter/audio_decoder_internal.h",
+    "//starboard/shared/starboard/player/filter/audio_frame_tracker.cc",
+    "//starboard/shared/starboard/player/filter/audio_frame_tracker.h",
+    "//starboard/shared/starboard/player/filter/audio_renderer_internal.h",
+    "//starboard/shared/starboard/player/filter/audio_renderer_internal_impl.cc",
+    "//starboard/shared/starboard/player/filter/audio_renderer_internal_impl.h",
+    "//starboard/shared/starboard/player/filter/audio_renderer_sink.h",
+    "//starboard/shared/starboard/player/filter/audio_renderer_sink_impl.cc",
+    "//starboard/shared/starboard/player/filter/audio_renderer_sink_impl.h",
+    "//starboard/shared/starboard/player/filter/audio_resampler.h",
+    "//starboard/shared/starboard/player/filter/audio_resampler_impl.cc",
+    "//starboard/shared/starboard/player/filter/audio_time_stretcher.cc",
+    "//starboard/shared/starboard/player/filter/audio_time_stretcher.h",
+    "//starboard/shared/starboard/player/filter/common.h",
+    "//starboard/shared/starboard/player/filter/cpu_video_frame.cc",
+    "//starboard/shared/starboard/player/filter/cpu_video_frame.h",
+    "//starboard/shared/starboard/player/filter/decoded_audio_queue.cc",
+    "//starboard/shared/starboard/player/filter/decoded_audio_queue.h",
+    "//starboard/shared/starboard/player/filter/filter_based_player_worker_handler.cc",
+    "//starboard/shared/starboard/player/filter/filter_based_player_worker_handler.h",
+    "//starboard/shared/starboard/player/filter/interleaved_sinc_resampler.cc",
+    "//starboard/shared/starboard/player/filter/interleaved_sinc_resampler.h",
+    "//starboard/shared/starboard/player/filter/media_time_provider.h",
+    "//starboard/shared/starboard/player/filter/media_time_provider_impl.cc",
+    "//starboard/shared/starboard/player/filter/media_time_provider_impl.h",
+    "//starboard/shared/starboard/player/filter/mock_audio_decoder.h",
+    "//starboard/shared/starboard/player/filter/mock_audio_renderer_sink.h",
+    "//starboard/shared/starboard/player/filter/player_components.cc",
+    "//starboard/shared/starboard/player/filter/player_components.h",
+    "//starboard/shared/starboard/player/filter/punchout_video_renderer_sink.cc",
+    "//starboard/shared/starboard/player/filter/punchout_video_renderer_sink.h",
+    "//starboard/shared/starboard/player/filter/stub_audio_decoder.cc",
+    "//starboard/shared/starboard/player/filter/stub_audio_decoder.h",
+    "//starboard/shared/starboard/player/filter/stub_player_components_factory.cc",
+    "//starboard/shared/starboard/player/filter/stub_player_components_factory.h",
+    "//starboard/shared/starboard/player/filter/stub_video_decoder.cc",
+    "//starboard/shared/starboard/player/filter/stub_video_decoder.h",
+    "//starboard/shared/starboard/player/filter/video_decoder_internal.h",
+    "//starboard/shared/starboard/player/filter/video_frame_cadence_pattern_generator.cc",
+    "//starboard/shared/starboard/player/filter/video_frame_cadence_pattern_generator.h",
+    "//starboard/shared/starboard/player/filter/video_frame_internal.h",
+    "//starboard/shared/starboard/player/filter/video_frame_rate_estimator.cc",
+    "//starboard/shared/starboard/player/filter/video_frame_rate_estimator.h",
+    "//starboard/shared/starboard/player/filter/video_render_algorithm.h",
+    "//starboard/shared/starboard/player/filter/video_render_algorithm_impl.cc",
+    "//starboard/shared/starboard/player/filter/video_render_algorithm_impl.h",
+    "//starboard/shared/starboard/player/filter/video_renderer_internal.h",
+    "//starboard/shared/starboard/player/filter/video_renderer_internal_impl.cc",
+    "//starboard/shared/starboard/player/filter/video_renderer_internal_impl.h",
+    "//starboard/shared/starboard/player/filter/video_renderer_sink.h",
+    "//starboard/shared/starboard/player/filter/wsola_internal.cc",
+    "//starboard/shared/starboard/player/filter/wsola_internal.h",
+  ]
+  configs += [ "//starboard/build/config:starboard_implementation" ]
+}
diff --git a/src/starboard/shared/starboard/player/filter/testing/BUILD.gn b/src/starboard/shared/starboard/player/filter/testing/BUILD.gn
new file mode 100644
index 0000000..0c1e81b
--- /dev/null
+++ b/src/starboard/shared/starboard/player/filter/testing/BUILD.gn
@@ -0,0 +1,77 @@
+# Copyright 2021 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.
+
+target(gtest_target_type, "player_filter_tests") {
+  testonly = true
+
+  sources = [
+    "//starboard/common/test_main.cc",
+    "//starboard/testing/fake_graphics_context_provider.cc",
+    "//starboard/testing/fake_graphics_context_provider.h",
+    "adaptive_audio_decoder_test.cc",
+    "audio_channel_layout_mixer_test.cc",
+    "audio_decoder_test.cc",
+    "audio_renderer_internal_test.cc",
+    "file_cache_reader_test.cc",
+    "media_time_provider_impl_test.cc",
+    "player_components_test.cc",
+    "video_decoder_test.cc",
+    "video_decoder_test_fixture.cc",
+    "video_decoder_test_fixture.h",
+    "video_frame_cadence_pattern_generator_test.cc",
+    "video_frame_rate_estimator_test.cc",
+  ]
+
+  public_deps = [
+    ":test_util",
+    "//starboard/shared/starboard/media:media_util",
+    "//testing/gmock",
+  ]
+}
+
+target(final_executable_type, "player_filter_benchmarks") {
+  testonly = true
+
+  sources = [
+    "//starboard/common/benchmark_main.cc",
+    "audio_decoder_benchmark.cc",
+  ]
+
+  public_deps = [
+    ":test_util",
+    "//third_party/google_benchmark",
+  ]
+}
+
+static_library("test_util") {
+  testonly = true
+
+  sources = [
+    "//starboard/common/benchmark_main.cc",
+    "test_util.cc",
+    "test_util.h",
+  ]
+
+  public_configs = [ "//starboard/build/config:starboard_implementation" ]
+
+  public_deps = [
+    "//starboard",
+    "//starboard/shared/starboard/player:player_download_test_data",
+    "//starboard/shared/starboard/player:video_dmp",
+    "//testing/gtest",
+  ]
+  if (gl_type != "none") {
+    public_deps += [ "//starboard/egl_and_gles" ]
+  }
+}
diff --git a/src/starboard/shared/starboard/player/filter/testing/adaptive_audio_decoder_test.cc b/src/starboard/shared/starboard/player/filter/testing/adaptive_audio_decoder_test.cc
index 5942143..c6e9f7f 100644
--- a/src/starboard/shared/starboard/player/filter/testing/adaptive_audio_decoder_test.cc
+++ b/src/starboard/shared/starboard/player/filter/testing/adaptive_audio_decoder_test.cc
@@ -362,7 +362,7 @@
     return test_params;
   }
 
-  vector<const char*> supported_files = GetSupportedAudioTestFiles(false);
+  vector<const char*> supported_files = GetSupportedAudioTestFiles(false, true);
 
   // Generate test cases. For example, we have |supported_files| [A, B, C].
   // Add tests A->A, A->B, A->C, B->A, B->B, B->C, C->A, C->B and C->C.
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 771ba3c..be7f363 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
@@ -634,10 +634,10 @@
   ASSERT_NO_FATAL_FAILURE(AssertInvalidOutputFormat());
 }
 
-INSTANTIATE_TEST_CASE_P(AudioDecoderTests,
-                        AudioDecoderTest,
-                        Combine(ValuesIn(GetSupportedAudioTestFiles(true)),
-                                Bool()));
+INSTANTIATE_TEST_CASE_P(
+    AudioDecoderTests,
+    AudioDecoderTest,
+    Combine(ValuesIn(GetSupportedAudioTestFiles(true, true)), Bool()));
 
 }  // namespace
 }  // namespace testing
diff --git a/src/starboard/shared/starboard/player/filter/testing/player_components_test.cc b/src/starboard/shared/starboard/player/filter/testing/player_components_test.cc
new file mode 100644
index 0000000..0b49905
--- /dev/null
+++ b/src/starboard/shared/starboard/player/filter/testing/player_components_test.cc
@@ -0,0 +1,690 @@
+// Copyright 2020 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/shared/starboard/player/filter/player_components.h"
+
+#include <algorithm>
+#include <memory>
+#include <string>
+#include <vector>
+
+#include "starboard/common/scoped_ptr.h"
+#include "starboard/media.h"
+#include "starboard/player.h"
+#include "starboard/shared/starboard/player/filter/testing/test_util.h"
+#include "starboard/shared/starboard/player/filter/video_decoder_internal.h"
+#include "starboard/shared/starboard/player/job_queue.h"
+#include "starboard/shared/starboard/player/video_dmp_reader.h"
+#include "starboard/testing/fake_graphics_context_provider.h"
+#include "testing/gtest/include/gtest/gtest.h"
+
+namespace starboard {
+namespace shared {
+namespace starboard {
+namespace player {
+namespace filter {
+namespace testing {
+namespace {
+
+using ::starboard::testing::FakeGraphicsContextProvider;
+using std::string;
+using std::unique_ptr;
+using std::vector;
+using ::testing::ValuesIn;
+using video_dmp::VideoDmpReader;
+
+typedef VideoDmpReader::AudioAccessUnit AudioAccessUnit;
+typedef VideoDmpReader::VideoAccessUnit VideoAccessUnit;
+typedef PlayerComponents::Factory::CreationParameters CreationParameters;
+typedef std::tuple<const char*, const char*, SbPlayerOutputMode>
+    PlayerComponentsTestParam;
+
+const SbTimeMonotonic kDefaultPrerollTimeOut = 5 * kSbTimeSecond;
+const SbTimeMonotonic kDefaultEndTimeOut = 5 * kSbTimeSecond;
+const SbTimeMonotonic kDefaultWriteTimeOut = 5 * kSbTimeSecond;
+
+const SbPlayer kDummyPlayer = reinterpret_cast<SbPlayer>(1);
+
+class PlayerComponentsTest
+    : public ::testing::TestWithParam<PlayerComponentsTestParam> {
+ protected:
+  PlayerComponentsTest()
+      : audio_filename_(std::get<0>(GetParam())),
+        video_filename_(std::get<1>(GetParam())),
+        output_mode_(std::get<2>(GetParam())) {
+    SB_LOG(INFO) << "Testing: \"" << audio_filename_ << "\", \""
+                 << video_filename_
+                 << (output_mode_ == kSbPlayerOutputModeDecodeToTexture
+                         ? "\", kSbPlayerOutputModeDecodeToTexture."
+                         : "\", kSbPlayerOutputModePunchOut.");
+  }
+
+  void SetUp() override {
+    if (audio_filename_.length() > 0) {
+      audio_reader_.reset(new VideoDmpReader(
+          ResolveTestFileName(audio_filename_.c_str()).c_str(),
+          VideoDmpReader::kEnableReadOnDemand));
+    }
+    if (video_filename_.length() > 0) {
+      video_reader_.reset(new VideoDmpReader(
+          ResolveTestFileName(video_filename_.c_str()).c_str(),
+          VideoDmpReader::kEnableReadOnDemand));
+    }
+
+    scoped_ptr<PlayerComponents::Factory> factory =
+        PlayerComponents::Factory::Create();
+    string error_message;
+    if (audio_reader_ && video_reader_) {
+      CreationParameters creation_parameters(
+          audio_reader_->audio_codec(), audio_reader_->audio_sample_info(),
+          video_reader_->video_codec(),
+#if SB_HAS(PLAYER_CREATION_AND_OUTPUT_MODE_QUERY_IMPROVEMENT)
+          video_reader_->GetPlayerSampleInfo(kSbMediaTypeVideo, 0)
+              .video_sample_info,
+#endif  // SB_HAS(PLAYER_CREATION_AND_OUTPUT_MODE_QUERY_IMPROVEMENT)
+          kDummyPlayer, output_mode_,
+          fake_graphics_context_provider_.decoder_target_provider());
+      player_components_ =
+          factory->CreateComponents(creation_parameters, &error_message);
+    } else if (audio_reader_) {
+      // Audio only
+      CreationParameters creation_parameters(
+          audio_reader_->audio_codec(), audio_reader_->audio_sample_info());
+      player_components_ =
+          factory->CreateComponents(creation_parameters, &error_message);
+    } else {
+      // Video only
+      ASSERT_TRUE(video_reader_);
+      CreationParameters creation_parameters(
+          video_reader_->video_codec(),
+#if SB_HAS(PLAYER_CREATION_AND_OUTPUT_MODE_QUERY_IMPROVEMENT)
+          video_reader_->GetPlayerSampleInfo(kSbMediaTypeVideo, 0)
+              .video_sample_info,
+#endif  // SB_HAS(PLAYER_CREATION_AND_OUTPUT_MODE_QUERY_IMPROVEMENT)
+          kDummyPlayer, output_mode_,
+          fake_graphics_context_provider_.decoder_target_provider());
+      player_components_ =
+          factory->CreateComponents(creation_parameters, &error_message);
+    }
+    ASSERT_TRUE(player_components_);
+
+    if (GetAudioRenderer()) {
+      GetAudioRenderer()->Initialize(
+          std::bind(&PlayerComponentsTest::OnError, this),
+          std::bind(&PlayerComponentsTest::OnPrerolled, this,
+                    kSbMediaTypeAudio),
+          std::bind(&PlayerComponentsTest::OnEnded, this, kSbMediaTypeAudio));
+    }
+    SetPlaybackRate(playback_rate_);
+    if (GetVideoRenderer()) {
+      GetVideoRenderer()->Initialize(
+          std::bind(&PlayerComponentsTest::OnError, this),
+          std::bind(&PlayerComponentsTest::OnPrerolled, this,
+                    kSbMediaTypeVideo),
+          std::bind(&PlayerComponentsTest::OnEnded, this, kSbMediaTypeVideo));
+    }
+  }
+
+  MediaTimeProvider* GetMediaTimeProvider() const {
+    return player_components_->GetMediaTimeProvider();
+  }
+  AudioRenderer* GetAudioRenderer() const {
+    return player_components_->GetAudioRenderer();
+  }
+  VideoRenderer* GetVideoRenderer() const {
+    return player_components_->GetVideoRenderer();
+  }
+
+  bool IsPlaybackPrerolled() {
+    if (GetAudioRenderer() && !audio_prerolled_) {
+      return false;
+    }
+    if (GetVideoRenderer() && !video_prerolled_) {
+      return false;
+    }
+    return true;
+  }
+
+  bool IsPlaybackEnded() {
+    if (GetAudioRenderer() && !audio_ended_) {
+      return false;
+    }
+    if (GetVideoRenderer() && !video_ended_) {
+      return false;
+    }
+    return true;
+  }
+
+  void Seek(SbTime seek_to_time) {
+    has_error_ = false;
+    audio_prerolled_ = false;
+    video_prerolled_ = false;
+    audio_ended_ = false;
+    video_ended_ = false;
+    audio_index_ = 0;
+    video_index_ = 0;
+    // Find the closest key frame prior to |seek_to_time|.
+    if (GetAudioRenderer()) {
+      for (int index = 1; index < audio_reader_->number_of_audio_buffers();
+           index++) {
+        SbPlayerSampleInfo sample_info =
+            audio_reader_->GetPlayerSampleInfo(kSbMediaTypeAudio, index);
+        if (sample_info.timestamp > seek_to_time) {
+          break;
+        }
+        audio_index_ = index;
+      }
+    }
+    if (GetVideoRenderer()) {
+      for (int index = 1; index < video_reader_->number_of_video_buffers();
+           index++) {
+        SbPlayerSampleInfo sample_info =
+            video_reader_->GetPlayerSampleInfo(kSbMediaTypeVideo, index);
+        if (sample_info.timestamp > seek_to_time) {
+          break;
+        }
+        if (sample_info.video_sample_info.is_key_frame) {
+          video_index_ = index;
+        }
+      }
+    }
+    GetMediaTimeProvider()->Pause();
+    if (GetVideoRenderer()) {
+      GetVideoRenderer()->Seek(seek_to_time);
+    }
+    GetMediaTimeProvider()->Seek(seek_to_time);
+  }
+
+  void Play() { GetMediaTimeProvider()->Play(); }
+
+  void Pause() { GetMediaTimeProvider()->Pause(); }
+
+  void SetPlaybackRate(double playback_rate) {
+    playback_rate_ = playback_rate;
+    GetMediaTimeProvider()->SetPlaybackRate(playback_rate_);
+  }
+
+  SbTime GetMediaTime() {
+    bool is_playing, is_eos_played, is_underflow;
+    double playback_rate;
+    return GetMediaTimeProvider()->GetCurrentMediaTime(
+        &is_playing, &is_eos_played, &is_underflow, &playback_rate);
+  }
+
+  bool IsPlaying() {
+    bool is_playing, is_eos_played, is_underflow;
+    double playback_rate;
+    GetMediaTimeProvider()->GetCurrentMediaTime(&is_playing, &is_eos_played,
+                                                &is_underflow, &playback_rate);
+    return is_playing;
+  }
+
+  SbTime GetCurrentAudioBufferTimestamp() const {
+    if (!GetAudioRenderer()) {
+      return 0;
+    }
+    if (audio_index_ >= audio_reader_->number_of_audio_buffers()) {
+      return audio_reader_->audio_duration();
+    }
+    return audio_reader_->GetPlayerSampleInfo(kSbMediaTypeAudio, audio_index_)
+        .timestamp;
+  }
+
+  SbTime GetCurrentVideoBufferTimestamp() const {
+    if (!GetVideoRenderer()) {
+      return 0;
+    }
+    if (video_index_ >= video_reader_->number_of_video_buffers()) {
+      return video_reader_->video_duration();
+    }
+    if (video_index_ >= video_reader_->number_of_video_buffers() - 1) {
+      return video_reader_->GetPlayerSampleInfo(kSbMediaTypeVideo, video_index_)
+          .timestamp;
+    }
+    // The buffers are ordered by decoding order. We need to find the
+    // presentation timestamp of next frame.
+    SbTime next_timestamps[2] = {
+        video_reader_->GetPlayerSampleInfo(kSbMediaTypeVideo, video_index_)
+            .timestamp,
+        video_reader_->GetPlayerSampleInfo(kSbMediaTypeVideo, video_index_ + 1)
+            .timestamp};
+    return std::min(next_timestamps[0], next_timestamps[1]);
+  }
+
+  void WriteDataUntilPrerolled(SbTime timeout = kDefaultPrerollTimeOut) {
+    SbTimeMonotonic start_time = SbTimeGetMonotonicNow();
+    while (!IsPlaybackPrerolled()) {
+      ASSERT_LE(SbTimeGetMonotonicNow() - start_time, timeout);
+      bool written =
+          TryToWriteOneInputBuffer(GetMediaTime() + kMaxWriteAheadDuration);
+      if (!written) {
+        ASSERT_NO_FATAL_FAILURE(RenderAndProcessPendingJobs());
+        SbThreadSleep(5 * kSbTimeMillisecond);
+      }
+    }
+  }
+
+  void WriteDataUntil(SbTime timestamp, SbTime timeout = kDefaultWriteTimeOut) {
+    SB_CHECK(playback_rate_ != 0);
+
+    SbTimeMonotonic last_input_filled_time = SbTimeGetMonotonicNow();
+    while (
+        (GetAudioRenderer() && GetCurrentAudioBufferTimestamp() < timestamp) ||
+        (GetVideoRenderer() && GetCurrentVideoBufferTimestamp() < timestamp)) {
+      if (last_input_filled_time != -1) {
+        ASSERT_LE(SbTimeGetMonotonicNow() - last_input_filled_time, timeout);
+      }
+      bool written = TryToWriteOneInputBuffer(timestamp);
+      if (written) {
+        last_input_filled_time = SbTimeGetMonotonicNow();
+      } else {
+        ASSERT_NO_FATAL_FAILURE(RenderAndProcessPendingJobs());
+        SbThreadSleep(5 * kSbTimeMillisecond);
+      }
+    }
+  }
+
+  void WriteEOS() {
+    if (GetAudioRenderer()) {
+      GetAudioRenderer()->WriteEndOfStream();
+    }
+    if (GetVideoRenderer()) {
+      GetVideoRenderer()->WriteEndOfStream();
+    }
+  }
+
+  void WaitUntilPlaybackEnded() {
+    SB_CHECK(playback_rate_ != 0);
+
+    SbTime duration = std::max(GetCurrentAudioBufferTimestamp(),
+                               GetCurrentVideoBufferTimestamp());
+    SbTime current_time = GetMediaTime();
+    SbTime expected_end_time =
+        SbTimeGetMonotonicNow() +
+        static_cast<SbTime>((duration - current_time) / playback_rate_) +
+        kDefaultEndTimeOut;
+    while (!IsPlaybackEnded()) {
+      // If this fails, timeout must have been reached.
+      ASSERT_LE(SbTimeGetMonotonicNow(), expected_end_time);
+      ASSERT_NO_FATAL_FAILURE(RenderAndProcessPendingJobs());
+      SbThreadSleep(5 * kSbTimeMillisecond);
+    }
+    current_time = GetMediaTime();
+    // TODO: investigate and reduce the tolerance.
+    ASSERT_LE(std::abs(current_time - duration), 500 * kSbTimeMillisecond);
+  }
+
+  // This function needs to be called periodically to keep player components
+  // working.
+  void RenderAndProcessPendingJobs() {
+    // Call GetCurrentDecodeTarget() periodically for decode to texture mode.
+    if (output_mode_ == kSbPlayerOutputModeDecodeToTexture &&
+        GetVideoRenderer()) {
+#if SB_HAS(GLES2)
+      fake_graphics_context_provider_.RunOnGlesContextThread(
+          std::bind(&PlayerComponentsTest::RenderOnGlesContextThread, this));
+#endif  // SB_HAS(GLES2)
+    }
+    // Process jobs in the job queue.
+    job_queue_.RunUntilIdle();
+    ASSERT_FALSE(has_error_);
+  }
+
+ private:
+  // We won't write audio data more than 1s ahead of current media time in
+  // cobalt. So, to test with the same condition, we limit max inputs ahead to
+  // 1s in the tests.
+  const SbTime kMaxWriteAheadDuration = kSbTimeSecond;
+
+  void OnError() { has_error_ = true; }
+  void OnPrerolled(SbMediaType media_type) {
+    if (media_type == kSbMediaTypeAudio) {
+      audio_prerolled_ = true;
+    } else {
+      EXPECT_EQ(media_type, kSbMediaTypeVideo);
+      video_prerolled_ = true;
+    }
+  }
+  void OnEnded(SbMediaType media_type) {
+    if (media_type == kSbMediaTypeAudio) {
+      audio_ended_ = true;
+    } else {
+      EXPECT_EQ(media_type, kSbMediaTypeVideo);
+      video_ended_ = true;
+    }
+  }
+
+  scoped_refptr<InputBuffer> GetAudioInputBuffer(size_t index) const {
+    auto player_sample_info =
+        audio_reader_->GetPlayerSampleInfo(kSbMediaTypeAudio, index);
+#if SB_API_VERSION >= 11
+    auto input_buffer = new InputBuffer(StubDeallocateSampleFunc, nullptr,
+                                        nullptr, player_sample_info);
+#else   // SB_API_VERSION >= 11
+    SbMediaAudioSampleInfo audio_sample_info =
+        audio_reader_->GetAudioSampleInfo(index);
+    auto input_buffer =
+        new InputBuffer(kSbMediaTypeAudio, StubDeallocateSampleFunc, nullptr,
+                        nullptr, player_sample_info, &audio_sample_info);
+#endif  // SB_API_VERSION >= 11
+    return input_buffer;
+  }
+
+  scoped_refptr<InputBuffer> GetVideoInputBuffer(size_t index) const {
+    auto video_sample_info =
+        video_reader_->GetPlayerSampleInfo(kSbMediaTypeVideo, index);
+#if SB_API_VERSION >= 11
+    auto input_buffer = new InputBuffer(StubDeallocateSampleFunc, NULL, NULL,
+                                        video_sample_info);
+#else   // SB_API_VERSION >= 11
+    auto input_buffer =
+        new InputBuffer(kSbMediaTypeVideo, StubDeallocateSampleFunc, NULL, NULL,
+                        video_sample_info, NULL);
+#endif  // SB_API_VERSION >= 11
+    return input_buffer;
+  }
+
+  void RenderOnGlesContextThread() {
+    SbDecodeTargetRelease(GetVideoRenderer()->GetCurrentDecodeTarget());
+  }
+
+  bool TryToWriteOneInputBuffer(SbTime max_timestamp) {
+    bool input_buffer_written = false;
+    if (GetAudioRenderer() && GetAudioRenderer()->CanAcceptMoreData() &&
+        audio_index_ < audio_reader_->number_of_audio_buffers() &&
+        GetCurrentAudioBufferTimestamp() < max_timestamp) {
+      GetAudioRenderer()->WriteSample(GetAudioInputBuffer(audio_index_++));
+      input_buffer_written = true;
+    }
+    if (GetVideoRenderer() && GetVideoRenderer()->CanAcceptMoreData() &&
+        video_index_ < video_reader_->number_of_video_buffers() &&
+        GetCurrentVideoBufferTimestamp() < max_timestamp) {
+      GetVideoRenderer()->WriteSample(GetVideoInputBuffer(video_index_++));
+      input_buffer_written = true;
+    }
+    if (input_buffer_written) {
+      job_queue_.RunUntilIdle();
+    }
+    return input_buffer_written;
+  }
+
+  const std::string audio_filename_;
+  const std::string video_filename_;
+  const SbPlayerOutputMode output_mode_;
+  JobQueue job_queue_;
+  FakeGraphicsContextProvider fake_graphics_context_provider_;
+  unique_ptr<VideoDmpReader> audio_reader_;
+  unique_ptr<VideoDmpReader> video_reader_;
+  scoped_ptr<PlayerComponents> player_components_;
+  double playback_rate_ = 1.0;
+  int audio_index_ = 0;
+  int video_index_ = 0;
+  bool has_error_ = false;
+  bool audio_prerolled_ = false;
+  bool video_prerolled_ = false;
+  bool audio_ended_ = false;
+  bool video_ended_ = false;
+};
+
+TEST_P(PlayerComponentsTest, Preroll) {
+  Seek(0);
+  ASSERT_NO_FATAL_FAILURE(WriteDataUntilPrerolled());
+}
+
+TEST_P(PlayerComponentsTest, SunnyDay) {
+  Seek(0);
+  ASSERT_NO_FATAL_FAILURE(WriteDataUntilPrerolled());
+  ASSERT_EQ(GetMediaTime(), 0);
+  ASSERT_FALSE(IsPlaying());
+
+  SbTimeMonotonic play_requested_at = SbTimeGetMonotonicNow();
+  Play();
+  SbTime media_duration = std::max(GetCurrentVideoBufferTimestamp(),
+                                   GetCurrentAudioBufferTimestamp());
+  media_duration = std::max(kSbTimeSecond, media_duration);
+
+  ASSERT_NO_FATAL_FAILURE(WriteDataUntil(media_duration));
+  ASSERT_NO_FATAL_FAILURE(WriteEOS());
+  ASSERT_NO_FATAL_FAILURE(WaitUntilPlaybackEnded());
+
+  // TODO: investigate and reduce the tolerance.
+  // ASSERT_LE(
+  //     std::abs(SbTimeGetMonotonicNow() - (play_requested_at +
+  //     media_duration)), 300 * kSbTimeMillisecond);
+}
+
+TEST_P(PlayerComponentsTest, ShortPlayback) {
+  Seek(0);
+  ASSERT_NO_FATAL_FAILURE(WriteDataUntil(50 * kSbTimeMillisecond));
+  ASSERT_NO_FATAL_FAILURE(WriteEOS());
+  Play();
+  ASSERT_NO_FATAL_FAILURE(WaitUntilPlaybackEnded());
+}
+
+TEST_P(PlayerComponentsTest, EOSWithoutInput) {
+  Seek(0);
+  ASSERT_NO_FATAL_FAILURE(WriteEOS());
+  Play();
+  ASSERT_NO_FATAL_FAILURE(WaitUntilPlaybackEnded());
+  // TODO: investigate and reduce the tolerance.
+  // ASSERT_LE(std::abs(GetMediaTime()), 100 * kSbTimeMillisecond);
+}
+
+TEST_P(PlayerComponentsTest, Pause) {
+  Seek(0);
+  ASSERT_NO_FATAL_FAILURE(WriteDataUntilPrerolled());
+  Play();
+  ASSERT_NO_FATAL_FAILURE(WriteDataUntil(kSbTimeSecond));
+  Pause();
+  ASSERT_FALSE(IsPlaying());
+
+  SbTimeMonotonic start_time = SbTimeGetMonotonicNow();
+  while (SbTimeGetMonotonicNow() < start_time + 200 * kSbTimeMillisecond) {
+    ASSERT_NO_FATAL_FAILURE(RenderAndProcessPendingJobs());
+    SbThreadSleep(5 * kSbTimeMillisecond);
+  }
+  SbTime media_time = GetMediaTime();
+  start_time = SbTimeGetMonotonicNow();
+  while (SbTimeGetMonotonicNow() < start_time + 200 * kSbTimeMillisecond) {
+    ASSERT_NO_FATAL_FAILURE(RenderAndProcessPendingJobs());
+    SbThreadSleep(5 * kSbTimeMillisecond);
+  }
+  ASSERT_EQ(media_time, GetMediaTime());
+
+  Play();
+  ASSERT_NO_FATAL_FAILURE(WriteDataUntil(std::max(
+      GetCurrentAudioBufferTimestamp(), GetCurrentVideoBufferTimestamp())));
+  ASSERT_NO_FATAL_FAILURE(WriteEOS());
+  ASSERT_NO_FATAL_FAILURE(WaitUntilPlaybackEnded());
+}
+
+// TODO: Enable variable playback rate tests
+// TEST_P(PlayerComponentsTest, PlaybackRateHalf) {
+//   const double kPlaybackRate = 0.5;
+
+//   Seek(0);
+//   SetPlaybackRate(kPlaybackRate);
+//   ASSERT_NO_FATAL_FAILURE(WriteDataUntilPrerolled());
+//   ASSERT_EQ(GetMediaTime(), 0);
+//   ASSERT_FALSE(IsPlaying());
+
+//   SbTime media_duration_to_write = std::max(GetCurrentVideoBufferTimestamp(),
+//                                             GetCurrentAudioBufferTimestamp());
+//   media_duration_to_write = std::max(kSbTimeSecond, media_duration_to_write);
+//   SbTime media_duration_to_play =
+//       static_cast<SbTime>(media_duration_to_write / kPlaybackRate);
+
+//   SbTimeMonotonic play_requested_at = SbTimeGetMonotonicNow();
+//   Play();
+
+//   ASSERT_NO_FATAL_FAILURE(WriteDataUntil(media_duration_to_write));
+//   ASSERT_NO_FATAL_FAILURE(WriteEOS());
+//   ASSERT_NO_FATAL_FAILURE(WaitUntilPlaybackEnded());
+
+//   TODO: Enable the below check after we improve the accuracy of varied
+//   playback rate time reporting.
+//   ASSERT_GE(SbTimeGetMonotonicNow(),
+//             play_requested_at + media_duration_to_play - 200 *
+//             kSbTimeMillisecond);
+// }
+
+// TEST_P(PlayerComponentsTest, PlaybackRateDouble) {
+//   const double kPlaybackRate = 2.0;
+
+//   Seek(0);
+//   SetPlaybackRate(kPlaybackRate);
+//   ASSERT_NO_FATAL_FAILURE(WriteDataUntilPrerolled());
+//   ASSERT_EQ(GetMediaTime(), 0);
+//   ASSERT_FALSE(IsPlaying());
+
+//   SbTime media_duration_to_write = std::max(GetCurrentVideoBufferTimestamp(),
+//                                             GetCurrentAudioBufferTimestamp());
+//   media_duration_to_write =
+//       std::max(kSbTimeSecond * 2, media_duration_to_write);
+//   SbTime media_duration_to_play =
+//       static_cast<SbTime>(media_duration_to_write / kPlaybackRate);
+
+//   SbTimeMonotonic play_requested_at = SbTimeGetMonotonicNow();
+//   Play();
+
+//   ASSERT_NO_FATAL_FAILURE(WriteDataUntil(media_duration_to_write));
+//   ASSERT_NO_FATAL_FAILURE(WriteEOS());
+//   ASSERT_NO_FATAL_FAILURE(WaitUntilPlaybackEnded());
+
+//   playback rate time reporting.
+//   ASSERT_LE(SbTimeGetMonotonicNow(),
+//             play_requested_at + media_duration_to_play + 200 *
+//             kSbTimeMillisecond);
+// }
+
+TEST_P(PlayerComponentsTest, SeekForward) {
+  SbTime seek_to_time = 0;
+  Seek(seek_to_time);
+  ASSERT_NO_FATAL_FAILURE(WriteDataUntilPrerolled());
+  ASSERT_EQ(GetMediaTime(), seek_to_time);
+  ASSERT_FALSE(IsPlaying());
+
+  Play();
+  ASSERT_NO_FATAL_FAILURE(WriteDataUntil(kSbTimeSecond));
+
+  Pause();
+  seek_to_time = 2 * kSbTimeSecond;
+  Seek(seek_to_time);
+  ASSERT_NO_FATAL_FAILURE(WriteDataUntilPrerolled());
+  ASSERT_EQ(GetMediaTime(), seek_to_time);
+  ASSERT_FALSE(IsPlaying());
+
+  Play();
+  ASSERT_NO_FATAL_FAILURE(WriteDataUntil(seek_to_time + kSbTimeSecond));
+  ASSERT_NO_FATAL_FAILURE(WriteEOS());
+  ASSERT_NO_FATAL_FAILURE(WaitUntilPlaybackEnded());
+}
+
+TEST_P(PlayerComponentsTest, SeekBackward) {
+  SbTime seek_to_time = 3 * kSbTimeSecond;
+  Seek(seek_to_time);
+  ASSERT_NO_FATAL_FAILURE(WriteDataUntilPrerolled());
+  ASSERT_EQ(GetMediaTime(), seek_to_time);
+  ASSERT_FALSE(IsPlaying());
+
+  Play();
+  ASSERT_NO_FATAL_FAILURE(WriteDataUntil(seek_to_time + kSbTimeSecond));
+
+  Pause();
+  seek_to_time = 1 * kSbTimeSecond;
+  Seek(seek_to_time);
+  ASSERT_NO_FATAL_FAILURE(WriteDataUntilPrerolled());
+  ASSERT_EQ(GetMediaTime(), seek_to_time);
+  ASSERT_FALSE(IsPlaying());
+
+  Play();
+  ASSERT_NO_FATAL_FAILURE(WriteDataUntil(seek_to_time + kSbTimeSecond));
+  ASSERT_NO_FATAL_FAILURE(WriteEOS());
+  ASSERT_NO_FATAL_FAILURE(WaitUntilPlaybackEnded());
+}
+
+PlayerComponentsTestParam CreateParam(const char* audio_file,
+                                      const VideoTestParam& video_param) {
+  return std::make_tuple(audio_file, std::get<0>(video_param),
+                         std::get<1>(video_param));
+}
+
+vector<PlayerComponentsTestParam> GetSupportedCreationParameters() {
+  vector<PlayerComponentsTestParam> supported_parameters;
+
+  // TODO: Enable tests of "heaac.dmp".
+  vector<const char*> audio_files = GetSupportedAudioTestFiles(false, false);
+  vector<VideoTestParam> video_params = GetSupportedVideoTests();
+
+  // Filter too short dmp files, as the tests need at least 4s of data.
+  for (auto iter = audio_files.begin(); iter != audio_files.end();) {
+    VideoDmpReader audio_dmp_reader(ResolveTestFileName(*iter).c_str(),
+                                    VideoDmpReader::kEnableReadOnDemand);
+    if (audio_dmp_reader.audio_duration() < 5 * kSbTimeSecond) {
+      iter = audio_files.erase(iter);
+    } else {
+      iter++;
+    }
+  }
+  for (auto iter = video_params.begin(); iter != video_params.end();) {
+    VideoDmpReader video_dmp_reader(
+        ResolveTestFileName(std::get<0>(*iter)).c_str(),
+        VideoDmpReader::kEnableReadOnDemand);
+    if (video_dmp_reader.video_duration() < 5 * kSbTimeSecond) {
+      iter = video_params.erase(iter);
+    } else {
+      iter++;
+    }
+  }
+
+  for (size_t i = 0; i < video_params.size(); i++) {
+    supported_parameters.push_back(CreateParam("", video_params[i]));
+    for (size_t j = 0; j < audio_files.size(); j++) {
+      supported_parameters.push_back(
+          CreateParam(audio_files[j], video_params[i]));
+    }
+  }
+  SB_DCHECK(supported_parameters.size() < 50)
+      << "There're " << supported_parameters.size()
+      << " tests added. It may take too long time to run and result in timeout";
+
+  for (size_t i = 0; i < audio_files.size(); i++) {
+    if (VideoDecoder::OutputModeSupported(kSbPlayerOutputModeDecodeToTexture,
+                                          kSbMediaVideoCodecNone,
+                                          kSbDrmSystemInvalid)) {
+      supported_parameters.push_back(std::make_tuple(
+          audio_files[i], "", kSbPlayerOutputModeDecodeToTexture));
+    }
+    if (VideoDecoder::OutputModeSupported(kSbPlayerOutputModePunchOut,
+                                          kSbMediaVideoCodecNone,
+                                          kSbDrmSystemInvalid)) {
+      supported_parameters.push_back(
+          std::make_tuple(audio_files[i], "", kSbPlayerOutputModePunchOut));
+    }
+  }
+
+  return supported_parameters;
+}
+
+INSTANTIATE_TEST_CASE_P(PlayerComponentsTests,
+                        PlayerComponentsTest,
+                        ValuesIn(GetSupportedCreationParameters()));
+
+}  // namespace
+}  // namespace testing
+}  // namespace filter
+}  // namespace player
+}  // namespace starboard
+}  // namespace shared
+}  // namespace starboard
diff --git a/src/starboard/shared/starboard/player/filter/testing/player_filter_tests.gyp b/src/starboard/shared/starboard/player/filter/testing/player_filter_tests.gyp
index bad4758..75f6c95 100644
--- a/src/starboard/shared/starboard/player/filter/testing/player_filter_tests.gyp
+++ b/src/starboard/shared/starboard/player/filter/testing/player_filter_tests.gyp
@@ -25,6 +25,7 @@
         '<(DEPTH)/starboard/shared/starboard/player/filter/testing/audio_renderer_internal_test.cc',
         '<(DEPTH)/starboard/shared/starboard/player/filter/testing/file_cache_reader_test.cc',
         '<(DEPTH)/starboard/shared/starboard/player/filter/testing/media_time_provider_impl_test.cc',
+        '<(DEPTH)/starboard/shared/starboard/player/filter/testing/player_components_test.cc',
         '<(DEPTH)/starboard/shared/starboard/player/filter/testing/test_util.cc',
         '<(DEPTH)/starboard/shared/starboard/player/filter/testing/test_util.h',
         '<(DEPTH)/starboard/shared/starboard/player/filter/testing/video_decoder_test.cc',
diff --git a/src/starboard/shared/starboard/player/filter/testing/test_util.cc b/src/starboard/shared/starboard/player/filter/testing/test_util.cc
index 57266af..f135417 100644
--- a/src/starboard/shared/starboard/player/filter/testing/test_util.cc
+++ b/src/starboard/shared/starboard/player/filter/testing/test_util.cc
@@ -14,6 +14,7 @@
 
 #include "starboard/shared/starboard/player/filter/testing/test_util.h"
 
+#include "starboard/audio_sink.h"
 #include "starboard/common/log.h"
 #include "starboard/directory.h"
 #include "starboard/shared/starboard/media/media_support_internal.h"
@@ -58,14 +59,14 @@
 
 void StubDeallocateSampleFunc(SbPlayer player,
                               void* context,
-                              const void* sample_buffer) {
-}
+                              const void* sample_buffer) {}
 
 std::string ResolveTestFileName(const char* filename) {
   return GetTestInputDirectory() + kSbFileSepChar + filename;
 }
 
-std::vector<const char*> GetSupportedAudioTestFiles(bool include_heaac) {
+std::vector<const char*> GetSupportedAudioTestFiles(bool include_heaac,
+                                                    bool ignore_channels) {
   // beneath_the_canopy_aac_stereo.dmp
   //   codec: kSbMediaAudioCodecAac
   //   sampling rate: 44.1k
@@ -90,33 +91,50 @@
                               "sintel_381_ac3.dmp",
                               "heaac.dmp"};
 
-  static std::vector<const char*> test_params_with_heaac;
-  static std::vector<const char*> test_params_without_heaac;
+  static std::vector<const char*> supported_filenames_channels_unchecked;
+  static std::vector<const char*> supported_filenames_channels_checked;
 
-  std::vector<const char*>& test_params =
-      include_heaac ? test_params_with_heaac : test_params_without_heaac;
+  if (supported_filenames_channels_unchecked.empty()) {
+    int supported_channels = SbAudioSinkGetMaxChannels();
+    for (auto filename : kFilenames) {
+      VideoDmpReader dmp_reader(ResolveTestFileName(filename).c_str(),
+                                VideoDmpReader::kEnableReadOnDemand);
+      SB_DCHECK(dmp_reader.number_of_audio_buffers() > 0);
 
-  if (!test_params.empty()) {
-    return test_params;
-  }
-
-  for (auto filename : kFilenames) {
-    VideoDmpReader dmp_reader(ResolveTestFileName(filename).c_str(),
-                              VideoDmpReader::kEnableReadOnDemand);
-    SB_DCHECK(dmp_reader.number_of_audio_buffers() > 0);
-    if (SbMediaIsAudioSupported(dmp_reader.audio_codec(),
+      // Filter files of unsupported codec.
+      if (!SbMediaIsAudioSupported(dmp_reader.audio_codec(),
 #if SB_API_VERSION >= 12
-                                "",  // content_type
-#endif  // SB_API_VERSION >= 12
-                                dmp_reader.audio_bitrate())) {
-      test_params_with_heaac.push_back(filename);
-      if (SbStringFindString(filename, "heaac") == nullptr) {
-        test_params_without_heaac.push_back(filename);
+                                   "",  // content_type
+#endif                                  // SB_API_VERSION >= 12
+                                   dmp_reader.audio_bitrate())) {
+        continue;
       }
+      supported_filenames_channels_unchecked.push_back(filename);
+
+      // Filter files of unsupported channels.
+      if (dmp_reader.audio_sample_info().number_of_channels >
+          supported_channels) {
+        continue;
+      }
+      supported_filenames_channels_checked.push_back(filename);
     }
   }
 
-  SB_DCHECK(!test_params.empty());
+  if (include_heaac) {
+    return ignore_channels ? supported_filenames_channels_unchecked
+                           : supported_filenames_channels_checked;
+  }
+
+  // Filter heaac file.
+  std::vector<const char*> test_params;
+  for (auto filename :
+       (ignore_channels ? supported_filenames_channels_unchecked
+                        : supported_filenames_channels_checked)) {
+    if (SbStringFindString(filename, "heaac") != nullptr) {
+      continue;
+    }
+    test_params.push_back(filename);
+  }
   return test_params;
 }
 
@@ -129,10 +147,9 @@
   // filters for every platform, just in case a particular test case should be
   // disabled.
 
-  const char* kFilenames[] = {"beneath_the_canopy_137_avc.dmp",
-                              "beneath_the_canopy_248_vp9.dmp",
-                              "sintel_399_av1.dmp",
-                              "black_test_avc_1080p_30to60_fps.dmp"};
+  const char* kFilenames[] = {
+      "beneath_the_canopy_137_avc.dmp", "beneath_the_canopy_248_vp9.dmp",
+      "sintel_399_av1.dmp", "black_test_avc_1080p_30to60_fps.dmp"};
 
   static std::vector<VideoTestParam> test_params;
 
@@ -159,7 +176,7 @@
               dmp_reader.video_codec(),
 #if SB_API_VERSION >= 12
               "",  // content_type
-#endif  // SB_API_VERSION >= 12
+#endif             // SB_API_VERSION >= 12
 #if SB_HAS(MEDIA_IS_VIDEO_SUPPORTED_REFINEMENT)
               -1, -1, 8, kSbMediaPrimaryIdUnspecified,
               kSbMediaTransferIdUnspecified, kSbMediaMatrixIdUnspecified,
diff --git a/src/starboard/shared/starboard/player/filter/testing/test_util.h b/src/starboard/shared/starboard/player/filter/testing/test_util.h
index 88ba4ca..9923a96 100644
--- a/src/starboard/shared/starboard/player/filter/testing/test_util.h
+++ b/src/starboard/shared/starboard/player/filter/testing/test_util.h
@@ -43,7 +43,8 @@
                               const void* sample_buffer);
 
 std::string ResolveTestFileName(const char* filename);
-std::vector<const char*> GetSupportedAudioTestFiles(bool include_heaac);
+std::vector<const char*> GetSupportedAudioTestFiles(bool include_heaac,
+                                                    bool ignore_channels);
 std::vector<VideoTestParam> GetSupportedVideoTests();
 
 bool CreateAudioComponents(bool using_stub_decoder,
diff --git a/src/starboard/shared/starboard/player/filter/tools/BUILD.gn b/src/starboard/shared/starboard/player/filter/tools/BUILD.gn
new file mode 100644
index 0000000..af555d2
--- /dev/null
+++ b/src/starboard/shared/starboard/player/filter/tools/BUILD.gn
@@ -0,0 +1,31 @@
+# Copyright 2021 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.
+
+target(final_executable_type, "audio_dmp_player") {
+  sources = [
+    "//starboard/shared/starboard/player/file_cache_reader.cc",
+    "//starboard/shared/starboard/player/file_cache_reader.h",
+    "//starboard/shared/starboard/player/video_dmp_common.cc",
+    "//starboard/shared/starboard/player/video_dmp_common.h",
+    "//starboard/shared/starboard/player/video_dmp_reader.cc",
+    "//starboard/shared/starboard/player/video_dmp_reader.h",
+    "audio_dmp_player.cc",
+  ]
+
+  configs += [ "//starboard/build/config:starboard_implementation" ]
+  public_deps = [
+    "//starboard",
+    "//starboard/shared/starboard/player:player_download_test_data",
+  ]
+}
diff --git a/src/starboard/shared/starboard/player/video_dmp_reader.cc b/src/starboard/shared/starboard/player/video_dmp_reader.cc
index 72907b4..07f748d 100644
--- a/src/starboard/shared/starboard/player/video_dmp_reader.cc
+++ b/src/starboard/shared/starboard/player/video_dmp_reader.cc
@@ -291,6 +291,14 @@
   dmp_info_.video_access_units_size = video_access_units_.size();
   dmp_info_.video_bitrate = CalculateAverageBitrate(video_access_units_);
 
+  // Guestimate the audio duration.
+  if (audio_access_units_.size() > 1) {
+    auto frame_duration =
+        audio_access_units_[audio_access_units_.size() - 1].timestamp() -
+        audio_access_units_[audio_access_units_.size() - 2].timestamp();
+    dmp_info_.audio_duration =
+        audio_access_units_.back().timestamp() + frame_duration;
+  }
   // Guestimate the video fps.
   if (video_access_units_.size() > 1) {
     SbTime first_timestamp = video_access_units_.front().timestamp();
@@ -302,7 +310,20 @@
       }
     }
     SB_DCHECK(first_timestamp < second_timestamp);
-    dmp_info_.video_fps = kSbTimeSecond / (second_timestamp - first_timestamp);
+    SbTime frame_duration = second_timestamp - first_timestamp;
+    dmp_info_.video_fps = kSbTimeSecond / frame_duration;
+
+    SbTime last_frame_timestamp = video_access_units_.back().timestamp();
+    for (auto it = video_access_units_.rbegin();
+         it != video_access_units_.rend(); it++) {
+      if (it->timestamp() > last_frame_timestamp) {
+        last_frame_timestamp = it->timestamp();
+      }
+      if (it->video_sample_info().is_key_frame) {
+        break;
+      }
+    }
+    dmp_info_.video_duration = last_frame_timestamp + frame_duration;
   }
 }
 
diff --git a/src/starboard/shared/starboard/player/video_dmp_reader.h b/src/starboard/shared/starboard/player/video_dmp_reader.h
index 134867d..eb99fbc 100644
--- a/src/starboard/shared/starboard/player/video_dmp_reader.h
+++ b/src/starboard/shared/starboard/player/video_dmp_reader.h
@@ -112,11 +112,13 @@
   }
   int64_t audio_bitrate() const { return dmp_info_.audio_bitrate; }
   std::string audio_mime_type() const;
+  SbTime audio_duration() const { return dmp_info_.audio_duration; }
 
   SbMediaVideoCodec video_codec() const { return dmp_info_.video_codec; }
   int64_t video_bitrate() const { return dmp_info_.video_bitrate; }
   int video_fps() const { return dmp_info_.video_fps; }
   std::string video_mime_type();
+  SbTime video_duration() const { return dmp_info_.video_duration; }
 
   size_t number_of_audio_buffers() const {
     return dmp_info_.audio_access_units_size;
@@ -134,11 +136,13 @@
     SbMediaAudioSampleInfoWithConfig audio_sample_info;
     size_t audio_access_units_size = 0;
     int64_t audio_bitrate = 0;
+    int audio_duration = 0;
 
     SbMediaVideoCodec video_codec = kSbMediaVideoCodecNone;
     size_t video_access_units_size = 0;
     int64_t video_bitrate = 0;
     int video_fps = 0;
+    int video_duration = 0;
   };
 
   class Registry {
diff --git a/src/starboard/shared/starboard/speech_recognizer/speech_recognizer_create.cc b/src/starboard/shared/starboard/speech_recognizer/speech_recognizer_create.cc
index 42482dc..178f58d 100644
--- a/src/starboard/shared/starboard/speech_recognizer/speech_recognizer_create.cc
+++ b/src/starboard/shared/starboard/speech_recognizer/speech_recognizer_create.cc
@@ -14,6 +14,10 @@
 
 #include "starboard/speech_recognizer.h"
 
+#if SB_API_VERSION >= 13
+#error Speech Recognizer is deprecated. Implement full Microphone instead.
+#endif
+
 #if SB_API_VERSION >= 12 || SB_HAS(SPEECH_RECOGNIZER)
 
 #include "starboard/shared/starboard/speech_recognizer/speech_recognizer_internal.h"
diff --git a/src/starboard/shared/starboard/system_request_blur.cc b/src/starboard/shared/starboard/system_request_blur.cc
index a2fe101..fa9ea0c 100644
--- a/src/starboard/shared/starboard/system_request_blur.cc
+++ b/src/starboard/shared/starboard/system_request_blur.cc
@@ -16,10 +16,8 @@
 
 #include "starboard/shared/starboard/application.h"
 
-#if SB_API_VERSION >= SB_ADD_CONCEALED_STATE_SUPPORT_VERSION || \
-    SB_HAS(CONCEALED_STATE)
+#if SB_API_VERSION >= 13
 void SbSystemRequestBlur() {
   starboard::shared::starboard::Application::Get()->Blur(NULL, NULL);
 }
-#endif  // SB_API_VERSION >= SB_ADD_CONCEALED_STATE_SUPPORT_VERSION ||
-        // SB_HAS(CONCEALED_STATE)
+#endif  // SB_API_VERSION >= 13
diff --git a/src/starboard/shared/starboard/system_request_conceal.cc b/src/starboard/shared/starboard/system_request_conceal.cc
index 0208148..696e93b 100644
--- a/src/starboard/shared/starboard/system_request_conceal.cc
+++ b/src/starboard/shared/starboard/system_request_conceal.cc
@@ -16,10 +16,8 @@
 
 #include "starboard/shared/starboard/application.h"
 
-#if SB_API_VERSION >= SB_ADD_CONCEALED_STATE_SUPPORT_VERSION || \
-    SB_HAS(CONCEALED_STATE)
+#if SB_API_VERSION >= 13
 void SbSystemRequestConceal() {
   starboard::shared::starboard::Application::Get()->Conceal(NULL, NULL);
 }
-#endif  // SB_API_VERSION >= SB_ADD_CONCEALED_STATE_SUPPORT_VERSION ||
-        // SB_HAS(CONCEALED_STATE)
+#endif  // SB_API_VERSION >= 13
diff --git a/src/starboard/shared/starboard/system_request_focus.cc b/src/starboard/shared/starboard/system_request_focus.cc
index 8cd34c0..29d5e50 100644
--- a/src/starboard/shared/starboard/system_request_focus.cc
+++ b/src/starboard/shared/starboard/system_request_focus.cc
@@ -16,10 +16,8 @@
 
 #include "starboard/shared/starboard/application.h"
 
-#if SB_API_VERSION >= SB_ADD_CONCEALED_STATE_SUPPORT_VERSION || \
-    SB_HAS(CONCEALED_STATE)
+#if SB_API_VERSION >= 13
 void SbSystemRequestFocus() {
   starboard::shared::starboard::Application::Get()->Focus(NULL, NULL);
 }
-#endif  // SB_API_VERSION >= SB_ADD_CONCEALED_STATE_SUPPORT_VERSION ||
-        // SB_HAS(CONCEALED_STATE)
+#endif  // SB_API_VERSION >= 13
diff --git a/src/starboard/shared/starboard/system_request_freeze.cc b/src/starboard/shared/starboard/system_request_freeze.cc
index 4ce9bed..9f4bb4d 100644
--- a/src/starboard/shared/starboard/system_request_freeze.cc
+++ b/src/starboard/shared/starboard/system_request_freeze.cc
@@ -16,10 +16,8 @@
 
 #include "starboard/shared/starboard/application.h"
 
-#if SB_API_VERSION >= SB_ADD_CONCEALED_STATE_SUPPORT_VERSION || \
-    SB_HAS(CONCEALED_STATE)
+#if SB_API_VERSION >= 13
 void SbSystemRequestFreeze() {
   starboard::shared::starboard::Application::Get()->Freeze(NULL, NULL);
 }
-#endif  // SB_API_VERSION >= SB_ADD_CONCEALED_STATE_SUPPORT_VERSION ||
-        // SB_HAS(CONCEALED_STATE)
+#endif  // SB_API_VERSION >= 13
diff --git a/src/starboard/shared/starboard/system_request_pause.cc b/src/starboard/shared/starboard/system_request_pause.cc
index 923201e..560b75e 100644
--- a/src/starboard/shared/starboard/system_request_pause.cc
+++ b/src/starboard/shared/starboard/system_request_pause.cc
@@ -16,10 +16,8 @@
 
 #include "starboard/shared/starboard/application.h"
 
-#if SB_API_VERSION < SB_ADD_CONCEALED_STATE_SUPPORT_VERSION && \
-    !SB_HAS(CONCEALED_STATE)
+#if SB_API_VERSION < 13
 void SbSystemRequestPause() {
   starboard::shared::starboard::Application::Get()->Pause(NULL, NULL);
 }
-#endif  // SB_API_VERSION < SB_ADD_CONCEALED_STATE_SUPPORT_VERSION &&
-        // !SB_HAS(CONCEALED_STATE)
+#endif  // SB_API_VERSION < 13
diff --git a/src/starboard/shared/starboard/system_request_reveal.cc b/src/starboard/shared/starboard/system_request_reveal.cc
index eca0af0..3acb867 100644
--- a/src/starboard/shared/starboard/system_request_reveal.cc
+++ b/src/starboard/shared/starboard/system_request_reveal.cc
@@ -16,10 +16,8 @@
 
 #include "starboard/shared/starboard/application.h"
 
-#if SB_API_VERSION >= SB_ADD_CONCEALED_STATE_SUPPORT_VERSION || \
-    SB_HAS(CONCEALED_STATE)
+#if SB_API_VERSION >= 13
 void SbSystemRequestReveal() {
   starboard::shared::starboard::Application::Get()->Reveal(NULL, NULL);
 }
-#endif  // SB_API_VERSION >= SB_ADD_CONCEALED_STATE_SUPPORT_VERSION ||
-        // SB_HAS(CONCEALED_STATE)
+#endif  // SB_API_VERSION >= 13
diff --git a/src/starboard/shared/starboard/system_request_suspend.cc b/src/starboard/shared/starboard/system_request_suspend.cc
index ee7ef8f..9f42198 100644
--- a/src/starboard/shared/starboard/system_request_suspend.cc
+++ b/src/starboard/shared/starboard/system_request_suspend.cc
@@ -16,10 +16,8 @@
 
 #include "starboard/shared/starboard/application.h"
 
-#if SB_API_VERSION < SB_ADD_CONCEALED_STATE_SUPPORT_VERSION && \
-    !SB_HAS(CONCEALED_STATE)
+#if SB_API_VERSION < 13
 void SbSystemRequestSuspend() {
   starboard::shared::starboard::Application::Get()->Suspend(NULL, NULL);
 }
-#endif  // SB_API_VERSION < SB_ADD_CONCEALED_STATE_SUPPORT_VERSION &&
-        // !SB_HAS(CONCEALED_STATE)
+#endif  // SB_API_VERSION < 13
diff --git a/src/starboard/shared/starboard/system_request_unpause.cc b/src/starboard/shared/starboard/system_request_unpause.cc
index 542cabe..4b7e2c6 100644
--- a/src/starboard/shared/starboard/system_request_unpause.cc
+++ b/src/starboard/shared/starboard/system_request_unpause.cc
@@ -16,10 +16,8 @@
 
 #include "starboard/shared/starboard/application.h"
 
-#if SB_API_VERSION < SB_ADD_CONCEALED_STATE_SUPPORT_VERSION && \
-    !SB_HAS(CONCEALED_STATE)
+#if SB_API_VERSION < 13
 void SbSystemRequestUnpause() {
   starboard::shared::starboard::Application::Get()->Unpause(NULL, NULL);
 }
-#endif  // SB_API_VERSION < SB_ADD_CONCEALED_STATE_SUPPORT_VERSION &&
-        // !SB_HAS(CONCEALED_STATE)
+#endif  // SB_API_VERSION < 13
diff --git a/src/starboard/shared/stub/character_is_alphanumeric.cc b/src/starboard/shared/stub/character_is_alphanumeric.cc
index cdb7f82..c191a73 100644
--- a/src/starboard/shared/stub/character_is_alphanumeric.cc
+++ b/src/starboard/shared/stub/character_is_alphanumeric.cc
@@ -13,8 +13,8 @@
 // limitations under the License.
 
 #include "starboard/character.h"
-#if SB_API_VERSION < SB_CHARACTER_APIS_DEPRECATED_VERSION
+#if SB_API_VERSION < 13
 bool SbCharacterIsAlphanumeric(int c) {
   return false;
 }
-#endif  // SB_API_VERSION < SB_CHARACTER_APIS_DEPRECATED_VERSION
+#endif  // SB_API_VERSION < 13
diff --git a/src/starboard/shared/stub/character_is_digit.cc b/src/starboard/shared/stub/character_is_digit.cc
index b8e92fb..182d572 100644
--- a/src/starboard/shared/stub/character_is_digit.cc
+++ b/src/starboard/shared/stub/character_is_digit.cc
@@ -14,8 +14,8 @@
 
 #include "starboard/character.h"
 
-#if SB_API_VERSION < SB_CHARACTER_APIS_DEPRECATED_VERSION
+#if SB_API_VERSION < 13
 bool SbCharacterIsDigit(int c) {
   return false;
 }
-#endif  // SB_API_VERSION < SB_CHARACTER_APIS_DEPRECATED_VERSION
+#endif  // SB_API_VERSION < 13
diff --git a/src/starboard/shared/stub/character_is_hex_digit.cc b/src/starboard/shared/stub/character_is_hex_digit.cc
index a752f72..87b1c59 100644
--- a/src/starboard/shared/stub/character_is_hex_digit.cc
+++ b/src/starboard/shared/stub/character_is_hex_digit.cc
@@ -14,8 +14,8 @@
 
 #include "starboard/character.h"
 
-#if SB_API_VERSION < SB_CHARACTER_APIS_DEPRECATED_VERSION
+#if SB_API_VERSION < 13
 bool SbCharacterIsHexDigit(int c) {
   return false;
 }
-#endif  // SB_API_VERSION < SB_CHARACTER_APIS_DEPRECATED_VERSION
+#endif  // SB_API_VERSION < 13
diff --git a/src/starboard/shared/stub/character_is_space.cc b/src/starboard/shared/stub/character_is_space.cc
index bbadf5e..5fd553b 100644
--- a/src/starboard/shared/stub/character_is_space.cc
+++ b/src/starboard/shared/stub/character_is_space.cc
@@ -14,8 +14,8 @@
 
 #include "starboard/character.h"
 
-#if SB_API_VERSION < SB_CHARACTER_APIS_DEPRECATED_VERSION
+#if SB_API_VERSION < 13
 bool SbCharacterIsSpace(int c) {
   return false;
 }
-#endif  // SB_API_VERSION < SB_CHARACTER_APIS_DEPRECATED_VERSION
+#endif  // SB_API_VERSION < 13
diff --git a/src/starboard/shared/stub/character_is_upper.cc b/src/starboard/shared/stub/character_is_upper.cc
index a89241f..da6d743 100644
--- a/src/starboard/shared/stub/character_is_upper.cc
+++ b/src/starboard/shared/stub/character_is_upper.cc
@@ -14,8 +14,8 @@
 
 #include "starboard/character.h"
 
-#if SB_API_VERSION < SB_CHARACTER_APIS_DEPRECATED_VERSION
+#if SB_API_VERSION < 13
 bool SbCharacterIsUpper(int c) {
   return false;
 }
-#endif  // SB_API_VERSION < SB_CHARACTER_APIS_DEPRECATED_VERSION
+#endif  // SB_API_VERSION < 13
diff --git a/src/starboard/shared/stub/character_to_lower.cc b/src/starboard/shared/stub/character_to_lower.cc
index d35deb9..a967005 100644
--- a/src/starboard/shared/stub/character_to_lower.cc
+++ b/src/starboard/shared/stub/character_to_lower.cc
@@ -14,8 +14,8 @@
 
 #include "starboard/character.h"
 
-#if SB_API_VERSION < SB_CHARACTER_APIS_DEPRECATED_VERSION
+#if SB_API_VERSION < 13
 int SbCharacterToLower(int c) {
   return c;
 }
-#endif  // SB_API_VERSION < SB_CHARACTER_APIS_DEPRECATED_VERSION
+#endif  // SB_API_VERSION < 13
diff --git a/src/starboard/shared/stub/character_to_upper.cc b/src/starboard/shared/stub/character_to_upper.cc
index 873f55d..1b4b117 100644
--- a/src/starboard/shared/stub/character_to_upper.cc
+++ b/src/starboard/shared/stub/character_to_upper.cc
@@ -14,8 +14,8 @@
 
 #include "starboard/character.h"
 
-#if SB_API_VERSION < SB_CHARACTER_APIS_DEPRECATED_VERSION
+#if SB_API_VERSION < 13
 int SbCharacterToUpper(int c) {
   return c;
 }
-#endif  // SB_API_VERSION < SB_CHARACTER_APIS_DEPRECATED_VERSION
+#endif  // SB_API_VERSION < 13
diff --git a/src/starboard/shared/stub/double_absolute.cc b/src/starboard/shared/stub/double_absolute.cc
index 470a843..5aa1aa4 100644
--- a/src/starboard/shared/stub/double_absolute.cc
+++ b/src/starboard/shared/stub/double_absolute.cc
@@ -14,8 +14,8 @@
 
 #include "starboard/double.h"
 
-#if SB_API_VERSION < SB_DOUBLE_APIS_DEPRECATED_VERSION
+#if SB_API_VERSION < 13
 double SbDoubleAbsolute(double d) {
   return 0.0;
 }
-#endif  // SB_API_VERSION < SB_DOUBLE_APIS_DEPRECATED_VERSION
+#endif  // SB_API_VERSION < 13
diff --git a/src/starboard/shared/stub/double_exponent.cc b/src/starboard/shared/stub/double_exponent.cc
index e1cde98..44218cf 100644
--- a/src/starboard/shared/stub/double_exponent.cc
+++ b/src/starboard/shared/stub/double_exponent.cc
@@ -14,8 +14,8 @@
 
 #include "starboard/double.h"
 
-#if SB_API_VERSION < SB_DOUBLE_APIS_DEPRECATED_VERSION
+#if SB_API_VERSION < 13
 double SbDoubleExponent(const double base, const double exponent) {
   return 0.0;
 }
-#endif  // SB_API_VERSION < SB_DOUBLE_APIS_DEPRECATED_VERSION
+#endif  // SB_API_VERSION < 13
diff --git a/src/starboard/shared/stub/double_floor.cc b/src/starboard/shared/stub/double_floor.cc
index c906d60..9c7f0e5 100644
--- a/src/starboard/shared/stub/double_floor.cc
+++ b/src/starboard/shared/stub/double_floor.cc
@@ -14,8 +14,8 @@
 
 #include "starboard/double.h"
 
-#if SB_API_VERSION < SB_DOUBLE_APIS_DEPRECATED_VERSION
+#if SB_API_VERSION < 13
 double SbDoubleFloor(double d) {
   return 0.0;
 }
-#endif  // SB_API_VERSION < SB_DOUBLE_APIS_DEPRECATED_VERSION
+#endif  // SB_API_VERSION < 13
diff --git a/src/starboard/shared/stub/double_is_finite.cc b/src/starboard/shared/stub/double_is_finite.cc
index a151e86..bf25b3e 100644
--- a/src/starboard/shared/stub/double_is_finite.cc
+++ b/src/starboard/shared/stub/double_is_finite.cc
@@ -14,8 +14,8 @@
 
 #include "starboard/double.h"
 
-#if SB_API_VERSION < SB_DOUBLE_APIS_DEPRECATED_VERSION
+#if SB_API_VERSION < 13
 bool SbDoubleIsFinite(const double d) {
   return false;
 }
-#endif  // SB_API_VERSION < SB_DOUBLE_APIS_DEPRECATED_VERSION
+#endif  // SB_API_VERSION < 13
diff --git a/src/starboard/shared/stub/double_is_nan.cc b/src/starboard/shared/stub/double_is_nan.cc
index fd5d38f..4c710ca 100644
--- a/src/starboard/shared/stub/double_is_nan.cc
+++ b/src/starboard/shared/stub/double_is_nan.cc
@@ -14,8 +14,8 @@
 
 #include "starboard/double.h"
 
-#if SB_API_VERSION < SB_DOUBLE_APIS_DEPRECATED_VERSION
+#if SB_API_VERSION < 13
 bool SbDoubleIsNan(const double d) {
   return false;
 }
-#endif  // SB_API_VERSION < SB_DOUBLE_APIS_DEPRECATED_VERSION
+#endif  // SB_API_VERSION < 13
diff --git a/src/starboard/shared/stub/string_parse_double.cc b/src/starboard/shared/stub/string_parse_double.cc
index 0f38474..1faebb3 100644
--- a/src/starboard/shared/stub/string_parse_double.cc
+++ b/src/starboard/shared/stub/string_parse_double.cc
@@ -14,7 +14,7 @@
 
 #include "starboard/common/string.h"
 
-#if SB_API_VERSION < SB_STDLIB_APIS_DEPRECATED_VERSION
+#if SB_API_VERSION < 13
 
 double SbStringParseDouble(const char* start, char** out_end) {
   if (out_end != NULL)
@@ -22,4 +22,4 @@
   return 0.0;
 }
 
-#endif  // SB_API_VERSION < SB_STDLIB_APIS_DEPRECATED_VERSION
+#endif  // SB_API_VERSION < 13
diff --git a/src/starboard/shared/stub/string_parse_signed_integer.cc b/src/starboard/shared/stub/string_parse_signed_integer.cc
index 2066b4c..af02654 100644
--- a/src/starboard/shared/stub/string_parse_signed_integer.cc
+++ b/src/starboard/shared/stub/string_parse_signed_integer.cc
@@ -14,11 +14,11 @@
 
 #include "starboard/common/string.h"
 
-#if SB_API_VERSION < SB_STDLIB_APIS_DEPRECATED_VERSION
+#if SB_API_VERSION < 13
 
 // NOLINTNEXTLINE(runtime/int)
 long SbStringParseSignedInteger(const char* start, char** out_end, int base) {
   return 0L;
 }
 
-#endif  // SB_API_VERSION < SB_STDLIB_APIS_DEPRECATED_VERSION
+#endif  // SB_API_VERSION < 13
diff --git a/src/starboard/shared/stub/string_parse_uint64.cc b/src/starboard/shared/stub/string_parse_uint64.cc
index 726fbbe..d6b2d0d 100644
--- a/src/starboard/shared/stub/string_parse_uint64.cc
+++ b/src/starboard/shared/stub/string_parse_uint64.cc
@@ -14,10 +14,10 @@
 
 #include "starboard/common/string.h"
 
-#if SB_API_VERSION < SB_STDLIB_APIS_DEPRECATED_VERSION
+#if SB_API_VERSION < 13
 
 uint64_t SbStringParseUInt64(const char* start, char** out_end, int base) {
   return static_cast<uint64_t>(0);
 }
 
-#endif  // SB_API_VERSION < SB_STDLIB_APIS_DEPRECATED_VERSION
+#endif  // SB_API_VERSION < 13
diff --git a/src/starboard/shared/stub/string_parse_unsigned_integer.cc b/src/starboard/shared/stub/string_parse_unsigned_integer.cc
index 08bf1ae..e98337b 100644
--- a/src/starboard/shared/stub/string_parse_unsigned_integer.cc
+++ b/src/starboard/shared/stub/string_parse_unsigned_integer.cc
@@ -14,7 +14,7 @@
 
 #include "starboard/common/string.h"
 
-#if SB_API_VERSION < SB_STDLIB_APIS_DEPRECATED_VERSION
+#if SB_API_VERSION < 13
 
 // NOLINTNEXTLINE(runtime/int)
 unsigned long SbStringParseUnsignedInteger(const char* start,
@@ -23,4 +23,4 @@
   return 0UL;
 }
 
-#endif  // SB_API_VERSION < SB_STDLIB_APIS_DEPRECATED_VERSION
+#endif  // SB_API_VERSION < 13
diff --git a/src/starboard/shared/stub/system_binary_search.cc b/src/starboard/shared/stub/system_binary_search.cc
index 661f539..ee86219 100644
--- a/src/starboard/shared/stub/system_binary_search.cc
+++ b/src/starboard/shared/stub/system_binary_search.cc
@@ -14,7 +14,7 @@
 
 #include "starboard/system.h"
 
-#if SB_API_VERSION < SB_SYSTEM_BINARY_SEARCH_DEPRECATED_VERSION
+#if SB_API_VERSION < 13
 void* SbSystemBinarySearch(const void* key,
                            const void* base,
                            size_t element_count,
@@ -22,4 +22,4 @@
                            SbSystemComparator comparator) {
   return NULL;
 }
-#endif  // SB_API_VERSION < SB_SYSTEM_BINARY_SEARCH_DEPRECATED_VERSION
+#endif  // SB_API_VERSION < 13
diff --git a/src/starboard/shared/stub/system_request_blur.cc b/src/starboard/shared/stub/system_request_blur.cc
index 3f2bcc0..68767ae 100644
--- a/src/starboard/shared/stub/system_request_blur.cc
+++ b/src/starboard/shared/stub/system_request_blur.cc
@@ -14,9 +14,6 @@
 
 #include "starboard/system.h"
 
-#if SB_API_VERSION >= SB_ADD_CONCEALED_STATE_SUPPORT_VERSION || \
-    SB_HAS(CONCEALED_STATE)
-void SbSystemRequestBlur() {
-}
-#endif  // SB_API_VERSION >= SB_ADD_CONCEALED_STATE_SUPPORT_VERSION ||
-        // SB_HAS(CONCEALED_STATE)
+#if SB_API_VERSION >= 13
+void SbSystemRequestBlur() {}
+#endif  // SB_API_VERSION >= 13
diff --git a/src/starboard/shared/stub/system_request_conceal.cc b/src/starboard/shared/stub/system_request_conceal.cc
index 3008668..e940f19 100644
--- a/src/starboard/shared/stub/system_request_conceal.cc
+++ b/src/starboard/shared/stub/system_request_conceal.cc
@@ -14,9 +14,6 @@
 
 #include "starboard/system.h"
 
-#if SB_API_VERSION >= SB_ADD_CONCEALED_STATE_SUPPORT_VERSION || \
-    SB_HAS(CONCEALED_STATE)
-void SbSystemRequestConceal() {
-}
-#endif  // SB_API_VERSION >= SB_ADD_CONCEALED_STATE_SUPPORT_VERSION ||
-        // SB_HAS(CONCEALED_STATE)
+#if SB_API_VERSION >= 13
+void SbSystemRequestConceal() {}
+#endif  // SB_API_VERSION >= 13
diff --git a/src/starboard/shared/stub/system_request_focus.cc b/src/starboard/shared/stub/system_request_focus.cc
index 78d7054..f25a7bc 100644
--- a/src/starboard/shared/stub/system_request_focus.cc
+++ b/src/starboard/shared/stub/system_request_focus.cc
@@ -14,9 +14,6 @@
 
 #include "starboard/system.h"
 
-#if SB_API_VERSION >= SB_ADD_CONCEALED_STATE_SUPPORT_VERSION || \
-    SB_HAS(CONCEALED_STATE)
-void SbSystemRequestFocus() {
-}
-#endif  // SB_API_VERSION >= SB_ADD_CONCEALED_STATE_SUPPORT_VERSION ||
-        // SB_HAS(CONCEALED_STATE)
+#if SB_API_VERSION >= 13
+void SbSystemRequestFocus() {}
+#endif  // SB_API_VERSION >= 13
diff --git a/src/starboard/shared/stub/system_request_freeze.cc b/src/starboard/shared/stub/system_request_freeze.cc
index b1a8b2b..6950645 100644
--- a/src/starboard/shared/stub/system_request_freeze.cc
+++ b/src/starboard/shared/stub/system_request_freeze.cc
@@ -14,9 +14,6 @@
 
 #include "starboard/system.h"
 
-#if SB_API_VERSION >= SB_ADD_CONCEALED_STATE_SUPPORT_VERSION || \
-    SB_HAS(CONCEALED_STATE)
-void SbSystemRequestFreeze() {
-}
-#endif  // SB_API_VERSION >= SB_ADD_CONCEALED_STATE_SUPPORT_VERSION ||
-        // SB_HAS(CONCEALED_STATE)
+#if SB_API_VERSION >= 13
+void SbSystemRequestFreeze() {}
+#endif  // SB_API_VERSION >= 13
diff --git a/src/starboard/shared/stub/system_request_pause.cc b/src/starboard/shared/stub/system_request_pause.cc
index 1de51fd..fd39752 100644
--- a/src/starboard/shared/stub/system_request_pause.cc
+++ b/src/starboard/shared/stub/system_request_pause.cc
@@ -14,9 +14,6 @@
 
 #include "starboard/system.h"
 
-#if SB_API_VERSION < SB_ADD_CONCEALED_STATE_SUPPORT_VERSION && \
-    !SB_HAS(CONCEALED_STATE)
-void SbSystemRequestPause() {
-}
-#endif  // SB_API_VERSION < SB_ADD_CONCEALED_STATE_SUPPORT_VERSION &&
-        // !SB_HAS(CONCEALED_STATE)
+#if SB_API_VERSION < 13
+void SbSystemRequestPause() {}
+#endif  // SB_API_VERSION < 13
diff --git a/src/starboard/shared/stub/system_request_reveal.cc b/src/starboard/shared/stub/system_request_reveal.cc
index 7782134..de86def 100644
--- a/src/starboard/shared/stub/system_request_reveal.cc
+++ b/src/starboard/shared/stub/system_request_reveal.cc
@@ -14,9 +14,6 @@
 
 #include "starboard/system.h"
 
-#if SB_API_VERSION >= SB_ADD_CONCEALED_STATE_SUPPORT_VERSION || \
-    SB_HAS(CONCEALED_STATE)
-void SbSystemRequestReveal() {
-}
-#endif  // SB_API_VERSION >= SB_ADD_CONCEALED_STATE_SUPPORT_VERSION ||
-        // SB_HAS(CONCEALED_STATE)
+#if SB_API_VERSION >= 13
+void SbSystemRequestReveal() {}
+#endif  // SB_API_VERSION >= 13
diff --git a/src/starboard/shared/stub/system_request_suspend.cc b/src/starboard/shared/stub/system_request_suspend.cc
index f717698..6e136b9 100644
--- a/src/starboard/shared/stub/system_request_suspend.cc
+++ b/src/starboard/shared/stub/system_request_suspend.cc
@@ -14,9 +14,6 @@
 
 #include "starboard/system.h"
 
-#if SB_API_VERSION < SB_ADD_CONCEALED_STATE_SUPPORT_VERSION && \
-    !SB_HAS(CONCEALED_STATE)
-void SbSystemRequestSuspend() {
-}
-#endif  // SB_API_VERSION < SB_ADD_CONCEALED_STATE_SUPPORT_VERSION &&
-        // !SB_HAS(CONCEALED_STATE)
+#if SB_API_VERSION < 13
+void SbSystemRequestSuspend() {}
+#endif  // SB_API_VERSION < 13
diff --git a/src/starboard/shared/stub/system_request_unpause.cc b/src/starboard/shared/stub/system_request_unpause.cc
index f73550f..f91320a 100644
--- a/src/starboard/shared/stub/system_request_unpause.cc
+++ b/src/starboard/shared/stub/system_request_unpause.cc
@@ -14,9 +14,6 @@
 
 #include "starboard/system.h"
 
-#if SB_API_VERSION < SB_ADD_CONCEALED_STATE_SUPPORT_VERSION && \
-    !SB_HAS(CONCEALED_STATE)
-void SbSystemRequestUnpause() {
-}
-#endif  // SB_API_VERSION < SB_ADD_CONCEALED_STATE_SUPPORT_VERSION &&
-        // !SB_HAS(CONCEALED_STATE)
+#if SB_API_VERSION < 13
+void SbSystemRequestUnpause() {}
+#endif  // SB_API_VERSION < 13
diff --git a/src/starboard/shared/x11/application_x11.cc b/src/starboard/shared/x11/application_x11.cc
index b3b1fb5..c0b5e79 100644
--- a/src/starboard/shared/x11/application_x11.cc
+++ b/src/starboard/shared/x11/application_x11.cc
@@ -35,6 +35,7 @@
 #include "starboard/key.h"
 #include "starboard/memory.h"
 #include "starboard/player.h"
+#include "starboard/shared/linux/system_network_status.h"
 #include "starboard/shared/posix/time_internal.h"
 #include "starboard/shared/starboard/audio_sink/audio_sink_internal.h"
 #include "starboard/shared/starboard/player/filter/cpu_video_frame.h"
@@ -698,15 +699,16 @@
 ApplicationX11::ApplicationX11()
     : wake_up_atom_(None),
       wm_delete_atom_(None),
-#if SB_API_VERSION >= SB_ADD_CONCEALED_STATE_SUPPORT_VERSION || \
-    SB_HAS(CONCEALED_STATE)
+#if SB_API_VERSION >= 13
       wm_change_state_atom_(None),
-#endif  // SB_API_VERSION >= SB_ADD_CONCEALED_STATE_SUPPORT_VERSION ||
-        // SB_HAS(CONCEALED_STATE)
+#endif  // SB_API_VERSION >= 13
       composite_event_id_(kSbEventIdInvalid),
       display_(NULL),
       paste_buffer_key_release_pending_(false) {
   SbAudioSinkPrivate::Initialize();
+#if SB_API_VERSION >= 13
+  NetworkNotifier::GetOrCreateInstance();
+#endif
 }
 
 ApplicationX11::~ApplicationX11() {
@@ -959,11 +961,9 @@
 
   wake_up_atom_ = XInternAtom(display_, "WakeUpAtom", 0);
   wm_delete_atom_ = XInternAtom(display_, "WM_DELETE_WINDOW", True);
-#if SB_API_VERSION >= SB_ADD_CONCEALED_STATE_SUPPORT_VERSION || \
-    SB_HAS(CONCEALED_STATE)
+#if SB_API_VERSION >= 13
   wm_change_state_atom_ = XInternAtom(display_, "WM_CHANGE_STATE", True);
-#endif  // SB_API_VERSION >= SB_ADD_CONCEALED_STATE_SUPPORT_VERSION ||
-        // SB_HAS(CONCEALED_STATE)
+#endif  // SB_API_VERSION >= 13
 
   Composite();
 
@@ -982,11 +982,9 @@
   display_ = NULL;
   wake_up_atom_ = None;
   wm_delete_atom_ = None;
-#if SB_API_VERSION >= SB_ADD_CONCEALED_STATE_SUPPORT_VERSION || \
-    SB_HAS(CONCEALED_STATE)
+#if SB_API_VERSION >= 13
   wm_change_state_atom_ = None;
-#endif  // SB_API_VERSION >= SB_ADD_CONCEALED_STATE_SUPPORT_VERSION ||
-        // SB_HAS(CONCEALED_STATE)
+#endif  // SB_API_VERSION >= 13
 }
 
 shared::starboard::Application::Event* ApplicationX11::GetPendingEvent() {
@@ -1200,8 +1198,7 @@
         return NULL;
       }
 
-#if SB_API_VERSION >= SB_ADD_CONCEALED_STATE_SUPPORT_VERSION || \
-    SB_HAS(CONCEALED_STATE)
+#if SB_API_VERSION >= 13
       if (client_message->message_type == wm_change_state_atom_) {
         SB_DLOG(INFO) << "Received WM_CHANGE_STATE message.";
         if (x_event->xclient.data.l[0] == IconicState) {
@@ -1212,8 +1209,7 @@
           return NULL;
         }
       }
-#endif  // SB_API_VERSION >= SB_ADD_CONCEALED_STATE_SUPPORT_VERSION ||
-        // SB_HAS(CONCEALED_STATE)
+#endif  // SB_API_VERSION >= 13
 
       // Unknown event, ignore.
       return NULL;
@@ -1319,8 +1315,7 @@
       return new Event(kSbEventTypeInput, data.release(),
                        &DeleteDestructor<SbInputData>);
     }
-#if SB_API_VERSION >= SB_ADD_CONCEALED_STATE_SUPPORT_VERSION || \
-    SB_HAS(CONCEALED_STATE)
+#if SB_API_VERSION >= 13
     case FocusIn: {
       Focus(NULL, NULL);
       return NULL;
@@ -1338,8 +1333,7 @@
       Pause(NULL, NULL);
       return NULL;
     }
-#endif  // SB_API_VERSION >= SB_ADD_CONCEALED_STATE_SUPPORT_VERSION ||
-        // SB_HAS(CONCEALED_STATE)
+#endif  // SB_API_VERSION >= 13
     case ConfigureNotify: {
       XConfigureEvent* x_configure_event =
           reinterpret_cast<XConfigureEvent*>(x_event);
diff --git a/src/starboard/shared/x11/application_x11.h b/src/starboard/shared/x11/application_x11.h
index 9ff125b..79b698c 100644
--- a/src/starboard/shared/x11/application_x11.h
+++ b/src/starboard/shared/x11/application_x11.h
@@ -122,11 +122,9 @@
 
   Atom wake_up_atom_;
   Atom wm_delete_atom_;
-#if SB_API_VERSION >= SB_ADD_CONCEALED_STATE_SUPPORT_VERSION || \
-    SB_HAS(CONCEALED_STATE)
+#if SB_API_VERSION >= 13
   Atom wm_change_state_atom_;
-#endif  // SB_API_VERSION >= SB_ADD_CONCEALED_STATE_SUPPORT_VERSION ||
-        // SB_HAS(CONCEALED_STATE)
+#endif  // SB_API_VERSION >= 13
 
   SbEventId composite_event_id_;
   Mutex frame_mutex_;
diff --git a/src/starboard/speech_recognizer.h b/src/starboard/speech_recognizer.h
index 7530e76..6d5d741 100644
--- a/src/starboard/speech_recognizer.h
+++ b/src/starboard/speech_recognizer.h
@@ -35,6 +35,10 @@
 #include "starboard/export.h"
 #include "starboard/types.h"
 
+#if SB_API_VERSION >= 13
+#error Speech Recognizer is deprecated, switch to microphone implementation.
+#endif
+
 #if SB_API_VERSION >= 12 || SB_HAS(SPEECH_RECOGNIZER)
 
 #ifdef __cplusplus
diff --git a/src/starboard/string.h b/src/starboard/string.h
index 0c6cca9..b94d199 100644
--- a/src/starboard/string.h
+++ b/src/starboard/string.h
@@ -327,7 +327,7 @@
   return result;
 }
 
-#if SB_API_VERSION < SB_STDLIB_APIS_DEPRECATED_VERSION
+#if SB_API_VERSION < 13
 
 // Extracts a string that represents an integer from the beginning of |start|
 // into a signed integer in the given |base|. This function is meant to be a
@@ -402,7 +402,7 @@
 //   consumed portion of the string into |out_end|.
 SB_EXPORT double SbStringParseDouble(const char* start, char** out_end);
 
-#endif  // SB_API_VERSION < SB_STDLIB_APIS_DEPRECATED_VERSION
+#endif  // SB_API_VERSION < 13
 
 #ifdef __cplusplus
 }  // extern "C"
diff --git a/src/starboard/stub/BUILD.gn b/src/starboard/stub/BUILD.gn
index fc139ae..643a0a9 100644
--- a/src/starboard/stub/BUILD.gn
+++ b/src/starboard/stub/BUILD.gn
@@ -32,12 +32,7 @@
   ]
 }
 
-config("starboard_implementation") {
-  defines = [ "STARBOARD_IMPLEMENTATION" ]
-}
-
-source_set("stub_sources") {
-  public_configs = [ ":starboard_implementation" ]
+static_library("stub_sources") {
   public_deps = [
     "//starboard:starboard_headers_only",
     "//starboard/common",
@@ -223,12 +218,6 @@
     "//starboard/shared/stub/socket_waiter_wait.cc",
     "//starboard/shared/stub/socket_waiter_wait_timed.cc",
     "//starboard/shared/stub/socket_waiter_wake_up.cc",
-    "//starboard/shared/stub/speech_recognizer_cancel.cc",
-    "//starboard/shared/stub/speech_recognizer_create.cc",
-    "//starboard/shared/stub/speech_recognizer_destroy.cc",
-    "//starboard/shared/stub/speech_recognizer_is_supported.cc",
-    "//starboard/shared/stub/speech_recognizer_start.cc",
-    "//starboard/shared/stub/speech_recognizer_stop.cc",
     "//starboard/shared/stub/speech_synthesis_cancel.cc",
     "//starboard/shared/stub/speech_synthesis_is_supported.cc",
     "//starboard/shared/stub/speech_synthesis_speak.cc",
@@ -347,4 +336,6 @@
     "//starboard/shared/stub/window_show_on_screen_keyboard.cc",
     "//starboard/shared/stub/window_update_on_screen_keyboard_suggestions.cc",
   ]
+
+  public_configs = [ "//starboard/build/config:starboard_implementation" ]
 }
diff --git a/src/starboard/stub/configuration_public.h b/src/starboard/stub/configuration_public.h
index 3e56803..d3076cc 100644
--- a/src/starboard/stub/configuration_public.h
+++ b/src/starboard/stub/configuration_public.h
@@ -162,9 +162,6 @@
 // Whether the current platform implements the on screen keyboard interface.
 #define SB_HAS_ON_SCREEN_KEYBOARD 0
 
-// Whether the current platform has speech recognizer.
-#define SB_HAS_SPEECH_RECOGNIZER 1
-
 // Whether the current platform has speech synthesis.
 #define SB_HAS_SPEECH_SYNTHESIS 1
 
diff --git a/src/starboard/stub/platform_configuration/BUILD.gn b/src/starboard/stub/platform_configuration/BUILD.gn
index ed05ce4..ace2a65 100644
--- a/src/starboard/stub/platform_configuration/BUILD.gn
+++ b/src/starboard/stub/platform_configuration/BUILD.gn
@@ -38,7 +38,7 @@
     cflags += [
       "-fno-rtti",
       "-O2",
-      "gline-tables-only",
+      "-gline-tables-only",
     ]
   }
 
@@ -63,7 +63,6 @@
 
       # protobuf uses hash_map.
       "-Wno-deprecated",
-      "-fno-exceptions",
 
       # Don"t warn about the "struct foo f = {0};" initialization pattern.
       "-Wno-missing-field-initializers",
@@ -72,11 +71,6 @@
       "-Wno-sign-conversion",
       "-fno-strict-aliasing",  # See http://crbug.com/32204
 
-      # TODO(pkasting): In C++11 this is legal, so this should be
-      # removed when we change to that.  (This is also why we don"t
-      # bother fixing all these cases today.)
-      "-Wno-unnamed-type-template-args",
-
       # Triggered by the COMPILE_ASSERT macro.
       "-Wno-unused-local-typedef",
 
@@ -89,7 +83,8 @@
     ]
   }
 
-  defines = [ "__STDC_FORMAT_MACROS" ]  # so that we get PRI*
+  # Defined to get format macro constants from <inttypes.h>.
+  defines = [ "__STDC_FORMAT_MACROS" ]
 
   if (sb_pedantic_warnings) {
     cflags += [
diff --git a/src/starboard/stub/stub_sources.gypi b/src/starboard/stub/stub_sources.gypi
index 7a9cb2a..45ef651 100644
--- a/src/starboard/stub/stub_sources.gypi
+++ b/src/starboard/stub/stub_sources.gypi
@@ -193,12 +193,6 @@
         '<(DEPTH)/starboard/shared/stub/socket_waiter_wait.cc',
         '<(DEPTH)/starboard/shared/stub/socket_waiter_wait_timed.cc',
         '<(DEPTH)/starboard/shared/stub/socket_waiter_wake_up.cc',
-        '<(DEPTH)/starboard/shared/stub/speech_recognizer_cancel.cc',
-        '<(DEPTH)/starboard/shared/stub/speech_recognizer_create.cc',
-        '<(DEPTH)/starboard/shared/stub/speech_recognizer_destroy.cc',
-        '<(DEPTH)/starboard/shared/stub/speech_recognizer_is_supported.cc',
-        '<(DEPTH)/starboard/shared/stub/speech_recognizer_start.cc',
-        '<(DEPTH)/starboard/shared/stub/speech_recognizer_stop.cc',
         '<(DEPTH)/starboard/shared/stub/speech_synthesis_cancel.cc',
         '<(DEPTH)/starboard/shared/stub/speech_synthesis_is_supported.cc',
         '<(DEPTH)/starboard/shared/stub/speech_synthesis_speak.cc',
diff --git a/src/starboard/stub/toolchain/BUILD.gn b/src/starboard/stub/toolchain/BUILD.gn
index 253be81..2a91e84 100644
--- a/src/starboard/stub/toolchain/BUILD.gn
+++ b/src/starboard/stub/toolchain/BUILD.gn
@@ -12,7 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-import("//starboard/build/toolchain/gcc_toolchain.gni")
+import("//build/toolchain/gcc_toolchain.gni")
 
 _home_dir = getenv("HOME")
 _clang_base_path = "$_home_dir/starboard-toolchains/x86_64-linux-gnu-clang-chromium-365097-f7e52fbd-8"
diff --git a/src/starboard/system.h b/src/starboard/system.h
index 72e8193..973aa7d 100644
--- a/src/starboard/system.h
+++ b/src/starboard/system.h
@@ -78,9 +78,11 @@
   // The certification scope that identifies a group of devices.
   kSbSystemPropertyCertificationScope,
 
+#if SB_API_VERSION < 13
   // The HMAC-SHA256 base64 encoded symmetric key used to sign a subset of the
   // query parameters from the application startup URL.
   kSbSystemPropertyBase64EncodedCertificationSecret,
+#endif  // SB_API_VERSION < 13
 
   // The full model number of the main platform chipset, including any
   // vendor-specific prefixes.
@@ -304,7 +306,7 @@
 // Returns the device's current network connection type.
 SB_EXPORT SbSystemConnectionType SbSystemGetConnectionType();
 
-#if SB_API_VERSION >= SB_NETWORK_EVENTS_VERSION
+#if SB_API_VERSION >= 13
 // Returns if the device is disconnected from network. "Disconnected" is chosen
 // over connected because disconnection can be determined with more certainty
 // than connection usually.
@@ -443,8 +445,7 @@
                                  char* out_buffer,
                                  int buffer_size);
 
-#if SB_API_VERSION >= SB_ADD_CONCEALED_STATE_SUPPORT_VERSION || \
-    SB_HAS(CONCEALED_STATE)
+#if SB_API_VERSION >= 13
 // Requests that the application move into the Blurred state at the next
 // convenient point. This should roughly correspond to "unfocused application"
 // in a traditional window manager, where the application may be partially
@@ -539,8 +540,7 @@
 // running. The expectation is that an external system event will bring the
 // application out of the Suspended state.
 SB_EXPORT void SbSystemRequestSuspend();
-#endif  // SB_API_VERSION >= SB_ADD_CONCEALED_STATE_SUPPORT_VERSION ||
-        // SB_HAS(CONCEALED_STATE)
+#endif  // SB_API_VERSION >= 13
 
 // Requests that the application be terminated gracefully at the next
 // convenient point. In the meantime, some work may continue to be done, and
@@ -553,7 +553,7 @@
 //   that is eventually terminated as a result of a call to this function.
 SB_EXPORT void SbSystemRequestStop(int error_level);
 
-#if SB_API_VERSION < SB_SYSTEM_BINARY_SEARCH_DEPRECATED_VERSION
+#if SB_API_VERSION < 13
 // Binary searches a sorted table |base| of |element_count| objects, each
 // element |element_width| bytes in size for an element that |comparator|
 // compares equal to |key|.
@@ -573,7 +573,7 @@
                                      SbSystemComparator comparator);
 #endif
 
-#if SB_API_VERSION < SB_SYSTEM_SORT_DEPRECATED_VERSION
+#if SB_API_VERSION < 13
 // Sorts an array of elements |base|, with |element_count| elements of
 // |element_width| bytes each, using |comparator| as the comparison function.
 //
diff --git a/src/starboard/ui_navigation.h b/src/starboard/ui_navigation.h
index 101a6bf..ba7a0a9 100644
--- a/src/starboard/ui_navigation.h
+++ b/src/starboard/ui_navigation.h
@@ -140,7 +140,7 @@
 // kSbUiNavItemTypeFocus. Any previously focused navigation item should
 // receive the blur event. If the item is not transitively a content of the
 // root item, then this does nothing.
-#if SB_API_VERSION >= SB_UI_NAVIGATION2_VERSION
+#if SB_API_VERSION >= 13
 //
 // Specifying kSbUiNavItemInvalid should remove focus from the UI navigation
 // system.
@@ -159,13 +159,13 @@
 // This specifies directionality for container items. Containers within
 // containers do not inherit directionality. Directionality must be specified
 // for each container explicitly.
-#if SB_API_VERSION >= SB_UI_NAVIGATION2_VERSION
+#if SB_API_VERSION >= 13
 //
 // This should work even if |item| is disabled.
 #endif
   void (*set_item_dir)(SbUiNavItem item, SbUiNavItemDir dir);
 
-#if SB_API_VERSION >= SB_UI_NAVIGATION2_VERSION
+#if SB_API_VERSION >= 13
   // Set the minimum amount of time the focus item should remain focused once
   // it becomes focused. This may be used to make important focus items harder
   // to navigate over. Focus may still be moved before |seconds| has elapsed by
@@ -208,7 +208,7 @@
 // the specified window. Navigation items are only interactable if they are
 // transitively attached to a window.
 //
-#if SB_API_VERSION >= SB_UI_NAVIGATION2_VERSION
+#if SB_API_VERSION >= 13
 // The native UI engine should never change this navigation item's content
 // offset. It is assumed to be used as a proxy for the system window.
 //
@@ -249,7 +249,7 @@
 //
 // Essentially, content items should be drawn at:
 //   [container position] + [content position] - [container content offset]
-#if SB_API_VERSION >= SB_UI_NAVIGATION2_VERSION
+#if SB_API_VERSION >= 13
 //
 // Content items may overlap within a container. This can cause obscured items
 // to be unfocusable. The only rule that needs to be followed is that contents
@@ -267,7 +267,7 @@
 //   [container position] + [content position] - [container content offset]
 // If |item| is not a container, then this does nothing.
 // By default, the content offset is (0,0).
-#if SB_API_VERSION >= SB_UI_NAVIGATION2_VERSION
+#if SB_API_VERSION >= 13
 //
 // This should update the values returned by get_item_content_offset() even
 // if the |item| is disabled.
@@ -278,7 +278,7 @@
 
 // Retrieve the current content offset for the navigation item. If |item| is
 // not a container, then the content offset is (0,0).
-#if SB_API_VERSION >= SB_UI_NAVIGATION2_VERSION
+#if SB_API_VERSION >= 13
 //
 // The native UI engine should not change the content offset of a container
 // unless one of its contents (possibly recursively) is focused. This is to
@@ -289,7 +289,7 @@
                                   float* out_content_offset_x,
                                   float* out_content_offset_y);
 
-#if SB_API_VERSION >= SB_UI_NAVIGATION2_VERSION
+#if SB_API_VERSION >= 13
   // Call |update_function| with |context| to perform a series of UI navigation
   // changes atomically before returning.
   void (*do_batch_update)(void (*update_function)(void*), void* context);
diff --git a/src/third_party/QR-Code-generator/METADATA b/src/third_party/QR-Code-generator/METADATA
index 5c33ade..48a4d16 100644
--- a/src/third_party/QR-Code-generator/METADATA
+++ b/src/third_party/QR-Code-generator/METADATA
@@ -17,4 +17,5 @@
     month: 2
     day: 26
   }
+  license_type: NOTICE
 }
diff --git a/src/third_party/angle/BUILD.gn b/src/third_party/angle/BUILD.gn
index 42d92c7..ddda818 100644
--- a/src/third_party/angle/BUILD.gn
+++ b/src/third_party/angle/BUILD.gn
@@ -7,7 +7,9 @@
 if (angle_has_build) {
   import("//build/config/linux/pkg_config.gni")
   import("//build/config/ui.gni")
-  import("//testing/libfuzzer/fuzzer_test.gni")
+  if (!is_starboard) {
+    import("//testing/libfuzzer/fuzzer_test.gni")
+  }
 
   if (is_android) {
     # android/rules.gni can only be imported for Android targets
@@ -31,7 +33,8 @@
 
   # Don't build extra (test, samples etc) for Windows UWP. We don't have
   # infrastructure (e.g. windowing helper functions) in place to run them.
-  angle_build_all = !build_with_chromium && !angle_is_winuwp && angle_has_build
+  angle_build_all = !build_with_chromium && !angle_is_winuwp &&
+                    angle_has_build && !is_starboard
 }
 
 if (angle_build_all) {
@@ -45,6 +48,10 @@
       "$angle_root/samples:angle_samples",
       "$angle_root/src/tests:angle_tests",
     ]
+
+    if (is_starboard) {
+      deps -= [ ":angle_shader_translator" ]
+    }
   }
 }
 
@@ -98,10 +105,12 @@
 
   defines = []
 
-  if (angle_64bit_current_cpu) {
-    defines += [ "ANGLE_IS_64_BIT_CPU" ]
-  } else {
-    defines += [ "ANGLE_IS_32_BIT_CPU" ]
+  if (!is_starboard) {
+    if (angle_64bit_current_cpu) {
+      defines += [ "ANGLE_IS_64_BIT_CPU" ]
+    } else {
+      defines += [ "ANGLE_IS_32_BIT_CPU" ]
+    }
   }
 
   if (angle_enable_trace) {
@@ -215,6 +224,7 @@
 angle_source_set("includes") {
   sources = libangle_includes
   public_configs = [ ":includes_config" ]
+  deps = [ "//starboard:starboard_headers_only" ]
 }
 
 angle_static_library("preprocessor") {
@@ -242,6 +252,19 @@
   }
 }
 
+config("starboard_defines") {
+  defines = []
+  if (is_linux) {
+    defines += [ "ANGLE_PLATFORM_LINUX" ]
+  }
+  if (is_posix) {
+    defines += [ "ANGLE_PLATFORM_POSIX" ]
+  }
+  if (is_win) {
+    defines += [ "ANGLE_PLATFORM_WINDOWS" ]
+  }
+}
+
 config("angle_common_config") {
   include_dirs = [ "src/common/third_party/base" ]
   if (is_android) {
@@ -276,7 +299,7 @@
   sources = xxhash_sources
 }
 
-if (angle_has_build) {
+if (angle_has_build && !is_starboard) {
   fuzzer_test("xxhash_fuzzer") {
     sources = [
       "src/common/third_party/xxhash/xxhash_fuzzer.cpp",
@@ -297,6 +320,7 @@
 
   deps = [
     ":xxhash",
+    "//starboard/common",
   ]
 
   public_deps = [
@@ -393,7 +417,7 @@
     }
   }
 
-  if (use_libpci) {
+  if (use_libpci && !is_starboard) {
     sources += libangle_gpu_info_util_libpci_sources
     defines += [ "GPU_INFO_USE_LIBPCI" ]
     libs += [ "pci" ]
@@ -459,6 +483,7 @@
   deps = [
     ":includes",
     ":preprocessor",
+    "//starboard:starboard_headers_only",
   ]
 
   public_deps = [
@@ -658,7 +683,7 @@
   }
 
   # Enable extra Chromium style warnings for libANGLE.
-  if (is_clang && angle_has_build) {
+  if (is_clang && angle_has_build && !is_starboard) {
     suppressed_configs -= [ "//build/config/clang:find_bad_constructs" ]
   }
 
@@ -831,7 +856,7 @@
 }
 
 template("angle_libGLESv2") {
-  angle_shared_library(target_name) {
+  angle_static_library(target_name) {
     sources = libglesv2_sources + invoker.sources
 
     if (is_win) {
@@ -924,7 +949,7 @@
   ]
 }
 
-angle_shared_library("libGLESv1_CM") {
+angle_static_library("libGLESv1_CM") {
   sources = libglesv1_cm_sources
   output_name = "libGLESv1_CM${angle_libs_suffix}"
 
@@ -972,7 +997,7 @@
   ]
 }
 
-angle_shared_library("libEGL") {
+angle_static_library("libEGL") {
   sources = libegl_sources
   output_name = "libEGL${angle_libs_suffix}"
 
@@ -1006,6 +1031,10 @@
   data_deps = [
     ":libGLESv2",
   ]
+
+  if (is_starboard) {
+    deps -= [ ":libEGL_egl_loader" ]
+  }
 }
 
 angle_static_library("libEGL_static") {
@@ -1078,7 +1107,6 @@
 
 foreach(is_shared_library,
         [
-          true,
           false,
         ]) {
   if (is_shared_library) {
@@ -1091,6 +1119,10 @@
     dep_suffix = "_static"
   }
 
+  if (is_starboard) {
+    not_needed([ "dep_suffix" ])
+  }
+
   target(library_type, library_name) {
     sources = util_sources
     deps = [
@@ -1121,13 +1153,11 @@
       ]
     }
 
-    if (angle_use_x11) {
+    if (angle_use_x11 && !is_starboard) {
       sources += util_x11_sources
     }
 
     if (is_android) {
-      # To prevent linux sources filtering on android
-      set_sources_assignment_filter([])
       sources += util_android_sources
       libs += [
         "android",
@@ -1180,21 +1210,23 @@
   }
 }
 
-# Convenience targets for some of the samples so they can be built
-# with Chromium's toolchain.
-angle_executable("angle_shader_translator") {
-  testonly = true
+if (!is_starboard) {
+  # Convenience targets for some of the samples so they can be built
+  # with Chromium's toolchain.
+  angle_executable("angle_shader_translator") {
+    testonly = true
 
-  sources = [
-    "samples/shader_translator/shader_translator.cpp",
-  ]
+    sources = [
+      "samples/shader_translator/shader_translator.cpp",
+    ]
 
-  deps = [
-    ":translator",
-  ]
+    deps = [
+      ":translator",
+    ]
+  }
 }
 
-if (angle_has_build) {
+if (angle_has_build && !is_starboard) {
   config("angle_feature_support_config") {
     include_dirs = [
       "include",
diff --git a/src/third_party/angle/METADATA b/src/third_party/angle/METADATA
index 7d65f1c..d133ef0 100644
--- a/src/third_party/angle/METADATA
+++ b/src/third_party/angle/METADATA
@@ -17,4 +17,5 @@
     month: 11
     day: 20
   }
+  license_type: NOTICE
 }
diff --git a/src/third_party/angle/android/angle_apk.gni b/src/third_party/angle/android/angle_apk.gni
index 4207ce2..637268a 100644
--- a/src/third_party/angle/android/angle_apk.gni
+++ b/src/third_party/angle/android/angle_apk.gni
@@ -14,6 +14,10 @@
   "libfeature_support",
 ]
 
+if (is_starboard) {
+  angle_libraries -= [ "libfeature_support" ]
+}
+
 if (enable_java_templates) {
   template("angle_apk") {
     manifest_target_name = "${target_name}__manifest"
diff --git a/src/third_party/angle/gni/angle.gni b/src/third_party/angle/gni/angle.gni
index 5b55768..a1e1621 100644
--- a/src/third_party/angle/gni/angle.gni
+++ b/src/third_party/angle/gni/angle.gni
@@ -13,7 +13,11 @@
   import("//build/config/sanitizers/sanitizers.gni")
   import("//build/config/ui.gni")  # import the use_x11 variable
   import("//build_overrides/build.gni")
-  import("//testing/test.gni")
+  if (is_starboard) {
+    import("//starboard/build/test.gni")
+  } else {
+    import("//testing/test.gni")
+  }
   if (is_android) {
     import("//build/config/android/config.gni")
   }
@@ -96,7 +100,7 @@
       angle_has_build && ((is_win && !angle_is_winuwp) ||
                           (is_linux && angle_use_x11 && !is_chromeos) ||
                           (is_android && ndk_api_level_at_least_26) ||
-                          is_fuchsia || is_ggp || is_mac)
+                          is_fuchsia || is_ggp || is_mac) && !is_starboard
   angle_enable_null = true
   angle_enable_essl = true
   angle_enable_glsl = true
@@ -109,8 +113,8 @@
   # Currently SwiftShader's Vulkan front-end doesn't build on Android.
   # SwiftShader is not needed on Fuchsia because Vulkan is supported on all
   # devices that run Fuchsia.
-  angle_enable_swiftshader =
-      angle_enable_vulkan && !is_android && !is_fuchsia && !is_ggp
+  angle_enable_swiftshader = angle_enable_vulkan && !is_android &&
+                             !is_fuchsia && !is_ggp && !is_starboard
 
   angle_enable_gl_null = angle_enable_gl
   angle_enable_hlsl = angle_enable_d3d9 || angle_enable_d3d11
@@ -134,15 +138,19 @@
   angle_root + ":internal_config",
 ]
 
+if (is_starboard) {
+  angle_common_configs += [ angle_root + ":starboard_defines" ]
+}
+
 angle_remove_configs = []
 
-if (angle_has_build) {
+if (angle_has_build && !is_starboard) {
   angle_remove_configs += [ "//build/config/compiler:default_include_dirs" ]
 }
 angle_better_stack_traces =
     (is_debug || dcheck_always_on) && is_linux && !is_asan && !is_cfi
 
-if (angle_has_build && is_clang) {
+if (angle_has_build && is_clang && !is_starboard) {
   angle_remove_configs += [ "//build/config/clang:find_bad_constructs" ]
 
   # Disabled to enable better stack traces.
@@ -244,6 +252,10 @@
       configs += [ angle_root + ":build_id_config" ]
       configs -= [ "//build/config/android:hide_all_but_jni_onload" ]
     }
+
+    if (is_starboard) {
+      install_target = true
+    }
   }
 }
 
@@ -291,6 +303,13 @@
     "//third_party/googletest:gtest",
   ]
 
+  if (is_starboard) {
+    _googletest_deps -= [
+      "//third_party/googletest:gmock",
+      "//third_party/googletest:gtest",
+    ]
+  }
+
   # TODO(jmadill): Migrate to standalone harness. http://anglebug.com/3162
   if (build_with_chromium) {
     _googletest_deps += [ "//base/test:test_support" ]
diff --git a/src/third_party/angle/src/tests/BUILD.gn b/src/third_party/angle/src/tests/BUILD.gn
index a2ab137..886c6d4 100644
--- a/src/third_party/angle/src/tests/BUILD.gn
+++ b/src/third_party/angle/src/tests/BUILD.gn
@@ -3,7 +3,11 @@
 # found in the LICENSE file.
 
 import("//build/config/chromecast_build.gni")
-import("//testing/test.gni")
+if (is_starboard) {
+  import("//starboard/build/test.gni")
+} else {
+  import("//testing/test.gni")
+}
 import("../../gni/angle.gni")
 import("angle_unittests.gni")
 
diff --git a/src/third_party/angle/src/third_party/libXNVCtrl/BUILD.gn b/src/third_party/angle/src/third_party/libXNVCtrl/BUILD.gn
index 7bacc36..93476f3 100644
--- a/src/third_party/angle/src/third_party/libXNVCtrl/BUILD.gn
+++ b/src/third_party/angle/src/third_party/libXNVCtrl/BUILD.gn
@@ -23,4 +23,8 @@
     ":libXNVCtrl_config",
     "//build/config/linux:x11",
   ]
+
+  if (is_starboard) {
+    configs -= [ "//build/config/linux:x11" ]
+  }
 }
diff --git a/src/third_party/angle/util/posix/test_utils_posix.cpp b/src/third_party/angle/util/posix/test_utils_posix.cpp
index b1ec61c..2b93cdc 100644
--- a/src/third_party/angle/util/posix/test_utils_posix.cpp
+++ b/src/third_party/angle/util/posix/test_utils_posix.cpp
@@ -349,7 +349,7 @@
             "default priority");
         success = false;
     }
-#    if ANGLE_PLATFORM_LINUX
+#    if defined(ANGLE_PLATFORM_LINUX)
     cpu_set_t affinity;
     CPU_SET(0, &affinity);
     errno = 0;
diff --git a/src/third_party/aom_includes/METADATA b/src/third_party/aom_includes/METADATA
index 8bf729a..e1ea361 100644
--- a/src/third_party/aom_includes/METADATA
+++ b/src/third_party/aom_includes/METADATA
@@ -13,4 +13,5 @@
     month: 6
     day: 25
   }
+  license_type: NOTICE
 }
diff --git a/src/third_party/blink/METADATA b/src/third_party/blink/METADATA
index a84f45f..cf0800e 100644
--- a/src/third_party/blink/METADATA
+++ b/src/third_party/blink/METADATA
@@ -17,4 +17,5 @@
     month: 11
     day: 4
   }
+  license_type: NOTICE
 }
diff --git a/src/third_party/boringssl/BUILD.gn b/src/third_party/boringssl/BUILD.gn
new file mode 100644
index 0000000..ced99bd
--- /dev/null
+++ b/src/third_party/boringssl/BUILD.gn
@@ -0,0 +1,155 @@
+import("//third_party/boringssl/buildfiles.gni")
+
+declare_args() {
+  asm_target_arch = target_cpu
+}
+
+if (is_starboard) {
+  declare_args() {
+    openssl_config_path = "$boringssl_root/config/starboard"
+  }
+}
+
+config("external_config") {
+  include_dirs = [ "$boringssl_root/include" ]
+  if (is_starboard) {
+    include_dirs += [ openssl_config_path ]
+  }
+}
+
+config("internal_config") {
+  configs = [ ":external_config" ]
+  defines = [
+    "PURIFY",
+    "TERMIO",
+    "_REENTRANT",
+  ]
+  cflags = [
+    "-fPIC",
+    "-fvisibility=hidden",
+  ]
+  cflags_c = [
+    "-std=gnu99",
+    "-Wno-bad-function-cast",
+  ]
+  ldflags = [ "-fPIC" ]
+  include_dirs = [ "." ]
+
+  if (is_starboard) {
+    defines += [
+      "NO_SYS_PARAM_H",
+      "NO_SYS_UN_H",
+      "NO_SYSLOG",
+      "OPENSSL_NO_CAMELLIA",
+      "OPENSSL_NO_CAPIENG",
+      "OPENSSL_NO_CAST",
+      "OPENSSL_NO_CMS",
+      "OPENSSL_NO_DYNAMIC_ENGINE",
+      "OPENSSL_NO_EC_NISTP_64_GCC_128",
+      "OPENSSL_NO_GMP",
+      "OPENSSL_NO_IDEA",
+      "OPENSSL_NO_JPAKE",
+      "OPENSSL_NO_KRB5",
+      "OPENSSL_NO_MDC2",
+      "OPENSSL_NO_OCSP",
+      "OPENSSL_NO_RC5",
+      "OPENSSL_NO_RFC3779",
+      "OPENSSL_NO_SCTP",
+      "OPENSSL_NO_SEED",
+      "OPENSSL_NO_STORE",
+      "OPENSSL_NO_SOCK",  # Added by Cobalt to remove unused socket code.
+      "OPENSSL_NO_WHIRLPOOL",
+      "OPENSSL_NO_POSIX_IO",
+    ]
+  }
+}
+
+partial_crypto_excludes = [
+  "$boringssl_root/crypto/bio/connect.c",
+  "$boringssl_root/crypto/bio/fd.c",
+  "$boringssl_root/crypto/bio/socket.c",
+  "$boringssl_root/crypto/bio/socket_helper.c",
+]
+
+static_library("crypto") {
+  sources = boringssl_crypto_files + boringssl_ssl_files
+  sources -= partial_crypto_excludes
+
+  configs += [ ":internal_config" ]
+  all_dependent_configs = [ ":external_config" ]
+
+  if (is_starboard) {
+    sources -= [
+      "$boringssl_root/crypto/rand_extra/deterministic.c",
+      "$boringssl_root/crypto/rand_extra/fuchsia.c",
+      "$boringssl_root/crypto/rand_extra/windows.c",
+    ]
+    sources += [
+      "$boringssl_root/crypto/cpu-starboard.c",
+      "$boringssl_root/crypto/rand_extra/starboard.c",
+    ]
+    public_deps = [
+      "//starboard:starboard_headers_only",
+      "//starboard/client_porting/eztime",
+    ]
+    configs -= [ "//starboard/build/config:size" ]
+    configs += [ "//starboard/build/config:speed" ]
+
+    if (sb_is_evergreen) {
+      sabi_json = read_file(sabi_path, "json")
+      sabi_variables = sabi_json.variables
+      calling_convention = sabi_variables.calling_convention
+      if ((calling_convention != "aarch64" && calling_convention != "eabi" &&
+           calling_convention != "sysv" && calling_convention != "windows") ||
+          (asm_target_arch != "x86" || asm_target_arch != "x64" ||
+           asm_target_arch != "arm" || asm_target_arch != "arm64")) {
+        defines = [ "OPENSSL_NO_ASM" ]
+      } else {
+        if (calling_convention == "aarch64" || calling_convention == "eabi" ||
+            calling_convention == "sysv") {
+          if (asm_target_arch == "x86") {
+            sources += boringssl_linux_x86_files
+          } else if (asm_target_arch == "x64") {
+            sources += boringssl_linux_x86_64_files
+          } else if (asm_target_arch == "arm") {
+            sources += boringssl_linux_arm_files
+          } else if (asm_target_arch == "arm64") {
+            sources += boringssl_linux_aarch64_files
+          } else if (calling_convention == "windows") {
+            if (asm_target_arch == "x86") {
+              sources += boringssl_win_x86_files
+            } else if (asm_target_arch == "x64") {
+              sources += boringssl_win_x86_64_files
+            }
+          }
+        }
+      }
+    } else {
+      if ((!is_linux && !is_android && !is_apple) ||
+          (asm_target_arch != "x86" && asm_target_arch != "x64" &&
+           asm_target_arch != "arm" && asm_target_arch != "arm64")) {
+        defines = [ "OPENSSL_NO_ASM" ]
+      } else if (is_linux || is_android) {
+        if (asm_target_arch == "x86") {
+          sources += boringssl_linux_x86_files
+        } else if (asm_target_arch == "x64") {
+          sources += boringssl_linux_x86_64_files
+        } else if (asm_target_arch == "arm") {
+          sources += boringssl_linux_arm_files
+        } else if (asm_target_arch == "arm64") {
+          sources += boringssl_linux_aarch64_files
+        }
+      }
+    }
+  }
+}
+
+static_library("crypto_full") {
+  sources = partial_crypto_excludes
+  public_deps = [ ":crypto" ]
+  configs += [ ":internal_config" ]
+  if (is_starboard) {
+    configs -= [ "//starboard/build/config:size" ]
+    configs += [ "//starboard/build/config:speed" ]
+  }
+}
diff --git a/src/third_party/boringssl/buildfiles.gni b/src/third_party/boringssl/buildfiles.gni
new file mode 100644
index 0000000..ce0c077
--- /dev/null
+++ b/src/third_party/boringssl/buildfiles.gni
@@ -0,0 +1,521 @@
+declare_args() {
+  boringssl_root = "//third_party/boringssl/src"
+}
+
+boringssl_ssl_files = [
+  "$boringssl_root/include/openssl/dtls1.h",
+  "$boringssl_root/include/openssl/ssl.h",
+  "$boringssl_root/include/openssl/ssl3.h",
+  "$boringssl_root/include/openssl/tls1.h",
+  "$boringssl_root/ssl/bio_ssl.cc",
+  "$boringssl_root/ssl/d1_both.cc",
+  "$boringssl_root/ssl/d1_lib.cc",
+  "$boringssl_root/ssl/d1_pkt.cc",
+  "$boringssl_root/ssl/d1_srtp.cc",
+  "$boringssl_root/ssl/dtls_method.cc",
+  "$boringssl_root/ssl/dtls_record.cc",
+  "$boringssl_root/ssl/handshake.cc",
+  "$boringssl_root/ssl/handshake_client.cc",
+  "$boringssl_root/ssl/handshake_server.cc",
+  "$boringssl_root/ssl/internal.h",
+  "$boringssl_root/ssl/s3_both.cc",
+  "$boringssl_root/ssl/s3_lib.cc",
+  "$boringssl_root/ssl/s3_pkt.cc",
+  "$boringssl_root/ssl/ssl_aead_ctx.cc",
+  "$boringssl_root/ssl/ssl_asn1.cc",
+  "$boringssl_root/ssl/ssl_buffer.cc",
+  "$boringssl_root/ssl/ssl_cert.cc",
+  "$boringssl_root/ssl/ssl_cipher.cc",
+  "$boringssl_root/ssl/ssl_file.cc",
+  "$boringssl_root/ssl/ssl_key_share.cc",
+  "$boringssl_root/ssl/ssl_lib.cc",
+  "$boringssl_root/ssl/ssl_privkey.cc",
+  "$boringssl_root/ssl/ssl_session.cc",
+  "$boringssl_root/ssl/ssl_stat.cc",
+  "$boringssl_root/ssl/ssl_transcript.cc",
+  "$boringssl_root/ssl/ssl_versions.cc",
+  "$boringssl_root/ssl/ssl_x509.cc",
+  "$boringssl_root/ssl/t1_enc.cc",
+  "$boringssl_root/ssl/t1_lib.cc",
+  "$boringssl_root/ssl/tls13_both.cc",
+  "$boringssl_root/ssl/tls13_client.cc",
+  "$boringssl_root/ssl/tls13_enc.cc",
+  "$boringssl_root/ssl/tls13_server.cc",
+  "$boringssl_root/ssl/tls_method.cc",
+  "$boringssl_root/ssl/tls_record.cc",
+]
+boringssl_crypto_files = [
+  "err_data.c",
+  "$boringssl_root/crypto/asn1/a_bitstr.c",
+  "$boringssl_root/crypto/asn1/a_bool.c",
+  "$boringssl_root/crypto/asn1/a_d2i_fp.c",
+  "$boringssl_root/crypto/asn1/a_dup.c",
+  "$boringssl_root/crypto/asn1/a_enum.c",
+  "$boringssl_root/crypto/asn1/a_gentm.c",
+  "$boringssl_root/crypto/asn1/a_i2d_fp.c",
+  "$boringssl_root/crypto/asn1/a_int.c",
+  "$boringssl_root/crypto/asn1/a_mbstr.c",
+  "$boringssl_root/crypto/asn1/a_object.c",
+  "$boringssl_root/crypto/asn1/a_octet.c",
+  "$boringssl_root/crypto/asn1/a_print.c",
+  "$boringssl_root/crypto/asn1/a_strnid.c",
+  "$boringssl_root/crypto/asn1/a_time.c",
+  "$boringssl_root/crypto/asn1/a_type.c",
+  "$boringssl_root/crypto/asn1/a_utctm.c",
+  "$boringssl_root/crypto/asn1/a_utf8.c",
+  "$boringssl_root/crypto/asn1/asn1_lib.c",
+  "$boringssl_root/crypto/asn1/asn1_locl.h",
+  "$boringssl_root/crypto/asn1/asn1_par.c",
+  "$boringssl_root/crypto/asn1/asn_pack.c",
+  "$boringssl_root/crypto/asn1/f_enum.c",
+  "$boringssl_root/crypto/asn1/f_int.c",
+  "$boringssl_root/crypto/asn1/f_string.c",
+  "$boringssl_root/crypto/asn1/tasn_dec.c",
+  "$boringssl_root/crypto/asn1/tasn_enc.c",
+  "$boringssl_root/crypto/asn1/tasn_fre.c",
+  "$boringssl_root/crypto/asn1/tasn_new.c",
+  "$boringssl_root/crypto/asn1/tasn_typ.c",
+  "$boringssl_root/crypto/asn1/tasn_utl.c",
+  "$boringssl_root/crypto/asn1/time_support.c",
+  "$boringssl_root/crypto/base64/base64.c",
+  "$boringssl_root/crypto/bio/bio.c",
+  "$boringssl_root/crypto/bio/bio_mem.c",
+  "$boringssl_root/crypto/bio/connect.c",
+  "$boringssl_root/crypto/bio/fd.c",
+  "$boringssl_root/crypto/bio/file.c",
+  "$boringssl_root/crypto/bio/hexdump.c",
+  "$boringssl_root/crypto/bio/internal.h",
+  "$boringssl_root/crypto/bio/pair.c",
+  "$boringssl_root/crypto/bio/printf.c",
+  "$boringssl_root/crypto/bio/socket.c",
+  "$boringssl_root/crypto/bio/socket_helper.c",
+  "$boringssl_root/crypto/bn_extra/bn_asn1.c",
+  "$boringssl_root/crypto/bn_extra/convert.c",
+  "$boringssl_root/crypto/buf/buf.c",
+  "$boringssl_root/crypto/bytestring/asn1_compat.c",
+  "$boringssl_root/crypto/bytestring/ber.c",
+  "$boringssl_root/crypto/bytestring/cbb.c",
+  "$boringssl_root/crypto/bytestring/cbs.c",
+  "$boringssl_root/crypto/bytestring/internal.h",
+  "$boringssl_root/crypto/bytestring/unicode.c",
+  "$boringssl_root/crypto/chacha/chacha.c",
+  "$boringssl_root/crypto/cipher_extra/cipher_extra.c",
+  "$boringssl_root/crypto/cipher_extra/derive_key.c",
+  "$boringssl_root/crypto/cipher_extra/e_aesccm.c",
+  "$boringssl_root/crypto/cipher_extra/e_aesctrhmac.c",
+  "$boringssl_root/crypto/cipher_extra/e_aesgcmsiv.c",
+  "$boringssl_root/crypto/cipher_extra/e_chacha20poly1305.c",
+  "$boringssl_root/crypto/cipher_extra/e_null.c",
+  "$boringssl_root/crypto/cipher_extra/e_rc2.c",
+  "$boringssl_root/crypto/cipher_extra/e_rc4.c",
+  "$boringssl_root/crypto/cipher_extra/e_tls.c",
+  "$boringssl_root/crypto/cipher_extra/internal.h",
+  "$boringssl_root/crypto/cipher_extra/tls_cbc.c",
+  "$boringssl_root/crypto/cmac/cmac.c",
+  "$boringssl_root/crypto/conf/conf.c",
+  "$boringssl_root/crypto/conf/conf_def.h",
+  "$boringssl_root/crypto/conf/internal.h",
+  "$boringssl_root/crypto/cpu-arm.c",
+  "$boringssl_root/crypto/cpu-intel.c",
+  "$boringssl_root/crypto/cpu-ppc64le.c",
+  "$boringssl_root/crypto/crypto.c",
+  "$boringssl_root/third_party/fiat/curve25519.c",
+  "$boringssl_root/crypto/curve25519/spake25519.c",
+  "$boringssl_root/crypto/dh/check.c",
+  "$boringssl_root/crypto/dh/dh.c",
+  "$boringssl_root/crypto/dh/dh_asn1.c",
+  "$boringssl_root/crypto/dh/params.c",
+  "$boringssl_root/crypto/digest_extra/digest_extra.c",
+  "$boringssl_root/crypto/dsa/dsa.c",
+  "$boringssl_root/crypto/dsa/dsa_asn1.c",
+  "$boringssl_root/crypto/ec_extra/ec_asn1.c",
+  "$boringssl_root/crypto/ecdh_extra/ecdh_extra.c",
+  "$boringssl_root/crypto/ecdsa_extra/ecdsa_asn1.c",
+  "$boringssl_root/crypto/engine/engine.c",
+  "$boringssl_root/crypto/err/err.c",
+  "$boringssl_root/crypto/err/internal.h",
+  "$boringssl_root/crypto/evp/digestsign.c",
+  "$boringssl_root/crypto/evp/evp.c",
+  "$boringssl_root/crypto/evp/evp_asn1.c",
+  "$boringssl_root/crypto/evp/evp_ctx.c",
+  "$boringssl_root/crypto/evp/internal.h",
+  "$boringssl_root/crypto/evp/p_dsa_asn1.c",
+  "$boringssl_root/crypto/evp/p_ec.c",
+  "$boringssl_root/crypto/evp/p_ec_asn1.c",
+  "$boringssl_root/crypto/evp/p_ed25519.c",
+  "$boringssl_root/crypto/evp/p_ed25519_asn1.c",
+  "$boringssl_root/crypto/evp/p_rsa.c",
+  "$boringssl_root/crypto/evp/p_rsa_asn1.c",
+  "$boringssl_root/crypto/evp/pbkdf.c",
+  "$boringssl_root/crypto/evp/print.c",
+  "$boringssl_root/crypto/evp/scrypt.c",
+  "$boringssl_root/crypto/evp/sign.c",
+  "$boringssl_root/crypto/ex_data.c",
+  "$boringssl_root/crypto/fipsmodule/aes/internal.h",
+  "$boringssl_root/crypto/fipsmodule/bcm.c",
+  "$boringssl_root/crypto/fipsmodule/bn/internal.h",
+  "$boringssl_root/crypto/fipsmodule/bn/rsaz_exp.h",
+  "$boringssl_root/crypto/fipsmodule/cipher/internal.h",
+  "$boringssl_root/crypto/fipsmodule/delocate.h",
+  "$boringssl_root/crypto/fipsmodule/des/internal.h",
+  "$boringssl_root/crypto/fipsmodule/digest/internal.h",
+  "$boringssl_root/crypto/fipsmodule/digest/md32_common.h",
+  "$boringssl_root/crypto/fipsmodule/ec/internal.h",
+  "$boringssl_root/crypto/fipsmodule/ec/p256-x86_64-table.h",
+  "$boringssl_root/crypto/fipsmodule/ec/p256-x86_64.h",
+  "$boringssl_root/crypto/fipsmodule/is_fips.c",
+  "$boringssl_root/crypto/fipsmodule/modes/internal.h",
+  "$boringssl_root/crypto/fipsmodule/rand/internal.h",
+  "$boringssl_root/crypto/fipsmodule/rsa/internal.h",
+  "$boringssl_root/crypto/hkdf/hkdf.c",
+  "$boringssl_root/crypto/internal.h",
+  "$boringssl_root/crypto/lhash/lhash.c",
+  "$boringssl_root/crypto/mem_starboard.c",
+  "$boringssl_root/crypto/obj/obj.c",
+  "$boringssl_root/crypto/obj/obj_dat.h",
+  "$boringssl_root/crypto/obj/obj_xref.c",
+  "$boringssl_root/crypto/pem/pem_all.c",
+  "$boringssl_root/crypto/pem/pem_info.c",
+  "$boringssl_root/crypto/pem/pem_lib.c",
+  "$boringssl_root/crypto/pem/pem_oth.c",
+  "$boringssl_root/crypto/pem/pem_pk8.c",
+  "$boringssl_root/crypto/pem/pem_pkey.c",
+  "$boringssl_root/crypto/pem/pem_x509.c",
+  "$boringssl_root/crypto/pem/pem_xaux.c",
+  "$boringssl_root/crypto/pkcs7/internal.h",
+  "$boringssl_root/crypto/pkcs7/pkcs7.c",
+  "$boringssl_root/crypto/pkcs7/pkcs7_x509.c",
+  "$boringssl_root/crypto/pkcs8/internal.h",
+  "$boringssl_root/crypto/pkcs8/p5_pbev2.c",
+  "$boringssl_root/crypto/pkcs8/pkcs8.c",
+  "$boringssl_root/crypto/pkcs8/pkcs8_x509.c",
+  "$boringssl_root/crypto/poly1305/internal.h",
+  "$boringssl_root/crypto/poly1305/poly1305.c",
+  "$boringssl_root/crypto/poly1305/poly1305_arm.c",
+  "$boringssl_root/crypto/poly1305/poly1305_vec.c",
+  "$boringssl_root/crypto/pool/internal.h",
+  "$boringssl_root/crypto/pool/pool.c",
+  "$boringssl_root/crypto/rand_extra/deterministic.c",
+  "$boringssl_root/crypto/rand_extra/forkunsafe.c",
+  "$boringssl_root/crypto/rand_extra/fuchsia.c",
+  "$boringssl_root/crypto/rand_extra/rand_extra.c",
+  "$boringssl_root/crypto/rand_extra/windows.c",
+  "$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",
+  "$boringssl_root/crypto/x509/a_strex.c",
+  "$boringssl_root/crypto/x509/a_verify.c",
+  "$boringssl_root/crypto/x509/algorithm.c",
+  "$boringssl_root/crypto/x509/asn1_gen.c",
+  "$boringssl_root/crypto/x509/by_dir.c",
+  "$boringssl_root/crypto/x509/by_file.c",
+  "$boringssl_root/crypto/x509/charmap.h",
+  "$boringssl_root/crypto/x509/i2d_pr.c",
+  "$boringssl_root/crypto/x509/internal.h",
+  "$boringssl_root/crypto/x509/rsa_pss.c",
+  "$boringssl_root/crypto/x509/t_crl.c",
+  "$boringssl_root/crypto/x509/t_req.c",
+  "$boringssl_root/crypto/x509/t_x509.c",
+  "$boringssl_root/crypto/x509/t_x509a.c",
+  "$boringssl_root/crypto/x509/vpm_int.h",
+  "$boringssl_root/crypto/x509/x509.c",
+  "$boringssl_root/crypto/x509/x509_att.c",
+  "$boringssl_root/crypto/x509/x509_cmp.c",
+  "$boringssl_root/crypto/x509/x509_d2.c",
+  "$boringssl_root/crypto/x509/x509_def.c",
+  "$boringssl_root/crypto/x509/x509_ext.c",
+  "$boringssl_root/crypto/x509/x509_lu.c",
+  "$boringssl_root/crypto/x509/x509_obj.c",
+  "$boringssl_root/crypto/x509/x509_r2x.c",
+  "$boringssl_root/crypto/x509/x509_req.c",
+  "$boringssl_root/crypto/x509/x509_set.c",
+  "$boringssl_root/crypto/x509/x509_trs.c",
+  "$boringssl_root/crypto/x509/x509_txt.c",
+  "$boringssl_root/crypto/x509/x509_v3.c",
+  "$boringssl_root/crypto/x509/x509_vfy.c",
+  "$boringssl_root/crypto/x509/x509_vpm.c",
+  "$boringssl_root/crypto/x509/x509cset.c",
+  "$boringssl_root/crypto/x509/x509name.c",
+  "$boringssl_root/crypto/x509/x509rset.c",
+  "$boringssl_root/crypto/x509/x509spki.c",
+  "$boringssl_root/crypto/x509/x_algor.c",
+  "$boringssl_root/crypto/x509/x_all.c",
+  "$boringssl_root/crypto/x509/x_attrib.c",
+  "$boringssl_root/crypto/x509/x_crl.c",
+  "$boringssl_root/crypto/x509/x_exten.c",
+  "$boringssl_root/crypto/x509/x_info.c",
+  "$boringssl_root/crypto/x509/x_name.c",
+  "$boringssl_root/crypto/x509/x_pkey.c",
+  "$boringssl_root/crypto/x509/x_pubkey.c",
+  "$boringssl_root/crypto/x509/x_req.c",
+  "$boringssl_root/crypto/x509/x_sig.c",
+  "$boringssl_root/crypto/x509/x_spki.c",
+  "$boringssl_root/crypto/x509/x_val.c",
+  "$boringssl_root/crypto/x509/x_x509.c",
+  "$boringssl_root/crypto/x509/x_x509a.c",
+  "$boringssl_root/crypto/x509v3/ext_dat.h",
+  "$boringssl_root/crypto/x509v3/pcy_cache.c",
+  "$boringssl_root/crypto/x509v3/pcy_data.c",
+  "$boringssl_root/crypto/x509v3/pcy_int.h",
+  "$boringssl_root/crypto/x509v3/pcy_lib.c",
+  "$boringssl_root/crypto/x509v3/pcy_map.c",
+  "$boringssl_root/crypto/x509v3/pcy_node.c",
+  "$boringssl_root/crypto/x509v3/pcy_tree.c",
+  "$boringssl_root/crypto/x509v3/v3_akey.c",
+  "$boringssl_root/crypto/x509v3/v3_akeya.c",
+  "$boringssl_root/crypto/x509v3/v3_alt.c",
+  "$boringssl_root/crypto/x509v3/v3_bcons.c",
+  "$boringssl_root/crypto/x509v3/v3_bitst.c",
+  "$boringssl_root/crypto/x509v3/v3_conf.c",
+  "$boringssl_root/crypto/x509v3/v3_cpols.c",
+  "$boringssl_root/crypto/x509v3/v3_crld.c",
+  "$boringssl_root/crypto/x509v3/v3_enum.c",
+  "$boringssl_root/crypto/x509v3/v3_extku.c",
+  "$boringssl_root/crypto/x509v3/v3_genn.c",
+  "$boringssl_root/crypto/x509v3/v3_ia5.c",
+  "$boringssl_root/crypto/x509v3/v3_info.c",
+  "$boringssl_root/crypto/x509v3/v3_int.c",
+  "$boringssl_root/crypto/x509v3/v3_lib.c",
+  "$boringssl_root/crypto/x509v3/v3_ncons.c",
+  "$boringssl_root/crypto/x509v3/v3_ocsp.c",
+  "$boringssl_root/crypto/x509v3/v3_pci.c",
+  "$boringssl_root/crypto/x509v3/v3_pcia.c",
+  "$boringssl_root/crypto/x509v3/v3_pcons.c",
+  "$boringssl_root/crypto/x509v3/v3_pku.c",
+  "$boringssl_root/crypto/x509v3/v3_pmaps.c",
+  "$boringssl_root/crypto/x509v3/v3_prn.c",
+  "$boringssl_root/crypto/x509v3/v3_purp.c",
+  "$boringssl_root/crypto/x509v3/v3_skey.c",
+  "$boringssl_root/crypto/x509v3/v3_sxnet.c",
+  "$boringssl_root/crypto/x509v3/v3_utl.c",
+  "$boringssl_root/include/openssl/aead.h",
+  "$boringssl_root/include/openssl/aes.h",
+  "$boringssl_root/include/openssl/arm_arch.h",
+  "$boringssl_root/include/openssl/asn1.h",
+  "$boringssl_root/include/openssl/asn1_mac.h",
+  "$boringssl_root/include/openssl/asn1t.h",
+  "$boringssl_root/include/openssl/base.h",
+  "$boringssl_root/include/openssl/base64.h",
+  "$boringssl_root/include/openssl/bio.h",
+  "$boringssl_root/include/openssl/blowfish.h",
+  "$boringssl_root/include/openssl/bn.h",
+  "$boringssl_root/include/openssl/buf.h",
+  "$boringssl_root/include/openssl/buffer.h",
+  "$boringssl_root/include/openssl/bytestring.h",
+  "$boringssl_root/include/openssl/cast.h",
+  "$boringssl_root/include/openssl/chacha.h",
+  "$boringssl_root/include/openssl/cipher.h",
+  "$boringssl_root/include/openssl/cmac.h",
+  "$boringssl_root/include/openssl/conf.h",
+  "$boringssl_root/include/openssl/cpu.h",
+  "$boringssl_root/include/openssl/crypto.h",
+  "$boringssl_root/include/openssl/curve25519.h",
+  "$boringssl_root/include/openssl/des.h",
+  "$boringssl_root/include/openssl/dh.h",
+  "$boringssl_root/include/openssl/digest.h",
+  "$boringssl_root/include/openssl/dsa.h",
+  "$boringssl_root/include/openssl/ec.h",
+  "$boringssl_root/include/openssl/ec_key.h",
+  "$boringssl_root/include/openssl/ecdh.h",
+  "$boringssl_root/include/openssl/ecdsa.h",
+  "$boringssl_root/include/openssl/engine.h",
+  "$boringssl_root/include/openssl/err.h",
+  "$boringssl_root/include/openssl/evp.h",
+  "$boringssl_root/include/openssl/ex_data.h",
+  "$boringssl_root/include/openssl/hkdf.h",
+  "$boringssl_root/include/openssl/hmac.h",
+  "$boringssl_root/include/openssl/is_boringssl.h",
+  "$boringssl_root/include/openssl/lhash.h",
+  "$boringssl_root/include/openssl/lhash_macros.h",
+  "$boringssl_root/include/openssl/md4.h",
+  "$boringssl_root/include/openssl/md5.h",
+  "$boringssl_root/include/openssl/mem.h",
+  "$boringssl_root/include/openssl/nid.h",
+  "$boringssl_root/include/openssl/obj.h",
+  "$boringssl_root/include/openssl/obj_mac.h",
+  "$boringssl_root/include/openssl/objects.h",
+  "$boringssl_root/include/openssl/opensslv.h",
+  "$boringssl_root/include/openssl/ossl_typ.h",
+  "$boringssl_root/include/openssl/pem.h",
+  "$boringssl_root/include/openssl/pkcs12.h",
+  "$boringssl_root/include/openssl/pkcs7.h",
+  "$boringssl_root/include/openssl/pkcs8.h",
+  "$boringssl_root/include/openssl/poly1305.h",
+  "$boringssl_root/include/openssl/pool.h",
+  "$boringssl_root/include/openssl/rand.h",
+  "$boringssl_root/include/openssl/rc4.h",
+  "$boringssl_root/include/openssl/ripemd.h",
+  "$boringssl_root/include/openssl/rsa.h",
+  "$boringssl_root/include/openssl/safestack.h",
+  "$boringssl_root/include/openssl/sha.h",
+  "$boringssl_root/include/openssl/span.h",
+  "$boringssl_root/include/openssl/srtp.h",
+  "$boringssl_root/include/openssl/stack.h",
+  "$boringssl_root/include/openssl/thread.h",
+  "$boringssl_root/include/openssl/type_check.h",
+  "$boringssl_root/include/openssl/x509.h",
+  "$boringssl_root/include/openssl/x509_vfy.h",
+  "$boringssl_root/include/openssl/x509v3.h",
+]
+boringssl_ios_aarch64_files = [
+  "ios-aarch64/crypto/chacha/chacha-armv8.S",
+  "ios-aarch64/crypto/fipsmodule/aesv8-armx64.S",
+  "ios-aarch64/crypto/fipsmodule/armv8-mont.S",
+  "ios-aarch64/crypto/fipsmodule/ghashv8-armx64.S",
+  "ios-aarch64/crypto/fipsmodule/sha1-armv8.S",
+  "ios-aarch64/crypto/fipsmodule/sha256-armv8.S",
+  "ios-aarch64/crypto/fipsmodule/sha512-armv8.S",
+]
+boringssl_ios_arm_files = [
+  "ios-arm/crypto/chacha/chacha-armv4.S",
+  "ios-arm/crypto/fipsmodule/aes-armv4.S",
+  "ios-arm/crypto/fipsmodule/aesv8-armx32.S",
+  "ios-arm/crypto/fipsmodule/armv4-mont.S",
+  "ios-arm/crypto/fipsmodule/bsaes-armv7.S",
+  "ios-arm/crypto/fipsmodule/ghash-armv4.S",
+  "ios-arm/crypto/fipsmodule/ghashv8-armx32.S",
+  "ios-arm/crypto/fipsmodule/sha1-armv4-large.S",
+  "ios-arm/crypto/fipsmodule/sha256-armv4.S",
+  "ios-arm/crypto/fipsmodule/sha512-armv4.S",
+]
+boringssl_linux_aarch64_files = [
+  "$boringssl_root/crypto/cpu-aarch64-linux.c",  # Linux arm64 only file
+  "linux-aarch64/crypto/chacha/chacha-armv8.S",
+  "linux-aarch64/crypto/fipsmodule/aesv8-armx64.S",
+  "linux-aarch64/crypto/fipsmodule/armv8-mont.S",
+  "linux-aarch64/crypto/fipsmodule/ghashv8-armx64.S",
+  "linux-aarch64/crypto/fipsmodule/sha1-armv8.S",
+  "linux-aarch64/crypto/fipsmodule/sha256-armv8.S",
+  "linux-aarch64/crypto/fipsmodule/sha512-armv8.S",
+]
+boringssl_linux_arm_files = [
+  "$boringssl_root/crypto/cpu-arm-linux.c",  # Linux arm only file
+  "linux-arm/crypto/chacha/chacha-armv4.S",
+  "linux-arm/crypto/fipsmodule/aes-armv4.S",
+  "linux-arm/crypto/fipsmodule/aesv8-armx32.S",
+  "linux-arm/crypto/fipsmodule/armv4-mont.S",
+  "linux-arm/crypto/fipsmodule/bsaes-armv7.S",
+  "linux-arm/crypto/fipsmodule/ghash-armv4.S",
+  "linux-arm/crypto/fipsmodule/ghashv8-armx32.S",
+  "linux-arm/crypto/fipsmodule/sha1-armv4-large.S",
+  "linux-arm/crypto/fipsmodule/sha256-armv4.S",
+  "linux-arm/crypto/fipsmodule/sha512-armv4.S",
+  "$boringssl_root/crypto/curve25519/asm/x25519-asm-arm.S",
+  "$boringssl_root/crypto/poly1305/poly1305_arm_asm.S",
+]
+boringssl_linux_ppc64le_files = [
+  "linux-ppc64le/crypto/fipsmodule/aesp8-ppc.S",
+  "linux-ppc64le/crypto/fipsmodule/ghashp8-ppc.S",
+]
+boringssl_linux_x86_files = [
+  "linux-x86/crypto/chacha/chacha-x86.S",
+  "linux-x86/crypto/fipsmodule/aes-586.S",
+  "linux-x86/crypto/fipsmodule/aesni-x86.S",
+  "linux-x86/crypto/fipsmodule/bn-586.S",
+  "linux-x86/crypto/fipsmodule/co-586.S",
+  "linux-x86/crypto/fipsmodule/ghash-x86.S",
+  "linux-x86/crypto/fipsmodule/md5-586.S",
+  "linux-x86/crypto/fipsmodule/sha1-586.S",
+  "linux-x86/crypto/fipsmodule/sha256-586.S",
+  "linux-x86/crypto/fipsmodule/sha512-586.S",
+  "linux-x86/crypto/fipsmodule/vpaes-x86.S",
+  "linux-x86/crypto/fipsmodule/x86-mont.S",
+]
+boringssl_linux_x86_64_files = [
+  "linux-x86_64/crypto/chacha/chacha-x86_64.S",
+  "linux-x86_64/crypto/cipher_extra/aes128gcmsiv-x86_64.S",
+  "linux-x86_64/crypto/cipher_extra/chacha20_poly1305_x86_64.S",
+  "linux-x86_64/crypto/fipsmodule/aes-x86_64.S",
+  "linux-x86_64/crypto/fipsmodule/aesni-gcm-x86_64.S",
+  "linux-x86_64/crypto/fipsmodule/aesni-x86_64.S",
+  "linux-x86_64/crypto/fipsmodule/bsaes-x86_64.S",
+  "linux-x86_64/crypto/fipsmodule/ghash-x86_64.S",
+  "linux-x86_64/crypto/fipsmodule/md5-x86_64.S",
+  "linux-x86_64/crypto/fipsmodule/p256-x86_64-asm.S",
+  "linux-x86_64/crypto/fipsmodule/rdrand-x86_64.S",
+  "linux-x86_64/crypto/fipsmodule/rsaz-avx2.S",
+  "linux-x86_64/crypto/fipsmodule/sha1-x86_64.S",
+  "linux-x86_64/crypto/fipsmodule/sha256-x86_64.S",
+  "linux-x86_64/crypto/fipsmodule/sha512-x86_64.S",
+  "linux-x86_64/crypto/fipsmodule/vpaes-x86_64.S",
+  "linux-x86_64/crypto/fipsmodule/x86_64-mont.S",
+  "linux-x86_64/crypto/fipsmodule/x86_64-mont5.S",
+]
+boringssl_mac_x86_files = [
+  "mac-x86/crypto/chacha/chacha-x86.S",
+  "mac-x86/crypto/fipsmodule/aes-586.S",
+  "mac-x86/crypto/fipsmodule/aesni-x86.S",
+  "mac-x86/crypto/fipsmodule/bn-586.S",
+  "mac-x86/crypto/fipsmodule/co-586.S",
+  "mac-x86/crypto/fipsmodule/ghash-x86.S",
+  "mac-x86/crypto/fipsmodule/md5-586.S",
+  "mac-x86/crypto/fipsmodule/sha1-586.S",
+  "mac-x86/crypto/fipsmodule/sha256-586.S",
+  "mac-x86/crypto/fipsmodule/sha512-586.S",
+  "mac-x86/crypto/fipsmodule/vpaes-x86.S",
+  "mac-x86/crypto/fipsmodule/x86-mont.S",
+]
+boringssl_mac_x86_64_files = [
+  "mac-x86_64/crypto/chacha/chacha-x86_64.S",
+  "mac-x86_64/crypto/cipher_extra/aes128gcmsiv-x86_64.S",
+  "mac-x86_64/crypto/cipher_extra/chacha20_poly1305_x86_64.S",
+  "mac-x86_64/crypto/fipsmodule/aes-x86_64.S",
+  "mac-x86_64/crypto/fipsmodule/aesni-gcm-x86_64.S",
+  "mac-x86_64/crypto/fipsmodule/aesni-x86_64.S",
+  "mac-x86_64/crypto/fipsmodule/bsaes-x86_64.S",
+  "mac-x86_64/crypto/fipsmodule/ghash-x86_64.S",
+  "mac-x86_64/crypto/fipsmodule/md5-x86_64.S",
+  "mac-x86_64/crypto/fipsmodule/p256-x86_64-asm.S",
+  "mac-x86_64/crypto/fipsmodule/rdrand-x86_64.S",
+  "mac-x86_64/crypto/fipsmodule/rsaz-avx2.S",
+  "mac-x86_64/crypto/fipsmodule/sha1-x86_64.S",
+  "mac-x86_64/crypto/fipsmodule/sha256-x86_64.S",
+  "mac-x86_64/crypto/fipsmodule/sha512-x86_64.S",
+  "mac-x86_64/crypto/fipsmodule/vpaes-x86_64.S",
+  "mac-x86_64/crypto/fipsmodule/x86_64-mont.S",
+  "mac-x86_64/crypto/fipsmodule/x86_64-mont5.S",
+]
+boringssl_win_x86_files = [
+  "win-x86/crypto/chacha/chacha-x86.asm",
+  "win-x86/crypto/fipsmodule/aes-586.asm",
+  "win-x86/crypto/fipsmodule/aesni-x86.asm",
+  "win-x86/crypto/fipsmodule/bn-586.asm",
+  "win-x86/crypto/fipsmodule/co-586.asm",
+  "win-x86/crypto/fipsmodule/ghash-x86.asm",
+  "win-x86/crypto/fipsmodule/md5-586.asm",
+  "win-x86/crypto/fipsmodule/sha1-586.asm",
+  "win-x86/crypto/fipsmodule/sha256-586.asm",
+  "win-x86/crypto/fipsmodule/sha512-586.asm",
+  "win-x86/crypto/fipsmodule/vpaes-x86.asm",
+  "win-x86/crypto/fipsmodule/x86-mont.asm",
+]
+boringssl_win_x86_64_files = [
+  "win-x86_64/crypto/chacha/chacha-x86_64.asm",
+  "win-x86_64/crypto/cipher_extra/aes128gcmsiv-x86_64.asm",
+  "win-x86_64/crypto/cipher_extra/chacha20_poly1305_x86_64.asm",
+  "win-x86_64/crypto/fipsmodule/aes-x86_64.asm",
+  "win-x86_64/crypto/fipsmodule/aesni-gcm-x86_64.asm",
+  "win-x86_64/crypto/fipsmodule/aesni-x86_64.asm",
+  "win-x86_64/crypto/fipsmodule/bsaes-x86_64.asm",
+  "win-x86_64/crypto/fipsmodule/ghash-x86_64.asm",
+  "win-x86_64/crypto/fipsmodule/md5-x86_64.asm",
+  "win-x86_64/crypto/fipsmodule/p256-x86_64-asm.asm",
+  "win-x86_64/crypto/fipsmodule/rdrand-x86_64.asm",
+  "win-x86_64/crypto/fipsmodule/rsaz-avx2.asm",
+  "win-x86_64/crypto/fipsmodule/sha1-x86_64.asm",
+  "win-x86_64/crypto/fipsmodule/sha256-x86_64.asm",
+  "win-x86_64/crypto/fipsmodule/sha512-x86_64.asm",
+  "win-x86_64/crypto/fipsmodule/vpaes-x86_64.asm",
+  "win-x86_64/crypto/fipsmodule/x86_64-mont.asm",
+  "win-x86_64/crypto/fipsmodule/x86_64-mont5.asm",
+]
diff --git a/src/third_party/boringssl/src/METADATA b/src/third_party/boringssl/src/METADATA
index 4854780..34d46e4 100644
--- a/src/third_party/boringssl/src/METADATA
+++ b/src/third_party/boringssl/src/METADATA
@@ -17,4 +17,5 @@
     month: 8
     day: 23
   }
+  license_type: NOTICE
 }
diff --git a/src/third_party/brotli/METADATA b/src/third_party/brotli/METADATA
index 6fd0969..39964c6 100644
--- a/src/third_party/brotli/METADATA
+++ b/src/third_party/brotli/METADATA
@@ -17,4 +17,5 @@
     month: 2
     day: 8
   }
+  license_type: NOTICE
 }
diff --git a/src/third_party/crashpad/METADATA b/src/third_party/crashpad/METADATA
index 1a42fa7..ab73133 100644
--- a/src/third_party/crashpad/METADATA
+++ b/src/third_party/crashpad/METADATA
@@ -21,4 +21,5 @@
     month: 3
     day: 26
   }
+  license_type: NOTICE
 }
diff --git a/src/third_party/crashpad/build/crashpad_buildconfig.gni b/src/third_party/crashpad/build/crashpad_buildconfig.gni
index 7540fb2..7be9eaf 100644
--- a/src/third_party/crashpad/build/crashpad_buildconfig.gni
+++ b/src/third_party/crashpad/build/crashpad_buildconfig.gni
@@ -21,14 +21,19 @@
   if (defined(is_fuchsia_tree) && is_fuchsia_tree) {
     crashpad_dependencies = "fuchsia"
   }
+
+  if (defined(is_starboard) && is_starboard) {
+    crashpad_dependencies = "starboard"
+  }
 }
 
 assert(
-    crashpad_dependencies == "chromium" || crashpad_dependencies == "fuchsia" ||
-    crashpad_dependencies == "standalone" ||
+    crashpad_dependencies == "chromium" || crashpad_dependencies == "starboard" ||
+    crashpad_dependencies == "fuchsia" || crashpad_dependencies == "standalone" ||
     crashpad_dependencies == "external" || crashpad_dependencies == "dart")
 
 crashpad_is_in_chromium = crashpad_dependencies == "chromium"
+crashpad_is_in_starboard = crashpad_dependencies == "starboard"
 crashpad_is_in_fuchsia = crashpad_dependencies == "fuchsia"
 crashpad_is_in_dart = crashpad_dependencies == "dart"
 crashpad_is_external = crashpad_dependencies == "external"
@@ -47,7 +52,10 @@
   crashpad_is_clang = is_clang
 } else {
   # External and Dart SDK builds assume crashpad and mini_chromium are peers.
-  if (crashpad_is_external || crashpad_is_in_dart) {
+  if (is_starboard) {
+    import("../../mini_chromium/build/compiler.gni")
+    import("../../mini_chromium/build/platform.gni")
+  } else if (crashpad_is_external || crashpad_is_in_dart) {
     import("../../../mini_chromium/mini_chromium/build/compiler.gni")
     import("../../../mini_chromium/mini_chromium/build/platform.gni")
   } else {
diff --git a/src/third_party/crashpad/client/BUILD.gn b/src/third_party/crashpad/client/BUILD.gn
index dfdb335..0e20db5 100644
--- a/src/third_party/crashpad/client/BUILD.gn
+++ b/src/third_party/crashpad/client/BUILD.gn
@@ -51,7 +51,6 @@
   }
 
   if (crashpad_is_linux || crashpad_is_android) {
-    set_sources_assignment_filter([])
     sources += [
       "crashpad_client_linux.cc",
       "simulate_crash_linux.h",
@@ -89,6 +88,10 @@
     "../util",
   ]
 
+  if (crashpad_is_in_starboard) {
+    public_deps += [ "//starboard/elf_loader:evergreen_info" ]
+  }
+
   deps = []
 
   if (crashpad_is_win) {
@@ -116,58 +119,60 @@
   }
 }
 
-source_set("client_test") {
-  testonly = true
+if (!crashpad_is_in_starboard) {
+  source_set("client_test") {
+    testonly = true
 
-  sources = [
-    "annotation_list_test.cc",
-    "annotation_test.cc",
-    "crash_report_database_test.cc",
-    "prune_crash_reports_test.cc",
-    "settings_test.cc",
-    "simple_address_range_bag_test.cc",
-    "simple_string_dictionary_test.cc",
-  ]
-
-  if (crashpad_is_mac) {
-    sources += [ "simulate_crash_mac_test.cc" ]
-  }
-
-  if (crashpad_is_win) {
-    sources += [ "crashpad_client_win_test.cc" ]
-  }
-
-  if (crashpad_is_ios) {
-    sources += [ "crashpad_client_ios_test.cc" ]
-    sources -= [
+    sources = [
       "annotation_list_test.cc",
       "annotation_test.cc",
       "crash_report_database_test.cc",
       "prune_crash_reports_test.cc",
       "settings_test.cc",
+      "simple_address_range_bag_test.cc",
+      "simple_string_dictionary_test.cc",
     ]
-  }
 
-  if (crashpad_is_linux || crashpad_is_android) {
-    sources += [ "crashpad_client_linux_test.cc" ]
-  }
+    if (crashpad_is_mac) {
+      sources += [ "simulate_crash_mac_test.cc" ]
+    }
 
-  deps = [
-    ":client",
-    "../compat",
-    "../snapshot",
-    "../test",
-    "../third_party/gtest:gmock",
-    "../third_party/gtest:gtest",
-    "../third_party/mini_chromium:base",
-    "../util",
-  ]
+    if (crashpad_is_win) {
+      sources += [ "crashpad_client_win_test.cc" ]
+    }
 
-  if (!crashpad_is_ios) {
-    data_deps = [ "../handler:crashpad_handler" ]
-  }
+    if (crashpad_is_ios) {
+      sources += [ "crashpad_client_ios_test.cc" ]
+      sources -= [
+        "annotation_list_test.cc",
+        "annotation_test.cc",
+        "crash_report_database_test.cc",
+        "prune_crash_reports_test.cc",
+        "settings_test.cc",
+      ]
+    }
 
-  if (crashpad_is_win) {
-    data_deps += [ "../handler:crashpad_handler_console" ]
+    if (crashpad_is_linux || crashpad_is_android) {
+      sources += [ "crashpad_client_linux_test.cc" ]
+    }
+
+    deps = [
+      ":client",
+      "../compat",
+      "../snapshot",
+      "../test",
+      "../third_party/gtest:gmock",
+      "../third_party/gtest:gtest",
+      "../third_party/mini_chromium:base",
+      "../util",
+    ]
+
+    if (!crashpad_is_ios) {
+      data_deps = [ "../handler:crashpad_handler" ]
+    }
+
+    if (crashpad_is_win) {
+      data_deps += [ "../handler:crashpad_handler_console" ]
+    }
   }
 }
diff --git a/src/third_party/crashpad/compat/BUILD.gn b/src/third_party/crashpad/compat/BUILD.gn
index 2f24656..d4452f4 100644
--- a/src/third_party/crashpad/compat/BUILD.gn
+++ b/src/third_party/crashpad/compat/BUILD.gn
@@ -57,6 +57,10 @@
 }
 
 compat_target("compat") {
+  if (crashpad_is_in_starboard) {
+    check_includes = false
+  }
+
   sources = []
 
   if (crashpad_is_mac) {
diff --git a/src/third_party/crashpad/handler/BUILD.gn b/src/third_party/crashpad/handler/BUILD.gn
index 3db3c89..8823beb 100644
--- a/src/third_party/crashpad/handler/BUILD.gn
+++ b/src/third_party/crashpad/handler/BUILD.gn
@@ -40,7 +40,6 @@
   }
 
   if (crashpad_is_linux || crashpad_is_android) {
-    set_sources_assignment_filter([])
     sources += [
       "linux/capture_snapshot.cc",
       "linux/capture_snapshot.h",
@@ -51,7 +50,7 @@
     ]
   }
 
-  if (crashpad_is_linux) {
+  if (crashpad_is_linux && !crashpad_is_in_starboard) {
     sources += [
       "linux/cros_crash_report_exception_handler.cc",
       "linux/cros_crash_report_exception_handler.h",
@@ -88,6 +87,12 @@
     "../tools:tool_support",
   ]
 
+  if (crashpad_is_in_starboard) {
+    sources += [ "../util/net/http_transport_socket.cc" ]
+    defines = [ "CRASHPAD_USE_BORINGSSL" ]
+    deps += [ "//third_party/boringssl:crypto_full" ]
+  }
+
   if (crashpad_is_win) {
     cflags = [ "/wd4201" ]  # nonstandard extension used : nameless struct/union
   }
@@ -95,6 +100,10 @@
   if (crashpad_is_fuchsia) {
     deps += [ "../third_party/fuchsia" ]
   }
+
+  if (crashpad_is_in_starboard) {
+    public_deps += [ "//starboard" ]
+  }
 }
 
 if (crashpad_is_android) {
@@ -107,41 +116,47 @@
   }
 }
 
-source_set("handler_test") {
-  testonly = true
+if (!crashpad_is_in_starboard) {
+  source_set("handler_test") {
+    testonly = true
 
-  sources = [ "minidump_to_upload_parameters_test.cc" ]
+    sources = [ "minidump_to_upload_parameters_test.cc" ]
 
-  if (crashpad_is_linux || crashpad_is_android) {
-    sources += [ "linux/exception_handler_server_test.cc" ]
-  }
+    if (crashpad_is_linux || crashpad_is_android) {
+      sources += [ "linux/exception_handler_server_test.cc" ]
+    }
 
-  if (crashpad_is_win) {
-    sources += [ "crashpad_handler_test.cc" ]
-  }
+    if (crashpad_is_win) {
+      sources += [ "crashpad_handler_test.cc" ]
+    }
 
-  deps = [
-    ":handler",
-    "../client",
-    "../compat",
-    "../snapshot",
-    "../snapshot:test_support",
-    "../test",
-    "../third_party/gtest:gtest",
-    "../third_party/mini_chromium:base",
-    "../util",
-  ]
-
-  if (crashpad_is_win) {
-    data_deps = [
-      ":crashpad_handler_test_extended_handler",
-      ":fake_handler_that_crashes_at_startup",
+    deps = [
+      ":handler",
+      "../client",
+      "../compat",
+      "../snapshot",
+      "../snapshot:test_support",
+      "../test",
+      "../third_party/gtest:gtest",
+      "../third_party/mini_chromium:base",
+      "../util",
     ]
+
+    if (crashpad_is_win) {
+      data_deps = [
+        ":crashpad_handler_test_extended_handler",
+        ":fake_handler_that_crashes_at_startup",
+      ]
+    }
   }
 }
 
 if (!crashpad_is_ios) {
   crashpad_executable("crashpad_handler") {
+    if (crashpad_is_in_starboard) {
+      check_includes = false
+    }
+
     sources = [ "main.cc" ]
 
     deps = [
@@ -179,7 +194,6 @@
   }
 
   crashpad_executable("crashpad_handler_trampoline") {
-    set_sources_assignment_filter([])
     output_name = "libcrashpad_handler_trampoline.so"
 
     sources = [ "linux/handler_trampoline.cc" ]
@@ -192,7 +206,7 @@
   }
 }
 
-if (!crashpad_is_ios) {
+if (!crashpad_is_ios && !crashpad_is_in_starboard) {
   crashpad_executable("crashpad_handler_test_extended_handler") {
     testonly = true
 
diff --git a/src/third_party/crashpad/minidump/BUILD.gn b/src/third_party/crashpad/minidump/BUILD.gn
index 35b1917..9e423a7 100644
--- a/src/third_party/crashpad/minidump/BUILD.gn
+++ b/src/third_party/crashpad/minidump/BUILD.gn
@@ -90,6 +90,10 @@
 static_library("test_support") {
   testonly = true
 
+  if (crashpad_is_in_starboard) {
+    check_includes = false
+  }
+
   sources = [
     "test/minidump_byte_array_writer_test_util.cc",
     "test/minidump_byte_array_writer_test_util.h",
diff --git a/src/third_party/crashpad/snapshot/BUILD.gn b/src/third_party/crashpad/snapshot/BUILD.gn
index 3924c17..c2308a1 100644
--- a/src/third_party/crashpad/snapshot/BUILD.gn
+++ b/src/third_party/crashpad/snapshot/BUILD.gn
@@ -17,12 +17,13 @@
 
 if (crashpad_is_in_chromium) {
   import("//build/config/compiler/compiler.gni")
-
-  # Prevent Chromium source assignment filters from being inherited.
-  set_sources_assignment_filter([])
 }
 
 static_library("snapshot") {
+  if (crashpad_is_in_starboard) {
+    check_includes = false
+  }
+
   sources = [
     "annotation_snapshot.cc",
     "annotation_snapshot.h",
@@ -63,6 +64,8 @@
     "minidump/thread_snapshot_minidump.cc",
     "minidump/thread_snapshot_minidump.h",
     "module_snapshot.h",
+    "module_snapshot_evergreen.cc",
+    "module_snapshot_evergreen.h",
     "process_snapshot.h",
     "snapshot_constants.h",
     "system_snapshot.h",
@@ -323,168 +326,170 @@
   }
 }
 
-source_set("snapshot_test") {
-  testonly = true
+if (!crashpad_is_in_starboard) {
+  source_set("snapshot_test") {
+    testonly = true
 
-  sources = [
-    "cpu_context_test.cc",
-    "memory_snapshot_test.cc",
-    "minidump/process_snapshot_minidump_test.cc",
-  ]
+    sources = [
+      "cpu_context_test.cc",
+      "memory_snapshot_test.cc",
+      "minidump/process_snapshot_minidump_test.cc",
+    ]
 
-  if (crashpad_is_mac) {
-    sources += [
-      "mac/cpu_context_mac_test.cc",
-      "mac/mach_o_image_annotations_reader_test.cc",
-      "mac/mach_o_image_reader_test.cc",
-      "mac/mach_o_image_segment_reader_test.cc",
-      "mac/process_reader_mac_test.cc",
-      "mac/process_types_test.cc",
-      "mac/system_snapshot_mac_test.cc",
+    if (crashpad_is_mac) {
+      sources += [
+        "mac/cpu_context_mac_test.cc",
+        "mac/mach_o_image_annotations_reader_test.cc",
+        "mac/mach_o_image_reader_test.cc",
+        "mac/mach_o_image_segment_reader_test.cc",
+        "mac/process_reader_mac_test.cc",
+        "mac/process_types_test.cc",
+        "mac/system_snapshot_mac_test.cc",
+      ]
+    }
+
+    if (crashpad_is_linux || crashpad_is_android) {
+      sources += [
+        "linux/debug_rendezvous_test.cc",
+        "linux/exception_snapshot_linux_test.cc",
+        "linux/process_reader_linux_test.cc",
+        "linux/system_snapshot_linux_test.cc",
+        "sanitized/process_snapshot_sanitized_test.cc",
+        "sanitized/sanitization_information_test.cc",
+      ]
+    } else if (!crashpad_is_ios) {
+      sources += [ "crashpad_info_client_options_test.cc" ]
+    }
+
+    if (crashpad_is_linux || crashpad_is_android || crashpad_is_fuchsia ||
+        crashpad_is_win) {
+      sources += [ "crashpad_types/crashpad_info_reader_test.cc" ]
+    }
+
+    if (crashpad_is_linux || crashpad_is_android || crashpad_is_fuchsia) {
+      sources += [
+        "crashpad_types/image_annotation_reader_test.cc",
+        "elf/elf_image_reader_test.cc",
+        "elf/elf_image_reader_test_note.S",
+      ]
+    }
+
+    if (crashpad_is_win) {
+      sources += [
+        "win/cpu_context_win_test.cc",
+        "win/exception_snapshot_win_test.cc",
+        "win/extra_memory_ranges_test.cc",
+        "win/module_snapshot_win_test.cc",
+        "win/pe_image_reader_test.cc",
+        "win/process_reader_win_test.cc",
+        "win/process_snapshot_win_test.cc",
+        "win/system_snapshot_win_test.cc",
+      ]
+    } else if (!crashpad_is_fuchsia) {
+      # Timezones are currently non-functional on Fuchsia:
+      # https://fuchsia.googlesource.com/zircon/+/master/third_party/ulib/musl/src/time/__tz.c#9
+      # https://crashpad.chromium.org/bug/196. Relevant upstream bugs are ZX-337
+      # and ZX-1731.
+      sources += [ "posix/timezone_test.cc" ]
+    }
+
+    if (crashpad_is_fuchsia) {
+      sources += [
+        "fuchsia/process_reader_fuchsia_test.cc",
+        "fuchsia/process_snapshot_fuchsia_test.cc",
+      ]
+    }
+
+    # public_configs isn’t quite right. snapshot_test_link sets ldflags, and
+    # what’s really needed is a way to push ldflags to dependent targets that
+    # produce linker output. Luckily in this case, all dependents do produce
+    # linker output. https://crbug.com/796183.
+    public_configs = [ ":snapshot_test_link" ]
+
+    deps = [
+      ":test_support",
+      "../client",
+      "../compat",
+      "../test",
+      "../third_party/gtest:gtest",
+      "../third_party/mini_chromium:base",
+      "../util",
+    ]
+
+    data_deps = [
+      ":crashpad_snapshot_test_module",
+      ":crashpad_snapshot_test_module_large",
+      ":crashpad_snapshot_test_module_small",
+    ]
+
+    if (crashpad_is_mac) {
+      libs = [ "OpenCL.framework" ]
+
+      data_deps += [
+        ":crashpad_snapshot_test_module_crashy_initializer",
+        ":crashpad_snapshot_test_no_op",
+      ]
+    }
+
+    if (crashpad_is_linux || crashpad_is_android) {
+      libs = [ "dl" ]
+    }
+
+    if ((crashpad_is_linux || crashpad_is_android || crashpad_is_fuchsia) &&
+        target_cpu != "mipsel" && target_cpu != "mips64el") {
+      data_deps += [ ":crashpad_snapshot_test_both_dt_hash_styles" ]
+    }
+
+    if (crashpad_is_win) {
+      cflags = [ "/wd4201" ]  # nonstandard extension used : nameless struct/union
+
+      data_deps += [
+        ":crashpad_snapshot_test_annotations",
+        ":crashpad_snapshot_test_crashing_child",
+        ":crashpad_snapshot_test_dump_without_crashing",
+        ":crashpad_snapshot_test_extra_memory_ranges",
+        ":crashpad_snapshot_test_image_reader",
+        ":crashpad_snapshot_test_image_reader_module",
+      ]
+    }
+  }
+
+  crashpad_loadable_module("crashpad_snapshot_test_module") {
+    testonly = true
+    sources = [ "crashpad_info_client_options_test_module.cc" ]
+    deps = [
+      "../client",
+      "../third_party/mini_chromium:base",
     ]
   }
 
-  if (crashpad_is_linux || crashpad_is_android) {
-    sources += [
-      "linux/debug_rendezvous_test.cc",
-      "linux/exception_snapshot_linux_test.cc",
-      "linux/process_reader_linux_test.cc",
-      "linux/system_snapshot_linux_test.cc",
-      "sanitized/process_snapshot_sanitized_test.cc",
-      "sanitized/sanitization_information_test.cc",
-    ]
-  } else if (!crashpad_is_ios) {
-    sources += [ "crashpad_info_client_options_test.cc" ]
+  crashpad_loadable_module("crashpad_snapshot_test_module_large") {
+    testonly = true
+    sources = [ "crashpad_info_size_test_module.cc" ]
+
+    deps = []
+    if (crashpad_is_linux || crashpad_is_android || crashpad_is_fuchsia) {
+      sources += [ "crashpad_info_size_test_note.S" ]
+      deps += [ "../util" ]
+    }
+
+    defines = [ "CRASHPAD_INFO_SIZE_TEST_MODULE_LARGE" ]
+    deps += [ "../third_party/mini_chromium:base" ]
   }
 
-  if (crashpad_is_linux || crashpad_is_android || crashpad_is_fuchsia ||
-      crashpad_is_win) {
-    sources += [ "crashpad_types/crashpad_info_reader_test.cc" ]
+  crashpad_loadable_module("crashpad_snapshot_test_module_small") {
+    testonly = true
+    sources = [ "crashpad_info_size_test_module.cc" ]
+
+    deps = []
+    if (crashpad_is_linux || crashpad_is_android || crashpad_is_fuchsia) {
+      sources += [ "crashpad_info_size_test_note.S" ]
+      deps += [ "../util" ]
+    }
+
+    defines = [ "CRASHPAD_INFO_SIZE_TEST_MODULE_SMALL" ]
+    deps += [ "../third_party/mini_chromium:base" ]
   }
-
-  if (crashpad_is_linux || crashpad_is_android || crashpad_is_fuchsia) {
-    sources += [
-      "crashpad_types/image_annotation_reader_test.cc",
-      "elf/elf_image_reader_test.cc",
-      "elf/elf_image_reader_test_note.S",
-    ]
-  }
-
-  if (crashpad_is_win) {
-    sources += [
-      "win/cpu_context_win_test.cc",
-      "win/exception_snapshot_win_test.cc",
-      "win/extra_memory_ranges_test.cc",
-      "win/module_snapshot_win_test.cc",
-      "win/pe_image_reader_test.cc",
-      "win/process_reader_win_test.cc",
-      "win/process_snapshot_win_test.cc",
-      "win/system_snapshot_win_test.cc",
-    ]
-  } else if (!crashpad_is_fuchsia) {
-    # Timezones are currently non-functional on Fuchsia:
-    # https://fuchsia.googlesource.com/zircon/+/master/third_party/ulib/musl/src/time/__tz.c#9
-    # https://crashpad.chromium.org/bug/196. Relevant upstream bugs are ZX-337
-    # and ZX-1731.
-    sources += [ "posix/timezone_test.cc" ]
-  }
-
-  if (crashpad_is_fuchsia) {
-    sources += [
-      "fuchsia/process_reader_fuchsia_test.cc",
-      "fuchsia/process_snapshot_fuchsia_test.cc",
-    ]
-  }
-
-  # public_configs isn’t quite right. snapshot_test_link sets ldflags, and
-  # what’s really needed is a way to push ldflags to dependent targets that
-  # produce linker output. Luckily in this case, all dependents do produce
-  # linker output. https://crbug.com/796183.
-  public_configs = [ ":snapshot_test_link" ]
-
-  deps = [
-    ":test_support",
-    "../client",
-    "../compat",
-    "../test",
-    "../third_party/gtest:gtest",
-    "../third_party/mini_chromium:base",
-    "../util",
-  ]
-
-  data_deps = [
-    ":crashpad_snapshot_test_module",
-    ":crashpad_snapshot_test_module_large",
-    ":crashpad_snapshot_test_module_small",
-  ]
-
-  if (crashpad_is_mac) {
-    libs = [ "OpenCL.framework" ]
-
-    data_deps += [
-      ":crashpad_snapshot_test_module_crashy_initializer",
-      ":crashpad_snapshot_test_no_op",
-    ]
-  }
-
-  if (crashpad_is_linux || crashpad_is_android) {
-    libs = [ "dl" ]
-  }
-
-  if ((crashpad_is_linux || crashpad_is_android || crashpad_is_fuchsia) &&
-      target_cpu != "mipsel" && target_cpu != "mips64el") {
-    data_deps += [ ":crashpad_snapshot_test_both_dt_hash_styles" ]
-  }
-
-  if (crashpad_is_win) {
-    cflags = [ "/wd4201" ]  # nonstandard extension used : nameless struct/union
-
-    data_deps += [
-      ":crashpad_snapshot_test_annotations",
-      ":crashpad_snapshot_test_crashing_child",
-      ":crashpad_snapshot_test_dump_without_crashing",
-      ":crashpad_snapshot_test_extra_memory_ranges",
-      ":crashpad_snapshot_test_image_reader",
-      ":crashpad_snapshot_test_image_reader_module",
-    ]
-  }
-}
-
-crashpad_loadable_module("crashpad_snapshot_test_module") {
-  testonly = true
-  sources = [ "crashpad_info_client_options_test_module.cc" ]
-  deps = [
-    "../client",
-    "../third_party/mini_chromium:base",
-  ]
-}
-
-crashpad_loadable_module("crashpad_snapshot_test_module_large") {
-  testonly = true
-  sources = [ "crashpad_info_size_test_module.cc" ]
-
-  deps = []
-  if (crashpad_is_linux || crashpad_is_android || crashpad_is_fuchsia) {
-    sources += [ "crashpad_info_size_test_note.S" ]
-    deps += [ "../util" ]
-  }
-
-  defines = [ "CRASHPAD_INFO_SIZE_TEST_MODULE_LARGE" ]
-  deps += [ "../third_party/mini_chromium:base" ]
-}
-
-crashpad_loadable_module("crashpad_snapshot_test_module_small") {
-  testonly = true
-  sources = [ "crashpad_info_size_test_module.cc" ]
-
-  deps = []
-  if (crashpad_is_linux || crashpad_is_android || crashpad_is_fuchsia) {
-    sources += [ "crashpad_info_size_test_note.S" ]
-    deps += [ "../util" ]
-  }
-
-  defines = [ "CRASHPAD_INFO_SIZE_TEST_MODULE_SMALL" ]
-  deps += [ "../third_party/mini_chromium:base" ]
 }
 
 if ((crashpad_is_linux || crashpad_is_android || crashpad_is_fuchsia) &&
diff --git a/src/third_party/crashpad/test/BUILD.gn b/src/third_party/crashpad/test/BUILD.gn
index a00f682..c0ec1c1 100644
--- a/src/third_party/crashpad/test/BUILD.gn
+++ b/src/third_party/crashpad/test/BUILD.gn
@@ -94,7 +94,6 @@
   }
 
   if (crashpad_is_linux || crashpad_is_android) {
-    set_sources_assignment_filter([])
     sources += [
       "linux/fake_ptrace_connection.cc",
       "linux/fake_ptrace_connection.h",
@@ -166,70 +165,72 @@
   }
 }
 
-source_set("test_test") {
-  testonly = true
+if (!crashpad_is_in_starboard) {
+  source_set("test_test") {
+    testonly = true
 
-  sources = [
-    "hex_string_test.cc",
-    "main_arguments_test.cc",
-    "multiprocess_exec_test.cc",
-    "scoped_guarded_page_test.cc",
-    "scoped_temp_dir_test.cc",
-    "test_paths_test.cc",
-  ]
-
-  if (crashpad_is_ios) {
-    sources -= [
+    sources = [
+      "hex_string_test.cc",
+      "main_arguments_test.cc",
       "multiprocess_exec_test.cc",
       "scoped_guarded_page_test.cc",
       "scoped_temp_dir_test.cc",
       "test_paths_test.cc",
     ]
-  }
 
-  # TODO(crbug.com/812974): Remove !crashpad_is_fuchsia when Fuchsia is no
-  # longer treated as a posix platform.
-  if (crashpad_is_posix && !crashpad_is_fuchsia && !crashpad_is_ios) {
-    sources += [ "multiprocess_posix_test.cc" ]
-  }
+    if (crashpad_is_ios) {
+      sources -= [
+        "multiprocess_exec_test.cc",
+        "scoped_guarded_page_test.cc",
+        "scoped_temp_dir_test.cc",
+        "test_paths_test.cc",
+      ]
+    }
 
-  if (crashpad_is_mac) {
-    sources += [ "mac/mach_multiprocess_test.cc" ]
-  }
+    # TODO(crbug.com/812974): Remove !crashpad_is_fuchsia when Fuchsia is no
+    # longer treated as a posix platform.
+    if (crashpad_is_posix && !crashpad_is_fuchsia && !crashpad_is_ios) {
+      sources += [ "multiprocess_posix_test.cc" ]
+    }
 
-  if (crashpad_is_win) {
-    sources += [
-      "win/win_child_process_test.cc",
-      "win/win_multiprocess_test.cc",
-    ]
-  }
+    if (crashpad_is_mac) {
+      sources += [ "mac/mach_multiprocess_test.cc" ]
+    }
 
-  deps = [
-    ":test",
-    "../compat",
-    "../third_party/gtest:gmock",
-    "../third_party/gtest:gtest",
-    "../third_party/mini_chromium:base",
-    "../util",
-  ]
+    if (crashpad_is_win) {
+      sources += [
+        "win/win_child_process_test.cc",
+        "win/win_multiprocess_test.cc",
+      ]
+    }
 
-  data_deps = [ ":crashpad_test_test_multiprocess_exec_test_child" ]
-
-  if (crashpad_is_ios) {
-    deps -= [
+    deps = [
+      ":test",
       "../compat",
+      "../third_party/gtest:gmock",
+      "../third_party/gtest:gtest",
+      "../third_party/mini_chromium:base",
       "../util",
     ]
 
-    data_deps -= [ ":crashpad_test_test_multiprocess_exec_test_child" ]
+    data_deps = [ ":crashpad_test_test_multiprocess_exec_test_child" ]
+
+    if (crashpad_is_ios) {
+      deps -= [
+        "../compat",
+        "../util",
+      ]
+
+      data_deps -= [ ":crashpad_test_test_multiprocess_exec_test_child" ]
+    }
   }
-}
 
-if (!crashpad_is_ios) {
-  crashpad_executable("crashpad_test_test_multiprocess_exec_test_child") {
-    sources = [ "multiprocess_exec_test_child.cc" ]
+  if (!crashpad_is_ios) {
+    crashpad_executable("crashpad_test_test_multiprocess_exec_test_child") {
+      sources = [ "multiprocess_exec_test_child.cc" ]
 
-    deps = [ "../third_party/mini_chromium:base" ]
+      deps = [ "../third_party/mini_chromium:base" ]
+    }
   }
 }
 
diff --git a/src/third_party/crashpad/third_party/gtest/BUILD.gn b/src/third_party/crashpad/third_party/gtest/BUILD.gn
index 2813768..15f5001 100644
--- a/src/third_party/crashpad/third_party/gtest/BUILD.gn
+++ b/src/third_party/crashpad/third_party/gtest/BUILD.gn
@@ -15,7 +15,7 @@
 import("../../build/crashpad_buildconfig.gni")
 import("../../build/test.gni")
 
-if (crashpad_is_in_chromium) {
+if (crashpad_is_in_chromium || crashpad_is_in_starboard) {
   group("gtest") {
     testonly = true
     public_deps = [
diff --git a/src/third_party/crashpad/third_party/mini_chromium/BUILD.gn b/src/third_party/crashpad/third_party/mini_chromium/BUILD.gn
index 50d1513..f7ec49d 100644
--- a/src/third_party/crashpad/third_party/mini_chromium/BUILD.gn
+++ b/src/third_party/crashpad/third_party/mini_chromium/BUILD.gn
@@ -15,7 +15,9 @@
 import("../../build/crashpad_buildconfig.gni")
 
 group("base") {
-  if (crashpad_is_in_chromium) {
+  if (crashpad_is_in_starboard) {
+    public_deps = [ "//third_party/mini_chromium/base" ]
+  } else if (crashpad_is_in_chromium) {
     public_deps = [ "//base" ]
   } else if (crashpad_is_standalone || crashpad_is_in_fuchsia) {
     public_deps = [ "mini_chromium/base" ]
diff --git a/src/third_party/crashpad/third_party/zlib/BUILD.gn b/src/third_party/crashpad/third_party/zlib/BUILD.gn
index 1723c11..70657f2 100644
--- a/src/third_party/crashpad/third_party/zlib/BUILD.gn
+++ b/src/third_party/crashpad/third_party/zlib/BUILD.gn
@@ -14,7 +14,8 @@
 
 import("../../build/crashpad_buildconfig.gni")
 
-if (crashpad_is_in_chromium || crashpad_is_in_fuchsia || crashpad_is_in_dart) {
+if (crashpad_is_in_chromium || crashpad_is_in_fuchsia || crashpad_is_in_dart ||
+    crashpad_is_in_starboard) {
   zlib_source = "external"
 } else if (!crashpad_is_win && !crashpad_is_fuchsia) {
   zlib_source = "system"
diff --git a/src/third_party/crashpad/tools/BUILD.gn b/src/third_party/crashpad/tools/BUILD.gn
index 5e0228b..1eca9d2 100644
--- a/src/third_party/crashpad/tools/BUILD.gn
+++ b/src/third_party/crashpad/tools/BUILD.gn
@@ -25,7 +25,7 @@
   deps = [ "../third_party/mini_chromium:base" ]
 }
 
-if (!crashpad_is_ios) {
+if (!crashpad_is_ios && !crashpad_is_in_starboard) {
   crashpad_executable("crashpad_database_util") {
     sources = [ "crashpad_database_util.cc" ]
 
@@ -52,17 +52,19 @@
   }
 }
 
-crashpad_executable("base94_encoder") {
-  sources = [ "base94_encoder.cc" ]
-  deps = [
-    ":tool_support",
-    "../build:default_exe_manifest_win",
-    "../third_party/mini_chromium:base",
-    "../util",
-  ]
+if (!crashpad_is_in_starboard) {
+  crashpad_executable("base94_encoder") {
+    sources = [ "base94_encoder.cc" ]
+    deps = [
+      ":tool_support",
+      "../build:default_exe_manifest_win",
+      "../third_party/mini_chromium:base",
+      "../util",
+    ]
+  }
 }
 
-if (!crashpad_is_fuchsia && !crashpad_is_ios) {
+if (!crashpad_is_fuchsia && !crashpad_is_ios && !crashpad_is_in_starboard) {
   crashpad_executable("generate_dump") {
     sources = [ "generate_dump.cc" ]
 
diff --git a/src/third_party/crashpad/util/BUILD.gn b/src/third_party/crashpad/util/BUILD.gn
index ab0fe35..cb10dfb 100644
--- a/src/third_party/crashpad/util/BUILD.gn
+++ b/src/third_party/crashpad/util/BUILD.gn
@@ -17,9 +17,6 @@
 
 if (crashpad_is_in_chromium) {
   import("//build/config/sanitizers/sanitizers.gni")
-
-  # Prevent Chromium source assignment filters from being inherited.
-  set_sources_assignment_filter([])
 }
 
 if (crashpad_is_mac) {
@@ -92,6 +89,7 @@
 }
 
 static_library("util") {
+  check_includes = false
   sources = [
     "file/delimited_file_reader.cc",
     "file/delimited_file_reader.h",
@@ -308,7 +306,7 @@
 
   deps = []
 
-  if (crashpad_is_linux || crashpad_is_fuchsia || crashpad_is_android) {
+  if (!crashpad_is_in_starboard && (crashpad_is_linux || crashpad_is_fuchsia || crashpad_is_android)) {
     sources += [ "net/http_transport_socket.cc" ]
     if (crashpad_use_boringssl_for_http_transport_socket) {
       defines += [ "CRASHPAD_USE_BORINGSSL" ]
@@ -536,10 +534,16 @@
     deps += [ "../third_party/lss" ]
   }
 
+  if (crashpad_is_in_starboard) {
+    public_deps += [ "//starboard:starboard_headers_only" ]
+    configs += [ ":crashpad_starboard_config" ]
+    configs -= [ "//build/config/compiler:default_include_dirs" ]
+  }
+
   configs += [ "..:disable_ubsan" ]
 }
 
-if (!crashpad_is_android) {
+if (!crashpad_is_android && !crashpad_is_in_starboard) {
   crashpad_executable("http_transport_test_server") {
     testonly = true
     sources = [ "net/http_transport_test_server.cc" ]
@@ -575,183 +579,185 @@
   }
 }
 
-source_set("util_test") {
-  testonly = true
+if (!crashpad_is_in_starboard) {
+  source_set("util_test") {
+    testonly = true
 
-  sources = [
-    "file/delimited_file_reader_test.cc",
-    "file/directory_reader_test.cc",
-    "file/file_io_test.cc",
-    "file/file_reader_test.cc",
-    "file/filesystem_test.cc",
-    "file/string_file_test.cc",
-    "misc/arraysize_test.cc",
-    "misc/capture_context_test.cc",
-    "misc/capture_context_test_util.h",
-    "misc/clock_test.cc",
-    "misc/from_pointer_cast_test.cc",
-    "misc/initialization_state_dcheck_test.cc",
-    "misc/initialization_state_test.cc",
-    "misc/paths_test.cc",
-    "misc/random_string_test.cc",
-    "misc/range_set_test.cc",
-    "misc/reinterpret_bytes_test.cc",
-    "misc/scoped_forbid_return_test.cc",
-    "misc/time_test.cc",
-    "misc/uuid_test.cc",
-    "net/http_body_gzip_test.cc",
-    "net/http_body_test.cc",
-    "net/http_body_test_util.cc",
-    "net/http_body_test_util.h",
-    "net/http_multipart_builder_test.cc",
-    "net/url_test.cc",
-    "numeric/checked_address_range_test.cc",
-    "numeric/checked_range_test.cc",
-    "numeric/in_range_cast_test.cc",
-    "numeric/int128_test.cc",
-    "process/process_memory_range_test.cc",
-    "process/process_memory_test.cc",
-    "stdlib/aligned_allocator_test.cc",
-    "stdlib/map_insert_test.cc",
-    "stdlib/string_number_conversion_test.cc",
-    "stdlib/strlcpy_test.cc",
-    "stdlib/strnlen_test.cc",
-    "stdlib/thread_safe_vector_test.cc",
-    "stream/base94_output_stream_test.cc",
-    "stream/file_encoder_test.cc",
-    "stream/log_output_stream_test.cc",
-    "stream/test_output_stream.cc",
-    "stream/test_output_stream.h",
-    "stream/zlib_output_stream_test.cc",
-    "string/split_string_test.cc",
-    "synchronization/semaphore_test.cc",
-    "thread/thread_log_messages_test.cc",
-    "thread/thread_test.cc",
-    "thread/worker_thread_test.cc",
-  ]
+    sources = [
+      "file/delimited_file_reader_test.cc",
+      "file/directory_reader_test.cc",
+      "file/file_io_test.cc",
+      "file/file_reader_test.cc",
+      "file/filesystem_test.cc",
+      "file/string_file_test.cc",
+      "misc/arraysize_test.cc",
+      "misc/capture_context_test.cc",
+      "misc/capture_context_test_util.h",
+      "misc/clock_test.cc",
+      "misc/from_pointer_cast_test.cc",
+      "misc/initialization_state_dcheck_test.cc",
+      "misc/initialization_state_test.cc",
+      "misc/paths_test.cc",
+      "misc/random_string_test.cc",
+      "misc/range_set_test.cc",
+      "misc/reinterpret_bytes_test.cc",
+      "misc/scoped_forbid_return_test.cc",
+      "misc/time_test.cc",
+      "misc/uuid_test.cc",
+      "net/http_body_gzip_test.cc",
+      "net/http_body_test.cc",
+      "net/http_body_test_util.cc",
+      "net/http_body_test_util.h",
+      "net/http_multipart_builder_test.cc",
+      "net/url_test.cc",
+      "numeric/checked_address_range_test.cc",
+      "numeric/checked_range_test.cc",
+      "numeric/in_range_cast_test.cc",
+      "numeric/int128_test.cc",
+      "process/process_memory_range_test.cc",
+      "process/process_memory_test.cc",
+      "stdlib/aligned_allocator_test.cc",
+      "stdlib/map_insert_test.cc",
+      "stdlib/string_number_conversion_test.cc",
+      "stdlib/strlcpy_test.cc",
+      "stdlib/strnlen_test.cc",
+      "stdlib/thread_safe_vector_test.cc",
+      "stream/base94_output_stream_test.cc",
+      "stream/file_encoder_test.cc",
+      "stream/log_output_stream_test.cc",
+      "stream/test_output_stream.cc",
+      "stream/test_output_stream.h",
+      "stream/zlib_output_stream_test.cc",
+      "string/split_string_test.cc",
+      "synchronization/semaphore_test.cc",
+      "thread/thread_log_messages_test.cc",
+      "thread/thread_test.cc",
+      "thread/worker_thread_test.cc",
+    ]
 
-  if (!crashpad_is_android) {
-    # Android requires an HTTPTransport implementation.
-    sources += [ "net/http_transport_test.cc" ]
-  }
+    if (!crashpad_is_android) {
+      # Android requires an HTTPTransport implementation.
+      sources += [ "net/http_transport_test.cc" ]
+    }
 
-  if (crashpad_is_posix || crashpad_is_fuchsia) {
-    if (!crashpad_is_fuchsia) {
+    if (crashpad_is_posix || crashpad_is_fuchsia) {
+      if (!crashpad_is_fuchsia) {
+        sources += [
+          "posix/process_info_test.cc",
+          "posix/signals_test.cc",
+          "posix/symbolic_constants_posix_test.cc",
+        ]
+      }
+      sources += [ "posix/scoped_mmap_test.cc" ]
+    }
+
+    if (crashpad_is_mac) {
       sources += [
-        "posix/process_info_test.cc",
-        "posix/signals_test.cc",
-        "posix/symbolic_constants_posix_test.cc",
+        "mac/launchd_test.mm",
+        "mac/mac_util_test.mm",
+        "mac/service_management_test.mm",
+        "mac/xattr_test.cc",
+        "mach/child_port_handshake_test.cc",
+        "mach/child_port_server_test.cc",
+        "mach/composite_mach_message_server_test.cc",
+        "mach/exc_client_variants_test.cc",
+        "mach/exc_server_variants_test.cc",
+        "mach/exception_behaviors_test.cc",
+        "mach/exception_ports_test.cc",
+        "mach/exception_types_test.cc",
+        "mach/mach_extensions_test.cc",
+        "mach/mach_message_server_test.cc",
+        "mach/mach_message_test.cc",
+        "mach/notify_server_test.cc",
+        "mach/scoped_task_suspend_test.cc",
+        "mach/symbolic_constants_mach_test.cc",
+        "misc/capture_context_test_util_mac.cc",
+        "process/process_memory_mac_test.cc",
       ]
     }
-    sources += [ "posix/scoped_mmap_test.cc" ]
-  }
 
-  if (crashpad_is_mac) {
-    sources += [
-      "mac/launchd_test.mm",
-      "mac/mac_util_test.mm",
-      "mac/service_management_test.mm",
-      "mac/xattr_test.cc",
-      "mach/child_port_handshake_test.cc",
-      "mach/child_port_server_test.cc",
-      "mach/composite_mach_message_server_test.cc",
-      "mach/exc_client_variants_test.cc",
-      "mach/exc_server_variants_test.cc",
-      "mach/exception_behaviors_test.cc",
-      "mach/exception_ports_test.cc",
-      "mach/exception_types_test.cc",
-      "mach/mach_extensions_test.cc",
-      "mach/mach_message_server_test.cc",
-      "mach/mach_message_test.cc",
-      "mach/notify_server_test.cc",
-      "mach/scoped_task_suspend_test.cc",
-      "mach/symbolic_constants_mach_test.cc",
-      "misc/capture_context_test_util_mac.cc",
-      "process/process_memory_mac_test.cc",
-    ]
-  }
-
-  if (crashpad_is_linux || crashpad_is_android) {
-    sources += [
-      "linux/auxiliary_vector_test.cc",
-      "linux/memory_map_test.cc",
-      "linux/proc_stat_reader_test.cc",
-      "linux/proc_task_reader_test.cc",
-      "linux/ptrace_broker_test.cc",
-      "linux/ptracer_test.cc",
-      "linux/scoped_ptrace_attach_test.cc",
-      "linux/socket_test.cc",
-      "misc/capture_context_test_util_linux.cc",
-      "process/process_memory_sanitized_test.cc",
-    ]
-  }
-
-  if (crashpad_is_fuchsia) {
-    sources += [ "misc/capture_context_test_util_fuchsia.cc" ]
-  }
-
-  if (crashpad_is_win) {
-    sources += [
-      "misc/capture_context_test_util_win.cc",
-      "win/command_line_test.cc",
-      "win/critical_section_with_debug_info_test.cc",
-      "win/exception_handler_server_test.cc",
-      "win/get_function_test.cc",
-      "win/handle_test.cc",
-      "win/initial_client_data_test.cc",
-      "win/loader_lock_test.cc",
-      "win/process_info_test.cc",
-      "win/registration_protocol_win_test.cc",
-      "win/safe_terminate_process_test.cc",
-      "win/scoped_process_suspend_test.cc",
-      "win/session_end_watcher_test.cc",
-    ]
-
-    if (crashpad_is_in_chromium && is_asan && is_component_build) {
-      # TODO(crbug.com/856174): Re-enable these once Windows ASan is fixed.
-      sources -= [ "stdlib/string_number_conversion_test.cc" ]
+    if (crashpad_is_linux || crashpad_is_android) {
+      sources += [
+        "linux/auxiliary_vector_test.cc",
+        "linux/memory_map_test.cc",
+        "linux/proc_stat_reader_test.cc",
+        "linux/proc_task_reader_test.cc",
+        "linux/ptrace_broker_test.cc",
+        "linux/ptracer_test.cc",
+        "linux/scoped_ptrace_attach_test.cc",
+        "linux/socket_test.cc",
+        "misc/capture_context_test_util_linux.cc",
+        "process/process_memory_sanitized_test.cc",
+      ]
     }
-  }
 
-  data = [ "net/testdata/" ]
-
-  deps = [
-    ":util",
-    "../client",
-    "../compat",
-    "../test",
-    "../third_party/gtest:gmock",
-    "../third_party/gtest:gtest",
-    "../third_party/mini_chromium:base",
-    "../third_party/zlib",
-  ]
-
-  if (crashpad_is_android || crashpad_is_linux) {
-    deps += [ "../third_party/lss" ]
-  }
-
-  if (!crashpad_is_android) {
-    data_deps = [ ":http_transport_test_server" ]
-
-    if (crashpad_use_boringssl_for_http_transport_socket) {
-      defines = [ "CRASHPAD_USE_BORINGSSL" ]
+    if (crashpad_is_fuchsia) {
+      sources += [ "misc/capture_context_test_util_fuchsia.cc" ]
     }
-  }
 
-  if (crashpad_is_mac) {
-    libs = [ "Foundation.framework" ]
-  }
+    if (crashpad_is_win) {
+      sources += [
+        "misc/capture_context_test_util_win.cc",
+        "win/command_line_test.cc",
+        "win/critical_section_with_debug_info_test.cc",
+        "win/exception_handler_server_test.cc",
+        "win/get_function_test.cc",
+        "win/handle_test.cc",
+        "win/initial_client_data_test.cc",
+        "win/loader_lock_test.cc",
+        "win/process_info_test.cc",
+        "win/registration_protocol_win_test.cc",
+        "win/safe_terminate_process_test.cc",
+        "win/scoped_process_suspend_test.cc",
+        "win/session_end_watcher_test.cc",
+      ]
 
-  if (crashpad_is_win) {
-    libs = [
-      "rpcrt4.lib",
-      "dbghelp.lib",
+      if (crashpad_is_in_chromium && is_asan && is_component_build) {
+        # TODO(crbug.com/856174): Re-enable these once Windows ASan is fixed.
+        sources -= [ "stdlib/string_number_conversion_test.cc" ]
+      }
+    }
+
+    data = [ "net/testdata/" ]
+
+    deps = [
+      ":util",
+      "../client",
+      "../compat",
+      "../test",
+      "../third_party/gtest:gmock",
+      "../third_party/gtest:gtest",
+      "../third_party/mini_chromium:base",
+      "../third_party/zlib",
     ]
-    data_deps += [
-      ":crashpad_util_test_loader_lock_test",
-      ":crashpad_util_test_process_info_test_child",
-      ":crashpad_util_test_safe_terminate_process_test_child",
-    ]
+
+    if (crashpad_is_android || crashpad_is_linux) {
+      deps += [ "../third_party/lss" ]
+    }
+
+    if (!crashpad_is_android) {
+      data_deps = [ ":http_transport_test_server" ]
+
+      if (crashpad_use_boringssl_for_http_transport_socket) {
+        defines = [ "CRASHPAD_USE_BORINGSSL" ]
+      }
+    }
+
+    if (crashpad_is_mac) {
+      libs = [ "Foundation.framework" ]
+    }
+
+    if (crashpad_is_win) {
+      libs = [
+        "rpcrt4.lib",
+        "dbghelp.lib",
+      ]
+      data_deps += [
+        ":crashpad_util_test_loader_lock_test",
+        ":crashpad_util_test_process_info_test_child",
+        ":crashpad_util_test_safe_terminate_process_test_child",
+      ]
+    }
   }
 }
 
@@ -772,3 +778,10 @@
     deps = [ ":util" ]
   }
 }
+
+if (crashpad_is_in_starboard) {
+  config("crashpad_starboard_config") {
+    include_dirs = [ "//third_party/mini_chromium" ]
+    cflags = [ "-isystem" + rebase_path("../../..", root_build_dir) ]
+  }
+}
diff --git a/src/third_party/crashpad/util/net/tls.gni b/src/third_party/crashpad/util/net/tls.gni
index eb96845..f5ad805 100644
--- a/src/third_party/crashpad/util/net/tls.gni
+++ b/src/third_party/crashpad/util/net/tls.gni
@@ -19,5 +19,5 @@
   # was removed from the Fuchsia SDK. Re-enable it when we have a way to acquire
   # a BoringSSL lib again.
   crashpad_use_boringssl_for_http_transport_socket =
-      crashpad_is_in_fuchsia || (crashpad_is_linux && crashpad_is_in_chromium)
+      crashpad_is_in_fuchsia || (crashpad_is_linux && crashpad_is_in_chromium) || crashpad_is_in_starboard
 }
diff --git a/src/third_party/crashpad/wrapper/BUILD.gn b/src/third_party/crashpad/wrapper/BUILD.gn
index 341319c..fc985cb 100644
--- a/src/third_party/crashpad/wrapper/BUILD.gn
+++ b/src/third_party/crashpad/wrapper/BUILD.gn
@@ -16,9 +16,22 @@
 # depend on this common target, and not any of the specific "starboard_platform"
 # targets.
 
+static_library("wrapper") {
+  sources = [
+    "wrapper.cc",
+    "wrapper.h",
+  ]
+
+  deps = [
+    "//starboard/elf_loader:evergreen_info",
+    "//third_party/crashpad/client",
+  ]
+}
+
 static_library("wrapper_stub") {
   sources = [
     "wrapper_stub.cc",
     "wrapper.h",
   ]
+  deps = [ "//starboard/elf_loader:evergreen_info" ]
 }
\ No newline at end of file
diff --git a/src/starboard/linux/x64x11/vulkan/starboard_platform.gyp b/src/third_party/de265_includes/BUILD.gn
similarity index 80%
copy from src/starboard/linux/x64x11/vulkan/starboard_platform.gyp
copy to src/third_party/de265_includes/BUILD.gn
index 82c4436..2c29d94 100644
--- a/src/starboard/linux/x64x11/vulkan/starboard_platform.gyp
+++ b/src/third_party/de265_includes/BUILD.gn
@@ -1,4 +1,4 @@
-# Copyright 2017 The Cobalt Authors. All Rights Reserved.
+# Copyright 2021 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.
@@ -11,8 +11,7 @@
 # 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.
-{
-  'includes': [
-    '../shared/starboard_platform_target.gypi',
-  ],
+
+config("de265_includes") {
+  include_dirs = [ "." ]
 }
diff --git a/src/third_party/de265_includes/METADATA b/src/third_party/de265_includes/METADATA
index 9a85eed..30b29c4 100644
--- a/src/third_party/de265_includes/METADATA
+++ b/src/third_party/de265_includes/METADATA
@@ -14,4 +14,5 @@
     month: 4
     day: 18
   }
+  license_type: RESTRICTED
 }
diff --git a/src/cobalt/debug/remote/devtools/.clang-format b/src/third_party/devtools/.clang-format
similarity index 100%
rename from src/cobalt/debug/remote/devtools/.clang-format
rename to src/third_party/devtools/.clang-format
diff --git a/src/cobalt/debug/remote/devtools/.eslintignore b/src/third_party/devtools/.eslintignore
similarity index 100%
rename from src/cobalt/debug/remote/devtools/.eslintignore
rename to src/third_party/devtools/.eslintignore
diff --git a/src/cobalt/debug/remote/devtools/.eslintrc.js b/src/third_party/devtools/.eslintrc.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/.eslintrc.js
rename to src/third_party/devtools/.eslintrc.js
diff --git a/src/cobalt/debug/remote/devtools/.gn b/src/third_party/devtools/.gn
similarity index 100%
rename from src/cobalt/debug/remote/devtools/.gn
rename to src/third_party/devtools/.gn
diff --git a/src/cobalt/debug/remote/devtools/.npmignore b/src/third_party/devtools/.npmignore
similarity index 100%
rename from src/cobalt/debug/remote/devtools/.npmignore
rename to src/third_party/devtools/.npmignore
diff --git a/src/cobalt/debug/remote/devtools/.style.yapf b/src/third_party/devtools/.style.yapf
similarity index 100%
rename from src/cobalt/debug/remote/devtools/.style.yapf
rename to src/third_party/devtools/.style.yapf
diff --git a/src/cobalt/debug/remote/devtools/AUDITS_OWNERS b/src/third_party/devtools/AUDITS_OWNERS
similarity index 100%
rename from src/cobalt/debug/remote/devtools/AUDITS_OWNERS
rename to src/third_party/devtools/AUDITS_OWNERS
diff --git a/src/cobalt/debug/remote/devtools/BUILD.gn b/src/third_party/devtools/BUILD.gn
similarity index 100%
rename from src/cobalt/debug/remote/devtools/BUILD.gn
rename to src/third_party/devtools/BUILD.gn
diff --git a/src/cobalt/debug/remote/devtools/DESIGN_GUIDELINES.md b/src/third_party/devtools/DESIGN_GUIDELINES.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/DESIGN_GUIDELINES.md
rename to src/third_party/devtools/DESIGN_GUIDELINES.md
diff --git a/src/cobalt/debug/remote/devtools/ENG_REVIEW_OWNERS b/src/third_party/devtools/ENG_REVIEW_OWNERS
similarity index 100%
rename from src/cobalt/debug/remote/devtools/ENG_REVIEW_OWNERS
rename to src/third_party/devtools/ENG_REVIEW_OWNERS
diff --git a/src/cobalt/debug/remote/devtools/INFRA_OWNERS b/src/third_party/devtools/INFRA_OWNERS
similarity index 100%
rename from src/cobalt/debug/remote/devtools/INFRA_OWNERS
rename to src/third_party/devtools/INFRA_OWNERS
diff --git a/src/cobalt/debug/remote/devtools/LICENSE b/src/third_party/devtools/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/LICENSE
rename to src/third_party/devtools/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/METADATA b/src/third_party/devtools/METADATA
similarity index 88%
rename from src/cobalt/debug/remote/devtools/METADATA
rename to src/third_party/devtools/METADATA
index 38373bd..5274aa8 100644
--- a/src/cobalt/debug/remote/devtools/METADATA
+++ b/src/third_party/devtools/METADATA
@@ -1,6 +1,6 @@
 name: "devtools"
 description:
-  "Subtree at cobalt/debug/remote/devtools."
+  "Subtree at third_party/devtools."
 
 third_party {
   url {
diff --git a/src/cobalt/debug/remote/devtools/README.md b/src/third_party/devtools/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/README.md
rename to src/third_party/devtools/README.md
diff --git a/src/cobalt/debug/remote/devtools/WATCHLISTS b/src/third_party/devtools/WATCHLISTS
similarity index 100%
rename from src/cobalt/debug/remote/devtools/WATCHLISTS
rename to src/third_party/devtools/WATCHLISTS
diff --git a/src/cobalt/debug/remote/devtools/__init__.py b/src/third_party/devtools/__init__.py
similarity index 100%
rename from src/cobalt/debug/remote/devtools/__init__.py
rename to src/third_party/devtools/__init__.py
diff --git a/src/cobalt/debug/remote/devtools/blink/README.txt b/src/third_party/devtools/blink/README.txt
similarity index 100%
rename from src/cobalt/debug/remote/devtools/blink/README.txt
rename to src/third_party/devtools/blink/README.txt
diff --git a/src/cobalt/debug/remote/devtools/blink/devtools_protocol/BUILD.gn b/src/third_party/devtools/blink/devtools_protocol/BUILD.gn
similarity index 100%
rename from src/cobalt/debug/remote/devtools/blink/devtools_protocol/BUILD.gn
rename to src/third_party/devtools/blink/devtools_protocol/BUILD.gn
diff --git a/src/cobalt/debug/remote/devtools/blink/devtools_protocol/browser_protocol-1.3.json b/src/third_party/devtools/blink/devtools_protocol/browser_protocol-1.3.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/blink/devtools_protocol/browser_protocol-1.3.json
rename to src/third_party/devtools/blink/devtools_protocol/browser_protocol-1.3.json
diff --git a/src/cobalt/debug/remote/devtools/blink/devtools_protocol/browser_protocol.pdl b/src/third_party/devtools/blink/devtools_protocol/browser_protocol.pdl
similarity index 100%
rename from src/cobalt/debug/remote/devtools/blink/devtools_protocol/browser_protocol.pdl
rename to src/third_party/devtools/blink/devtools_protocol/browser_protocol.pdl
diff --git a/src/cobalt/debug/remote/devtools/blink/devtools_protocol/devtools_protocol.gyp b/src/third_party/devtools/blink/devtools_protocol/devtools_protocol.gyp
similarity index 89%
rename from src/cobalt/debug/remote/devtools/blink/devtools_protocol/devtools_protocol.gyp
rename to src/third_party/devtools/blink/devtools_protocol/devtools_protocol.gyp
index b1b375f..2dced4f 100644
--- a/src/cobalt/debug/remote/devtools/blink/devtools_protocol/devtools_protocol.gyp
+++ b/src/third_party/devtools/blink/devtools_protocol/devtools_protocol.gyp
@@ -32,7 +32,7 @@
             'browser_protocol.pdl',
             '<(v8_inspector_js_protocol_file)',
           ],
-          'stamp_file': '<(SHARED_INTERMEDIATE_DIR)/cobalt/debug/remote/devtools/blink/devtools_protocol/check_protocol_compatibility.stamp',
+          'stamp_file': '<(SHARED_INTERMEDIATE_DIR)/third_party/devtools/blink/devtools_protocol/check_protocol_compatibility.stamp',
         },
         'inputs': [ '<(script_path)', '<@(input_files)' ],
         'outputs': [ '<(stamp_file)' ],
@@ -60,7 +60,7 @@
             'browser_protocol.pdl',
             '<(v8_inspector_js_protocol_file)',
           ],
-          'output_file': '<(SHARED_INTERMEDIATE_DIR)/cobalt/debug/remote/devtools/blink/devtools_protocol/protocol.json',
+          'output_file': '<(SHARED_INTERMEDIATE_DIR)/third_party/devtools/blink/devtools_protocol/protocol.json',
         },
         'inputs': [ '<(script_path)', '<@(input_files)' ],
         'outputs': [ '<(output_file)' ],
diff --git a/src/cobalt/debug/remote/devtools/blink/properties/CSSProperties.json5 b/src/third_party/devtools/blink/properties/CSSProperties.json5
similarity index 100%
rename from src/cobalt/debug/remote/devtools/blink/properties/CSSProperties.json5
rename to src/third_party/devtools/blink/properties/CSSProperties.json5
diff --git a/src/cobalt/debug/remote/devtools/blink/properties/aria_properties.json5 b/src/third_party/devtools/blink/properties/aria_properties.json5
similarity index 100%
rename from src/cobalt/debug/remote/devtools/blink/properties/aria_properties.json5
rename to src/third_party/devtools/blink/properties/aria_properties.json5
diff --git a/src/cobalt/debug/remote/devtools/build_overrides/BUILDCONFIG.gn b/src/third_party/devtools/build_overrides/BUILDCONFIG.gn
similarity index 100%
rename from src/cobalt/debug/remote/devtools/build_overrides/BUILDCONFIG.gn
rename to src/third_party/devtools/build_overrides/BUILDCONFIG.gn
diff --git a/src/cobalt/debug/remote/devtools/build_overrides/build.gni b/src/third_party/devtools/build_overrides/build.gni
similarity index 100%
rename from src/cobalt/debug/remote/devtools/build_overrides/build.gni
rename to src/third_party/devtools/build_overrides/build.gni
diff --git a/src/third_party/devtools/copy_devtools_modules.rsp b/src/third_party/devtools/copy_devtools_modules.rsp
new file mode 100644
index 0000000..39ad8b2
--- /dev/null
+++ b/src/third_party/devtools/copy_devtools_modules.rsp
@@ -0,0 +1,476 @@
+front_end/network/network.js
+front_end/network/SignedExchangeInfoView.js
+front_end/network/ResourceWebSocketFrameView.js
+front_end/network/RequestTimingView.js
+front_end/network/RequestResponseView.js
+front_end/network/RequestPreviewView.js
+front_end/network/RequestInitiatorView.js
+front_end/network/RequestHeadersView.js
+front_end/network/RequestHTMLView.js
+front_end/network/RequestCookiesView.js
+front_end/network/NetworkWaterfallColumn.js
+front_end/network/NetworkTimeCalculator.js
+front_end/network/NetworkSearchScope.js
+front_end/network/NetworkPanel.js
+front_end/network/NetworkOverview.js
+front_end/network/NetworkManageCustomHeadersView.js
+front_end/network/NetworkLogViewColumns.js
+front_end/network/NetworkLogView.js
+front_end/network/NetworkItemView.js
+front_end/network/NetworkFrameGrouper.js
+front_end/network/NetworkDataGridNode.js
+front_end/network/NetworkConfigView.js
+front_end/network/HARWriter.js
+front_end/network/EventSourceMessagesView.js
+front_end/network/BlockedURLsPane.js
+front_end/network/BinaryResourceView.js
+front_end/test_runner/test_runner.js
+front_end/test_runner/TestRunner.js
+front_end/emulation/emulation.js
+front_end/emulation/SensorsView.js
+front_end/emulation/MediaQueryInspector.js
+front_end/emulation/InspectedPagePlaceholder.js
+front_end/emulation/GeolocationsSettingsTab.js
+front_end/emulation/EmulatedDevices.js
+front_end/emulation/DevicesSettingsTab.js
+front_end/emulation/DeviceModeWrapper.js
+front_end/emulation/DeviceModeView.js
+front_end/emulation/DeviceModeToolbar.js
+front_end/emulation/DeviceModeModel.js
+front_end/emulation/AdvancedApp.js
+front_end/inspector_main/inspector_main.js
+front_end/inspector_main/RenderingOptions.js
+front_end/inspector_main/InspectorMain.js
+front_end/js_main/js_main.js
+front_end/js_main/JsMain.js
+front_end/search/search.js
+front_end/search/SearchView.js
+front_end/search/SearchResultsPane.js
+front_end/search/SearchConfig.js
+front_end/screencast/screencast.js
+front_end/screencast/ScreencastView.js
+front_end/screencast/ScreencastApp.js
+front_end/screencast/InputModel.js
+front_end/performance_monitor/performance_monitor.js
+front_end/performance_monitor/PerformanceMonitor.js
+front_end/main/main.js
+front_end/main/SimpleApp.js
+front_end/main/MainImpl.js
+front_end/main/ExecutionContextSelector.js
+front_end/snippets/snippets.js
+front_end/snippets/SnippetsQuickOpen.js
+front_end/snippets/ScriptSnippetFileSystem.js
+front_end/settings/settings.js
+front_end/settings/SettingsScreen.js
+front_end/settings/FrameworkBlackboxSettingsTab.js
+front_end/security/security.js
+front_end/security/SecurityPanel.js
+front_end/security/SecurityModel.js
+front_end/javascript_metadata/javascript_metadata.js
+front_end/javascript_metadata/NativeFunctions.js
+front_end/javascript_metadata/JavaScriptMetadata.js
+front_end/har_importer/har_importer.js
+front_end/har_importer/HARImporter.js
+front_end/har_importer/HARFormat.js
+front_end/browser_debugger/browser_debugger.js
+front_end/browser_debugger/XHRBreakpointsSidebarPane.js
+front_end/browser_debugger/ObjectEventListenersSidebarPane.js
+front_end/browser_debugger/EventListenerBreakpointsSidebarPane.js
+front_end/browser_debugger/DOMBreakpointsSidebarPane.js
+front_end/layer_viewer/layer_viewer.js
+front_end/layer_viewer/TransformController.js
+front_end/layer_viewer/PaintProfilerView.js
+front_end/layer_viewer/Layers3DView.js
+front_end/layer_viewer/LayerViewHost.js
+front_end/layer_viewer/LayerTreeOutline.js
+front_end/layer_viewer/LayerDetailsView.js
+front_end/cm_web_modes/cm_web_modes.js
+front_end/cm_web_modes/cm_web_modes_cm.js
+front_end/cm_web_modes/cm_web_modes_headless.js
+front_end/cm_web_modes/css.js
+front_end/cm_web_modes/javascript.js
+front_end/cm_web_modes/xml.js
+front_end/cm_web_modes/htmlmixed.js
+front_end/cm_web_modes/htmlembedded.js
+front_end/text_editor/text_editor.js
+front_end/text_editor/TextEditorAutocompleteController.js
+front_end/text_editor/CodeMirrorUtils.js
+front_end/text_editor/CodeMirrorTextEditor.js
+front_end/quick_open/quick_open.js
+front_end/quick_open/QuickOpen.js
+front_end/quick_open/HelpQuickOpen.js
+front_end/quick_open/FilteredListWidget.js
+front_end/quick_open/CommandMenu.js
+front_end/elements/elements.js
+front_end/elements/elements-legacy.js
+front_end/elements/StylesSidebarPane.js
+front_end/elements/StylePropertyTreeElement.js
+front_end/elements/StylePropertyHighlighter.js
+front_end/elements/PropertiesWidget.js
+front_end/elements/PlatformFontsWidget.js
+front_end/elements/NodeStackTraceWidget.js
+front_end/elements/MetricsSidebarPane.js
+front_end/elements/MarkerDecorator.js
+front_end/elements/InspectElementModeController.js
+front_end/elements/EventListenersWidget.js
+front_end/elements/ElementsTreeOutline.js
+front_end/elements/ElementsTreeElement.js
+front_end/elements/ElementsTreeElementHighlighter.js
+front_end/elements/ElementStatePaneWidget.js
+front_end/elements/ElementsSidebarPane.js
+front_end/elements/ElementsPanel.js
+front_end/elements/ElementsBreadcrumbs.js
+front_end/elements/DOMPath.js
+front_end/elements/DOMLinkifier.js
+front_end/elements/ComputedStyleWidget.js
+front_end/elements/ComputedStyleModel.js
+front_end/elements/ColorSwatchPopoverIcon.js
+front_end/elements/ClassesPaneWidget.js
+front_end/timeline_model/timeline_model.js
+front_end/timeline_model/TracingLayerTree.js
+front_end/timeline_model/TimelineProfileTree.js
+front_end/timeline_model/TimelineModel.js
+front_end/timeline_model/TimelineModelFilter.js
+front_end/timeline_model/TimelineJSProfile.js
+front_end/timeline_model/TimelineIRModel.js
+front_end/timeline_model/TimelineFrameModel.js
+front_end/help/help.js
+front_end/help/ReleaseNoteView.js
+front_end/help/ReleaseNoteText.js
+front_end/help/HelpImpl.js
+front_end/workspace_diff/workspace_diff.js
+front_end/workspace_diff/WorkspaceDiff.js
+front_end/mobile_throttling/mobile_throttling.js
+front_end/mobile_throttling/ThrottlingSettingsTab.js
+front_end/mobile_throttling/ThrottlingPresets.js
+front_end/mobile_throttling/ThrottlingManager.js
+front_end/mobile_throttling/NetworkThrottlingSelector.js
+front_end/mobile_throttling/NetworkPanelIndicator.js
+front_end/mobile_throttling/MobileThrottlingSelector.js
+front_end/event_listeners/event_listeners.js
+front_end/event_listeners/EventListenersView.js
+front_end/event_listeners/EventListenersUtils.js
+front_end/object_ui/object_ui.js
+front_end/object_ui/RemoteObjectPreviewFormatter.js
+front_end/object_ui/ObjectPropertiesSection.js
+front_end/object_ui/ObjectPopoverHelper.js
+front_end/object_ui/JavaScriptREPL.js
+front_end/object_ui/JavaScriptAutocomplete.js
+front_end/object_ui/CustomPreviewComponent.js
+front_end/cookie_table/cookie_table.js
+front_end/cookie_table/CookiesTable.js
+front_end/cm_modes/cm_modes.js
+front_end/cm_modes/DefaultCodeMirrorMimeMode.js
+front_end/cm_modes/clike.js
+front_end/cm_modes/coffeescript.js
+front_end/cm_modes/php.js
+front_end/cm_modes/python.js
+front_end/cm_modes/shell.js
+front_end/cm_modes/livescript.js
+front_end/cm_modes/markdown.js
+front_end/cm_modes/clojure.js
+front_end/cm_modes/jsx.js
+front_end/css_overview/css_overview.js
+front_end/css_overview/CSSOverviewUnusedDeclarations.js
+front_end/css_overview/CSSOverviewStartView.js
+front_end/css_overview/CSSOverviewSidebarPanel.js
+front_end/css_overview/CSSOverviewProcessingView.js
+front_end/css_overview/CSSOverviewPanel.js
+front_end/css_overview/CSSOverviewModel.js
+front_end/css_overview/CSSOverviewController.js
+front_end/css_overview/CSSOverviewCompletedView.js
+front_end/console/console.js
+front_end/console/ConsoleContextSelector.js
+front_end/console/ConsoleFilter.js
+front_end/console/ConsoleSidebar.js
+front_end/console/ConsolePanel.js
+front_end/console/ConsolePinPane.js
+front_end/console/ConsolePrompt.js
+front_end/console/ConsoleView.js
+front_end/console/ConsoleViewMessage.js
+front_end/console/ConsoleViewport.js
+front_end/source_frame/source_frame.js
+front_end/source_frame/XMLView.js
+front_end/source_frame/SourcesTextEditor.js
+front_end/source_frame/SourceFrame.js
+front_end/source_frame/source_frame.js
+front_end/source_frame/SourceCodeDiff.js
+front_end/source_frame/ResourceSourceFrame.js
+front_end/source_frame/PreviewFactory.js
+front_end/source_frame/JSONView.js
+front_end/source_frame/ImageView.js
+front_end/source_frame/FontView.js
+front_end/source_frame/BinaryResourceViewFactory.js
+front_end/inline_editor/inline_editor.js
+front_end/inline_editor/SwatchPopoverHelper.js
+front_end/inline_editor/CSSShadowModel.js
+front_end/inline_editor/CSSShadowEditor.js
+front_end/inline_editor/ColorSwatch.js
+front_end/inline_editor/BezierUI.js
+front_end/inline_editor/BezierEditor.js
+front_end/diff/diff.js
+front_end/diff/diff_match_patch.js
+front_end/diff/DiffWrapper.js
+front_end/formatter/formatter.js
+front_end/formatter/ScriptFormatter.js
+front_end/formatter/FormatterWorkerPool.js
+front_end/color_picker/color_picker.js
+front_end/color_picker/Spectrum.js
+front_end/color_picker/ContrastOverlay.js
+front_end/color_picker/ContrastInfo.js
+front_end/color_picker/ContrastDetails.js
+front_end/cm/cm.js
+front_end/cm/active-line.js
+front_end/cm/brace-fold.js
+front_end/cm/closebrackets.js
+front_end/cm/codemirror.js
+front_end/cm/comment.js
+front_end/cm/foldcode.js
+front_end/cm/foldgutter.js
+front_end/cm/mark-selection.js
+front_end/cm/matchbrackets.js
+front_end/cm/multiplex.js
+front_end/cm/overlay.js
+front_end/formatter_worker.unbundled.js
+front_end/heap_snapshot_worker.unbundled.js
+front_end/heap_snapshot_model/heap_snapshot_model.js
+front_end/heap_snapshot_model/HeapSnapshotModel.js
+front_end/heap_snapshot_worker/heap_snapshot_worker.js
+front_end/heap_snapshot_worker/AllocationProfile.js
+front_end/heap_snapshot_worker/HeapSnapshot.js
+front_end/heap_snapshot_worker/HeapSnapshotLoader.js
+front_end/heap_snapshot_worker/HeapSnapshotWorker.js
+front_end/heap_snapshot_worker/HeapSnapshotWorkerDispatcher.js
+front_end/text_utils/text_utils.js
+front_end/text_utils/TextUtils.js
+front_end/text_utils/TextRange.js
+front_end/text_utils/Text.js
+front_end/formatter_worker/formatter_worker.js
+front_end/formatter_worker/RelaxedJSONParser.js
+front_end/formatter_worker/JavaScriptOutline.js
+front_end/formatter_worker/JavaScriptFormatter.js
+front_end/formatter_worker/IdentityFormatter.js
+front_end/formatter_worker/HTMLFormatter.js
+front_end/formatter_worker/FormatterWorker.js
+front_end/formatter_worker/FormattedContentBuilder.js
+front_end/formatter_worker/ESTreeWalker.js
+front_end/formatter_worker/CSSRuleParser.js
+front_end/formatter_worker/CSSFormatter.js
+front_end/formatter_worker/AcornTokenizer.js
+front_end/cm_headless/cm_headless.js
+front_end/cm_headless/headlesscodemirror.js
+front_end/data_grid/data_grid.js
+front_end/data_grid/ViewportDataGrid.js
+front_end/data_grid/SortableDataGrid.js
+front_end/data_grid/ShowMoreDataGridNode.js
+front_end/data_grid/DataGrid.js
+front_end/protocol_monitor/protocol_monitor.js
+front_end/protocol_monitor/ProtocolMonitor.js
+front_end/console_counters/console_counters.js
+front_end/console_counters/WarningErrorCounter.js
+front_end/extensions/extensions.js
+front_end/extensions/ExtensionAPI.js
+front_end/extensions/ExtensionPanel.js
+front_end/extensions/ExtensionServer.js
+front_end/extensions/ExtensionTraceProvider.js
+front_end/extensions/ExtensionView.js
+front_end/browser_sdk/browser_sdk.js
+front_end/browser_sdk/LogManager.js
+front_end/persistence/persistence.js
+front_end/persistence/WorkspaceSettingsTab.js
+front_end/persistence/PlatformFileSystem.js
+front_end/persistence/PersistenceUtils.js
+front_end/persistence/PersistenceImpl.js
+front_end/persistence/PersistenceActions.js
+front_end/persistence/NetworkPersistenceManager.js
+front_end/persistence/IsolatedFileSystemManager.js
+front_end/persistence/IsolatedFileSystem.js
+front_end/persistence/FileSystemWorkspaceBinding.js
+front_end/persistence/EditFileSystemView.js
+front_end/persistence/Automapping.js
+front_end/components/components.js
+front_end/components/TargetDetachedDialog.js
+front_end/components/Reload.js
+front_end/components/Linkifier.js
+front_end/components/JSPresentationUtils.js
+front_end/components/ImagePreview.js
+front_end/components/DockController.js
+front_end/bindings/bindings.js
+front_end/bindings/TempFile.js
+front_end/bindings/StylesSourceMapping.js
+front_end/bindings/SASSSourceMapping.js
+front_end/bindings/ResourceUtils.js
+front_end/bindings/ResourceScriptMapping.js
+front_end/bindings/ResourceMapping.js
+front_end/bindings/PresentationConsoleMessageHelper.js
+front_end/bindings/NetworkProject.js
+front_end/bindings/LiveLocation.js
+front_end/bindings/FileUtils.js
+front_end/bindings/DefaultScriptMapping.js
+front_end/bindings/DebuggerWorkspaceBinding.js
+front_end/bindings/CSSWorkspaceBinding.js
+front_end/bindings/ContentProviderBasedProject.js
+front_end/bindings/CompilerScriptMapping.js
+front_end/bindings/BreakpointManager.js
+front_end/bindings/BlackboxManager.js
+front_end/workspace/workspace.js
+front_end/workspace/WorkspaceImpl.js
+front_end/workspace/UISourceCode.js
+front_end/workspace/FileManager.js
+front_end/services/services.js
+front_end/services/ServiceManager.js
+front_end/sdk/sdk.js
+front_end/sdk/TracingModel.js
+front_end/sdk/TracingManager.js
+front_end/sdk/TargetManager.js
+front_end/sdk/Target.js
+front_end/sdk/SourceMapManager.js
+front_end/sdk/SourceMap.js
+front_end/sdk/ServiceWorkerManager.js
+front_end/sdk/ServiceWorkerCacheModel.js
+front_end/sdk/ServerTiming.js
+front_end/sdk/SecurityOriginManager.js
+front_end/sdk/SDKModel.js
+front_end/sdk/Script.js
+front_end/sdk/ScreenCaptureModel.js
+front_end/sdk/RuntimeModel.js
+front_end/sdk/ResourceTreeModel.js
+front_end/sdk/Resource.js
+front_end/sdk/RemoteObject.js
+front_end/sdk/ProfileTreeModel.js
+front_end/sdk/IssuesModel.js
+front_end/sdk/PerformanceMetricsModel.js
+front_end/sdk/PaintProfiler.js
+front_end/sdk/OverlayModel.js
+front_end/sdk/NetworkRequest.js
+front_end/sdk/NetworkManager.js
+front_end/sdk/NetworkLog.js
+front_end/sdk/LogModel.js
+front_end/sdk/LayerTreeBase.js
+front_end/sdk/IsolateManager.js
+front_end/sdk/HeapProfilerModel.js
+front_end/sdk/HARLog.js
+front_end/sdk/FilmStripModel.js
+front_end/sdk/EmulationModel.js
+front_end/sdk/DOMModel.js
+front_end/sdk/DOMDebuggerModel.js
+front_end/sdk/DebuggerModel.js
+front_end/sdk/CSSStyleSheetHeader.js
+front_end/sdk/CSSStyleDeclaration.js
+front_end/sdk/CSSRule.js
+front_end/sdk/CSSProperty.js
+front_end/sdk/CSSModel.js
+front_end/sdk/CSSMetadata.js
+front_end/sdk/CSSMedia.js
+front_end/sdk/CSSMatchedStyles.js
+front_end/sdk/CPUProfilerModel.js
+front_end/sdk/CPUProfileDataModel.js
+front_end/sdk/CookieParser.js
+front_end/sdk/CookieModel.js
+front_end/sdk/CompilerSourceMappingContentProvider.js
+front_end/sdk/ConsoleModel.js
+front_end/sdk/Connections.js
+front_end/sdk/ChildTargetManager.js
+front_end/protocol/protocol.js
+front_end/protocol/NodeURL.js
+front_end/protocol/InspectorBackend.js
+front_end/host/host.js
+front_end/host/UserMetrics.js
+front_end/host/ResourceLoader.js
+front_end/host/Platform.js
+front_end/host/InspectorFrontendHost.js
+front_end/host/InspectorFrontendHostAPI.js
+front_end/dom_extension/DOMExtension.js
+front_end/dom_extension/dom_extension.js
+front_end/root.js
+front_end/Runtime.js
+front_end/platform/utilities.js
+front_end/platform/platform.js
+front_end/ui/ARIAUtils.js
+front_end/ui/ZoomManager.js
+front_end/ui/XWidget.js
+front_end/ui/XLink.js
+front_end/ui/XElement.js
+front_end/ui/Widget.js
+front_end/ui/View.js
+front_end/ui/ViewManager.js
+front_end/ui/UIUtils.js
+front_end/ui/ui.js
+front_end/ui/Treeoutline.js
+front_end/ui/Tooltip.js
+front_end/ui/Toolbar.js
+front_end/ui/ThrottledWidget.js
+front_end/ui/TextPrompt.js
+front_end/ui/TextEditor.js
+front_end/ui/TargetCrashedScreen.js
+front_end/ui/TabbedPane.js
+front_end/ui/SyntaxHighlighter.js
+front_end/ui/SuggestBox.js
+front_end/ui/SplitWidget.js
+front_end/ui/SoftDropDown.js
+front_end/ui/SoftContextMenu.js
+front_end/ui/ShortcutsScreen.js
+front_end/ui/ShortcutRegistry.js
+front_end/ui/SettingsUI.js
+front_end/ui/SegmentedButton.js
+front_end/ui/SearchableView.js
+front_end/ui/RootView.js
+front_end/ui/ResizerWidget.js
+front_end/ui/ReportView.js
+front_end/ui/RemoteDebuggingTerminatedScreen.js
+front_end/ui/ProgressIndicator.js
+front_end/ui/PopoverHelper.js
+front_end/ui/Panel.js
+front_end/ui/ListWidget.js
+front_end/ui/ListModel.js
+front_end/ui/ListControl.js
+front_end/ui/KeyboardShortcut.js
+front_end/ui/InspectorView.js
+front_end/ui/InplaceEditor.js
+front_end/ui/Infobar.js
+front_end/ui/Icon.js
+front_end/ui/HistoryInput.js
+front_end/ui/GlassPane.js
+front_end/ui/Geometry.js
+front_end/ui/Fragment.js
+front_end/ui/ForwardedInputEventHandler.js
+front_end/ui/FilterSuggestionBuilder.js
+front_end/ui/FilterBar.js
+front_end/ui/EmptyWidget.js
+front_end/ui/DropTarget.js
+front_end/ui/Dialog.js
+front_end/ui/ContextMenu.js
+front_end/ui/Context.js
+front_end/ui/ARIAUtils.js
+front_end/ui/ActionRegistry.js
+front_end/ui/Action.js
+front_end/ui/ActionDelegate.js
+front_end/ui/ContextFlavorListener.js
+front_end/root.js
+front_end/common/common.js
+front_end/common/common-legacy.js
+front_end/common/App.js
+front_end/common/AppProvider.js
+front_end/common/CharacterIdMap.js
+front_end/common/Color.js
+front_end/common/ContentProvider.js
+front_end/common/EventTarget.js
+front_end/common/JavaScriptMetaData.js
+front_end/common/Linkifier.js
+front_end/common/Object.js
+front_end/common/Console.js
+front_end/common/ParsedURL.js
+front_end/common/Progress.js
+front_end/common/QueryParamHandler.js
+front_end/common/ResourceType.js
+front_end/common/Revealer.js
+front_end/common/Runnable.js
+front_end/common/SegmentedRange.js
+front_end/common/Settings.js
+front_end/common/StaticContentProvider.js
+front_end/common/StringOutputStream.js
+front_end/common/TextDictionary.js
+front_end/common/Throttler.js
+front_end/common/Trie.js
+front_end/common/UIString.js
+front_end/common/Worker.js
diff --git a/src/cobalt/debug/remote/devtools/devtools.gyp b/src/third_party/devtools/devtools.gyp
similarity index 97%
rename from src/cobalt/debug/remote/devtools/devtools.gyp
rename to src/third_party/devtools/devtools.gyp
index bb16c96..d8a1f2c 100644
--- a/src/cobalt/debug/remote/devtools/devtools.gyp
+++ b/src/third_party/devtools/devtools.gyp
@@ -1995,70 +1995,6 @@
         'destination': '<(resources_out_dir)/sdk/wasm_source_map/pkg',
       }],
     },
-
-    {
-      'target_name': 'generate_devtools_grd',
-      'type': 'none',
-      'dependencies': [
-        # devtools_frontend_resources_deps
-        'aria_properties',
-        'build_release_devtools',
-        'copy_embedder_scripts',
-        'copy_emulated_devices_images',
-        'copy_htaccess',
-        'copy_inspector_images',
-        'copy_lighthouse_locale_files',
-        'copy_wasm_deps',
-        'devtools_extension_api',
-        'frontend_protocol_sources',
-        'supported_css_properties',
-        'copy_devtools_modules',
-        # Debug
-        'build_debug_devtools',
-        'copy_aria_properties',
-        'copy_generated_scripts',
-      ],
-      'actions': [{
-        'action_name': 'generate_devtools_grd',
-        'variables': {
-          'script_path': 'scripts/build/generate_devtools_grd.py',
-          'grd_files': [
-            '<@(copied_devtools_modules)',
-            '<@(generated_applications)',
-            '<@(generated_non_autostart_non_remote_modules)',
-            '<@(devtools_embedder_scripts)',
-            '<@(generated_scripts)',
-            '<@(generated_worker_bundles)',
-            '<(resources_out_dir)/devtools_extension_api.js',
-            '<(resources_out_dir)/sdk/wasm_source_map/pkg/wasm_source_map_bg.wasm',
-          ],
-          'relative_path_dirs': [
-            '<@(resources_out_dir)',
-            'front_end',
-          ],
-          'images_dir': 'front_end/Images',
-          'output_file': '<(SHARED_INTERMEDIATE_DIR)/cobalt/debug/remote/devtools/devtools_resources.grd',
-        },
-        'inputs': [
-          '<(script_path)',
-          '<@(grd_files)',
-          '<@(devtools_image_files)',
-        ],
-        'outputs': [ '<(output_file)' ],
-        'action': [
-          'python2',
-          '<(script_path)',
-          '<@(grd_files)',
-          '--relative_path_dirs',
-          '<@(relative_path_dirs)',
-          '--images',
-          '<(images_dir)',
-          '--output',
-          '<(output_file)',
-        ],
-      }],
-    },
-
     {
       'target_name': 'devtools_extension_api',
       'type': 'none',
@@ -2132,7 +2068,7 @@
         'action_name': 'code_generator_frontend',
         'variables': {
           'script_path': 'scripts/build/code_generator_frontend.py',
-          'input_files': [ '<(SHARED_INTERMEDIATE_DIR)/cobalt/debug/remote/devtools/blink/devtools_protocol/protocol.json' ],
+          'input_files': [ '<(SHARED_INTERMEDIATE_DIR)/third_party/devtools/blink/devtools_protocol/protocol.json' ],
           'output_file': '<(resources_out_dir)/InspectorBackendCommands.js',
         },
         'inputs': [ '<(script_path)', '<@(input_files)' ],
@@ -2212,7 +2148,7 @@
         'inputs': [
           '<(script_path)',
           '<@(all_devtools_modules)',
-          '<!@pymod_do_main(cobalt.debug.remote.devtools.scripts.build.copy_devtools_modules --gen_rsp <(rsp_file) <@(all_devtools_modules))',
+          '<!@pymod_do_main(third_party.devtools.scripts.build.copy_devtools_modules --gen_rsp <(rsp_file) <@(all_devtools_modules))',
         ],
         'outputs': [
           '<@(copied_devtools_modules)',
diff --git a/src/cobalt/debug/remote/devtools/docs/RELEASE_MGMT.md b/src/third_party/devtools/docs/RELEASE_MGMT.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/docs/RELEASE_MGMT.md
rename to src/third_party/devtools/docs/RELEASE_MGMT.md
diff --git a/src/cobalt/debug/remote/devtools/docs/images/DevToolsDesignGuidelines.png b/src/third_party/devtools/docs/images/DevToolsDesignGuidelines.png
similarity index 100%
rename from src/cobalt/debug/remote/devtools/docs/images/DevToolsDesignGuidelines.png
rename to src/third_party/devtools/docs/images/DevToolsDesignGuidelines.png
Binary files differ
diff --git a/src/cobalt/debug/remote/devtools/docs/langpacks/README.md b/src/third_party/devtools/docs/langpacks/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/docs/langpacks/README.md
rename to src/third_party/devtools/docs/langpacks/README.md
diff --git a/src/cobalt/debug/remote/devtools/docs/langpacks/adding_strings.md b/src/third_party/devtools/docs/langpacks/adding_strings.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/docs/langpacks/adding_strings.md
rename to src/third_party/devtools/docs/langpacks/adding_strings.md
diff --git a/src/cobalt/debug/remote/devtools/docs/langpacks/grdp_files.md b/src/third_party/devtools/docs/langpacks/grdp_files.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/docs/langpacks/grdp_files.md
rename to src/third_party/devtools/docs/langpacks/grdp_files.md
diff --git a/src/cobalt/debug/remote/devtools/docs/langpacks/localization_apis.md b/src/third_party/devtools/docs/langpacks/localization_apis.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/docs/langpacks/localization_apis.md
rename to src/third_party/devtools/docs/langpacks/localization_apis.md
diff --git a/src/cobalt/debug/remote/devtools/docs/langpacks/locked_terms.md b/src/third_party/devtools/docs/langpacks/locked_terms.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/docs/langpacks/locked_terms.md
rename to src/third_party/devtools/docs/langpacks/locked_terms.md
diff --git a/src/cobalt/debug/remote/devtools/front_end/.editorconfig b/src/third_party/devtools/front_end/.editorconfig
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/.editorconfig
rename to src/third_party/devtools/front_end/.editorconfig
diff --git a/src/cobalt/debug/remote/devtools/front_end/Images/accelerometer-back.svg b/src/third_party/devtools/front_end/Images/accelerometer-back.svg
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/Images/accelerometer-back.svg
rename to src/third_party/devtools/front_end/Images/accelerometer-back.svg
diff --git a/src/cobalt/debug/remote/devtools/front_end/Images/accelerometer-bottom.png b/src/third_party/devtools/front_end/Images/accelerometer-bottom.png
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/Images/accelerometer-bottom.png
rename to src/third_party/devtools/front_end/Images/accelerometer-bottom.png
Binary files differ
diff --git a/src/cobalt/debug/remote/devtools/front_end/Images/accelerometer-front.svg b/src/third_party/devtools/front_end/Images/accelerometer-front.svg
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/Images/accelerometer-front.svg
rename to src/third_party/devtools/front_end/Images/accelerometer-front.svg
diff --git a/src/cobalt/debug/remote/devtools/front_end/Images/accelerometer-left.png b/src/third_party/devtools/front_end/Images/accelerometer-left.png
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/Images/accelerometer-left.png
rename to src/third_party/devtools/front_end/Images/accelerometer-left.png
Binary files differ
diff --git a/src/cobalt/debug/remote/devtools/front_end/Images/accelerometer-right.png b/src/third_party/devtools/front_end/Images/accelerometer-right.png
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/Images/accelerometer-right.png
rename to src/third_party/devtools/front_end/Images/accelerometer-right.png
Binary files differ
diff --git a/src/cobalt/debug/remote/devtools/front_end/Images/accelerometer-top.png b/src/third_party/devtools/front_end/Images/accelerometer-top.png
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/Images/accelerometer-top.png
rename to src/third_party/devtools/front_end/Images/accelerometer-top.png
Binary files differ
diff --git a/src/cobalt/debug/remote/devtools/front_end/Images/audits_logo.svg b/src/third_party/devtools/front_end/Images/audits_logo.svg
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/Images/audits_logo.svg
rename to src/third_party/devtools/front_end/Images/audits_logo.svg
diff --git a/src/cobalt/debug/remote/devtools/front_end/Images/breakpoint.svg b/src/third_party/devtools/front_end/Images/breakpoint.svg
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/Images/breakpoint.svg
rename to src/third_party/devtools/front_end/Images/breakpoint.svg
diff --git a/src/cobalt/debug/remote/devtools/front_end/Images/breakpointConditional.svg b/src/third_party/devtools/front_end/Images/breakpointConditional.svg
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/Images/breakpointConditional.svg
rename to src/third_party/devtools/front_end/Images/breakpointConditional.svg
diff --git a/src/cobalt/debug/remote/devtools/front_end/Images/checkboxCheckmark.svg b/src/third_party/devtools/front_end/Images/checkboxCheckmark.svg
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/Images/checkboxCheckmark.svg
rename to src/third_party/devtools/front_end/Images/checkboxCheckmark.svg
diff --git a/src/cobalt/debug/remote/devtools/front_end/Images/checker.png b/src/third_party/devtools/front_end/Images/checker.png
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/Images/checker.png
rename to src/third_party/devtools/front_end/Images/checker.png
Binary files differ
diff --git a/src/cobalt/debug/remote/devtools/front_end/Images/chevrons.svg b/src/third_party/devtools/front_end/Images/chevrons.svg
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/Images/chevrons.svg
rename to src/third_party/devtools/front_end/Images/chevrons.svg
diff --git a/src/cobalt/debug/remote/devtools/front_end/Images/chromeDisabledSelect.png b/src/third_party/devtools/front_end/Images/chromeDisabledSelect.png
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/Images/chromeDisabledSelect.png
rename to src/third_party/devtools/front_end/Images/chromeDisabledSelect.png
Binary files differ
diff --git a/src/cobalt/debug/remote/devtools/front_end/Images/chromeDisabledSelect_2x.png b/src/third_party/devtools/front_end/Images/chromeDisabledSelect_2x.png
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/Images/chromeDisabledSelect_2x.png
rename to src/third_party/devtools/front_end/Images/chromeDisabledSelect_2x.png
Binary files differ
diff --git a/src/cobalt/debug/remote/devtools/front_end/Images/chromeLeft.png b/src/third_party/devtools/front_end/Images/chromeLeft.png
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/Images/chromeLeft.png
rename to src/third_party/devtools/front_end/Images/chromeLeft.png
Binary files differ
diff --git a/src/cobalt/debug/remote/devtools/front_end/Images/chromeMiddle.png b/src/third_party/devtools/front_end/Images/chromeMiddle.png
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/Images/chromeMiddle.png
rename to src/third_party/devtools/front_end/Images/chromeMiddle.png
Binary files differ
diff --git a/src/cobalt/debug/remote/devtools/front_end/Images/chromeRight.png b/src/third_party/devtools/front_end/Images/chromeRight.png
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/Images/chromeRight.png
rename to src/third_party/devtools/front_end/Images/chromeRight.png
Binary files differ
diff --git a/src/cobalt/debug/remote/devtools/front_end/Images/chromeSelect.png b/src/third_party/devtools/front_end/Images/chromeSelect.png
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/Images/chromeSelect.png
rename to src/third_party/devtools/front_end/Images/chromeSelect.png
Binary files differ
diff --git a/src/cobalt/debug/remote/devtools/front_end/Images/chromeSelect_2x.png b/src/third_party/devtools/front_end/Images/chromeSelect_2x.png
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/Images/chromeSelect_2x.png
rename to src/third_party/devtools/front_end/Images/chromeSelect_2x.png
Binary files differ
diff --git a/src/cobalt/debug/remote/devtools/front_end/Images/cssoverview_icons_2x.png b/src/third_party/devtools/front_end/Images/cssoverview_icons_2x.png
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/Images/cssoverview_icons_2x.png
rename to src/third_party/devtools/front_end/Images/cssoverview_icons_2x.png
Binary files differ
diff --git a/src/cobalt/debug/remote/devtools/front_end/Images/errorWave.svg b/src/third_party/devtools/front_end/Images/errorWave.svg
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/Images/errorWave.svg
rename to src/third_party/devtools/front_end/Images/errorWave.svg
diff --git a/src/cobalt/debug/remote/devtools/front_end/Images/ic_info_black_18dp.svg b/src/third_party/devtools/front_end/Images/ic_info_black_18dp.svg
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/Images/ic_info_black_18dp.svg
rename to src/third_party/devtools/front_end/Images/ic_info_black_18dp.svg
diff --git a/src/cobalt/debug/remote/devtools/front_end/Images/ic_warning_black_18dp.svg b/src/third_party/devtools/front_end/Images/ic_warning_black_18dp.svg
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/Images/ic_warning_black_18dp.svg
rename to src/third_party/devtools/front_end/Images/ic_warning_black_18dp.svg
diff --git a/src/cobalt/debug/remote/devtools/front_end/Images/largeIcons.svg b/src/third_party/devtools/front_end/Images/largeIcons.svg
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/Images/largeIcons.svg
rename to src/third_party/devtools/front_end/Images/largeIcons.svg
diff --git a/src/cobalt/debug/remote/devtools/front_end/Images/mediumIcons.svg b/src/third_party/devtools/front_end/Images/mediumIcons.svg
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/Images/mediumIcons.svg
rename to src/third_party/devtools/front_end/Images/mediumIcons.svg
diff --git a/src/cobalt/debug/remote/devtools/front_end/Images/navigationControls.png b/src/third_party/devtools/front_end/Images/navigationControls.png
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/Images/navigationControls.png
rename to src/third_party/devtools/front_end/Images/navigationControls.png
Binary files differ
diff --git a/src/cobalt/debug/remote/devtools/front_end/Images/navigationControls_2x.png b/src/third_party/devtools/front_end/Images/navigationControls_2x.png
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/Images/navigationControls_2x.png
rename to src/third_party/devtools/front_end/Images/navigationControls_2x.png
Binary files differ
diff --git a/src/cobalt/debug/remote/devtools/front_end/Images/nodeIcon.png b/src/third_party/devtools/front_end/Images/nodeIcon.png
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/Images/nodeIcon.png
rename to src/third_party/devtools/front_end/Images/nodeIcon.png
Binary files differ
diff --git a/src/cobalt/debug/remote/devtools/front_end/Images/popoverArrows.png b/src/third_party/devtools/front_end/Images/popoverArrows.png
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/Images/popoverArrows.png
rename to src/third_party/devtools/front_end/Images/popoverArrows.png
Binary files differ
diff --git a/src/cobalt/debug/remote/devtools/front_end/Images/profileGroupIcon.png b/src/third_party/devtools/front_end/Images/profileGroupIcon.png
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/Images/profileGroupIcon.png
rename to src/third_party/devtools/front_end/Images/profileGroupIcon.png
Binary files differ
diff --git a/src/cobalt/debug/remote/devtools/front_end/Images/profileIcon.png b/src/third_party/devtools/front_end/Images/profileIcon.png
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/Images/profileIcon.png
rename to src/third_party/devtools/front_end/Images/profileIcon.png
Binary files differ
diff --git a/src/cobalt/debug/remote/devtools/front_end/Images/profileSmallIcon.png b/src/third_party/devtools/front_end/Images/profileSmallIcon.png
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/Images/profileSmallIcon.png
rename to src/third_party/devtools/front_end/Images/profileSmallIcon.png
Binary files differ
diff --git a/src/cobalt/debug/remote/devtools/front_end/Images/radioDot.png b/src/third_party/devtools/front_end/Images/radioDot.png
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/Images/radioDot.png
rename to src/third_party/devtools/front_end/Images/radioDot.png
Binary files differ
diff --git a/src/cobalt/debug/remote/devtools/front_end/Images/readme.md b/src/third_party/devtools/front_end/Images/readme.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/Images/readme.md
rename to src/third_party/devtools/front_end/Images/readme.md
diff --git a/src/cobalt/debug/remote/devtools/front_end/Images/resizeDiagonal.png b/src/third_party/devtools/front_end/Images/resizeDiagonal.png
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/Images/resizeDiagonal.png
rename to src/third_party/devtools/front_end/Images/resizeDiagonal.png
Binary files differ
diff --git a/src/cobalt/debug/remote/devtools/front_end/Images/resizeDiagonal_2x.png b/src/third_party/devtools/front_end/Images/resizeDiagonal_2x.png
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/Images/resizeDiagonal_2x.png
rename to src/third_party/devtools/front_end/Images/resizeDiagonal_2x.png
Binary files differ
diff --git a/src/cobalt/debug/remote/devtools/front_end/Images/resizeHorizontal.png b/src/third_party/devtools/front_end/Images/resizeHorizontal.png
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/Images/resizeHorizontal.png
rename to src/third_party/devtools/front_end/Images/resizeHorizontal.png
Binary files differ
diff --git a/src/cobalt/debug/remote/devtools/front_end/Images/resizeHorizontal_2x.png b/src/third_party/devtools/front_end/Images/resizeHorizontal_2x.png
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/Images/resizeHorizontal_2x.png
rename to src/third_party/devtools/front_end/Images/resizeHorizontal_2x.png
Binary files differ
diff --git a/src/cobalt/debug/remote/devtools/front_end/Images/resizeVertical.png b/src/third_party/devtools/front_end/Images/resizeVertical.png
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/Images/resizeVertical.png
rename to src/third_party/devtools/front_end/Images/resizeVertical.png
Binary files differ
diff --git a/src/cobalt/debug/remote/devtools/front_end/Images/resizeVertical_2x.png b/src/third_party/devtools/front_end/Images/resizeVertical_2x.png
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/Images/resizeVertical_2x.png
rename to src/third_party/devtools/front_end/Images/resizeVertical_2x.png
Binary files differ
diff --git a/src/cobalt/debug/remote/devtools/front_end/Images/resourceCSSIcon.png b/src/third_party/devtools/front_end/Images/resourceCSSIcon.png
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/Images/resourceCSSIcon.png
rename to src/third_party/devtools/front_end/Images/resourceCSSIcon.png
Binary files differ
diff --git a/src/cobalt/debug/remote/devtools/front_end/Images/resourceDocumentIcon.png b/src/third_party/devtools/front_end/Images/resourceDocumentIcon.png
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/Images/resourceDocumentIcon.png
rename to src/third_party/devtools/front_end/Images/resourceDocumentIcon.png
Binary files differ
diff --git a/src/cobalt/debug/remote/devtools/front_end/Images/resourceDocumentIconSmall.png b/src/third_party/devtools/front_end/Images/resourceDocumentIconSmall.png
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/Images/resourceDocumentIconSmall.png
rename to src/third_party/devtools/front_end/Images/resourceDocumentIconSmall.png
Binary files differ
diff --git a/src/cobalt/debug/remote/devtools/front_end/Images/resourceJSIcon.png b/src/third_party/devtools/front_end/Images/resourceJSIcon.png
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/Images/resourceJSIcon.png
rename to src/third_party/devtools/front_end/Images/resourceJSIcon.png
Binary files differ
diff --git a/src/cobalt/debug/remote/devtools/front_end/Images/resourcePlainIcon.png b/src/third_party/devtools/front_end/Images/resourcePlainIcon.png
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/Images/resourcePlainIcon.png
rename to src/third_party/devtools/front_end/Images/resourcePlainIcon.png
Binary files differ
diff --git a/src/cobalt/debug/remote/devtools/front_end/Images/resourcePlainIconSmall.png b/src/third_party/devtools/front_end/Images/resourcePlainIconSmall.png
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/Images/resourcePlainIconSmall.png
rename to src/third_party/devtools/front_end/Images/resourcePlainIconSmall.png
Binary files differ
diff --git a/src/cobalt/debug/remote/devtools/front_end/Images/resourcesTimeGraphIcon.png b/src/third_party/devtools/front_end/Images/resourcesTimeGraphIcon.png
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/Images/resourcesTimeGraphIcon.png
rename to src/third_party/devtools/front_end/Images/resourcesTimeGraphIcon.png
Binary files differ
diff --git a/src/cobalt/debug/remote/devtools/front_end/Images/searchNext.png b/src/third_party/devtools/front_end/Images/searchNext.png
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/Images/searchNext.png
rename to src/third_party/devtools/front_end/Images/searchNext.png
Binary files differ
diff --git a/src/cobalt/debug/remote/devtools/front_end/Images/searchPrev.png b/src/third_party/devtools/front_end/Images/searchPrev.png
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/Images/searchPrev.png
rename to src/third_party/devtools/front_end/Images/searchPrev.png
Binary files differ
diff --git a/src/cobalt/debug/remote/devtools/front_end/Images/securityIcons.svg b/src/third_party/devtools/front_end/Images/securityIcons.svg
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/Images/securityIcons.svg
rename to src/third_party/devtools/front_end/Images/securityIcons.svg
diff --git a/src/cobalt/debug/remote/devtools/front_end/Images/smallIcons.svg b/src/third_party/devtools/front_end/Images/smallIcons.svg
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/Images/smallIcons.svg
rename to src/third_party/devtools/front_end/Images/smallIcons.svg
diff --git a/src/cobalt/debug/remote/devtools/front_end/Images/speech.png b/src/third_party/devtools/front_end/Images/speech.png
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/Images/speech.png
rename to src/third_party/devtools/front_end/Images/speech.png
Binary files differ
diff --git a/src/cobalt/debug/remote/devtools/front_end/Images/src/accelerometer-back.svg b/src/third_party/devtools/front_end/Images/src/accelerometer-back.svg
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/Images/src/accelerometer-back.svg
rename to src/third_party/devtools/front_end/Images/src/accelerometer-back.svg
diff --git a/src/cobalt/debug/remote/devtools/front_end/Images/src/accelerometer-front.svg b/src/third_party/devtools/front_end/Images/src/accelerometer-front.svg
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/Images/src/accelerometer-front.svg
rename to src/third_party/devtools/front_end/Images/src/accelerometer-front.svg
diff --git a/src/cobalt/debug/remote/devtools/front_end/Images/src/audits_logo.svg b/src/third_party/devtools/front_end/Images/src/audits_logo.svg
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/Images/src/audits_logo.svg
rename to src/third_party/devtools/front_end/Images/src/audits_logo.svg
diff --git a/src/cobalt/debug/remote/devtools/front_end/Images/src/breakpoint.svg b/src/third_party/devtools/front_end/Images/src/breakpoint.svg
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/Images/src/breakpoint.svg
rename to src/third_party/devtools/front_end/Images/src/breakpoint.svg
diff --git a/src/cobalt/debug/remote/devtools/front_end/Images/src/breakpointConditional.svg b/src/third_party/devtools/front_end/Images/src/breakpointConditional.svg
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/Images/src/breakpointConditional.svg
rename to src/third_party/devtools/front_end/Images/src/breakpointConditional.svg
diff --git a/src/cobalt/debug/remote/devtools/front_end/Images/src/checkboxCheckmark.svg b/src/third_party/devtools/front_end/Images/src/checkboxCheckmark.svg
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/Images/src/checkboxCheckmark.svg
rename to src/third_party/devtools/front_end/Images/src/checkboxCheckmark.svg
diff --git a/src/cobalt/debug/remote/devtools/front_end/Images/src/chevrons.svg b/src/third_party/devtools/front_end/Images/src/chevrons.svg
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/Images/src/chevrons.svg
rename to src/third_party/devtools/front_end/Images/src/chevrons.svg
diff --git a/src/cobalt/debug/remote/devtools/front_end/Images/src/errorWave.svg b/src/third_party/devtools/front_end/Images/src/errorWave.svg
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/Images/src/errorWave.svg
rename to src/third_party/devtools/front_end/Images/src/errorWave.svg
diff --git a/src/cobalt/debug/remote/devtools/front_end/Images/src/largeIcons.svg b/src/third_party/devtools/front_end/Images/src/largeIcons.svg
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/Images/src/largeIcons.svg
rename to src/third_party/devtools/front_end/Images/src/largeIcons.svg
diff --git a/src/cobalt/debug/remote/devtools/front_end/Images/src/mediumIcons.svg b/src/third_party/devtools/front_end/Images/src/mediumIcons.svg
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/Images/src/mediumIcons.svg
rename to src/third_party/devtools/front_end/Images/src/mediumIcons.svg
diff --git a/src/cobalt/debug/remote/devtools/front_end/Images/src/optimize_svg.hashes b/src/third_party/devtools/front_end/Images/src/optimize_svg.hashes
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/Images/src/optimize_svg.hashes
rename to src/third_party/devtools/front_end/Images/src/optimize_svg.hashes
diff --git a/src/cobalt/debug/remote/devtools/front_end/Images/src/securityIcons.svg b/src/third_party/devtools/front_end/Images/src/securityIcons.svg
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/Images/src/securityIcons.svg
rename to src/third_party/devtools/front_end/Images/src/securityIcons.svg
diff --git a/src/cobalt/debug/remote/devtools/front_end/Images/src/smallIcons.svg b/src/third_party/devtools/front_end/Images/src/smallIcons.svg
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/Images/src/smallIcons.svg
rename to src/third_party/devtools/front_end/Images/src/smallIcons.svg
diff --git a/src/cobalt/debug/remote/devtools/front_end/Images/src/treeoutlineTriangles.svg b/src/third_party/devtools/front_end/Images/src/treeoutlineTriangles.svg
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/Images/src/treeoutlineTriangles.svg
rename to src/third_party/devtools/front_end/Images/src/treeoutlineTriangles.svg
diff --git a/src/cobalt/debug/remote/devtools/front_end/Images/toolbarResizerVertical.png b/src/third_party/devtools/front_end/Images/toolbarResizerVertical.png
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/Images/toolbarResizerVertical.png
rename to src/third_party/devtools/front_end/Images/toolbarResizerVertical.png
Binary files differ
diff --git a/src/cobalt/debug/remote/devtools/front_end/Images/touchCursor.png b/src/third_party/devtools/front_end/Images/touchCursor.png
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/Images/touchCursor.png
rename to src/third_party/devtools/front_end/Images/touchCursor.png
Binary files differ
diff --git a/src/cobalt/debug/remote/devtools/front_end/Images/touchCursor_2x.png b/src/third_party/devtools/front_end/Images/touchCursor_2x.png
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/Images/touchCursor_2x.png
rename to src/third_party/devtools/front_end/Images/touchCursor_2x.png
Binary files differ
diff --git a/src/cobalt/debug/remote/devtools/front_end/Images/treeoutlineTriangles.svg b/src/third_party/devtools/front_end/Images/treeoutlineTriangles.svg
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/Images/treeoutlineTriangles.svg
rename to src/third_party/devtools/front_end/Images/treeoutlineTriangles.svg
diff --git a/src/cobalt/debug/remote/devtools/front_end/Images/whatsnew.png b/src/third_party/devtools/front_end/Images/whatsnew.png
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/Images/whatsnew.png
rename to src/third_party/devtools/front_end/Images/whatsnew.png
Binary files differ
diff --git a/src/cobalt/debug/remote/devtools/front_end/Runtime.js b/src/third_party/devtools/front_end/Runtime.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/Runtime.js
rename to src/third_party/devtools/front_end/Runtime.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/Tests.js b/src/third_party/devtools/front_end/Tests.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/Tests.js
rename to src/third_party/devtools/front_end/Tests.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/accessibility/ARIAAttributesView.js b/src/third_party/devtools/front_end/accessibility/ARIAAttributesView.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/accessibility/ARIAAttributesView.js
rename to src/third_party/devtools/front_end/accessibility/ARIAAttributesView.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/accessibility/ARIAMetadata.js b/src/third_party/devtools/front_end/accessibility/ARIAMetadata.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/accessibility/ARIAMetadata.js
rename to src/third_party/devtools/front_end/accessibility/ARIAMetadata.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/accessibility/AXBreadcrumbsPane.js b/src/third_party/devtools/front_end/accessibility/AXBreadcrumbsPane.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/accessibility/AXBreadcrumbsPane.js
rename to src/third_party/devtools/front_end/accessibility/AXBreadcrumbsPane.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/accessibility/AccessibilityModel.js b/src/third_party/devtools/front_end/accessibility/AccessibilityModel.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/accessibility/AccessibilityModel.js
rename to src/third_party/devtools/front_end/accessibility/AccessibilityModel.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/accessibility/AccessibilityNodeView.js b/src/third_party/devtools/front_end/accessibility/AccessibilityNodeView.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/accessibility/AccessibilityNodeView.js
rename to src/third_party/devtools/front_end/accessibility/AccessibilityNodeView.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/accessibility/AccessibilitySidebarView.js b/src/third_party/devtools/front_end/accessibility/AccessibilitySidebarView.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/accessibility/AccessibilitySidebarView.js
rename to src/third_party/devtools/front_end/accessibility/AccessibilitySidebarView.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/accessibility/AccessibilityStrings.js b/src/third_party/devtools/front_end/accessibility/AccessibilityStrings.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/accessibility/AccessibilityStrings.js
rename to src/third_party/devtools/front_end/accessibility/AccessibilityStrings.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/accessibility/accessibility.js b/src/third_party/devtools/front_end/accessibility/accessibility.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/accessibility/accessibility.js
rename to src/third_party/devtools/front_end/accessibility/accessibility.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/accessibility/accessibilityNode.css b/src/third_party/devtools/front_end/accessibility/accessibilityNode.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/accessibility/accessibilityNode.css
rename to src/third_party/devtools/front_end/accessibility/accessibilityNode.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/accessibility/accessibilityProperties.css b/src/third_party/devtools/front_end/accessibility/accessibilityProperties.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/accessibility/accessibilityProperties.css
rename to src/third_party/devtools/front_end/accessibility/accessibilityProperties.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/accessibility/accessibility_strings.grdp b/src/third_party/devtools/front_end/accessibility/accessibility_strings.grdp
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/accessibility/accessibility_strings.grdp
rename to src/third_party/devtools/front_end/accessibility/accessibility_strings.grdp
diff --git a/src/cobalt/debug/remote/devtools/front_end/accessibility/axBreadcrumbs.css b/src/third_party/devtools/front_end/accessibility/axBreadcrumbs.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/accessibility/axBreadcrumbs.css
rename to src/third_party/devtools/front_end/accessibility/axBreadcrumbs.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/accessibility/module.json b/src/third_party/devtools/front_end/accessibility/module.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/accessibility/module.json
rename to src/third_party/devtools/front_end/accessibility/module.json
diff --git a/src/cobalt/debug/remote/devtools/front_end/accessibility_test_runner/AccessibilityPaneTestRunner.js b/src/third_party/devtools/front_end/accessibility_test_runner/AccessibilityPaneTestRunner.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/accessibility_test_runner/AccessibilityPaneTestRunner.js
rename to src/third_party/devtools/front_end/accessibility_test_runner/AccessibilityPaneTestRunner.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/accessibility_test_runner/module.json b/src/third_party/devtools/front_end/accessibility_test_runner/module.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/accessibility_test_runner/module.json
rename to src/third_party/devtools/front_end/accessibility_test_runner/module.json
diff --git a/src/cobalt/debug/remote/devtools/front_end/animation/AnimationGroupPreviewUI.js b/src/third_party/devtools/front_end/animation/AnimationGroupPreviewUI.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/animation/AnimationGroupPreviewUI.js
rename to src/third_party/devtools/front_end/animation/AnimationGroupPreviewUI.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/animation/AnimationModel.js b/src/third_party/devtools/front_end/animation/AnimationModel.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/animation/AnimationModel.js
rename to src/third_party/devtools/front_end/animation/AnimationModel.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/animation/AnimationScreenshotPopover.js b/src/third_party/devtools/front_end/animation/AnimationScreenshotPopover.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/animation/AnimationScreenshotPopover.js
rename to src/third_party/devtools/front_end/animation/AnimationScreenshotPopover.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/animation/AnimationTimeline.js b/src/third_party/devtools/front_end/animation/AnimationTimeline.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/animation/AnimationTimeline.js
rename to src/third_party/devtools/front_end/animation/AnimationTimeline.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/animation/AnimationUI.js b/src/third_party/devtools/front_end/animation/AnimationUI.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/animation/AnimationUI.js
rename to src/third_party/devtools/front_end/animation/AnimationUI.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/animation/animation.js b/src/third_party/devtools/front_end/animation/animation.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/animation/animation.js
rename to src/third_party/devtools/front_end/animation/animation.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/animation/animationScreenshotPopover.css b/src/third_party/devtools/front_end/animation/animationScreenshotPopover.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/animation/animationScreenshotPopover.css
rename to src/third_party/devtools/front_end/animation/animationScreenshotPopover.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/animation/animationTimeline.css b/src/third_party/devtools/front_end/animation/animationTimeline.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/animation/animationTimeline.css
rename to src/third_party/devtools/front_end/animation/animationTimeline.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/animation/animation_strings.grdp b/src/third_party/devtools/front_end/animation/animation_strings.grdp
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/animation/animation_strings.grdp
rename to src/third_party/devtools/front_end/animation/animation_strings.grdp
diff --git a/src/cobalt/debug/remote/devtools/front_end/animation/module.json b/src/third_party/devtools/front_end/animation/module.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/animation/module.json
rename to src/third_party/devtools/front_end/animation/module.json
diff --git a/src/cobalt/debug/remote/devtools/front_end/application_test_runner/AppcacheTestRunner.js b/src/third_party/devtools/front_end/application_test_runner/AppcacheTestRunner.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/application_test_runner/AppcacheTestRunner.js
rename to src/third_party/devtools/front_end/application_test_runner/AppcacheTestRunner.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/application_test_runner/CacheStorageTestRunner.js b/src/third_party/devtools/front_end/application_test_runner/CacheStorageTestRunner.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/application_test_runner/CacheStorageTestRunner.js
rename to src/third_party/devtools/front_end/application_test_runner/CacheStorageTestRunner.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/application_test_runner/IndexedDBTestRunner.js b/src/third_party/devtools/front_end/application_test_runner/IndexedDBTestRunner.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/application_test_runner/IndexedDBTestRunner.js
rename to src/third_party/devtools/front_end/application_test_runner/IndexedDBTestRunner.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/application_test_runner/ResourceTreeTestRunner.js b/src/third_party/devtools/front_end/application_test_runner/ResourceTreeTestRunner.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/application_test_runner/ResourceTreeTestRunner.js
rename to src/third_party/devtools/front_end/application_test_runner/ResourceTreeTestRunner.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/application_test_runner/ResourcesTestRunner.js b/src/third_party/devtools/front_end/application_test_runner/ResourcesTestRunner.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/application_test_runner/ResourcesTestRunner.js
rename to src/third_party/devtools/front_end/application_test_runner/ResourcesTestRunner.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/application_test_runner/ServiceWorkersTestRunner.js b/src/third_party/devtools/front_end/application_test_runner/ServiceWorkersTestRunner.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/application_test_runner/ServiceWorkersTestRunner.js
rename to src/third_party/devtools/front_end/application_test_runner/ServiceWorkersTestRunner.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/application_test_runner/module.json b/src/third_party/devtools/front_end/application_test_runner/module.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/application_test_runner/module.json
rename to src/third_party/devtools/front_end/application_test_runner/module.json
diff --git a/src/cobalt/debug/remote/devtools/front_end/audits/AuditsController.js b/src/third_party/devtools/front_end/audits/AuditsController.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/audits/AuditsController.js
rename to src/third_party/devtools/front_end/audits/AuditsController.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/audits/AuditsPanel.js b/src/third_party/devtools/front_end/audits/AuditsPanel.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/audits/AuditsPanel.js
rename to src/third_party/devtools/front_end/audits/AuditsPanel.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/audits/AuditsProtocolService.js b/src/third_party/devtools/front_end/audits/AuditsProtocolService.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/audits/AuditsProtocolService.js
rename to src/third_party/devtools/front_end/audits/AuditsProtocolService.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/audits/AuditsReportRenderer.js b/src/third_party/devtools/front_end/audits/AuditsReportRenderer.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/audits/AuditsReportRenderer.js
rename to src/third_party/devtools/front_end/audits/AuditsReportRenderer.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/audits/AuditsReportSelector.js b/src/third_party/devtools/front_end/audits/AuditsReportSelector.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/audits/AuditsReportSelector.js
rename to src/third_party/devtools/front_end/audits/AuditsReportSelector.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/audits/AuditsStartView.js b/src/third_party/devtools/front_end/audits/AuditsStartView.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/audits/AuditsStartView.js
rename to src/third_party/devtools/front_end/audits/AuditsStartView.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/audits/AuditsStatusView.js b/src/third_party/devtools/front_end/audits/AuditsStatusView.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/audits/AuditsStatusView.js
rename to src/third_party/devtools/front_end/audits/AuditsStatusView.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/audits/RadioSetting.js b/src/third_party/devtools/front_end/audits/RadioSetting.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/audits/RadioSetting.js
rename to src/third_party/devtools/front_end/audits/RadioSetting.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/audits/audits.js b/src/third_party/devtools/front_end/audits/audits.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/audits/audits.js
rename to src/third_party/devtools/front_end/audits/audits.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/audits/auditsDialog.css b/src/third_party/devtools/front_end/audits/auditsDialog.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/audits/auditsDialog.css
rename to src/third_party/devtools/front_end/audits/auditsDialog.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/audits/auditsPanel.css b/src/third_party/devtools/front_end/audits/auditsPanel.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/audits/auditsPanel.css
rename to src/third_party/devtools/front_end/audits/auditsPanel.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/audits/auditsStartView.css b/src/third_party/devtools/front_end/audits/auditsStartView.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/audits/auditsStartView.css
rename to src/third_party/devtools/front_end/audits/auditsStartView.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/audits/audits_strings.grdp b/src/third_party/devtools/front_end/audits/audits_strings.grdp
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/audits/audits_strings.grdp
rename to src/third_party/devtools/front_end/audits/audits_strings.grdp
diff --git a/src/cobalt/debug/remote/devtools/front_end/audits/lighthouse/LICENSE b/src/third_party/devtools/front_end/audits/lighthouse/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/audits/lighthouse/LICENSE
rename to src/third_party/devtools/front_end/audits/lighthouse/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/front_end/audits/lighthouse/README.chromium b/src/third_party/devtools/front_end/audits/lighthouse/README.chromium
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/audits/lighthouse/README.chromium
rename to src/third_party/devtools/front_end/audits/lighthouse/README.chromium
diff --git a/src/cobalt/debug/remote/devtools/front_end/audits/lighthouse/report-generator.js b/src/third_party/devtools/front_end/audits/lighthouse/report-generator.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/audits/lighthouse/report-generator.js
rename to src/third_party/devtools/front_end/audits/lighthouse/report-generator.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/audits/lighthouse/report.css b/src/third_party/devtools/front_end/audits/lighthouse/report.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/audits/lighthouse/report.css
rename to src/third_party/devtools/front_end/audits/lighthouse/report.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/audits/lighthouse/report.js b/src/third_party/devtools/front_end/audits/lighthouse/report.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/audits/lighthouse/report.js
rename to src/third_party/devtools/front_end/audits/lighthouse/report.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/audits/lighthouse/template.html b/src/third_party/devtools/front_end/audits/lighthouse/template.html
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/audits/lighthouse/template.html
rename to src/third_party/devtools/front_end/audits/lighthouse/template.html
diff --git a/src/cobalt/debug/remote/devtools/front_end/audits/lighthouse/templates.html b/src/third_party/devtools/front_end/audits/lighthouse/templates.html
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/audits/lighthouse/templates.html
rename to src/third_party/devtools/front_end/audits/lighthouse/templates.html
diff --git a/src/cobalt/debug/remote/devtools/front_end/audits/module.json b/src/third_party/devtools/front_end/audits/module.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/audits/module.json
rename to src/third_party/devtools/front_end/audits/module.json
diff --git a/src/cobalt/debug/remote/devtools/front_end/audits_test_runner/AuditsTestRunner.js b/src/third_party/devtools/front_end/audits_test_runner/AuditsTestRunner.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/audits_test_runner/AuditsTestRunner.js
rename to src/third_party/devtools/front_end/audits_test_runner/AuditsTestRunner.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/audits_test_runner/module.json b/src/third_party/devtools/front_end/audits_test_runner/module.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/audits_test_runner/module.json
rename to src/third_party/devtools/front_end/audits_test_runner/module.json
diff --git a/src/cobalt/debug/remote/devtools/front_end/audits_worker.js b/src/third_party/devtools/front_end/audits_worker.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/audits_worker.js
rename to src/third_party/devtools/front_end/audits_worker.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/audits_worker.json b/src/third_party/devtools/front_end/audits_worker.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/audits_worker.json
rename to src/third_party/devtools/front_end/audits_worker.json
diff --git a/src/cobalt/debug/remote/devtools/front_end/audits_worker/AuditsService.js b/src/third_party/devtools/front_end/audits_worker/AuditsService.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/audits_worker/AuditsService.js
rename to src/third_party/devtools/front_end/audits_worker/AuditsService.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/audits_worker/lighthouse/LICENSE b/src/third_party/devtools/front_end/audits_worker/lighthouse/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/audits_worker/lighthouse/LICENSE
rename to src/third_party/devtools/front_end/audits_worker/lighthouse/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/front_end/audits_worker/lighthouse/README.chromium b/src/third_party/devtools/front_end/audits_worker/lighthouse/README.chromium
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/audits_worker/lighthouse/README.chromium
rename to src/third_party/devtools/front_end/audits_worker/lighthouse/README.chromium
diff --git a/src/cobalt/debug/remote/devtools/front_end/audits_worker/lighthouse/lighthouse-dt-bundle.js b/src/third_party/devtools/front_end/audits_worker/lighthouse/lighthouse-dt-bundle.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/audits_worker/lighthouse/lighthouse-dt-bundle.js
rename to src/third_party/devtools/front_end/audits_worker/lighthouse/lighthouse-dt-bundle.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/audits_worker/lighthouse/locales/ar-XB.json b/src/third_party/devtools/front_end/audits_worker/lighthouse/locales/ar-XB.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/audits_worker/lighthouse/locales/ar-XB.json
rename to src/third_party/devtools/front_end/audits_worker/lighthouse/locales/ar-XB.json
diff --git a/src/cobalt/debug/remote/devtools/front_end/audits_worker/lighthouse/locales/ar.json b/src/third_party/devtools/front_end/audits_worker/lighthouse/locales/ar.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/audits_worker/lighthouse/locales/ar.json
rename to src/third_party/devtools/front_end/audits_worker/lighthouse/locales/ar.json
diff --git a/src/cobalt/debug/remote/devtools/front_end/audits_worker/lighthouse/locales/bg.json b/src/third_party/devtools/front_end/audits_worker/lighthouse/locales/bg.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/audits_worker/lighthouse/locales/bg.json
rename to src/third_party/devtools/front_end/audits_worker/lighthouse/locales/bg.json
diff --git a/src/cobalt/debug/remote/devtools/front_end/audits_worker/lighthouse/locales/ca.json b/src/third_party/devtools/front_end/audits_worker/lighthouse/locales/ca.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/audits_worker/lighthouse/locales/ca.json
rename to src/third_party/devtools/front_end/audits_worker/lighthouse/locales/ca.json
diff --git a/src/cobalt/debug/remote/devtools/front_end/audits_worker/lighthouse/locales/cs.json b/src/third_party/devtools/front_end/audits_worker/lighthouse/locales/cs.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/audits_worker/lighthouse/locales/cs.json
rename to src/third_party/devtools/front_end/audits_worker/lighthouse/locales/cs.json
diff --git a/src/cobalt/debug/remote/devtools/front_end/audits_worker/lighthouse/locales/da.json b/src/third_party/devtools/front_end/audits_worker/lighthouse/locales/da.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/audits_worker/lighthouse/locales/da.json
rename to src/third_party/devtools/front_end/audits_worker/lighthouse/locales/da.json
diff --git a/src/cobalt/debug/remote/devtools/front_end/audits_worker/lighthouse/locales/de.json b/src/third_party/devtools/front_end/audits_worker/lighthouse/locales/de.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/audits_worker/lighthouse/locales/de.json
rename to src/third_party/devtools/front_end/audits_worker/lighthouse/locales/de.json
diff --git a/src/cobalt/debug/remote/devtools/front_end/audits_worker/lighthouse/locales/el.json b/src/third_party/devtools/front_end/audits_worker/lighthouse/locales/el.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/audits_worker/lighthouse/locales/el.json
rename to src/third_party/devtools/front_end/audits_worker/lighthouse/locales/el.json
diff --git a/src/cobalt/debug/remote/devtools/front_end/audits_worker/lighthouse/locales/en-GB.json b/src/third_party/devtools/front_end/audits_worker/lighthouse/locales/en-GB.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/audits_worker/lighthouse/locales/en-GB.json
rename to src/third_party/devtools/front_end/audits_worker/lighthouse/locales/en-GB.json
diff --git a/src/cobalt/debug/remote/devtools/front_end/audits_worker/lighthouse/locales/en-US.json b/src/third_party/devtools/front_end/audits_worker/lighthouse/locales/en-US.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/audits_worker/lighthouse/locales/en-US.json
rename to src/third_party/devtools/front_end/audits_worker/lighthouse/locales/en-US.json
diff --git a/src/cobalt/debug/remote/devtools/front_end/audits_worker/lighthouse/locales/en-XA.json b/src/third_party/devtools/front_end/audits_worker/lighthouse/locales/en-XA.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/audits_worker/lighthouse/locales/en-XA.json
rename to src/third_party/devtools/front_end/audits_worker/lighthouse/locales/en-XA.json
diff --git a/src/cobalt/debug/remote/devtools/front_end/audits_worker/lighthouse/locales/en-XL.json b/src/third_party/devtools/front_end/audits_worker/lighthouse/locales/en-XL.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/audits_worker/lighthouse/locales/en-XL.json
rename to src/third_party/devtools/front_end/audits_worker/lighthouse/locales/en-XL.json
diff --git a/src/cobalt/debug/remote/devtools/front_end/audits_worker/lighthouse/locales/es-419.json b/src/third_party/devtools/front_end/audits_worker/lighthouse/locales/es-419.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/audits_worker/lighthouse/locales/es-419.json
rename to src/third_party/devtools/front_end/audits_worker/lighthouse/locales/es-419.json
diff --git a/src/cobalt/debug/remote/devtools/front_end/audits_worker/lighthouse/locales/es.json b/src/third_party/devtools/front_end/audits_worker/lighthouse/locales/es.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/audits_worker/lighthouse/locales/es.json
rename to src/third_party/devtools/front_end/audits_worker/lighthouse/locales/es.json
diff --git a/src/cobalt/debug/remote/devtools/front_end/audits_worker/lighthouse/locales/fi.json b/src/third_party/devtools/front_end/audits_worker/lighthouse/locales/fi.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/audits_worker/lighthouse/locales/fi.json
rename to src/third_party/devtools/front_end/audits_worker/lighthouse/locales/fi.json
diff --git a/src/cobalt/debug/remote/devtools/front_end/audits_worker/lighthouse/locales/fil.json b/src/third_party/devtools/front_end/audits_worker/lighthouse/locales/fil.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/audits_worker/lighthouse/locales/fil.json
rename to src/third_party/devtools/front_end/audits_worker/lighthouse/locales/fil.json
diff --git a/src/cobalt/debug/remote/devtools/front_end/audits_worker/lighthouse/locales/fr.json b/src/third_party/devtools/front_end/audits_worker/lighthouse/locales/fr.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/audits_worker/lighthouse/locales/fr.json
rename to src/third_party/devtools/front_end/audits_worker/lighthouse/locales/fr.json
diff --git a/src/cobalt/debug/remote/devtools/front_end/audits_worker/lighthouse/locales/he.json b/src/third_party/devtools/front_end/audits_worker/lighthouse/locales/he.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/audits_worker/lighthouse/locales/he.json
rename to src/third_party/devtools/front_end/audits_worker/lighthouse/locales/he.json
diff --git a/src/cobalt/debug/remote/devtools/front_end/audits_worker/lighthouse/locales/hi.json b/src/third_party/devtools/front_end/audits_worker/lighthouse/locales/hi.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/audits_worker/lighthouse/locales/hi.json
rename to src/third_party/devtools/front_end/audits_worker/lighthouse/locales/hi.json
diff --git a/src/cobalt/debug/remote/devtools/front_end/audits_worker/lighthouse/locales/hr.json b/src/third_party/devtools/front_end/audits_worker/lighthouse/locales/hr.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/audits_worker/lighthouse/locales/hr.json
rename to src/third_party/devtools/front_end/audits_worker/lighthouse/locales/hr.json
diff --git a/src/cobalt/debug/remote/devtools/front_end/audits_worker/lighthouse/locales/hu.json b/src/third_party/devtools/front_end/audits_worker/lighthouse/locales/hu.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/audits_worker/lighthouse/locales/hu.json
rename to src/third_party/devtools/front_end/audits_worker/lighthouse/locales/hu.json
diff --git a/src/cobalt/debug/remote/devtools/front_end/audits_worker/lighthouse/locales/id.json b/src/third_party/devtools/front_end/audits_worker/lighthouse/locales/id.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/audits_worker/lighthouse/locales/id.json
rename to src/third_party/devtools/front_end/audits_worker/lighthouse/locales/id.json
diff --git a/src/cobalt/debug/remote/devtools/front_end/audits_worker/lighthouse/locales/it.json b/src/third_party/devtools/front_end/audits_worker/lighthouse/locales/it.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/audits_worker/lighthouse/locales/it.json
rename to src/third_party/devtools/front_end/audits_worker/lighthouse/locales/it.json
diff --git a/src/cobalt/debug/remote/devtools/front_end/audits_worker/lighthouse/locales/ja.json b/src/third_party/devtools/front_end/audits_worker/lighthouse/locales/ja.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/audits_worker/lighthouse/locales/ja.json
rename to src/third_party/devtools/front_end/audits_worker/lighthouse/locales/ja.json
diff --git a/src/cobalt/debug/remote/devtools/front_end/audits_worker/lighthouse/locales/ko.json b/src/third_party/devtools/front_end/audits_worker/lighthouse/locales/ko.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/audits_worker/lighthouse/locales/ko.json
rename to src/third_party/devtools/front_end/audits_worker/lighthouse/locales/ko.json
diff --git a/src/cobalt/debug/remote/devtools/front_end/audits_worker/lighthouse/locales/lt.json b/src/third_party/devtools/front_end/audits_worker/lighthouse/locales/lt.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/audits_worker/lighthouse/locales/lt.json
rename to src/third_party/devtools/front_end/audits_worker/lighthouse/locales/lt.json
diff --git a/src/cobalt/debug/remote/devtools/front_end/audits_worker/lighthouse/locales/lv.json b/src/third_party/devtools/front_end/audits_worker/lighthouse/locales/lv.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/audits_worker/lighthouse/locales/lv.json
rename to src/third_party/devtools/front_end/audits_worker/lighthouse/locales/lv.json
diff --git a/src/cobalt/debug/remote/devtools/front_end/audits_worker/lighthouse/locales/nl.json b/src/third_party/devtools/front_end/audits_worker/lighthouse/locales/nl.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/audits_worker/lighthouse/locales/nl.json
rename to src/third_party/devtools/front_end/audits_worker/lighthouse/locales/nl.json
diff --git a/src/cobalt/debug/remote/devtools/front_end/audits_worker/lighthouse/locales/no.json b/src/third_party/devtools/front_end/audits_worker/lighthouse/locales/no.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/audits_worker/lighthouse/locales/no.json
rename to src/third_party/devtools/front_end/audits_worker/lighthouse/locales/no.json
diff --git a/src/cobalt/debug/remote/devtools/front_end/audits_worker/lighthouse/locales/pl.json b/src/third_party/devtools/front_end/audits_worker/lighthouse/locales/pl.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/audits_worker/lighthouse/locales/pl.json
rename to src/third_party/devtools/front_end/audits_worker/lighthouse/locales/pl.json
diff --git a/src/cobalt/debug/remote/devtools/front_end/audits_worker/lighthouse/locales/pt-PT.json b/src/third_party/devtools/front_end/audits_worker/lighthouse/locales/pt-PT.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/audits_worker/lighthouse/locales/pt-PT.json
rename to src/third_party/devtools/front_end/audits_worker/lighthouse/locales/pt-PT.json
diff --git a/src/cobalt/debug/remote/devtools/front_end/audits_worker/lighthouse/locales/pt.json b/src/third_party/devtools/front_end/audits_worker/lighthouse/locales/pt.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/audits_worker/lighthouse/locales/pt.json
rename to src/third_party/devtools/front_end/audits_worker/lighthouse/locales/pt.json
diff --git a/src/cobalt/debug/remote/devtools/front_end/audits_worker/lighthouse/locales/ro.json b/src/third_party/devtools/front_end/audits_worker/lighthouse/locales/ro.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/audits_worker/lighthouse/locales/ro.json
rename to src/third_party/devtools/front_end/audits_worker/lighthouse/locales/ro.json
diff --git a/src/cobalt/debug/remote/devtools/front_end/audits_worker/lighthouse/locales/ru.json b/src/third_party/devtools/front_end/audits_worker/lighthouse/locales/ru.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/audits_worker/lighthouse/locales/ru.json
rename to src/third_party/devtools/front_end/audits_worker/lighthouse/locales/ru.json
diff --git a/src/cobalt/debug/remote/devtools/front_end/audits_worker/lighthouse/locales/sk.json b/src/third_party/devtools/front_end/audits_worker/lighthouse/locales/sk.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/audits_worker/lighthouse/locales/sk.json
rename to src/third_party/devtools/front_end/audits_worker/lighthouse/locales/sk.json
diff --git a/src/cobalt/debug/remote/devtools/front_end/audits_worker/lighthouse/locales/sl.json b/src/third_party/devtools/front_end/audits_worker/lighthouse/locales/sl.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/audits_worker/lighthouse/locales/sl.json
rename to src/third_party/devtools/front_end/audits_worker/lighthouse/locales/sl.json
diff --git a/src/cobalt/debug/remote/devtools/front_end/audits_worker/lighthouse/locales/sr-Latn.json b/src/third_party/devtools/front_end/audits_worker/lighthouse/locales/sr-Latn.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/audits_worker/lighthouse/locales/sr-Latn.json
rename to src/third_party/devtools/front_end/audits_worker/lighthouse/locales/sr-Latn.json
diff --git a/src/cobalt/debug/remote/devtools/front_end/audits_worker/lighthouse/locales/sr.json b/src/third_party/devtools/front_end/audits_worker/lighthouse/locales/sr.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/audits_worker/lighthouse/locales/sr.json
rename to src/third_party/devtools/front_end/audits_worker/lighthouse/locales/sr.json
diff --git a/src/cobalt/debug/remote/devtools/front_end/audits_worker/lighthouse/locales/sv.json b/src/third_party/devtools/front_end/audits_worker/lighthouse/locales/sv.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/audits_worker/lighthouse/locales/sv.json
rename to src/third_party/devtools/front_end/audits_worker/lighthouse/locales/sv.json
diff --git a/src/cobalt/debug/remote/devtools/front_end/audits_worker/lighthouse/locales/ta.json b/src/third_party/devtools/front_end/audits_worker/lighthouse/locales/ta.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/audits_worker/lighthouse/locales/ta.json
rename to src/third_party/devtools/front_end/audits_worker/lighthouse/locales/ta.json
diff --git a/src/cobalt/debug/remote/devtools/front_end/audits_worker/lighthouse/locales/te.json b/src/third_party/devtools/front_end/audits_worker/lighthouse/locales/te.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/audits_worker/lighthouse/locales/te.json
rename to src/third_party/devtools/front_end/audits_worker/lighthouse/locales/te.json
diff --git a/src/cobalt/debug/remote/devtools/front_end/audits_worker/lighthouse/locales/th.json b/src/third_party/devtools/front_end/audits_worker/lighthouse/locales/th.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/audits_worker/lighthouse/locales/th.json
rename to src/third_party/devtools/front_end/audits_worker/lighthouse/locales/th.json
diff --git a/src/cobalt/debug/remote/devtools/front_end/audits_worker/lighthouse/locales/tr.json b/src/third_party/devtools/front_end/audits_worker/lighthouse/locales/tr.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/audits_worker/lighthouse/locales/tr.json
rename to src/third_party/devtools/front_end/audits_worker/lighthouse/locales/tr.json
diff --git a/src/cobalt/debug/remote/devtools/front_end/audits_worker/lighthouse/locales/uk.json b/src/third_party/devtools/front_end/audits_worker/lighthouse/locales/uk.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/audits_worker/lighthouse/locales/uk.json
rename to src/third_party/devtools/front_end/audits_worker/lighthouse/locales/uk.json
diff --git a/src/cobalt/debug/remote/devtools/front_end/audits_worker/lighthouse/locales/vi.json b/src/third_party/devtools/front_end/audits_worker/lighthouse/locales/vi.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/audits_worker/lighthouse/locales/vi.json
rename to src/third_party/devtools/front_end/audits_worker/lighthouse/locales/vi.json
diff --git a/src/cobalt/debug/remote/devtools/front_end/audits_worker/lighthouse/locales/zh-HK.json b/src/third_party/devtools/front_end/audits_worker/lighthouse/locales/zh-HK.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/audits_worker/lighthouse/locales/zh-HK.json
rename to src/third_party/devtools/front_end/audits_worker/lighthouse/locales/zh-HK.json
diff --git a/src/cobalt/debug/remote/devtools/front_end/audits_worker/lighthouse/locales/zh-TW.json b/src/third_party/devtools/front_end/audits_worker/lighthouse/locales/zh-TW.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/audits_worker/lighthouse/locales/zh-TW.json
rename to src/third_party/devtools/front_end/audits_worker/lighthouse/locales/zh-TW.json
diff --git a/src/cobalt/debug/remote/devtools/front_end/audits_worker/lighthouse/locales/zh.json b/src/third_party/devtools/front_end/audits_worker/lighthouse/locales/zh.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/audits_worker/lighthouse/locales/zh.json
rename to src/third_party/devtools/front_end/audits_worker/lighthouse/locales/zh.json
diff --git a/src/cobalt/debug/remote/devtools/front_end/audits_worker/module.json b/src/third_party/devtools/front_end/audits_worker/module.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/audits_worker/module.json
rename to src/third_party/devtools/front_end/audits_worker/module.json
diff --git a/src/cobalt/debug/remote/devtools/front_end/axe_core_test_runner/AxeCoreTestRunner.js b/src/third_party/devtools/front_end/axe_core_test_runner/AxeCoreTestRunner.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/axe_core_test_runner/AxeCoreTestRunner.js
rename to src/third_party/devtools/front_end/axe_core_test_runner/AxeCoreTestRunner.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/axe_core_test_runner/module.json b/src/third_party/devtools/front_end/axe_core_test_runner/module.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/axe_core_test_runner/module.json
rename to src/third_party/devtools/front_end/axe_core_test_runner/module.json
diff --git a/src/cobalt/debug/remote/devtools/front_end/bindings/BlackboxManager.js b/src/third_party/devtools/front_end/bindings/BlackboxManager.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/bindings/BlackboxManager.js
rename to src/third_party/devtools/front_end/bindings/BlackboxManager.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/bindings/BreakpointManager.js b/src/third_party/devtools/front_end/bindings/BreakpointManager.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/bindings/BreakpointManager.js
rename to src/third_party/devtools/front_end/bindings/BreakpointManager.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/bindings/CSSWorkspaceBinding.js b/src/third_party/devtools/front_end/bindings/CSSWorkspaceBinding.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/bindings/CSSWorkspaceBinding.js
rename to src/third_party/devtools/front_end/bindings/CSSWorkspaceBinding.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/bindings/CompilerScriptMapping.js b/src/third_party/devtools/front_end/bindings/CompilerScriptMapping.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/bindings/CompilerScriptMapping.js
rename to src/third_party/devtools/front_end/bindings/CompilerScriptMapping.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/bindings/ContentProviderBasedProject.js b/src/third_party/devtools/front_end/bindings/ContentProviderBasedProject.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/bindings/ContentProviderBasedProject.js
rename to src/third_party/devtools/front_end/bindings/ContentProviderBasedProject.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/bindings/DebuggerWorkspaceBinding.js b/src/third_party/devtools/front_end/bindings/DebuggerWorkspaceBinding.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/bindings/DebuggerWorkspaceBinding.js
rename to src/third_party/devtools/front_end/bindings/DebuggerWorkspaceBinding.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/bindings/DefaultScriptMapping.js b/src/third_party/devtools/front_end/bindings/DefaultScriptMapping.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/bindings/DefaultScriptMapping.js
rename to src/third_party/devtools/front_end/bindings/DefaultScriptMapping.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/bindings/FileUtils.js b/src/third_party/devtools/front_end/bindings/FileUtils.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/bindings/FileUtils.js
rename to src/third_party/devtools/front_end/bindings/FileUtils.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/bindings/LiveLocation.js b/src/third_party/devtools/front_end/bindings/LiveLocation.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/bindings/LiveLocation.js
rename to src/third_party/devtools/front_end/bindings/LiveLocation.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/bindings/NetworkProject.js b/src/third_party/devtools/front_end/bindings/NetworkProject.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/bindings/NetworkProject.js
rename to src/third_party/devtools/front_end/bindings/NetworkProject.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/bindings/PresentationConsoleMessageHelper.js b/src/third_party/devtools/front_end/bindings/PresentationConsoleMessageHelper.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/bindings/PresentationConsoleMessageHelper.js
rename to src/third_party/devtools/front_end/bindings/PresentationConsoleMessageHelper.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/bindings/ResourceMapping.js b/src/third_party/devtools/front_end/bindings/ResourceMapping.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/bindings/ResourceMapping.js
rename to src/third_party/devtools/front_end/bindings/ResourceMapping.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/bindings/ResourceScriptMapping.js b/src/third_party/devtools/front_end/bindings/ResourceScriptMapping.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/bindings/ResourceScriptMapping.js
rename to src/third_party/devtools/front_end/bindings/ResourceScriptMapping.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/bindings/ResourceUtils.js b/src/third_party/devtools/front_end/bindings/ResourceUtils.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/bindings/ResourceUtils.js
rename to src/third_party/devtools/front_end/bindings/ResourceUtils.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/bindings/SASSSourceMapping.js b/src/third_party/devtools/front_end/bindings/SASSSourceMapping.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/bindings/SASSSourceMapping.js
rename to src/third_party/devtools/front_end/bindings/SASSSourceMapping.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/bindings/StylesSourceMapping.js b/src/third_party/devtools/front_end/bindings/StylesSourceMapping.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/bindings/StylesSourceMapping.js
rename to src/third_party/devtools/front_end/bindings/StylesSourceMapping.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/bindings/TempFile.js b/src/third_party/devtools/front_end/bindings/TempFile.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/bindings/TempFile.js
rename to src/third_party/devtools/front_end/bindings/TempFile.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/bindings/bindings.js b/src/third_party/devtools/front_end/bindings/bindings.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/bindings/bindings.js
rename to src/third_party/devtools/front_end/bindings/bindings.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/bindings/bindings_strings.grdp b/src/third_party/devtools/front_end/bindings/bindings_strings.grdp
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/bindings/bindings_strings.grdp
rename to src/third_party/devtools/front_end/bindings/bindings_strings.grdp
diff --git a/src/cobalt/debug/remote/devtools/front_end/bindings/module.json b/src/third_party/devtools/front_end/bindings/module.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/bindings/module.json
rename to src/third_party/devtools/front_end/bindings/module.json
diff --git a/src/cobalt/debug/remote/devtools/front_end/bindings_test_runner/AutomappingTestRunner.js b/src/third_party/devtools/front_end/bindings_test_runner/AutomappingTestRunner.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/bindings_test_runner/AutomappingTestRunner.js
rename to src/third_party/devtools/front_end/bindings_test_runner/AutomappingTestRunner.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/bindings_test_runner/BindingsTestRunner.js b/src/third_party/devtools/front_end/bindings_test_runner/BindingsTestRunner.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/bindings_test_runner/BindingsTestRunner.js
rename to src/third_party/devtools/front_end/bindings_test_runner/BindingsTestRunner.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/bindings_test_runner/IsolatedFilesystemTestRunner.js b/src/third_party/devtools/front_end/bindings_test_runner/IsolatedFilesystemTestRunner.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/bindings_test_runner/IsolatedFilesystemTestRunner.js
rename to src/third_party/devtools/front_end/bindings_test_runner/IsolatedFilesystemTestRunner.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/bindings_test_runner/OverridesTestRunner.js b/src/third_party/devtools/front_end/bindings_test_runner/OverridesTestRunner.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/bindings_test_runner/OverridesTestRunner.js
rename to src/third_party/devtools/front_end/bindings_test_runner/OverridesTestRunner.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/bindings_test_runner/PersistenceTestRunner.js b/src/third_party/devtools/front_end/bindings_test_runner/PersistenceTestRunner.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/bindings_test_runner/PersistenceTestRunner.js
rename to src/third_party/devtools/front_end/bindings_test_runner/PersistenceTestRunner.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/bindings_test_runner/module.json b/src/third_party/devtools/front_end/bindings_test_runner/module.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/bindings_test_runner/module.json
rename to src/third_party/devtools/front_end/bindings_test_runner/module.json
diff --git a/src/cobalt/debug/remote/devtools/front_end/browser_debugger/DOMBreakpointsSidebarPane.js b/src/third_party/devtools/front_end/browser_debugger/DOMBreakpointsSidebarPane.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/browser_debugger/DOMBreakpointsSidebarPane.js
rename to src/third_party/devtools/front_end/browser_debugger/DOMBreakpointsSidebarPane.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/browser_debugger/EventListenerBreakpointsSidebarPane.js b/src/third_party/devtools/front_end/browser_debugger/EventListenerBreakpointsSidebarPane.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/browser_debugger/EventListenerBreakpointsSidebarPane.js
rename to src/third_party/devtools/front_end/browser_debugger/EventListenerBreakpointsSidebarPane.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/browser_debugger/ObjectEventListenersSidebarPane.js b/src/third_party/devtools/front_end/browser_debugger/ObjectEventListenersSidebarPane.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/browser_debugger/ObjectEventListenersSidebarPane.js
rename to src/third_party/devtools/front_end/browser_debugger/ObjectEventListenersSidebarPane.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/browser_debugger/XHRBreakpointsSidebarPane.js b/src/third_party/devtools/front_end/browser_debugger/XHRBreakpointsSidebarPane.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/browser_debugger/XHRBreakpointsSidebarPane.js
rename to src/third_party/devtools/front_end/browser_debugger/XHRBreakpointsSidebarPane.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/browser_debugger/browser_debugger.js b/src/third_party/devtools/front_end/browser_debugger/browser_debugger.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/browser_debugger/browser_debugger.js
rename to src/third_party/devtools/front_end/browser_debugger/browser_debugger.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/browser_debugger/browser_debugger_strings.grdp b/src/third_party/devtools/front_end/browser_debugger/browser_debugger_strings.grdp
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/browser_debugger/browser_debugger_strings.grdp
rename to src/third_party/devtools/front_end/browser_debugger/browser_debugger_strings.grdp
diff --git a/src/cobalt/debug/remote/devtools/front_end/browser_debugger/domBreakpointsSidebarPane.css b/src/third_party/devtools/front_end/browser_debugger/domBreakpointsSidebarPane.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/browser_debugger/domBreakpointsSidebarPane.css
rename to src/third_party/devtools/front_end/browser_debugger/domBreakpointsSidebarPane.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/browser_debugger/eventListenerBreakpoints.css b/src/third_party/devtools/front_end/browser_debugger/eventListenerBreakpoints.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/browser_debugger/eventListenerBreakpoints.css
rename to src/third_party/devtools/front_end/browser_debugger/eventListenerBreakpoints.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/browser_debugger/module.json b/src/third_party/devtools/front_end/browser_debugger/module.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/browser_debugger/module.json
rename to src/third_party/devtools/front_end/browser_debugger/module.json
diff --git a/src/cobalt/debug/remote/devtools/front_end/browser_debugger/xhrBreakpointsSidebarPane.css b/src/third_party/devtools/front_end/browser_debugger/xhrBreakpointsSidebarPane.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/browser_debugger/xhrBreakpointsSidebarPane.css
rename to src/third_party/devtools/front_end/browser_debugger/xhrBreakpointsSidebarPane.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/browser_sdk/LogManager.js b/src/third_party/devtools/front_end/browser_sdk/LogManager.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/browser_sdk/LogManager.js
rename to src/third_party/devtools/front_end/browser_sdk/LogManager.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/browser_sdk/browser_sdk.js b/src/third_party/devtools/front_end/browser_sdk/browser_sdk.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/browser_sdk/browser_sdk.js
rename to src/third_party/devtools/front_end/browser_sdk/browser_sdk.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/browser_sdk/browser_sdk_strings.grdp b/src/third_party/devtools/front_end/browser_sdk/browser_sdk_strings.grdp
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/browser_sdk/browser_sdk_strings.grdp
rename to src/third_party/devtools/front_end/browser_sdk/browser_sdk_strings.grdp
diff --git a/src/cobalt/debug/remote/devtools/front_end/browser_sdk/module.json b/src/third_party/devtools/front_end/browser_sdk/module.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/browser_sdk/module.json
rename to src/third_party/devtools/front_end/browser_sdk/module.json
diff --git a/src/cobalt/debug/remote/devtools/front_end/changes/ChangesHighlighter.js b/src/third_party/devtools/front_end/changes/ChangesHighlighter.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/changes/ChangesHighlighter.js
rename to src/third_party/devtools/front_end/changes/ChangesHighlighter.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/changes/ChangesSidebar.js b/src/third_party/devtools/front_end/changes/ChangesSidebar.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/changes/ChangesSidebar.js
rename to src/third_party/devtools/front_end/changes/ChangesSidebar.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/changes/ChangesView.js b/src/third_party/devtools/front_end/changes/ChangesView.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/changes/ChangesView.js
rename to src/third_party/devtools/front_end/changes/ChangesView.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/changes/changes.js b/src/third_party/devtools/front_end/changes/changes.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/changes/changes.js
rename to src/third_party/devtools/front_end/changes/changes.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/changes/changesSidebar.css b/src/third_party/devtools/front_end/changes/changesSidebar.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/changes/changesSidebar.css
rename to src/third_party/devtools/front_end/changes/changesSidebar.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/changes/changesView.css b/src/third_party/devtools/front_end/changes/changesView.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/changes/changesView.css
rename to src/third_party/devtools/front_end/changes/changesView.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/changes/changes_strings.grdp b/src/third_party/devtools/front_end/changes/changes_strings.grdp
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/changes/changes_strings.grdp
rename to src/third_party/devtools/front_end/changes/changes_strings.grdp
diff --git a/src/cobalt/debug/remote/devtools/front_end/changes/module.json b/src/third_party/devtools/front_end/changes/module.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/changes/module.json
rename to src/third_party/devtools/front_end/changes/module.json
diff --git a/src/cobalt/debug/remote/devtools/front_end/cm/LICENSE b/src/third_party/devtools/front_end/cm/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/cm/LICENSE
rename to src/third_party/devtools/front_end/cm/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/front_end/cm/LICENSE_python b/src/third_party/devtools/front_end/cm/LICENSE_python
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/cm/LICENSE_python
rename to src/third_party/devtools/front_end/cm/LICENSE_python
diff --git a/src/cobalt/debug/remote/devtools/front_end/cm/README.md b/src/third_party/devtools/front_end/cm/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/cm/README.md
rename to src/third_party/devtools/front_end/cm/README.md
diff --git a/src/cobalt/debug/remote/devtools/front_end/cm/active-line.js b/src/third_party/devtools/front_end/cm/active-line.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/cm/active-line.js
rename to src/third_party/devtools/front_end/cm/active-line.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/cm/brace-fold.js b/src/third_party/devtools/front_end/cm/brace-fold.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/cm/brace-fold.js
rename to src/third_party/devtools/front_end/cm/brace-fold.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/cm/closebrackets.js b/src/third_party/devtools/front_end/cm/closebrackets.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/cm/closebrackets.js
rename to src/third_party/devtools/front_end/cm/closebrackets.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/cm/cm.js b/src/third_party/devtools/front_end/cm/cm.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/cm/cm.js
rename to src/third_party/devtools/front_end/cm/cm.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/cm/codemirror.css b/src/third_party/devtools/front_end/cm/codemirror.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/cm/codemirror.css
rename to src/third_party/devtools/front_end/cm/codemirror.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/cm/codemirror.js b/src/third_party/devtools/front_end/cm/codemirror.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/cm/codemirror.js
rename to src/third_party/devtools/front_end/cm/codemirror.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/cm/comment.js b/src/third_party/devtools/front_end/cm/comment.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/cm/comment.js
rename to src/third_party/devtools/front_end/cm/comment.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/cm/foldcode.js b/src/third_party/devtools/front_end/cm/foldcode.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/cm/foldcode.js
rename to src/third_party/devtools/front_end/cm/foldcode.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/cm/foldgutter.js b/src/third_party/devtools/front_end/cm/foldgutter.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/cm/foldgutter.js
rename to src/third_party/devtools/front_end/cm/foldgutter.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/cm/mark-selection.js b/src/third_party/devtools/front_end/cm/mark-selection.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/cm/mark-selection.js
rename to src/third_party/devtools/front_end/cm/mark-selection.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/cm/matchbrackets.js b/src/third_party/devtools/front_end/cm/matchbrackets.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/cm/matchbrackets.js
rename to src/third_party/devtools/front_end/cm/matchbrackets.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/cm/module.json b/src/third_party/devtools/front_end/cm/module.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/cm/module.json
rename to src/third_party/devtools/front_end/cm/module.json
diff --git a/src/cobalt/debug/remote/devtools/front_end/cm/multiplex.js b/src/third_party/devtools/front_end/cm/multiplex.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/cm/multiplex.js
rename to src/third_party/devtools/front_end/cm/multiplex.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/cm/overlay.js b/src/third_party/devtools/front_end/cm/overlay.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/cm/overlay.js
rename to src/third_party/devtools/front_end/cm/overlay.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/cm_headless/cm_headless.js b/src/third_party/devtools/front_end/cm_headless/cm_headless.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/cm_headless/cm_headless.js
rename to src/third_party/devtools/front_end/cm_headless/cm_headless.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/cm_headless/headlesscodemirror.js b/src/third_party/devtools/front_end/cm_headless/headlesscodemirror.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/cm_headless/headlesscodemirror.js
rename to src/third_party/devtools/front_end/cm_headless/headlesscodemirror.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/cm_headless/module.json b/src/third_party/devtools/front_end/cm_headless/module.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/cm_headless/module.json
rename to src/third_party/devtools/front_end/cm_headless/module.json
diff --git a/src/cobalt/debug/remote/devtools/front_end/cm_modes/DefaultCodeMirrorMimeMode.js b/src/third_party/devtools/front_end/cm_modes/DefaultCodeMirrorMimeMode.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/cm_modes/DefaultCodeMirrorMimeMode.js
rename to src/third_party/devtools/front_end/cm_modes/DefaultCodeMirrorMimeMode.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/cm_modes/LICENSE b/src/third_party/devtools/front_end/cm_modes/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/cm_modes/LICENSE
rename to src/third_party/devtools/front_end/cm_modes/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/front_end/cm_modes/clike.js b/src/third_party/devtools/front_end/cm_modes/clike.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/cm_modes/clike.js
rename to src/third_party/devtools/front_end/cm_modes/clike.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/cm_modes/clojure.js b/src/third_party/devtools/front_end/cm_modes/clojure.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/cm_modes/clojure.js
rename to src/third_party/devtools/front_end/cm_modes/clojure.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/cm_modes/cm_modes.js b/src/third_party/devtools/front_end/cm_modes/cm_modes.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/cm_modes/cm_modes.js
rename to src/third_party/devtools/front_end/cm_modes/cm_modes.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/cm_modes/coffeescript.js b/src/third_party/devtools/front_end/cm_modes/coffeescript.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/cm_modes/coffeescript.js
rename to src/third_party/devtools/front_end/cm_modes/coffeescript.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/cm_modes/jsx.js b/src/third_party/devtools/front_end/cm_modes/jsx.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/cm_modes/jsx.js
rename to src/third_party/devtools/front_end/cm_modes/jsx.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/cm_modes/livescript.js b/src/third_party/devtools/front_end/cm_modes/livescript.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/cm_modes/livescript.js
rename to src/third_party/devtools/front_end/cm_modes/livescript.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/cm_modes/markdown.js b/src/third_party/devtools/front_end/cm_modes/markdown.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/cm_modes/markdown.js
rename to src/third_party/devtools/front_end/cm_modes/markdown.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/cm_modes/module.json b/src/third_party/devtools/front_end/cm_modes/module.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/cm_modes/module.json
rename to src/third_party/devtools/front_end/cm_modes/module.json
diff --git a/src/cobalt/debug/remote/devtools/front_end/cm_modes/php.js b/src/third_party/devtools/front_end/cm_modes/php.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/cm_modes/php.js
rename to src/third_party/devtools/front_end/cm_modes/php.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/cm_modes/python.js b/src/third_party/devtools/front_end/cm_modes/python.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/cm_modes/python.js
rename to src/third_party/devtools/front_end/cm_modes/python.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/cm_modes/shell.js b/src/third_party/devtools/front_end/cm_modes/shell.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/cm_modes/shell.js
rename to src/third_party/devtools/front_end/cm_modes/shell.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/cm_web_modes/cm_web_modes.js b/src/third_party/devtools/front_end/cm_web_modes/cm_web_modes.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/cm_web_modes/cm_web_modes.js
rename to src/third_party/devtools/front_end/cm_web_modes/cm_web_modes.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/cm_web_modes/cm_web_modes_cm.js b/src/third_party/devtools/front_end/cm_web_modes/cm_web_modes_cm.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/cm_web_modes/cm_web_modes_cm.js
rename to src/third_party/devtools/front_end/cm_web_modes/cm_web_modes_cm.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/cm_web_modes/cm_web_modes_headless.js b/src/third_party/devtools/front_end/cm_web_modes/cm_web_modes_headless.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/cm_web_modes/cm_web_modes_headless.js
rename to src/third_party/devtools/front_end/cm_web_modes/cm_web_modes_headless.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/cm_web_modes/css.js b/src/third_party/devtools/front_end/cm_web_modes/css.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/cm_web_modes/css.js
rename to src/third_party/devtools/front_end/cm_web_modes/css.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/cm_web_modes/htmlembedded.js b/src/third_party/devtools/front_end/cm_web_modes/htmlembedded.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/cm_web_modes/htmlembedded.js
rename to src/third_party/devtools/front_end/cm_web_modes/htmlembedded.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/cm_web_modes/htmlmixed.js b/src/third_party/devtools/front_end/cm_web_modes/htmlmixed.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/cm_web_modes/htmlmixed.js
rename to src/third_party/devtools/front_end/cm_web_modes/htmlmixed.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/cm_web_modes/javascript.js b/src/third_party/devtools/front_end/cm_web_modes/javascript.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/cm_web_modes/javascript.js
rename to src/third_party/devtools/front_end/cm_web_modes/javascript.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/cm_web_modes/module.json b/src/third_party/devtools/front_end/cm_web_modes/module.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/cm_web_modes/module.json
rename to src/third_party/devtools/front_end/cm_web_modes/module.json
diff --git a/src/cobalt/debug/remote/devtools/front_end/cm_web_modes/xml.js b/src/third_party/devtools/front_end/cm_web_modes/xml.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/cm_web_modes/xml.js
rename to src/third_party/devtools/front_end/cm_web_modes/xml.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/color_picker/ContrastDetails.js b/src/third_party/devtools/front_end/color_picker/ContrastDetails.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/color_picker/ContrastDetails.js
rename to src/third_party/devtools/front_end/color_picker/ContrastDetails.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/color_picker/ContrastInfo.js b/src/third_party/devtools/front_end/color_picker/ContrastInfo.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/color_picker/ContrastInfo.js
rename to src/third_party/devtools/front_end/color_picker/ContrastInfo.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/color_picker/ContrastOverlay.js b/src/third_party/devtools/front_end/color_picker/ContrastOverlay.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/color_picker/ContrastOverlay.js
rename to src/third_party/devtools/front_end/color_picker/ContrastOverlay.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/color_picker/Spectrum.js b/src/third_party/devtools/front_end/color_picker/Spectrum.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/color_picker/Spectrum.js
rename to src/third_party/devtools/front_end/color_picker/Spectrum.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/color_picker/color_picker.js b/src/third_party/devtools/front_end/color_picker/color_picker.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/color_picker/color_picker.js
rename to src/third_party/devtools/front_end/color_picker/color_picker.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/color_picker/color_picker_strings.grdp b/src/third_party/devtools/front_end/color_picker/color_picker_strings.grdp
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/color_picker/color_picker_strings.grdp
rename to src/third_party/devtools/front_end/color_picker/color_picker_strings.grdp
diff --git a/src/cobalt/debug/remote/devtools/front_end/color_picker/module.json b/src/third_party/devtools/front_end/color_picker/module.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/color_picker/module.json
rename to src/third_party/devtools/front_end/color_picker/module.json
diff --git a/src/cobalt/debug/remote/devtools/front_end/color_picker/spectrum.css b/src/third_party/devtools/front_end/color_picker/spectrum.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/color_picker/spectrum.css
rename to src/third_party/devtools/front_end/color_picker/spectrum.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/common/App.js b/src/third_party/devtools/front_end/common/App.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/common/App.js
rename to src/third_party/devtools/front_end/common/App.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/common/AppProvider.js b/src/third_party/devtools/front_end/common/AppProvider.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/common/AppProvider.js
rename to src/third_party/devtools/front_end/common/AppProvider.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/common/CharacterIdMap.js b/src/third_party/devtools/front_end/common/CharacterIdMap.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/common/CharacterIdMap.js
rename to src/third_party/devtools/front_end/common/CharacterIdMap.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/common/Color.js b/src/third_party/devtools/front_end/common/Color.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/common/Color.js
rename to src/third_party/devtools/front_end/common/Color.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/common/Console.js b/src/third_party/devtools/front_end/common/Console.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/common/Console.js
rename to src/third_party/devtools/front_end/common/Console.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/common/ContentProvider.js b/src/third_party/devtools/front_end/common/ContentProvider.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/common/ContentProvider.js
rename to src/third_party/devtools/front_end/common/ContentProvider.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/common/EventTarget.js b/src/third_party/devtools/front_end/common/EventTarget.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/common/EventTarget.js
rename to src/third_party/devtools/front_end/common/EventTarget.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/common/JavaScriptMetaData.js b/src/third_party/devtools/front_end/common/JavaScriptMetaData.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/common/JavaScriptMetaData.js
rename to src/third_party/devtools/front_end/common/JavaScriptMetaData.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/common/Linkifier.js b/src/third_party/devtools/front_end/common/Linkifier.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/common/Linkifier.js
rename to src/third_party/devtools/front_end/common/Linkifier.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/common/Object.js b/src/third_party/devtools/front_end/common/Object.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/common/Object.js
rename to src/third_party/devtools/front_end/common/Object.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/common/ParsedURL.js b/src/third_party/devtools/front_end/common/ParsedURL.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/common/ParsedURL.js
rename to src/third_party/devtools/front_end/common/ParsedURL.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/common/Progress.js b/src/third_party/devtools/front_end/common/Progress.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/common/Progress.js
rename to src/third_party/devtools/front_end/common/Progress.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/common/QueryParamHandler.js b/src/third_party/devtools/front_end/common/QueryParamHandler.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/common/QueryParamHandler.js
rename to src/third_party/devtools/front_end/common/QueryParamHandler.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/common/ResourceType.js b/src/third_party/devtools/front_end/common/ResourceType.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/common/ResourceType.js
rename to src/third_party/devtools/front_end/common/ResourceType.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/common/Revealer.js b/src/third_party/devtools/front_end/common/Revealer.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/common/Revealer.js
rename to src/third_party/devtools/front_end/common/Revealer.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/common/Runnable.js b/src/third_party/devtools/front_end/common/Runnable.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/common/Runnable.js
rename to src/third_party/devtools/front_end/common/Runnable.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/common/SegmentedRange.js b/src/third_party/devtools/front_end/common/SegmentedRange.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/common/SegmentedRange.js
rename to src/third_party/devtools/front_end/common/SegmentedRange.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/common/Settings.js b/src/third_party/devtools/front_end/common/Settings.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/common/Settings.js
rename to src/third_party/devtools/front_end/common/Settings.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/common/StaticContentProvider.js b/src/third_party/devtools/front_end/common/StaticContentProvider.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/common/StaticContentProvider.js
rename to src/third_party/devtools/front_end/common/StaticContentProvider.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/common/StringOutputStream.js b/src/third_party/devtools/front_end/common/StringOutputStream.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/common/StringOutputStream.js
rename to src/third_party/devtools/front_end/common/StringOutputStream.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/common/TextDictionary.js b/src/third_party/devtools/front_end/common/TextDictionary.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/common/TextDictionary.js
rename to src/third_party/devtools/front_end/common/TextDictionary.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/common/Throttler.js b/src/third_party/devtools/front_end/common/Throttler.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/common/Throttler.js
rename to src/third_party/devtools/front_end/common/Throttler.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/common/Trie.js b/src/third_party/devtools/front_end/common/Trie.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/common/Trie.js
rename to src/third_party/devtools/front_end/common/Trie.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/common/UIString.js b/src/third_party/devtools/front_end/common/UIString.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/common/UIString.js
rename to src/third_party/devtools/front_end/common/UIString.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/common/Worker.js b/src/third_party/devtools/front_end/common/Worker.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/common/Worker.js
rename to src/third_party/devtools/front_end/common/Worker.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/common/common-legacy.js b/src/third_party/devtools/front_end/common/common-legacy.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/common/common-legacy.js
rename to src/third_party/devtools/front_end/common/common-legacy.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/common/common.js b/src/third_party/devtools/front_end/common/common.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/common/common.js
rename to src/third_party/devtools/front_end/common/common.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/common/common_strings.grdp b/src/third_party/devtools/front_end/common/common_strings.grdp
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/common/common_strings.grdp
rename to src/third_party/devtools/front_end/common/common_strings.grdp
diff --git a/src/cobalt/debug/remote/devtools/front_end/common/module.json b/src/third_party/devtools/front_end/common/module.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/common/module.json
rename to src/third_party/devtools/front_end/common/module.json
diff --git a/src/cobalt/debug/remote/devtools/front_end/components/DockController.js b/src/third_party/devtools/front_end/components/DockController.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/components/DockController.js
rename to src/third_party/devtools/front_end/components/DockController.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/components/ImagePreview.js b/src/third_party/devtools/front_end/components/ImagePreview.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/components/ImagePreview.js
rename to src/third_party/devtools/front_end/components/ImagePreview.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/components/JSPresentationUtils.js b/src/third_party/devtools/front_end/components/JSPresentationUtils.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/components/JSPresentationUtils.js
rename to src/third_party/devtools/front_end/components/JSPresentationUtils.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/components/Linkifier.js b/src/third_party/devtools/front_end/components/Linkifier.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/components/Linkifier.js
rename to src/third_party/devtools/front_end/components/Linkifier.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/components/Reload.js b/src/third_party/devtools/front_end/components/Reload.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/components/Reload.js
rename to src/third_party/devtools/front_end/components/Reload.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/components/TargetDetachedDialog.js b/src/third_party/devtools/front_end/components/TargetDetachedDialog.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/components/TargetDetachedDialog.js
rename to src/third_party/devtools/front_end/components/TargetDetachedDialog.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/components/components.js b/src/third_party/devtools/front_end/components/components.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/components/components.js
rename to src/third_party/devtools/front_end/components/components.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/components/components_strings.grdp b/src/third_party/devtools/front_end/components/components_strings.grdp
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/components/components_strings.grdp
rename to src/third_party/devtools/front_end/components/components_strings.grdp
diff --git a/src/cobalt/debug/remote/devtools/front_end/components/imagePreview.css b/src/third_party/devtools/front_end/components/imagePreview.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/components/imagePreview.css
rename to src/third_party/devtools/front_end/components/imagePreview.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/components/jsUtils.css b/src/third_party/devtools/front_end/components/jsUtils.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/components/jsUtils.css
rename to src/third_party/devtools/front_end/components/jsUtils.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/components/module.json b/src/third_party/devtools/front_end/components/module.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/components/module.json
rename to src/third_party/devtools/front_end/components/module.json
diff --git a/src/cobalt/debug/remote/devtools/front_end/console/ConsoleContextSelector.js b/src/third_party/devtools/front_end/console/ConsoleContextSelector.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/console/ConsoleContextSelector.js
rename to src/third_party/devtools/front_end/console/ConsoleContextSelector.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/console/ConsoleFilter.js b/src/third_party/devtools/front_end/console/ConsoleFilter.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/console/ConsoleFilter.js
rename to src/third_party/devtools/front_end/console/ConsoleFilter.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/console/ConsolePanel.js b/src/third_party/devtools/front_end/console/ConsolePanel.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/console/ConsolePanel.js
rename to src/third_party/devtools/front_end/console/ConsolePanel.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/console/ConsolePinPane.js b/src/third_party/devtools/front_end/console/ConsolePinPane.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/console/ConsolePinPane.js
rename to src/third_party/devtools/front_end/console/ConsolePinPane.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/console/ConsolePrompt.js b/src/third_party/devtools/front_end/console/ConsolePrompt.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/console/ConsolePrompt.js
rename to src/third_party/devtools/front_end/console/ConsolePrompt.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/console/ConsoleSidebar.js b/src/third_party/devtools/front_end/console/ConsoleSidebar.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/console/ConsoleSidebar.js
rename to src/third_party/devtools/front_end/console/ConsoleSidebar.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/console/ConsoleView.js b/src/third_party/devtools/front_end/console/ConsoleView.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/console/ConsoleView.js
rename to src/third_party/devtools/front_end/console/ConsoleView.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/console/ConsoleViewMessage.js b/src/third_party/devtools/front_end/console/ConsoleViewMessage.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/console/ConsoleViewMessage.js
rename to src/third_party/devtools/front_end/console/ConsoleViewMessage.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/console/ConsoleViewport.js b/src/third_party/devtools/front_end/console/ConsoleViewport.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/console/ConsoleViewport.js
rename to src/third_party/devtools/front_end/console/ConsoleViewport.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/console/console.js b/src/third_party/devtools/front_end/console/console.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/console/console.js
rename to src/third_party/devtools/front_end/console/console.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/console/consoleContextSelector.css b/src/third_party/devtools/front_end/console/consoleContextSelector.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/console/consoleContextSelector.css
rename to src/third_party/devtools/front_end/console/consoleContextSelector.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/console/consolePinPane.css b/src/third_party/devtools/front_end/console/consolePinPane.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/console/consolePinPane.css
rename to src/third_party/devtools/front_end/console/consolePinPane.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/console/consolePrompt.css b/src/third_party/devtools/front_end/console/consolePrompt.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/console/consolePrompt.css
rename to src/third_party/devtools/front_end/console/consolePrompt.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/console/consoleSidebar.css b/src/third_party/devtools/front_end/console/consoleSidebar.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/console/consoleSidebar.css
rename to src/third_party/devtools/front_end/console/consoleSidebar.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/console/consoleView.css b/src/third_party/devtools/front_end/console/consoleView.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/console/consoleView.css
rename to src/third_party/devtools/front_end/console/consoleView.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/console/console_strings.grdp b/src/third_party/devtools/front_end/console/console_strings.grdp
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/console/console_strings.grdp
rename to src/third_party/devtools/front_end/console/console_strings.grdp
diff --git a/src/cobalt/debug/remote/devtools/front_end/console/module.json b/src/third_party/devtools/front_end/console/module.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/console/module.json
rename to src/third_party/devtools/front_end/console/module.json
diff --git a/src/cobalt/debug/remote/devtools/front_end/console_counters/WarningErrorCounter.js b/src/third_party/devtools/front_end/console_counters/WarningErrorCounter.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/console_counters/WarningErrorCounter.js
rename to src/third_party/devtools/front_end/console_counters/WarningErrorCounter.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/console_counters/console_counters.js b/src/third_party/devtools/front_end/console_counters/console_counters.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/console_counters/console_counters.js
rename to src/third_party/devtools/front_end/console_counters/console_counters.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/console_counters/console_counters_strings.grdp b/src/third_party/devtools/front_end/console_counters/console_counters_strings.grdp
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/console_counters/console_counters_strings.grdp
rename to src/third_party/devtools/front_end/console_counters/console_counters_strings.grdp
diff --git a/src/cobalt/debug/remote/devtools/front_end/console_counters/errorWarningCounter.css b/src/third_party/devtools/front_end/console_counters/errorWarningCounter.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/console_counters/errorWarningCounter.css
rename to src/third_party/devtools/front_end/console_counters/errorWarningCounter.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/console_counters/module.json b/src/third_party/devtools/front_end/console_counters/module.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/console_counters/module.json
rename to src/third_party/devtools/front_end/console_counters/module.json
diff --git a/src/cobalt/debug/remote/devtools/front_end/console_test_runner/ConsoleTestRunner.js b/src/third_party/devtools/front_end/console_test_runner/ConsoleTestRunner.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/console_test_runner/ConsoleTestRunner.js
rename to src/third_party/devtools/front_end/console_test_runner/ConsoleTestRunner.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/console_test_runner/module.json b/src/third_party/devtools/front_end/console_test_runner/module.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/console_test_runner/module.json
rename to src/third_party/devtools/front_end/console_test_runner/module.json
diff --git a/src/cobalt/debug/remote/devtools/front_end/cookie_table/CookiesTable.js b/src/third_party/devtools/front_end/cookie_table/CookiesTable.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/cookie_table/CookiesTable.js
rename to src/third_party/devtools/front_end/cookie_table/CookiesTable.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/cookie_table/cookie_table.js b/src/third_party/devtools/front_end/cookie_table/cookie_table.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/cookie_table/cookie_table.js
rename to src/third_party/devtools/front_end/cookie_table/cookie_table.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/cookie_table/cookie_table_strings.grdp b/src/third_party/devtools/front_end/cookie_table/cookie_table_strings.grdp
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/cookie_table/cookie_table_strings.grdp
rename to src/third_party/devtools/front_end/cookie_table/cookie_table_strings.grdp
diff --git a/src/cobalt/debug/remote/devtools/front_end/cookie_table/module.json b/src/third_party/devtools/front_end/cookie_table/module.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/cookie_table/module.json
rename to src/third_party/devtools/front_end/cookie_table/module.json
diff --git a/src/cobalt/debug/remote/devtools/front_end/coverage/CoverageDecorationManager.js b/src/third_party/devtools/front_end/coverage/CoverageDecorationManager.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/coverage/CoverageDecorationManager.js
rename to src/third_party/devtools/front_end/coverage/CoverageDecorationManager.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/coverage/CoverageListView.js b/src/third_party/devtools/front_end/coverage/CoverageListView.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/coverage/CoverageListView.js
rename to src/third_party/devtools/front_end/coverage/CoverageListView.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/coverage/CoverageModel.js b/src/third_party/devtools/front_end/coverage/CoverageModel.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/coverage/CoverageModel.js
rename to src/third_party/devtools/front_end/coverage/CoverageModel.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/coverage/CoverageView.js b/src/third_party/devtools/front_end/coverage/CoverageView.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/coverage/CoverageView.js
rename to src/third_party/devtools/front_end/coverage/CoverageView.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/coverage/coverage.js b/src/third_party/devtools/front_end/coverage/coverage.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/coverage/coverage.js
rename to src/third_party/devtools/front_end/coverage/coverage.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/coverage/coverageListView.css b/src/third_party/devtools/front_end/coverage/coverageListView.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/coverage/coverageListView.css
rename to src/third_party/devtools/front_end/coverage/coverageListView.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/coverage/coverageView.css b/src/third_party/devtools/front_end/coverage/coverageView.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/coverage/coverageView.css
rename to src/third_party/devtools/front_end/coverage/coverageView.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/coverage/coverage_strings.grdp b/src/third_party/devtools/front_end/coverage/coverage_strings.grdp
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/coverage/coverage_strings.grdp
rename to src/third_party/devtools/front_end/coverage/coverage_strings.grdp
diff --git a/src/cobalt/debug/remote/devtools/front_end/coverage/module.json b/src/third_party/devtools/front_end/coverage/module.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/coverage/module.json
rename to src/third_party/devtools/front_end/coverage/module.json
diff --git a/src/cobalt/debug/remote/devtools/front_end/coverage_test_runner/CoverageTestRunner.js b/src/third_party/devtools/front_end/coverage_test_runner/CoverageTestRunner.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/coverage_test_runner/CoverageTestRunner.js
rename to src/third_party/devtools/front_end/coverage_test_runner/CoverageTestRunner.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/coverage_test_runner/module.json b/src/third_party/devtools/front_end/coverage_test_runner/module.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/coverage_test_runner/module.json
rename to src/third_party/devtools/front_end/coverage_test_runner/module.json
diff --git a/src/cobalt/debug/remote/devtools/front_end/cpu_profiler_test_runner/ProfilerTestRunner.js b/src/third_party/devtools/front_end/cpu_profiler_test_runner/ProfilerTestRunner.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/cpu_profiler_test_runner/ProfilerTestRunner.js
rename to src/third_party/devtools/front_end/cpu_profiler_test_runner/ProfilerTestRunner.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/cpu_profiler_test_runner/module.json b/src/third_party/devtools/front_end/cpu_profiler_test_runner/module.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/cpu_profiler_test_runner/module.json
rename to src/third_party/devtools/front_end/cpu_profiler_test_runner/module.json
diff --git a/src/cobalt/debug/remote/devtools/front_end/css_overview/CSSOverviewCompletedView.js b/src/third_party/devtools/front_end/css_overview/CSSOverviewCompletedView.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/css_overview/CSSOverviewCompletedView.js
rename to src/third_party/devtools/front_end/css_overview/CSSOverviewCompletedView.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/css_overview/CSSOverviewController.js b/src/third_party/devtools/front_end/css_overview/CSSOverviewController.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/css_overview/CSSOverviewController.js
rename to src/third_party/devtools/front_end/css_overview/CSSOverviewController.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/css_overview/CSSOverviewModel.js b/src/third_party/devtools/front_end/css_overview/CSSOverviewModel.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/css_overview/CSSOverviewModel.js
rename to src/third_party/devtools/front_end/css_overview/CSSOverviewModel.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/css_overview/CSSOverviewPanel.js b/src/third_party/devtools/front_end/css_overview/CSSOverviewPanel.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/css_overview/CSSOverviewPanel.js
rename to src/third_party/devtools/front_end/css_overview/CSSOverviewPanel.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/css_overview/CSSOverviewProcessingView.js b/src/third_party/devtools/front_end/css_overview/CSSOverviewProcessingView.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/css_overview/CSSOverviewProcessingView.js
rename to src/third_party/devtools/front_end/css_overview/CSSOverviewProcessingView.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/css_overview/CSSOverviewSidebarPanel.js b/src/third_party/devtools/front_end/css_overview/CSSOverviewSidebarPanel.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/css_overview/CSSOverviewSidebarPanel.js
rename to src/third_party/devtools/front_end/css_overview/CSSOverviewSidebarPanel.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/css_overview/CSSOverviewStartView.js b/src/third_party/devtools/front_end/css_overview/CSSOverviewStartView.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/css_overview/CSSOverviewStartView.js
rename to src/third_party/devtools/front_end/css_overview/CSSOverviewStartView.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/css_overview/CSSOverviewUnusedDeclarations.js b/src/third_party/devtools/front_end/css_overview/CSSOverviewUnusedDeclarations.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/css_overview/CSSOverviewUnusedDeclarations.js
rename to src/third_party/devtools/front_end/css_overview/CSSOverviewUnusedDeclarations.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/css_overview/cssOverview.css b/src/third_party/devtools/front_end/css_overview/cssOverview.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/css_overview/cssOverview.css
rename to src/third_party/devtools/front_end/css_overview/cssOverview.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/css_overview/cssOverviewCompletedView.css b/src/third_party/devtools/front_end/css_overview/cssOverviewCompletedView.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/css_overview/cssOverviewCompletedView.css
rename to src/third_party/devtools/front_end/css_overview/cssOverviewCompletedView.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/css_overview/cssOverviewProcessingView.css b/src/third_party/devtools/front_end/css_overview/cssOverviewProcessingView.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/css_overview/cssOverviewProcessingView.css
rename to src/third_party/devtools/front_end/css_overview/cssOverviewProcessingView.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/css_overview/cssOverviewSidebarPanel.css b/src/third_party/devtools/front_end/css_overview/cssOverviewSidebarPanel.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/css_overview/cssOverviewSidebarPanel.css
rename to src/third_party/devtools/front_end/css_overview/cssOverviewSidebarPanel.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/css_overview/cssOverviewStartView.css b/src/third_party/devtools/front_end/css_overview/cssOverviewStartView.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/css_overview/cssOverviewStartView.css
rename to src/third_party/devtools/front_end/css_overview/cssOverviewStartView.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/css_overview/css_overview.js b/src/third_party/devtools/front_end/css_overview/css_overview.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/css_overview/css_overview.js
rename to src/third_party/devtools/front_end/css_overview/css_overview.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/css_overview/css_overview_strings.grdp b/src/third_party/devtools/front_end/css_overview/css_overview_strings.grdp
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/css_overview/css_overview_strings.grdp
rename to src/third_party/devtools/front_end/css_overview/css_overview_strings.grdp
diff --git a/src/cobalt/debug/remote/devtools/front_end/css_overview/module.json b/src/third_party/devtools/front_end/css_overview/module.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/css_overview/module.json
rename to src/third_party/devtools/front_end/css_overview/module.json
diff --git a/src/cobalt/debug/remote/devtools/front_end/dagre_layout/LICENSE b/src/third_party/devtools/front_end/dagre_layout/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/dagre_layout/LICENSE
rename to src/third_party/devtools/front_end/dagre_layout/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/front_end/dagre_layout/README.md b/src/third_party/devtools/front_end/dagre_layout/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/dagre_layout/README.md
rename to src/third_party/devtools/front_end/dagre_layout/README.md
diff --git a/src/cobalt/debug/remote/devtools/front_end/dagre_layout/dagre.js b/src/third_party/devtools/front_end/dagre_layout/dagre.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/dagre_layout/dagre.js
rename to src/third_party/devtools/front_end/dagre_layout/dagre.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/dagre_layout/module.json b/src/third_party/devtools/front_end/dagre_layout/module.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/dagre_layout/module.json
rename to src/third_party/devtools/front_end/dagre_layout/module.json
diff --git a/src/cobalt/debug/remote/devtools/front_end/data_grid/DataGrid.js b/src/third_party/devtools/front_end/data_grid/DataGrid.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/data_grid/DataGrid.js
rename to src/third_party/devtools/front_end/data_grid/DataGrid.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/data_grid/ShowMoreDataGridNode.js b/src/third_party/devtools/front_end/data_grid/ShowMoreDataGridNode.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/data_grid/ShowMoreDataGridNode.js
rename to src/third_party/devtools/front_end/data_grid/ShowMoreDataGridNode.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/data_grid/SortableDataGrid.js b/src/third_party/devtools/front_end/data_grid/SortableDataGrid.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/data_grid/SortableDataGrid.js
rename to src/third_party/devtools/front_end/data_grid/SortableDataGrid.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/data_grid/ViewportDataGrid.js b/src/third_party/devtools/front_end/data_grid/ViewportDataGrid.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/data_grid/ViewportDataGrid.js
rename to src/third_party/devtools/front_end/data_grid/ViewportDataGrid.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/data_grid/dataGrid.css b/src/third_party/devtools/front_end/data_grid/dataGrid.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/data_grid/dataGrid.css
rename to src/third_party/devtools/front_end/data_grid/dataGrid.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/data_grid/data_grid.js b/src/third_party/devtools/front_end/data_grid/data_grid.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/data_grid/data_grid.js
rename to src/third_party/devtools/front_end/data_grid/data_grid.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/data_grid/data_grid_strings.grdp b/src/third_party/devtools/front_end/data_grid/data_grid_strings.grdp
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/data_grid/data_grid_strings.grdp
rename to src/third_party/devtools/front_end/data_grid/data_grid_strings.grdp
diff --git a/src/cobalt/debug/remote/devtools/front_end/data_grid/module.json b/src/third_party/devtools/front_end/data_grid/module.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/data_grid/module.json
rename to src/third_party/devtools/front_end/data_grid/module.json
diff --git a/src/cobalt/debug/remote/devtools/front_end/data_grid_test_runner/DataGridTestRunner.js b/src/third_party/devtools/front_end/data_grid_test_runner/DataGridTestRunner.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/data_grid_test_runner/DataGridTestRunner.js
rename to src/third_party/devtools/front_end/data_grid_test_runner/DataGridTestRunner.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/data_grid_test_runner/module.json b/src/third_party/devtools/front_end/data_grid_test_runner/module.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/data_grid_test_runner/module.json
rename to src/third_party/devtools/front_end/data_grid_test_runner/module.json
diff --git a/src/cobalt/debug/remote/devtools/front_end/device_mode_test_runner/DeviceModeTestRunner.js b/src/third_party/devtools/front_end/device_mode_test_runner/DeviceModeTestRunner.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/device_mode_test_runner/DeviceModeTestRunner.js
rename to src/third_party/devtools/front_end/device_mode_test_runner/DeviceModeTestRunner.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/device_mode_test_runner/module.json b/src/third_party/devtools/front_end/device_mode_test_runner/module.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/device_mode_test_runner/module.json
rename to src/third_party/devtools/front_end/device_mode_test_runner/module.json
diff --git a/src/cobalt/debug/remote/devtools/front_end/devices/DevicesView.js b/src/third_party/devtools/front_end/devices/DevicesView.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/devices/DevicesView.js
rename to src/third_party/devtools/front_end/devices/DevicesView.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/devices/devices_strings.grdp b/src/third_party/devtools/front_end/devices/devices_strings.grdp
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/devices/devices_strings.grdp
rename to src/third_party/devtools/front_end/devices/devices_strings.grdp
diff --git a/src/cobalt/debug/remote/devtools/front_end/devices/module.json b/src/third_party/devtools/front_end/devices/module.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/devices/module.json
rename to src/third_party/devtools/front_end/devices/module.json
diff --git a/src/cobalt/debug/remote/devtools/front_end/devtools_app.html b/src/third_party/devtools/front_end/devtools_app.html
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/devtools_app.html
rename to src/third_party/devtools/front_end/devtools_app.html
diff --git a/src/cobalt/debug/remote/devtools/front_end/devtools_app.js b/src/third_party/devtools/front_end/devtools_app.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/devtools_app.js
rename to src/third_party/devtools/front_end/devtools_app.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/devtools_app.json b/src/third_party/devtools/front_end/devtools_app.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/devtools_app.json
rename to src/third_party/devtools/front_end/devtools_app.json
diff --git a/src/cobalt/debug/remote/devtools/front_end/devtools_compatibility.js b/src/third_party/devtools/front_end/devtools_compatibility.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/devtools_compatibility.js
rename to src/third_party/devtools/front_end/devtools_compatibility.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/diff/DiffWrapper.js b/src/third_party/devtools/front_end/diff/DiffWrapper.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/diff/DiffWrapper.js
rename to src/third_party/devtools/front_end/diff/DiffWrapper.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/diff/diff.js b/src/third_party/devtools/front_end/diff/diff.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/diff/diff.js
rename to src/third_party/devtools/front_end/diff/diff.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/diff/diff_match_patch.js b/src/third_party/devtools/front_end/diff/diff_match_patch.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/diff/diff_match_patch.js
rename to src/third_party/devtools/front_end/diff/diff_match_patch.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/diff/module.json b/src/third_party/devtools/front_end/diff/module.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/diff/module.json
rename to src/third_party/devtools/front_end/diff/module.json
diff --git a/src/cobalt/debug/remote/devtools/front_end/dom_extension/DOMExtension.js b/src/third_party/devtools/front_end/dom_extension/DOMExtension.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/dom_extension/DOMExtension.js
rename to src/third_party/devtools/front_end/dom_extension/DOMExtension.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/dom_extension/dom_extension.js b/src/third_party/devtools/front_end/dom_extension/dom_extension.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/dom_extension/dom_extension.js
rename to src/third_party/devtools/front_end/dom_extension/dom_extension.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/dom_extension/module.json b/src/third_party/devtools/front_end/dom_extension/module.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/dom_extension/module.json
rename to src/third_party/devtools/front_end/dom_extension/module.json
diff --git a/src/cobalt/debug/remote/devtools/front_end/elements/ClassesPaneWidget.js b/src/third_party/devtools/front_end/elements/ClassesPaneWidget.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/elements/ClassesPaneWidget.js
rename to src/third_party/devtools/front_end/elements/ClassesPaneWidget.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/elements/ColorSwatchPopoverIcon.js b/src/third_party/devtools/front_end/elements/ColorSwatchPopoverIcon.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/elements/ColorSwatchPopoverIcon.js
rename to src/third_party/devtools/front_end/elements/ColorSwatchPopoverIcon.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/elements/ComputedStyleModel.js b/src/third_party/devtools/front_end/elements/ComputedStyleModel.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/elements/ComputedStyleModel.js
rename to src/third_party/devtools/front_end/elements/ComputedStyleModel.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/elements/ComputedStyleWidget.js b/src/third_party/devtools/front_end/elements/ComputedStyleWidget.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/elements/ComputedStyleWidget.js
rename to src/third_party/devtools/front_end/elements/ComputedStyleWidget.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/elements/DOMLinkifier.js b/src/third_party/devtools/front_end/elements/DOMLinkifier.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/elements/DOMLinkifier.js
rename to src/third_party/devtools/front_end/elements/DOMLinkifier.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/elements/DOMPath.js b/src/third_party/devtools/front_end/elements/DOMPath.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/elements/DOMPath.js
rename to src/third_party/devtools/front_end/elements/DOMPath.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/elements/ElementStatePaneWidget.js b/src/third_party/devtools/front_end/elements/ElementStatePaneWidget.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/elements/ElementStatePaneWidget.js
rename to src/third_party/devtools/front_end/elements/ElementStatePaneWidget.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/elements/ElementsBreadcrumbs.js b/src/third_party/devtools/front_end/elements/ElementsBreadcrumbs.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/elements/ElementsBreadcrumbs.js
rename to src/third_party/devtools/front_end/elements/ElementsBreadcrumbs.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/elements/ElementsPanel.js b/src/third_party/devtools/front_end/elements/ElementsPanel.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/elements/ElementsPanel.js
rename to src/third_party/devtools/front_end/elements/ElementsPanel.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/elements/ElementsSidebarPane.js b/src/third_party/devtools/front_end/elements/ElementsSidebarPane.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/elements/ElementsSidebarPane.js
rename to src/third_party/devtools/front_end/elements/ElementsSidebarPane.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/elements/ElementsTreeElement.js b/src/third_party/devtools/front_end/elements/ElementsTreeElement.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/elements/ElementsTreeElement.js
rename to src/third_party/devtools/front_end/elements/ElementsTreeElement.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/elements/ElementsTreeElementHighlighter.js b/src/third_party/devtools/front_end/elements/ElementsTreeElementHighlighter.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/elements/ElementsTreeElementHighlighter.js
rename to src/third_party/devtools/front_end/elements/ElementsTreeElementHighlighter.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/elements/ElementsTreeOutline.js b/src/third_party/devtools/front_end/elements/ElementsTreeOutline.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/elements/ElementsTreeOutline.js
rename to src/third_party/devtools/front_end/elements/ElementsTreeOutline.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/elements/EventListenersWidget.js b/src/third_party/devtools/front_end/elements/EventListenersWidget.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/elements/EventListenersWidget.js
rename to src/third_party/devtools/front_end/elements/EventListenersWidget.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/elements/InspectElementModeController.js b/src/third_party/devtools/front_end/elements/InspectElementModeController.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/elements/InspectElementModeController.js
rename to src/third_party/devtools/front_end/elements/InspectElementModeController.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/elements/MarkerDecorator.js b/src/third_party/devtools/front_end/elements/MarkerDecorator.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/elements/MarkerDecorator.js
rename to src/third_party/devtools/front_end/elements/MarkerDecorator.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/elements/MetricsSidebarPane.js b/src/third_party/devtools/front_end/elements/MetricsSidebarPane.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/elements/MetricsSidebarPane.js
rename to src/third_party/devtools/front_end/elements/MetricsSidebarPane.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/elements/NodeStackTraceWidget.js b/src/third_party/devtools/front_end/elements/NodeStackTraceWidget.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/elements/NodeStackTraceWidget.js
rename to src/third_party/devtools/front_end/elements/NodeStackTraceWidget.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/elements/PlatformFontsWidget.js b/src/third_party/devtools/front_end/elements/PlatformFontsWidget.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/elements/PlatformFontsWidget.js
rename to src/third_party/devtools/front_end/elements/PlatformFontsWidget.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/elements/PropertiesWidget.js b/src/third_party/devtools/front_end/elements/PropertiesWidget.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/elements/PropertiesWidget.js
rename to src/third_party/devtools/front_end/elements/PropertiesWidget.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/elements/StylePropertyHighlighter.js b/src/third_party/devtools/front_end/elements/StylePropertyHighlighter.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/elements/StylePropertyHighlighter.js
rename to src/third_party/devtools/front_end/elements/StylePropertyHighlighter.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/elements/StylePropertyTreeElement.js b/src/third_party/devtools/front_end/elements/StylePropertyTreeElement.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/elements/StylePropertyTreeElement.js
rename to src/third_party/devtools/front_end/elements/StylePropertyTreeElement.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/elements/StylesSidebarPane.js b/src/third_party/devtools/front_end/elements/StylesSidebarPane.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/elements/StylesSidebarPane.js
rename to src/third_party/devtools/front_end/elements/StylesSidebarPane.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/elements/breadcrumbs.css b/src/third_party/devtools/front_end/elements/breadcrumbs.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/elements/breadcrumbs.css
rename to src/third_party/devtools/front_end/elements/breadcrumbs.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/elements/classesPaneWidget.css b/src/third_party/devtools/front_end/elements/classesPaneWidget.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/elements/classesPaneWidget.css
rename to src/third_party/devtools/front_end/elements/classesPaneWidget.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/elements/computedStyleSidebarPane.css b/src/third_party/devtools/front_end/elements/computedStyleSidebarPane.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/elements/computedStyleSidebarPane.css
rename to src/third_party/devtools/front_end/elements/computedStyleSidebarPane.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/elements/computedStyleWidgetTree.css b/src/third_party/devtools/front_end/elements/computedStyleWidgetTree.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/elements/computedStyleWidgetTree.css
rename to src/third_party/devtools/front_end/elements/computedStyleWidgetTree.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/elements/domLinkifier.css b/src/third_party/devtools/front_end/elements/domLinkifier.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/elements/domLinkifier.css
rename to src/third_party/devtools/front_end/elements/domLinkifier.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/elements/elementStatePaneWidget.css b/src/third_party/devtools/front_end/elements/elementStatePaneWidget.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/elements/elementStatePaneWidget.css
rename to src/third_party/devtools/front_end/elements/elementStatePaneWidget.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/elements/elements-legacy.js b/src/third_party/devtools/front_end/elements/elements-legacy.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/elements/elements-legacy.js
rename to src/third_party/devtools/front_end/elements/elements-legacy.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/elements/elements.js b/src/third_party/devtools/front_end/elements/elements.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/elements/elements.js
rename to src/third_party/devtools/front_end/elements/elements.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/elements/elementsPanel.css b/src/third_party/devtools/front_end/elements/elementsPanel.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/elements/elementsPanel.css
rename to src/third_party/devtools/front_end/elements/elementsPanel.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/elements/elementsTreeOutline.css b/src/third_party/devtools/front_end/elements/elementsTreeOutline.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/elements/elementsTreeOutline.css
rename to src/third_party/devtools/front_end/elements/elementsTreeOutline.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/elements/elements_strings.grdp b/src/third_party/devtools/front_end/elements/elements_strings.grdp
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/elements/elements_strings.grdp
rename to src/third_party/devtools/front_end/elements/elements_strings.grdp
diff --git a/src/cobalt/debug/remote/devtools/front_end/elements/metricsSidebarPane.css b/src/third_party/devtools/front_end/elements/metricsSidebarPane.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/elements/metricsSidebarPane.css
rename to src/third_party/devtools/front_end/elements/metricsSidebarPane.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/elements/module.json b/src/third_party/devtools/front_end/elements/module.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/elements/module.json
rename to src/third_party/devtools/front_end/elements/module.json
diff --git a/src/cobalt/debug/remote/devtools/front_end/elements/nodeStackTraceWidget.css b/src/third_party/devtools/front_end/elements/nodeStackTraceWidget.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/elements/nodeStackTraceWidget.css
rename to src/third_party/devtools/front_end/elements/nodeStackTraceWidget.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/elements/platformFontsWidget.css b/src/third_party/devtools/front_end/elements/platformFontsWidget.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/elements/platformFontsWidget.css
rename to src/third_party/devtools/front_end/elements/platformFontsWidget.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/elements/propertiesWidget.css b/src/third_party/devtools/front_end/elements/propertiesWidget.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/elements/propertiesWidget.css
rename to src/third_party/devtools/front_end/elements/propertiesWidget.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/elements/stylesSectionTree.css b/src/third_party/devtools/front_end/elements/stylesSectionTree.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/elements/stylesSectionTree.css
rename to src/third_party/devtools/front_end/elements/stylesSectionTree.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/elements/stylesSidebarPane.css b/src/third_party/devtools/front_end/elements/stylesSidebarPane.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/elements/stylesSidebarPane.css
rename to src/third_party/devtools/front_end/elements/stylesSidebarPane.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/elements_test_runner/EditDOMTestRunner.js b/src/third_party/devtools/front_end/elements_test_runner/EditDOMTestRunner.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/elements_test_runner/EditDOMTestRunner.js
rename to src/third_party/devtools/front_end/elements_test_runner/EditDOMTestRunner.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/elements_test_runner/ElementsPanelShadowSelectionOnRefreshTestRunner.js b/src/third_party/devtools/front_end/elements_test_runner/ElementsPanelShadowSelectionOnRefreshTestRunner.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/elements_test_runner/ElementsPanelShadowSelectionOnRefreshTestRunner.js
rename to src/third_party/devtools/front_end/elements_test_runner/ElementsPanelShadowSelectionOnRefreshTestRunner.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/elements_test_runner/ElementsTestRunner.js b/src/third_party/devtools/front_end/elements_test_runner/ElementsTestRunner.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/elements_test_runner/ElementsTestRunner.js
rename to src/third_party/devtools/front_end/elements_test_runner/ElementsTestRunner.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/elements_test_runner/SetOuterHTMLTestRunner.js b/src/third_party/devtools/front_end/elements_test_runner/SetOuterHTMLTestRunner.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/elements_test_runner/SetOuterHTMLTestRunner.js
rename to src/third_party/devtools/front_end/elements_test_runner/SetOuterHTMLTestRunner.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/elements_test_runner/StylesUpdateLinksTestRunner.js b/src/third_party/devtools/front_end/elements_test_runner/StylesUpdateLinksTestRunner.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/elements_test_runner/StylesUpdateLinksTestRunner.js
rename to src/third_party/devtools/front_end/elements_test_runner/StylesUpdateLinksTestRunner.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/elements_test_runner/module.json b/src/third_party/devtools/front_end/elements_test_runner/module.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/elements_test_runner/module.json
rename to src/third_party/devtools/front_end/elements_test_runner/module.json
diff --git a/src/cobalt/debug/remote/devtools/front_end/emulated_devices/Nexus5X-landscape.svg b/src/third_party/devtools/front_end/emulated_devices/Nexus5X-landscape.svg
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/emulated_devices/Nexus5X-landscape.svg
rename to src/third_party/devtools/front_end/emulated_devices/Nexus5X-landscape.svg
diff --git a/src/cobalt/debug/remote/devtools/front_end/emulated_devices/Nexus5X-portrait.svg b/src/third_party/devtools/front_end/emulated_devices/Nexus5X-portrait.svg
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/emulated_devices/Nexus5X-portrait.svg
rename to src/third_party/devtools/front_end/emulated_devices/Nexus5X-portrait.svg
diff --git a/src/cobalt/debug/remote/devtools/front_end/emulated_devices/Nexus6P-landscape.svg b/src/third_party/devtools/front_end/emulated_devices/Nexus6P-landscape.svg
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/emulated_devices/Nexus6P-landscape.svg
rename to src/third_party/devtools/front_end/emulated_devices/Nexus6P-landscape.svg
diff --git a/src/cobalt/debug/remote/devtools/front_end/emulated_devices/Nexus6P-portrait.svg b/src/third_party/devtools/front_end/emulated_devices/Nexus6P-portrait.svg
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/emulated_devices/Nexus6P-portrait.svg
rename to src/third_party/devtools/front_end/emulated_devices/Nexus6P-portrait.svg
diff --git a/src/cobalt/debug/remote/devtools/front_end/emulated_devices/emulated_devices_strings.grdp b/src/third_party/devtools/front_end/emulated_devices/emulated_devices_strings.grdp
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/emulated_devices/emulated_devices_strings.grdp
rename to src/third_party/devtools/front_end/emulated_devices/emulated_devices_strings.grdp
diff --git a/src/cobalt/debug/remote/devtools/front_end/emulated_devices/google-nexus-5-horizontal-default-1x.png b/src/third_party/devtools/front_end/emulated_devices/google-nexus-5-horizontal-default-1x.png
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/emulated_devices/google-nexus-5-horizontal-default-1x.png
rename to src/third_party/devtools/front_end/emulated_devices/google-nexus-5-horizontal-default-1x.png
Binary files differ
diff --git a/src/cobalt/debug/remote/devtools/front_end/emulated_devices/google-nexus-5-horizontal-default-2x.png b/src/third_party/devtools/front_end/emulated_devices/google-nexus-5-horizontal-default-2x.png
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/emulated_devices/google-nexus-5-horizontal-default-2x.png
rename to src/third_party/devtools/front_end/emulated_devices/google-nexus-5-horizontal-default-2x.png
Binary files differ
diff --git a/src/cobalt/debug/remote/devtools/front_end/emulated_devices/google-nexus-5-horizontal-keyboard-1x.png b/src/third_party/devtools/front_end/emulated_devices/google-nexus-5-horizontal-keyboard-1x.png
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/emulated_devices/google-nexus-5-horizontal-keyboard-1x.png
rename to src/third_party/devtools/front_end/emulated_devices/google-nexus-5-horizontal-keyboard-1x.png
Binary files differ
diff --git a/src/cobalt/debug/remote/devtools/front_end/emulated_devices/google-nexus-5-horizontal-keyboard-2x.png b/src/third_party/devtools/front_end/emulated_devices/google-nexus-5-horizontal-keyboard-2x.png
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/emulated_devices/google-nexus-5-horizontal-keyboard-2x.png
rename to src/third_party/devtools/front_end/emulated_devices/google-nexus-5-horizontal-keyboard-2x.png
Binary files differ
diff --git a/src/cobalt/debug/remote/devtools/front_end/emulated_devices/google-nexus-5-horizontal-navigation-1x.png b/src/third_party/devtools/front_end/emulated_devices/google-nexus-5-horizontal-navigation-1x.png
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/emulated_devices/google-nexus-5-horizontal-navigation-1x.png
rename to src/third_party/devtools/front_end/emulated_devices/google-nexus-5-horizontal-navigation-1x.png
Binary files differ
diff --git a/src/cobalt/debug/remote/devtools/front_end/emulated_devices/google-nexus-5-horizontal-navigation-2x.png b/src/third_party/devtools/front_end/emulated_devices/google-nexus-5-horizontal-navigation-2x.png
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/emulated_devices/google-nexus-5-horizontal-navigation-2x.png
rename to src/third_party/devtools/front_end/emulated_devices/google-nexus-5-horizontal-navigation-2x.png
Binary files differ
diff --git a/src/cobalt/debug/remote/devtools/front_end/emulated_devices/google-nexus-5-vertical-default-1x.png b/src/third_party/devtools/front_end/emulated_devices/google-nexus-5-vertical-default-1x.png
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/emulated_devices/google-nexus-5-vertical-default-1x.png
rename to src/third_party/devtools/front_end/emulated_devices/google-nexus-5-vertical-default-1x.png
Binary files differ
diff --git a/src/cobalt/debug/remote/devtools/front_end/emulated_devices/google-nexus-5-vertical-default-2x.png b/src/third_party/devtools/front_end/emulated_devices/google-nexus-5-vertical-default-2x.png
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/emulated_devices/google-nexus-5-vertical-default-2x.png
rename to src/third_party/devtools/front_end/emulated_devices/google-nexus-5-vertical-default-2x.png
Binary files differ
diff --git a/src/cobalt/debug/remote/devtools/front_end/emulated_devices/google-nexus-5-vertical-keyboard-1x.png b/src/third_party/devtools/front_end/emulated_devices/google-nexus-5-vertical-keyboard-1x.png
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/emulated_devices/google-nexus-5-vertical-keyboard-1x.png
rename to src/third_party/devtools/front_end/emulated_devices/google-nexus-5-vertical-keyboard-1x.png
Binary files differ
diff --git a/src/cobalt/debug/remote/devtools/front_end/emulated_devices/google-nexus-5-vertical-keyboard-2x.png b/src/third_party/devtools/front_end/emulated_devices/google-nexus-5-vertical-keyboard-2x.png
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/emulated_devices/google-nexus-5-vertical-keyboard-2x.png
rename to src/third_party/devtools/front_end/emulated_devices/google-nexus-5-vertical-keyboard-2x.png
Binary files differ
diff --git a/src/cobalt/debug/remote/devtools/front_end/emulated_devices/google-nexus-5-vertical-navigation-1x.png b/src/third_party/devtools/front_end/emulated_devices/google-nexus-5-vertical-navigation-1x.png
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/emulated_devices/google-nexus-5-vertical-navigation-1x.png
rename to src/third_party/devtools/front_end/emulated_devices/google-nexus-5-vertical-navigation-1x.png
Binary files differ
diff --git a/src/cobalt/debug/remote/devtools/front_end/emulated_devices/google-nexus-5-vertical-navigation-2x.png b/src/third_party/devtools/front_end/emulated_devices/google-nexus-5-vertical-navigation-2x.png
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/emulated_devices/google-nexus-5-vertical-navigation-2x.png
rename to src/third_party/devtools/front_end/emulated_devices/google-nexus-5-vertical-navigation-2x.png
Binary files differ
diff --git a/src/cobalt/debug/remote/devtools/front_end/emulated_devices/google-nexus-5x-horizontal-default-1x.png b/src/third_party/devtools/front_end/emulated_devices/google-nexus-5x-horizontal-default-1x.png
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/emulated_devices/google-nexus-5x-horizontal-default-1x.png
rename to src/third_party/devtools/front_end/emulated_devices/google-nexus-5x-horizontal-default-1x.png
Binary files differ
diff --git a/src/cobalt/debug/remote/devtools/front_end/emulated_devices/google-nexus-5x-horizontal-default-2x.png b/src/third_party/devtools/front_end/emulated_devices/google-nexus-5x-horizontal-default-2x.png
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/emulated_devices/google-nexus-5x-horizontal-default-2x.png
rename to src/third_party/devtools/front_end/emulated_devices/google-nexus-5x-horizontal-default-2x.png
Binary files differ
diff --git a/src/cobalt/debug/remote/devtools/front_end/emulated_devices/google-nexus-5x-horizontal-keyboard-1x.png b/src/third_party/devtools/front_end/emulated_devices/google-nexus-5x-horizontal-keyboard-1x.png
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/emulated_devices/google-nexus-5x-horizontal-keyboard-1x.png
rename to src/third_party/devtools/front_end/emulated_devices/google-nexus-5x-horizontal-keyboard-1x.png
Binary files differ
diff --git a/src/cobalt/debug/remote/devtools/front_end/emulated_devices/google-nexus-5x-horizontal-keyboard-2x.png b/src/third_party/devtools/front_end/emulated_devices/google-nexus-5x-horizontal-keyboard-2x.png
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/emulated_devices/google-nexus-5x-horizontal-keyboard-2x.png
rename to src/third_party/devtools/front_end/emulated_devices/google-nexus-5x-horizontal-keyboard-2x.png
Binary files differ
diff --git a/src/cobalt/debug/remote/devtools/front_end/emulated_devices/google-nexus-5x-horizontal-navigation-1x.png b/src/third_party/devtools/front_end/emulated_devices/google-nexus-5x-horizontal-navigation-1x.png
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/emulated_devices/google-nexus-5x-horizontal-navigation-1x.png
rename to src/third_party/devtools/front_end/emulated_devices/google-nexus-5x-horizontal-navigation-1x.png
Binary files differ
diff --git a/src/cobalt/debug/remote/devtools/front_end/emulated_devices/google-nexus-5x-horizontal-navigation-2x.png b/src/third_party/devtools/front_end/emulated_devices/google-nexus-5x-horizontal-navigation-2x.png
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/emulated_devices/google-nexus-5x-horizontal-navigation-2x.png
rename to src/third_party/devtools/front_end/emulated_devices/google-nexus-5x-horizontal-navigation-2x.png
Binary files differ
diff --git a/src/cobalt/debug/remote/devtools/front_end/emulated_devices/google-nexus-5x-vertical-default-1x.png b/src/third_party/devtools/front_end/emulated_devices/google-nexus-5x-vertical-default-1x.png
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/emulated_devices/google-nexus-5x-vertical-default-1x.png
rename to src/third_party/devtools/front_end/emulated_devices/google-nexus-5x-vertical-default-1x.png
Binary files differ
diff --git a/src/cobalt/debug/remote/devtools/front_end/emulated_devices/google-nexus-5x-vertical-default-2x.png b/src/third_party/devtools/front_end/emulated_devices/google-nexus-5x-vertical-default-2x.png
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/emulated_devices/google-nexus-5x-vertical-default-2x.png
rename to src/third_party/devtools/front_end/emulated_devices/google-nexus-5x-vertical-default-2x.png
Binary files differ
diff --git a/src/cobalt/debug/remote/devtools/front_end/emulated_devices/google-nexus-5x-vertical-keyboard-1x.png b/src/third_party/devtools/front_end/emulated_devices/google-nexus-5x-vertical-keyboard-1x.png
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/emulated_devices/google-nexus-5x-vertical-keyboard-1x.png
rename to src/third_party/devtools/front_end/emulated_devices/google-nexus-5x-vertical-keyboard-1x.png
Binary files differ
diff --git a/src/cobalt/debug/remote/devtools/front_end/emulated_devices/google-nexus-5x-vertical-keyboard-2x.png b/src/third_party/devtools/front_end/emulated_devices/google-nexus-5x-vertical-keyboard-2x.png
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/emulated_devices/google-nexus-5x-vertical-keyboard-2x.png
rename to src/third_party/devtools/front_end/emulated_devices/google-nexus-5x-vertical-keyboard-2x.png
Binary files differ
diff --git a/src/cobalt/debug/remote/devtools/front_end/emulated_devices/google-nexus-5x-vertical-navigation-1x.png b/src/third_party/devtools/front_end/emulated_devices/google-nexus-5x-vertical-navigation-1x.png
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/emulated_devices/google-nexus-5x-vertical-navigation-1x.png
rename to src/third_party/devtools/front_end/emulated_devices/google-nexus-5x-vertical-navigation-1x.png
Binary files differ
diff --git a/src/cobalt/debug/remote/devtools/front_end/emulated_devices/google-nexus-5x-vertical-navigation-2x.png b/src/third_party/devtools/front_end/emulated_devices/google-nexus-5x-vertical-navigation-2x.png
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/emulated_devices/google-nexus-5x-vertical-navigation-2x.png
rename to src/third_party/devtools/front_end/emulated_devices/google-nexus-5x-vertical-navigation-2x.png
Binary files differ
diff --git a/src/cobalt/debug/remote/devtools/front_end/emulated_devices/iPad-landscape.svg b/src/third_party/devtools/front_end/emulated_devices/iPad-landscape.svg
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/emulated_devices/iPad-landscape.svg
rename to src/third_party/devtools/front_end/emulated_devices/iPad-landscape.svg
diff --git a/src/cobalt/debug/remote/devtools/front_end/emulated_devices/iPad-portrait.svg b/src/third_party/devtools/front_end/emulated_devices/iPad-portrait.svg
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/emulated_devices/iPad-portrait.svg
rename to src/third_party/devtools/front_end/emulated_devices/iPad-portrait.svg
diff --git a/src/cobalt/debug/remote/devtools/front_end/emulated_devices/iPhone5-landscape.svg b/src/third_party/devtools/front_end/emulated_devices/iPhone5-landscape.svg
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/emulated_devices/iPhone5-landscape.svg
rename to src/third_party/devtools/front_end/emulated_devices/iPhone5-landscape.svg
diff --git a/src/cobalt/debug/remote/devtools/front_end/emulated_devices/iPhone5-portrait.svg b/src/third_party/devtools/front_end/emulated_devices/iPhone5-portrait.svg
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/emulated_devices/iPhone5-portrait.svg
rename to src/third_party/devtools/front_end/emulated_devices/iPhone5-portrait.svg
diff --git a/src/cobalt/debug/remote/devtools/front_end/emulated_devices/iPhone6-landscape.svg b/src/third_party/devtools/front_end/emulated_devices/iPhone6-landscape.svg
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/emulated_devices/iPhone6-landscape.svg
rename to src/third_party/devtools/front_end/emulated_devices/iPhone6-landscape.svg
diff --git a/src/cobalt/debug/remote/devtools/front_end/emulated_devices/iPhone6-portrait.svg b/src/third_party/devtools/front_end/emulated_devices/iPhone6-portrait.svg
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/emulated_devices/iPhone6-portrait.svg
rename to src/third_party/devtools/front_end/emulated_devices/iPhone6-portrait.svg
diff --git a/src/cobalt/debug/remote/devtools/front_end/emulated_devices/iPhone6Plus-landscape.svg b/src/third_party/devtools/front_end/emulated_devices/iPhone6Plus-landscape.svg
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/emulated_devices/iPhone6Plus-landscape.svg
rename to src/third_party/devtools/front_end/emulated_devices/iPhone6Plus-landscape.svg
diff --git a/src/cobalt/debug/remote/devtools/front_end/emulated_devices/iPhone6Plus-portrait.svg b/src/third_party/devtools/front_end/emulated_devices/iPhone6Plus-portrait.svg
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/emulated_devices/iPhone6Plus-portrait.svg
rename to src/third_party/devtools/front_end/emulated_devices/iPhone6Plus-portrait.svg
diff --git a/src/cobalt/debug/remote/devtools/front_end/emulated_devices/module.json b/src/third_party/devtools/front_end/emulated_devices/module.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/emulated_devices/module.json
rename to src/third_party/devtools/front_end/emulated_devices/module.json
diff --git a/src/cobalt/debug/remote/devtools/front_end/emulation/AdvancedApp.js b/src/third_party/devtools/front_end/emulation/AdvancedApp.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/emulation/AdvancedApp.js
rename to src/third_party/devtools/front_end/emulation/AdvancedApp.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/emulation/DeviceModeModel.js b/src/third_party/devtools/front_end/emulation/DeviceModeModel.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/emulation/DeviceModeModel.js
rename to src/third_party/devtools/front_end/emulation/DeviceModeModel.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/emulation/DeviceModeToolbar.js b/src/third_party/devtools/front_end/emulation/DeviceModeToolbar.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/emulation/DeviceModeToolbar.js
rename to src/third_party/devtools/front_end/emulation/DeviceModeToolbar.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/emulation/DeviceModeView.js b/src/third_party/devtools/front_end/emulation/DeviceModeView.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/emulation/DeviceModeView.js
rename to src/third_party/devtools/front_end/emulation/DeviceModeView.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/emulation/DeviceModeWrapper.js b/src/third_party/devtools/front_end/emulation/DeviceModeWrapper.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/emulation/DeviceModeWrapper.js
rename to src/third_party/devtools/front_end/emulation/DeviceModeWrapper.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/emulation/DevicesSettingsTab.js b/src/third_party/devtools/front_end/emulation/DevicesSettingsTab.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/emulation/DevicesSettingsTab.js
rename to src/third_party/devtools/front_end/emulation/DevicesSettingsTab.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/emulation/EmulatedDevices.js b/src/third_party/devtools/front_end/emulation/EmulatedDevices.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/emulation/EmulatedDevices.js
rename to src/third_party/devtools/front_end/emulation/EmulatedDevices.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/emulation/GeolocationsSettingsTab.js b/src/third_party/devtools/front_end/emulation/GeolocationsSettingsTab.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/emulation/GeolocationsSettingsTab.js
rename to src/third_party/devtools/front_end/emulation/GeolocationsSettingsTab.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/emulation/InspectedPagePlaceholder.js b/src/third_party/devtools/front_end/emulation/InspectedPagePlaceholder.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/emulation/InspectedPagePlaceholder.js
rename to src/third_party/devtools/front_end/emulation/InspectedPagePlaceholder.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/emulation/MediaQueryInspector.js b/src/third_party/devtools/front_end/emulation/MediaQueryInspector.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/emulation/MediaQueryInspector.js
rename to src/third_party/devtools/front_end/emulation/MediaQueryInspector.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/emulation/SensorsView.js b/src/third_party/devtools/front_end/emulation/SensorsView.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/emulation/SensorsView.js
rename to src/third_party/devtools/front_end/emulation/SensorsView.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/emulation/deviceModeToolbar.css b/src/third_party/devtools/front_end/emulation/deviceModeToolbar.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/emulation/deviceModeToolbar.css
rename to src/third_party/devtools/front_end/emulation/deviceModeToolbar.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/emulation/deviceModeView.css b/src/third_party/devtools/front_end/emulation/deviceModeView.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/emulation/deviceModeView.css
rename to src/third_party/devtools/front_end/emulation/deviceModeView.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/emulation/devicesSettingsTab.css b/src/third_party/devtools/front_end/emulation/devicesSettingsTab.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/emulation/devicesSettingsTab.css
rename to src/third_party/devtools/front_end/emulation/devicesSettingsTab.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/emulation/emulation.js b/src/third_party/devtools/front_end/emulation/emulation.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/emulation/emulation.js
rename to src/third_party/devtools/front_end/emulation/emulation.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/emulation/emulation_strings.grdp b/src/third_party/devtools/front_end/emulation/emulation_strings.grdp
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/emulation/emulation_strings.grdp
rename to src/third_party/devtools/front_end/emulation/emulation_strings.grdp
diff --git a/src/cobalt/debug/remote/devtools/front_end/emulation/geolocationsSettingsTab.css b/src/third_party/devtools/front_end/emulation/geolocationsSettingsTab.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/emulation/geolocationsSettingsTab.css
rename to src/third_party/devtools/front_end/emulation/geolocationsSettingsTab.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/emulation/inspectedPagePlaceholder.css b/src/third_party/devtools/front_end/emulation/inspectedPagePlaceholder.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/emulation/inspectedPagePlaceholder.css
rename to src/third_party/devtools/front_end/emulation/inspectedPagePlaceholder.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/emulation/mediaQueryInspector.css b/src/third_party/devtools/front_end/emulation/mediaQueryInspector.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/emulation/mediaQueryInspector.css
rename to src/third_party/devtools/front_end/emulation/mediaQueryInspector.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/emulation/module.json b/src/third_party/devtools/front_end/emulation/module.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/emulation/module.json
rename to src/third_party/devtools/front_end/emulation/module.json
diff --git a/src/cobalt/debug/remote/devtools/front_end/emulation/sensors.css b/src/third_party/devtools/front_end/emulation/sensors.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/emulation/sensors.css
rename to src/third_party/devtools/front_end/emulation/sensors.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/event_listeners/EventListenersUtils.js b/src/third_party/devtools/front_end/event_listeners/EventListenersUtils.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/event_listeners/EventListenersUtils.js
rename to src/third_party/devtools/front_end/event_listeners/EventListenersUtils.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/event_listeners/EventListenersView.js b/src/third_party/devtools/front_end/event_listeners/EventListenersView.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/event_listeners/EventListenersView.js
rename to src/third_party/devtools/front_end/event_listeners/EventListenersView.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/event_listeners/eventListenersView.css b/src/third_party/devtools/front_end/event_listeners/eventListenersView.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/event_listeners/eventListenersView.css
rename to src/third_party/devtools/front_end/event_listeners/eventListenersView.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/event_listeners/event_listeners.js b/src/third_party/devtools/front_end/event_listeners/event_listeners.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/event_listeners/event_listeners.js
rename to src/third_party/devtools/front_end/event_listeners/event_listeners.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/event_listeners/event_listeners_strings.grdp b/src/third_party/devtools/front_end/event_listeners/event_listeners_strings.grdp
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/event_listeners/event_listeners_strings.grdp
rename to src/third_party/devtools/front_end/event_listeners/event_listeners_strings.grdp
diff --git a/src/cobalt/debug/remote/devtools/front_end/event_listeners/module.json b/src/third_party/devtools/front_end/event_listeners/module.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/event_listeners/module.json
rename to src/third_party/devtools/front_end/event_listeners/module.json
diff --git a/src/cobalt/debug/remote/devtools/front_end/extensions/ExtensionAPI.js b/src/third_party/devtools/front_end/extensions/ExtensionAPI.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/extensions/ExtensionAPI.js
rename to src/third_party/devtools/front_end/extensions/ExtensionAPI.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/extensions/ExtensionPanel.js b/src/third_party/devtools/front_end/extensions/ExtensionPanel.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/extensions/ExtensionPanel.js
rename to src/third_party/devtools/front_end/extensions/ExtensionPanel.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/extensions/ExtensionServer.js b/src/third_party/devtools/front_end/extensions/ExtensionServer.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/extensions/ExtensionServer.js
rename to src/third_party/devtools/front_end/extensions/ExtensionServer.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/extensions/ExtensionTraceProvider.js b/src/third_party/devtools/front_end/extensions/ExtensionTraceProvider.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/extensions/ExtensionTraceProvider.js
rename to src/third_party/devtools/front_end/extensions/ExtensionTraceProvider.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/extensions/ExtensionView.js b/src/third_party/devtools/front_end/extensions/ExtensionView.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/extensions/ExtensionView.js
rename to src/third_party/devtools/front_end/extensions/ExtensionView.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/extensions/extensions.js b/src/third_party/devtools/front_end/extensions/extensions.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/extensions/extensions.js
rename to src/third_party/devtools/front_end/extensions/extensions.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/extensions/module.json b/src/third_party/devtools/front_end/extensions/module.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/extensions/module.json
rename to src/third_party/devtools/front_end/extensions/module.json
diff --git a/src/cobalt/debug/remote/devtools/front_end/extensions_test_runner/ExtensionsNetworkTestRunner.js b/src/third_party/devtools/front_end/extensions_test_runner/ExtensionsNetworkTestRunner.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/extensions_test_runner/ExtensionsNetworkTestRunner.js
rename to src/third_party/devtools/front_end/extensions_test_runner/ExtensionsNetworkTestRunner.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/extensions_test_runner/ExtensionsTestRunner.js b/src/third_party/devtools/front_end/extensions_test_runner/ExtensionsTestRunner.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/extensions_test_runner/ExtensionsTestRunner.js
rename to src/third_party/devtools/front_end/extensions_test_runner/ExtensionsTestRunner.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/extensions_test_runner/module.json b/src/third_party/devtools/front_end/extensions_test_runner/module.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/extensions_test_runner/module.json
rename to src/third_party/devtools/front_end/extensions_test_runner/module.json
diff --git a/src/cobalt/debug/remote/devtools/front_end/externs.js b/src/third_party/devtools/front_end/externs.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/externs.js
rename to src/third_party/devtools/front_end/externs.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/formatter/FormatterWorkerPool.js b/src/third_party/devtools/front_end/formatter/FormatterWorkerPool.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/formatter/FormatterWorkerPool.js
rename to src/third_party/devtools/front_end/formatter/FormatterWorkerPool.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/formatter/ScriptFormatter.js b/src/third_party/devtools/front_end/formatter/ScriptFormatter.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/formatter/ScriptFormatter.js
rename to src/third_party/devtools/front_end/formatter/ScriptFormatter.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/formatter/formatter.js b/src/third_party/devtools/front_end/formatter/formatter.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/formatter/formatter.js
rename to src/third_party/devtools/front_end/formatter/formatter.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/formatter/module.json b/src/third_party/devtools/front_end/formatter/module.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/formatter/module.json
rename to src/third_party/devtools/front_end/formatter/module.json
diff --git a/src/cobalt/debug/remote/devtools/front_end/formatter_worker.json b/src/third_party/devtools/front_end/formatter_worker.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/formatter_worker.json
rename to src/third_party/devtools/front_end/formatter_worker.json
diff --git a/src/cobalt/debug/remote/devtools/front_end/formatter_worker.unbundled.js b/src/third_party/devtools/front_end/formatter_worker.unbundled.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/formatter_worker.unbundled.js
rename to src/third_party/devtools/front_end/formatter_worker.unbundled.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/formatter_worker/AcornTokenizer.js b/src/third_party/devtools/front_end/formatter_worker/AcornTokenizer.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/formatter_worker/AcornTokenizer.js
rename to src/third_party/devtools/front_end/formatter_worker/AcornTokenizer.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/formatter_worker/CSSFormatter.js b/src/third_party/devtools/front_end/formatter_worker/CSSFormatter.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/formatter_worker/CSSFormatter.js
rename to src/third_party/devtools/front_end/formatter_worker/CSSFormatter.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/formatter_worker/CSSRuleParser.js b/src/third_party/devtools/front_end/formatter_worker/CSSRuleParser.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/formatter_worker/CSSRuleParser.js
rename to src/third_party/devtools/front_end/formatter_worker/CSSRuleParser.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/formatter_worker/ESTreeWalker.js b/src/third_party/devtools/front_end/formatter_worker/ESTreeWalker.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/formatter_worker/ESTreeWalker.js
rename to src/third_party/devtools/front_end/formatter_worker/ESTreeWalker.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/formatter_worker/FormattedContentBuilder.js b/src/third_party/devtools/front_end/formatter_worker/FormattedContentBuilder.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/formatter_worker/FormattedContentBuilder.js
rename to src/third_party/devtools/front_end/formatter_worker/FormattedContentBuilder.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/formatter_worker/FormatterWorker.js b/src/third_party/devtools/front_end/formatter_worker/FormatterWorker.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/formatter_worker/FormatterWorker.js
rename to src/third_party/devtools/front_end/formatter_worker/FormatterWorker.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/formatter_worker/HTMLFormatter.js b/src/third_party/devtools/front_end/formatter_worker/HTMLFormatter.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/formatter_worker/HTMLFormatter.js
rename to src/third_party/devtools/front_end/formatter_worker/HTMLFormatter.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/formatter_worker/IdentityFormatter.js b/src/third_party/devtools/front_end/formatter_worker/IdentityFormatter.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/formatter_worker/IdentityFormatter.js
rename to src/third_party/devtools/front_end/formatter_worker/IdentityFormatter.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/formatter_worker/JavaScriptFormatter.js b/src/third_party/devtools/front_end/formatter_worker/JavaScriptFormatter.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/formatter_worker/JavaScriptFormatter.js
rename to src/third_party/devtools/front_end/formatter_worker/JavaScriptFormatter.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/formatter_worker/JavaScriptOutline.js b/src/third_party/devtools/front_end/formatter_worker/JavaScriptOutline.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/formatter_worker/JavaScriptOutline.js
rename to src/third_party/devtools/front_end/formatter_worker/JavaScriptOutline.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/formatter_worker/RelaxedJSONParser.js b/src/third_party/devtools/front_end/formatter_worker/RelaxedJSONParser.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/formatter_worker/RelaxedJSONParser.js
rename to src/third_party/devtools/front_end/formatter_worker/RelaxedJSONParser.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/formatter_worker/acorn/AUTHORS b/src/third_party/devtools/front_end/formatter_worker/acorn/AUTHORS
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/formatter_worker/acorn/AUTHORS
rename to src/third_party/devtools/front_end/formatter_worker/acorn/AUTHORS
diff --git a/src/cobalt/debug/remote/devtools/front_end/formatter_worker/acorn/LICENSE b/src/third_party/devtools/front_end/formatter_worker/acorn/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/formatter_worker/acorn/LICENSE
rename to src/third_party/devtools/front_end/formatter_worker/acorn/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/front_end/formatter_worker/acorn/acorn.js b/src/third_party/devtools/front_end/formatter_worker/acorn/acorn.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/formatter_worker/acorn/acorn.js
rename to src/third_party/devtools/front_end/formatter_worker/acorn/acorn.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/formatter_worker/acorn/acorn_loose.js b/src/third_party/devtools/front_end/formatter_worker/acorn/acorn_loose.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/formatter_worker/acorn/acorn_loose.js
rename to src/third_party/devtools/front_end/formatter_worker/acorn/acorn_loose.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/formatter_worker/formatter_worker.js b/src/third_party/devtools/front_end/formatter_worker/formatter_worker.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/formatter_worker/formatter_worker.js
rename to src/third_party/devtools/front_end/formatter_worker/formatter_worker.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/formatter_worker/module.json b/src/third_party/devtools/front_end/formatter_worker/module.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/formatter_worker/module.json
rename to src/third_party/devtools/front_end/formatter_worker/module.json
diff --git a/src/cobalt/debug/remote/devtools/front_end/har_importer/HARFormat.js b/src/third_party/devtools/front_end/har_importer/HARFormat.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/har_importer/HARFormat.js
rename to src/third_party/devtools/front_end/har_importer/HARFormat.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/har_importer/HARImporter.js b/src/third_party/devtools/front_end/har_importer/HARImporter.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/har_importer/HARImporter.js
rename to src/third_party/devtools/front_end/har_importer/HARImporter.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/har_importer/har_importer.js b/src/third_party/devtools/front_end/har_importer/har_importer.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/har_importer/har_importer.js
rename to src/third_party/devtools/front_end/har_importer/har_importer.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/har_importer/module.json b/src/third_party/devtools/front_end/har_importer/module.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/har_importer/module.json
rename to src/third_party/devtools/front_end/har_importer/module.json
diff --git a/src/cobalt/debug/remote/devtools/front_end/heap_profiler_test_runner/HeapProfilerTestRunner.js b/src/third_party/devtools/front_end/heap_profiler_test_runner/HeapProfilerTestRunner.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/heap_profiler_test_runner/HeapProfilerTestRunner.js
rename to src/third_party/devtools/front_end/heap_profiler_test_runner/HeapProfilerTestRunner.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/heap_profiler_test_runner/module.json b/src/third_party/devtools/front_end/heap_profiler_test_runner/module.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/heap_profiler_test_runner/module.json
rename to src/third_party/devtools/front_end/heap_profiler_test_runner/module.json
diff --git a/src/cobalt/debug/remote/devtools/front_end/heap_snapshot_model/HeapSnapshotModel.js b/src/third_party/devtools/front_end/heap_snapshot_model/HeapSnapshotModel.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/heap_snapshot_model/HeapSnapshotModel.js
rename to src/third_party/devtools/front_end/heap_snapshot_model/HeapSnapshotModel.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/heap_snapshot_model/heap_snapshot_model.js b/src/third_party/devtools/front_end/heap_snapshot_model/heap_snapshot_model.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/heap_snapshot_model/heap_snapshot_model.js
rename to src/third_party/devtools/front_end/heap_snapshot_model/heap_snapshot_model.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/heap_snapshot_model/module.json b/src/third_party/devtools/front_end/heap_snapshot_model/module.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/heap_snapshot_model/module.json
rename to src/third_party/devtools/front_end/heap_snapshot_model/module.json
diff --git a/src/cobalt/debug/remote/devtools/front_end/heap_snapshot_worker.json b/src/third_party/devtools/front_end/heap_snapshot_worker.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/heap_snapshot_worker.json
rename to src/third_party/devtools/front_end/heap_snapshot_worker.json
diff --git a/src/cobalt/debug/remote/devtools/front_end/heap_snapshot_worker.unbundled.js b/src/third_party/devtools/front_end/heap_snapshot_worker.unbundled.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/heap_snapshot_worker.unbundled.js
rename to src/third_party/devtools/front_end/heap_snapshot_worker.unbundled.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/heap_snapshot_worker/AllocationProfile.js b/src/third_party/devtools/front_end/heap_snapshot_worker/AllocationProfile.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/heap_snapshot_worker/AllocationProfile.js
rename to src/third_party/devtools/front_end/heap_snapshot_worker/AllocationProfile.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/heap_snapshot_worker/HeapSnapshot.js b/src/third_party/devtools/front_end/heap_snapshot_worker/HeapSnapshot.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/heap_snapshot_worker/HeapSnapshot.js
rename to src/third_party/devtools/front_end/heap_snapshot_worker/HeapSnapshot.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/heap_snapshot_worker/HeapSnapshotLoader.js b/src/third_party/devtools/front_end/heap_snapshot_worker/HeapSnapshotLoader.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/heap_snapshot_worker/HeapSnapshotLoader.js
rename to src/third_party/devtools/front_end/heap_snapshot_worker/HeapSnapshotLoader.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/heap_snapshot_worker/HeapSnapshotWorker.js b/src/third_party/devtools/front_end/heap_snapshot_worker/HeapSnapshotWorker.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/heap_snapshot_worker/HeapSnapshotWorker.js
rename to src/third_party/devtools/front_end/heap_snapshot_worker/HeapSnapshotWorker.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/heap_snapshot_worker/HeapSnapshotWorkerDispatcher.js b/src/third_party/devtools/front_end/heap_snapshot_worker/HeapSnapshotWorkerDispatcher.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/heap_snapshot_worker/HeapSnapshotWorkerDispatcher.js
rename to src/third_party/devtools/front_end/heap_snapshot_worker/HeapSnapshotWorkerDispatcher.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/heap_snapshot_worker/heap_snapshot_worker.js b/src/third_party/devtools/front_end/heap_snapshot_worker/heap_snapshot_worker.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/heap_snapshot_worker/heap_snapshot_worker.js
rename to src/third_party/devtools/front_end/heap_snapshot_worker/heap_snapshot_worker.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/heap_snapshot_worker/heap_snapshot_worker_strings.grdp b/src/third_party/devtools/front_end/heap_snapshot_worker/heap_snapshot_worker_strings.grdp
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/heap_snapshot_worker/heap_snapshot_worker_strings.grdp
rename to src/third_party/devtools/front_end/heap_snapshot_worker/heap_snapshot_worker_strings.grdp
diff --git a/src/cobalt/debug/remote/devtools/front_end/heap_snapshot_worker/module.json b/src/third_party/devtools/front_end/heap_snapshot_worker/module.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/heap_snapshot_worker/module.json
rename to src/third_party/devtools/front_end/heap_snapshot_worker/module.json
diff --git a/src/cobalt/debug/remote/devtools/front_end/help/HelpImpl.js b/src/third_party/devtools/front_end/help/HelpImpl.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/help/HelpImpl.js
rename to src/third_party/devtools/front_end/help/HelpImpl.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/help/ReleaseNoteText.js b/src/third_party/devtools/front_end/help/ReleaseNoteText.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/help/ReleaseNoteText.js
rename to src/third_party/devtools/front_end/help/ReleaseNoteText.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/help/ReleaseNoteView.js b/src/third_party/devtools/front_end/help/ReleaseNoteView.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/help/ReleaseNoteView.js
rename to src/third_party/devtools/front_end/help/ReleaseNoteView.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/help/help.js b/src/third_party/devtools/front_end/help/help.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/help/help.js
rename to src/third_party/devtools/front_end/help/help.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/help/help_strings.grdp b/src/third_party/devtools/front_end/help/help_strings.grdp
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/help/help_strings.grdp
rename to src/third_party/devtools/front_end/help/help_strings.grdp
diff --git a/src/cobalt/debug/remote/devtools/front_end/help/module.json b/src/third_party/devtools/front_end/help/module.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/help/module.json
rename to src/third_party/devtools/front_end/help/module.json
diff --git a/src/cobalt/debug/remote/devtools/front_end/help/releaseNote.css b/src/third_party/devtools/front_end/help/releaseNote.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/help/releaseNote.css
rename to src/third_party/devtools/front_end/help/releaseNote.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/host/InspectorFrontendHost.js b/src/third_party/devtools/front_end/host/InspectorFrontendHost.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/host/InspectorFrontendHost.js
rename to src/third_party/devtools/front_end/host/InspectorFrontendHost.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/host/InspectorFrontendHostAPI.js b/src/third_party/devtools/front_end/host/InspectorFrontendHostAPI.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/host/InspectorFrontendHostAPI.js
rename to src/third_party/devtools/front_end/host/InspectorFrontendHostAPI.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/host/Platform.js b/src/third_party/devtools/front_end/host/Platform.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/host/Platform.js
rename to src/third_party/devtools/front_end/host/Platform.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/host/ResourceLoader.js b/src/third_party/devtools/front_end/host/ResourceLoader.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/host/ResourceLoader.js
rename to src/third_party/devtools/front_end/host/ResourceLoader.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/host/UserMetrics.js b/src/third_party/devtools/front_end/host/UserMetrics.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/host/UserMetrics.js
rename to src/third_party/devtools/front_end/host/UserMetrics.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/host/host.js b/src/third_party/devtools/front_end/host/host.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/host/host.js
rename to src/third_party/devtools/front_end/host/host.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/host/host_strings.grdp b/src/third_party/devtools/front_end/host/host_strings.grdp
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/host/host_strings.grdp
rename to src/third_party/devtools/front_end/host/host_strings.grdp
diff --git a/src/cobalt/debug/remote/devtools/front_end/host/module.json b/src/third_party/devtools/front_end/host/module.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/host/module.json
rename to src/third_party/devtools/front_end/host/module.json
diff --git a/src/cobalt/debug/remote/devtools/front_end/inline_editor/BezierEditor.js b/src/third_party/devtools/front_end/inline_editor/BezierEditor.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/inline_editor/BezierEditor.js
rename to src/third_party/devtools/front_end/inline_editor/BezierEditor.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/inline_editor/BezierUI.js b/src/third_party/devtools/front_end/inline_editor/BezierUI.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/inline_editor/BezierUI.js
rename to src/third_party/devtools/front_end/inline_editor/BezierUI.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/inline_editor/CSSShadowEditor.js b/src/third_party/devtools/front_end/inline_editor/CSSShadowEditor.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/inline_editor/CSSShadowEditor.js
rename to src/third_party/devtools/front_end/inline_editor/CSSShadowEditor.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/inline_editor/CSSShadowModel.js b/src/third_party/devtools/front_end/inline_editor/CSSShadowModel.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/inline_editor/CSSShadowModel.js
rename to src/third_party/devtools/front_end/inline_editor/CSSShadowModel.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/inline_editor/ColorSwatch.js b/src/third_party/devtools/front_end/inline_editor/ColorSwatch.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/inline_editor/ColorSwatch.js
rename to src/third_party/devtools/front_end/inline_editor/ColorSwatch.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/inline_editor/SwatchPopoverHelper.js b/src/third_party/devtools/front_end/inline_editor/SwatchPopoverHelper.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/inline_editor/SwatchPopoverHelper.js
rename to src/third_party/devtools/front_end/inline_editor/SwatchPopoverHelper.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/inline_editor/bezierEditor.css b/src/third_party/devtools/front_end/inline_editor/bezierEditor.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/inline_editor/bezierEditor.css
rename to src/third_party/devtools/front_end/inline_editor/bezierEditor.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/inline_editor/bezierSwatch.css b/src/third_party/devtools/front_end/inline_editor/bezierSwatch.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/inline_editor/bezierSwatch.css
rename to src/third_party/devtools/front_end/inline_editor/bezierSwatch.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/inline_editor/colorSwatch.css b/src/third_party/devtools/front_end/inline_editor/colorSwatch.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/inline_editor/colorSwatch.css
rename to src/third_party/devtools/front_end/inline_editor/colorSwatch.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/inline_editor/cssShadowEditor.css b/src/third_party/devtools/front_end/inline_editor/cssShadowEditor.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/inline_editor/cssShadowEditor.css
rename to src/third_party/devtools/front_end/inline_editor/cssShadowEditor.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/inline_editor/cssShadowSwatch.css b/src/third_party/devtools/front_end/inline_editor/cssShadowSwatch.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/inline_editor/cssShadowSwatch.css
rename to src/third_party/devtools/front_end/inline_editor/cssShadowSwatch.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/inline_editor/inline_editor.js b/src/third_party/devtools/front_end/inline_editor/inline_editor.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/inline_editor/inline_editor.js
rename to src/third_party/devtools/front_end/inline_editor/inline_editor.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/inline_editor/inline_editor_strings.grdp b/src/third_party/devtools/front_end/inline_editor/inline_editor_strings.grdp
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/inline_editor/inline_editor_strings.grdp
rename to src/third_party/devtools/front_end/inline_editor/inline_editor_strings.grdp
diff --git a/src/cobalt/debug/remote/devtools/front_end/inline_editor/module.json b/src/third_party/devtools/front_end/inline_editor/module.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/inline_editor/module.json
rename to src/third_party/devtools/front_end/inline_editor/module.json
diff --git a/src/cobalt/debug/remote/devtools/front_end/inline_editor/swatchPopover.css b/src/third_party/devtools/front_end/inline_editor/swatchPopover.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/inline_editor/swatchPopover.css
rename to src/third_party/devtools/front_end/inline_editor/swatchPopover.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/inspector.html b/src/third_party/devtools/front_end/inspector.html
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/inspector.html
rename to src/third_party/devtools/front_end/inspector.html
diff --git a/src/cobalt/debug/remote/devtools/front_end/inspector.js b/src/third_party/devtools/front_end/inspector.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/inspector.js
rename to src/third_party/devtools/front_end/inspector.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/inspector.json b/src/third_party/devtools/front_end/inspector.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/inspector.json
rename to src/third_party/devtools/front_end/inspector.json
diff --git a/src/cobalt/debug/remote/devtools/front_end/inspector_main/InspectorMain.js b/src/third_party/devtools/front_end/inspector_main/InspectorMain.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/inspector_main/InspectorMain.js
rename to src/third_party/devtools/front_end/inspector_main/InspectorMain.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/inspector_main/RenderingOptions.js b/src/third_party/devtools/front_end/inspector_main/RenderingOptions.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/inspector_main/RenderingOptions.js
rename to src/third_party/devtools/front_end/inspector_main/RenderingOptions.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/inspector_main/inspector_main.js b/src/third_party/devtools/front_end/inspector_main/inspector_main.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/inspector_main/inspector_main.js
rename to src/third_party/devtools/front_end/inspector_main/inspector_main.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/inspector_main/inspector_main_strings.grdp b/src/third_party/devtools/front_end/inspector_main/inspector_main_strings.grdp
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/inspector_main/inspector_main_strings.grdp
rename to src/third_party/devtools/front_end/inspector_main/inspector_main_strings.grdp
diff --git a/src/cobalt/debug/remote/devtools/front_end/inspector_main/module.json b/src/third_party/devtools/front_end/inspector_main/module.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/inspector_main/module.json
rename to src/third_party/devtools/front_end/inspector_main/module.json
diff --git a/src/cobalt/debug/remote/devtools/front_end/inspector_main/nodeIcon.css b/src/third_party/devtools/front_end/inspector_main/nodeIcon.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/inspector_main/nodeIcon.css
rename to src/third_party/devtools/front_end/inspector_main/nodeIcon.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/inspector_main/renderingOptions.css b/src/third_party/devtools/front_end/inspector_main/renderingOptions.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/inspector_main/renderingOptions.css
rename to src/third_party/devtools/front_end/inspector_main/renderingOptions.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/integration_test_runner.html b/src/third_party/devtools/front_end/integration_test_runner.html
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/integration_test_runner.html
rename to src/third_party/devtools/front_end/integration_test_runner.html
diff --git a/src/cobalt/debug/remote/devtools/front_end/integration_test_runner.js b/src/third_party/devtools/front_end/integration_test_runner.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/integration_test_runner.js
rename to src/third_party/devtools/front_end/integration_test_runner.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/integration_test_runner.json b/src/third_party/devtools/front_end/integration_test_runner.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/integration_test_runner.json
rename to src/third_party/devtools/front_end/integration_test_runner.json
diff --git a/src/cobalt/debug/remote/devtools/front_end/javascript_metadata/JavaScriptMetadata.js b/src/third_party/devtools/front_end/javascript_metadata/JavaScriptMetadata.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/javascript_metadata/JavaScriptMetadata.js
rename to src/third_party/devtools/front_end/javascript_metadata/JavaScriptMetadata.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/javascript_metadata/NativeFunctions.js b/src/third_party/devtools/front_end/javascript_metadata/NativeFunctions.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/javascript_metadata/NativeFunctions.js
rename to src/third_party/devtools/front_end/javascript_metadata/NativeFunctions.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/javascript_metadata/javascript_metadata.js b/src/third_party/devtools/front_end/javascript_metadata/javascript_metadata.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/javascript_metadata/javascript_metadata.js
rename to src/third_party/devtools/front_end/javascript_metadata/javascript_metadata.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/javascript_metadata/module.json b/src/third_party/devtools/front_end/javascript_metadata/module.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/javascript_metadata/module.json
rename to src/third_party/devtools/front_end/javascript_metadata/module.json
diff --git a/src/cobalt/debug/remote/devtools/front_end/js_app.html b/src/third_party/devtools/front_end/js_app.html
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/js_app.html
rename to src/third_party/devtools/front_end/js_app.html
diff --git a/src/cobalt/debug/remote/devtools/front_end/js_app.js b/src/third_party/devtools/front_end/js_app.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/js_app.js
rename to src/third_party/devtools/front_end/js_app.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/js_app.json b/src/third_party/devtools/front_end/js_app.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/js_app.json
rename to src/third_party/devtools/front_end/js_app.json
diff --git a/src/cobalt/debug/remote/devtools/front_end/js_main/JsMain.js b/src/third_party/devtools/front_end/js_main/JsMain.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/js_main/JsMain.js
rename to src/third_party/devtools/front_end/js_main/JsMain.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/js_main/js_main.js b/src/third_party/devtools/front_end/js_main/js_main.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/js_main/js_main.js
rename to src/third_party/devtools/front_end/js_main/js_main.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/js_main/module.json b/src/third_party/devtools/front_end/js_main/module.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/js_main/module.json
rename to src/third_party/devtools/front_end/js_main/module.json
diff --git a/src/cobalt/debug/remote/devtools/front_end/js_profiler/js_profiler_strings.grdp b/src/third_party/devtools/front_end/js_profiler/js_profiler_strings.grdp
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/js_profiler/js_profiler_strings.grdp
rename to src/third_party/devtools/front_end/js_profiler/js_profiler_strings.grdp
diff --git a/src/cobalt/debug/remote/devtools/front_end/js_profiler/module.json b/src/third_party/devtools/front_end/js_profiler/module.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/js_profiler/module.json
rename to src/third_party/devtools/front_end/js_profiler/module.json
diff --git a/src/cobalt/debug/remote/devtools/front_end/langpacks/devtools_ui_strings.grd b/src/third_party/devtools/front_end/langpacks/devtools_ui_strings.grd
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/langpacks/devtools_ui_strings.grd
rename to src/third_party/devtools/front_end/langpacks/devtools_ui_strings.grd
diff --git a/src/cobalt/debug/remote/devtools/front_end/langpacks/shared_strings.grdp b/src/third_party/devtools/front_end/langpacks/shared_strings.grdp
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/langpacks/shared_strings.grdp
rename to src/third_party/devtools/front_end/langpacks/shared_strings.grdp
diff --git a/src/cobalt/debug/remote/devtools/front_end/layer_viewer/LayerDetailsView.js b/src/third_party/devtools/front_end/layer_viewer/LayerDetailsView.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/layer_viewer/LayerDetailsView.js
rename to src/third_party/devtools/front_end/layer_viewer/LayerDetailsView.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/layer_viewer/LayerTreeOutline.js b/src/third_party/devtools/front_end/layer_viewer/LayerTreeOutline.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/layer_viewer/LayerTreeOutline.js
rename to src/third_party/devtools/front_end/layer_viewer/LayerTreeOutline.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/layer_viewer/LayerViewHost.js b/src/third_party/devtools/front_end/layer_viewer/LayerViewHost.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/layer_viewer/LayerViewHost.js
rename to src/third_party/devtools/front_end/layer_viewer/LayerViewHost.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/layer_viewer/Layers3DView.js b/src/third_party/devtools/front_end/layer_viewer/Layers3DView.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/layer_viewer/Layers3DView.js
rename to src/third_party/devtools/front_end/layer_viewer/Layers3DView.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/layer_viewer/PaintProfilerView.js b/src/third_party/devtools/front_end/layer_viewer/PaintProfilerView.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/layer_viewer/PaintProfilerView.js
rename to src/third_party/devtools/front_end/layer_viewer/PaintProfilerView.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/layer_viewer/TransformController.js b/src/third_party/devtools/front_end/layer_viewer/TransformController.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/layer_viewer/TransformController.js
rename to src/third_party/devtools/front_end/layer_viewer/TransformController.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/layer_viewer/layerDetailsView.css b/src/third_party/devtools/front_end/layer_viewer/layerDetailsView.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/layer_viewer/layerDetailsView.css
rename to src/third_party/devtools/front_end/layer_viewer/layerDetailsView.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/layer_viewer/layer_viewer.js b/src/third_party/devtools/front_end/layer_viewer/layer_viewer.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/layer_viewer/layer_viewer.js
rename to src/third_party/devtools/front_end/layer_viewer/layer_viewer.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/layer_viewer/layer_viewer_strings.grdp b/src/third_party/devtools/front_end/layer_viewer/layer_viewer_strings.grdp
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/layer_viewer/layer_viewer_strings.grdp
rename to src/third_party/devtools/front_end/layer_viewer/layer_viewer_strings.grdp
diff --git a/src/cobalt/debug/remote/devtools/front_end/layer_viewer/layers3DView.css b/src/third_party/devtools/front_end/layer_viewer/layers3DView.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/layer_viewer/layers3DView.css
rename to src/third_party/devtools/front_end/layer_viewer/layers3DView.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/layer_viewer/module.json b/src/third_party/devtools/front_end/layer_viewer/module.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/layer_viewer/module.json
rename to src/third_party/devtools/front_end/layer_viewer/module.json
diff --git a/src/cobalt/debug/remote/devtools/front_end/layer_viewer/paintProfiler.css b/src/third_party/devtools/front_end/layer_viewer/paintProfiler.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/layer_viewer/paintProfiler.css
rename to src/third_party/devtools/front_end/layer_viewer/paintProfiler.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/layers/LayerPaintProfilerView.js b/src/third_party/devtools/front_end/layers/LayerPaintProfilerView.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/layers/LayerPaintProfilerView.js
rename to src/third_party/devtools/front_end/layers/LayerPaintProfilerView.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/layers/LayerTreeModel.js b/src/third_party/devtools/front_end/layers/LayerTreeModel.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/layers/LayerTreeModel.js
rename to src/third_party/devtools/front_end/layers/LayerTreeModel.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/layers/LayersPanel.js b/src/third_party/devtools/front_end/layers/LayersPanel.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/layers/LayersPanel.js
rename to src/third_party/devtools/front_end/layers/LayersPanel.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/layers/layers.js b/src/third_party/devtools/front_end/layers/layers.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/layers/layers.js
rename to src/third_party/devtools/front_end/layers/layers.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/layers/layers_strings.grdp b/src/third_party/devtools/front_end/layers/layers_strings.grdp
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/layers/layers_strings.grdp
rename to src/third_party/devtools/front_end/layers/layers_strings.grdp
diff --git a/src/cobalt/debug/remote/devtools/front_end/layers/module.json b/src/third_party/devtools/front_end/layers/module.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/layers/module.json
rename to src/third_party/devtools/front_end/layers/module.json
diff --git a/src/cobalt/debug/remote/devtools/front_end/layers_test_runner/LayersTestRunner.js b/src/third_party/devtools/front_end/layers_test_runner/LayersTestRunner.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/layers_test_runner/LayersTestRunner.js
rename to src/third_party/devtools/front_end/layers_test_runner/LayersTestRunner.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/layers_test_runner/module.json b/src/third_party/devtools/front_end/layers_test_runner/module.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/layers_test_runner/module.json
rename to src/third_party/devtools/front_end/layers_test_runner/module.json
diff --git a/src/cobalt/debug/remote/devtools/front_end/main/ExecutionContextSelector.js b/src/third_party/devtools/front_end/main/ExecutionContextSelector.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/main/ExecutionContextSelector.js
rename to src/third_party/devtools/front_end/main/ExecutionContextSelector.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/main/MainImpl.js b/src/third_party/devtools/front_end/main/MainImpl.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/main/MainImpl.js
rename to src/third_party/devtools/front_end/main/MainImpl.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/main/SimpleApp.js b/src/third_party/devtools/front_end/main/SimpleApp.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/main/SimpleApp.js
rename to src/third_party/devtools/front_end/main/SimpleApp.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/main/main.js b/src/third_party/devtools/front_end/main/main.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/main/main.js
rename to src/third_party/devtools/front_end/main/main.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/main/main_strings.grdp b/src/third_party/devtools/front_end/main/main_strings.grdp
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/main/main_strings.grdp
rename to src/third_party/devtools/front_end/main/main_strings.grdp
diff --git a/src/cobalt/debug/remote/devtools/front_end/main/module.json b/src/third_party/devtools/front_end/main/module.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/main/module.json
rename to src/third_party/devtools/front_end/main/module.json
diff --git a/src/cobalt/debug/remote/devtools/front_end/media/EventDisplayTable.js b/src/third_party/devtools/front_end/media/EventDisplayTable.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/media/EventDisplayTable.js
rename to src/third_party/devtools/front_end/media/EventDisplayTable.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/media/MainView.js b/src/third_party/devtools/front_end/media/MainView.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/media/MainView.js
rename to src/third_party/devtools/front_end/media/MainView.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/media/MediaModel.js b/src/third_party/devtools/front_end/media/MediaModel.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/media/MediaModel.js
rename to src/third_party/devtools/front_end/media/MediaModel.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/media/MediaTable.js b/src/third_party/devtools/front_end/media/MediaTable.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/media/MediaTable.js
rename to src/third_party/devtools/front_end/media/MediaTable.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/media/PlayerDetailView.js b/src/third_party/devtools/front_end/media/PlayerDetailView.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/media/PlayerDetailView.js
rename to src/third_party/devtools/front_end/media/PlayerDetailView.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/media/PlayerListView.js b/src/third_party/devtools/front_end/media/PlayerListView.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/media/PlayerListView.js
rename to src/third_party/devtools/front_end/media/PlayerListView.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/media/eventDisplayTable.css b/src/third_party/devtools/front_end/media/eventDisplayTable.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/media/eventDisplayTable.css
rename to src/third_party/devtools/front_end/media/eventDisplayTable.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/media/mediaView.css b/src/third_party/devtools/front_end/media/mediaView.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/media/mediaView.css
rename to src/third_party/devtools/front_end/media/mediaView.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/media/media_strings.grdp b/src/third_party/devtools/front_end/media/media_strings.grdp
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/media/media_strings.grdp
rename to src/third_party/devtools/front_end/media/media_strings.grdp
diff --git a/src/cobalt/debug/remote/devtools/front_end/media/module.json b/src/third_party/devtools/front_end/media/module.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/media/module.json
rename to src/third_party/devtools/front_end/media/module.json
diff --git a/src/cobalt/debug/remote/devtools/front_end/media/playerListView.css b/src/third_party/devtools/front_end/media/playerListView.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/media/playerListView.css
rename to src/third_party/devtools/front_end/media/playerListView.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/mobile_throttling/MobileThrottlingSelector.js b/src/third_party/devtools/front_end/mobile_throttling/MobileThrottlingSelector.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/mobile_throttling/MobileThrottlingSelector.js
rename to src/third_party/devtools/front_end/mobile_throttling/MobileThrottlingSelector.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/mobile_throttling/NetworkPanelIndicator.js b/src/third_party/devtools/front_end/mobile_throttling/NetworkPanelIndicator.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/mobile_throttling/NetworkPanelIndicator.js
rename to src/third_party/devtools/front_end/mobile_throttling/NetworkPanelIndicator.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/mobile_throttling/NetworkThrottlingSelector.js b/src/third_party/devtools/front_end/mobile_throttling/NetworkThrottlingSelector.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/mobile_throttling/NetworkThrottlingSelector.js
rename to src/third_party/devtools/front_end/mobile_throttling/NetworkThrottlingSelector.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/mobile_throttling/ThrottlingManager.js b/src/third_party/devtools/front_end/mobile_throttling/ThrottlingManager.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/mobile_throttling/ThrottlingManager.js
rename to src/third_party/devtools/front_end/mobile_throttling/ThrottlingManager.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/mobile_throttling/ThrottlingPresets.js b/src/third_party/devtools/front_end/mobile_throttling/ThrottlingPresets.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/mobile_throttling/ThrottlingPresets.js
rename to src/third_party/devtools/front_end/mobile_throttling/ThrottlingPresets.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/mobile_throttling/ThrottlingSettingsTab.js b/src/third_party/devtools/front_end/mobile_throttling/ThrottlingSettingsTab.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/mobile_throttling/ThrottlingSettingsTab.js
rename to src/third_party/devtools/front_end/mobile_throttling/ThrottlingSettingsTab.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/mobile_throttling/mobile_throttling.js b/src/third_party/devtools/front_end/mobile_throttling/mobile_throttling.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/mobile_throttling/mobile_throttling.js
rename to src/third_party/devtools/front_end/mobile_throttling/mobile_throttling.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/mobile_throttling/mobile_throttling_strings.grdp b/src/third_party/devtools/front_end/mobile_throttling/mobile_throttling_strings.grdp
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/mobile_throttling/mobile_throttling_strings.grdp
rename to src/third_party/devtools/front_end/mobile_throttling/mobile_throttling_strings.grdp
diff --git a/src/cobalt/debug/remote/devtools/front_end/mobile_throttling/module.json b/src/third_party/devtools/front_end/mobile_throttling/module.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/mobile_throttling/module.json
rename to src/third_party/devtools/front_end/mobile_throttling/module.json
diff --git a/src/cobalt/debug/remote/devtools/front_end/mobile_throttling/throttlingSettingsTab.css b/src/third_party/devtools/front_end/mobile_throttling/throttlingSettingsTab.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/mobile_throttling/throttlingSettingsTab.css
rename to src/third_party/devtools/front_end/mobile_throttling/throttlingSettingsTab.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/ndb_app.html b/src/third_party/devtools/front_end/ndb_app.html
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/ndb_app.html
rename to src/third_party/devtools/front_end/ndb_app.html
diff --git a/src/cobalt/debug/remote/devtools/front_end/ndb_app.js b/src/third_party/devtools/front_end/ndb_app.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/ndb_app.js
rename to src/third_party/devtools/front_end/ndb_app.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/ndb_app.json b/src/third_party/devtools/front_end/ndb_app.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/ndb_app.json
rename to src/third_party/devtools/front_end/ndb_app.json
diff --git a/src/cobalt/debug/remote/devtools/front_end/network/BinaryResourceView.js b/src/third_party/devtools/front_end/network/BinaryResourceView.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/network/BinaryResourceView.js
rename to src/third_party/devtools/front_end/network/BinaryResourceView.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/network/BlockedURLsPane.js b/src/third_party/devtools/front_end/network/BlockedURLsPane.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/network/BlockedURLsPane.js
rename to src/third_party/devtools/front_end/network/BlockedURLsPane.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/network/EventSourceMessagesView.js b/src/third_party/devtools/front_end/network/EventSourceMessagesView.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/network/EventSourceMessagesView.js
rename to src/third_party/devtools/front_end/network/EventSourceMessagesView.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/network/HARWriter.js b/src/third_party/devtools/front_end/network/HARWriter.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/network/HARWriter.js
rename to src/third_party/devtools/front_end/network/HARWriter.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/network/NetworkConfigView.js b/src/third_party/devtools/front_end/network/NetworkConfigView.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/network/NetworkConfigView.js
rename to src/third_party/devtools/front_end/network/NetworkConfigView.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/network/NetworkDataGridNode.js b/src/third_party/devtools/front_end/network/NetworkDataGridNode.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/network/NetworkDataGridNode.js
rename to src/third_party/devtools/front_end/network/NetworkDataGridNode.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/network/NetworkFrameGrouper.js b/src/third_party/devtools/front_end/network/NetworkFrameGrouper.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/network/NetworkFrameGrouper.js
rename to src/third_party/devtools/front_end/network/NetworkFrameGrouper.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/network/NetworkItemView.js b/src/third_party/devtools/front_end/network/NetworkItemView.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/network/NetworkItemView.js
rename to src/third_party/devtools/front_end/network/NetworkItemView.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/network/NetworkLogView.js b/src/third_party/devtools/front_end/network/NetworkLogView.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/network/NetworkLogView.js
rename to src/third_party/devtools/front_end/network/NetworkLogView.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/network/NetworkLogViewColumns.js b/src/third_party/devtools/front_end/network/NetworkLogViewColumns.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/network/NetworkLogViewColumns.js
rename to src/third_party/devtools/front_end/network/NetworkLogViewColumns.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/network/NetworkManageCustomHeadersView.js b/src/third_party/devtools/front_end/network/NetworkManageCustomHeadersView.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/network/NetworkManageCustomHeadersView.js
rename to src/third_party/devtools/front_end/network/NetworkManageCustomHeadersView.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/network/NetworkOverview.js b/src/third_party/devtools/front_end/network/NetworkOverview.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/network/NetworkOverview.js
rename to src/third_party/devtools/front_end/network/NetworkOverview.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/network/NetworkPanel.js b/src/third_party/devtools/front_end/network/NetworkPanel.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/network/NetworkPanel.js
rename to src/third_party/devtools/front_end/network/NetworkPanel.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/network/NetworkSearchScope.js b/src/third_party/devtools/front_end/network/NetworkSearchScope.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/network/NetworkSearchScope.js
rename to src/third_party/devtools/front_end/network/NetworkSearchScope.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/network/NetworkTimeCalculator.js b/src/third_party/devtools/front_end/network/NetworkTimeCalculator.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/network/NetworkTimeCalculator.js
rename to src/third_party/devtools/front_end/network/NetworkTimeCalculator.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/network/NetworkWaterfallColumn.js b/src/third_party/devtools/front_end/network/NetworkWaterfallColumn.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/network/NetworkWaterfallColumn.js
rename to src/third_party/devtools/front_end/network/NetworkWaterfallColumn.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/network/RequestCookiesView.js b/src/third_party/devtools/front_end/network/RequestCookiesView.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/network/RequestCookiesView.js
rename to src/third_party/devtools/front_end/network/RequestCookiesView.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/network/RequestHTMLView.js b/src/third_party/devtools/front_end/network/RequestHTMLView.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/network/RequestHTMLView.js
rename to src/third_party/devtools/front_end/network/RequestHTMLView.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/network/RequestHeadersView.js b/src/third_party/devtools/front_end/network/RequestHeadersView.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/network/RequestHeadersView.js
rename to src/third_party/devtools/front_end/network/RequestHeadersView.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/network/RequestInitiatorView.js b/src/third_party/devtools/front_end/network/RequestInitiatorView.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/network/RequestInitiatorView.js
rename to src/third_party/devtools/front_end/network/RequestInitiatorView.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/network/RequestPreviewView.js b/src/third_party/devtools/front_end/network/RequestPreviewView.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/network/RequestPreviewView.js
rename to src/third_party/devtools/front_end/network/RequestPreviewView.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/network/RequestResponseView.js b/src/third_party/devtools/front_end/network/RequestResponseView.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/network/RequestResponseView.js
rename to src/third_party/devtools/front_end/network/RequestResponseView.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/network/RequestTimingView.js b/src/third_party/devtools/front_end/network/RequestTimingView.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/network/RequestTimingView.js
rename to src/third_party/devtools/front_end/network/RequestTimingView.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/network/ResourceWebSocketFrameView.js b/src/third_party/devtools/front_end/network/ResourceWebSocketFrameView.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/network/ResourceWebSocketFrameView.js
rename to src/third_party/devtools/front_end/network/ResourceWebSocketFrameView.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/network/SignedExchangeInfoView.js b/src/third_party/devtools/front_end/network/SignedExchangeInfoView.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/network/SignedExchangeInfoView.js
rename to src/third_party/devtools/front_end/network/SignedExchangeInfoView.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/network/binaryResourceView.css b/src/third_party/devtools/front_end/network/binaryResourceView.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/network/binaryResourceView.css
rename to src/third_party/devtools/front_end/network/binaryResourceView.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/network/blockedURLsPane.css b/src/third_party/devtools/front_end/network/blockedURLsPane.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/network/blockedURLsPane.css
rename to src/third_party/devtools/front_end/network/blockedURLsPane.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/network/eventSourceMessagesView.css b/src/third_party/devtools/front_end/network/eventSourceMessagesView.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/network/eventSourceMessagesView.css
rename to src/third_party/devtools/front_end/network/eventSourceMessagesView.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/network/module.json b/src/third_party/devtools/front_end/network/module.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/network/module.json
rename to src/third_party/devtools/front_end/network/module.json
diff --git a/src/cobalt/debug/remote/devtools/front_end/network/network.js b/src/third_party/devtools/front_end/network/network.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/network/network.js
rename to src/third_party/devtools/front_end/network/network.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/network/networkConfigView.css b/src/third_party/devtools/front_end/network/networkConfigView.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/network/networkConfigView.css
rename to src/third_party/devtools/front_end/network/networkConfigView.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/network/networkLogView.css b/src/third_party/devtools/front_end/network/networkLogView.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/network/networkLogView.css
rename to src/third_party/devtools/front_end/network/networkLogView.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/network/networkManageCustomHeadersView.css b/src/third_party/devtools/front_end/network/networkManageCustomHeadersView.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/network/networkManageCustomHeadersView.css
rename to src/third_party/devtools/front_end/network/networkManageCustomHeadersView.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/network/networkPanel.css b/src/third_party/devtools/front_end/network/networkPanel.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/network/networkPanel.css
rename to src/third_party/devtools/front_end/network/networkPanel.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/network/networkTimingTable.css b/src/third_party/devtools/front_end/network/networkTimingTable.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/network/networkTimingTable.css
rename to src/third_party/devtools/front_end/network/networkTimingTable.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/network/networkWaterfallColumn.css b/src/third_party/devtools/front_end/network/networkWaterfallColumn.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/network/networkWaterfallColumn.css
rename to src/third_party/devtools/front_end/network/networkWaterfallColumn.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/network/network_strings.grdp b/src/third_party/devtools/front_end/network/network_strings.grdp
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/network/network_strings.grdp
rename to src/third_party/devtools/front_end/network/network_strings.grdp
diff --git a/src/cobalt/debug/remote/devtools/front_end/network/requestCookiesView.css b/src/third_party/devtools/front_end/network/requestCookiesView.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/network/requestCookiesView.css
rename to src/third_party/devtools/front_end/network/requestCookiesView.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/network/requestHTMLView.css b/src/third_party/devtools/front_end/network/requestHTMLView.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/network/requestHTMLView.css
rename to src/third_party/devtools/front_end/network/requestHTMLView.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/network/requestHeadersTree.css b/src/third_party/devtools/front_end/network/requestHeadersTree.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/network/requestHeadersTree.css
rename to src/third_party/devtools/front_end/network/requestHeadersTree.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/network/requestHeadersView.css b/src/third_party/devtools/front_end/network/requestHeadersView.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/network/requestHeadersView.css
rename to src/third_party/devtools/front_end/network/requestHeadersView.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/network/requestInitiatorView.css b/src/third_party/devtools/front_end/network/requestInitiatorView.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/network/requestInitiatorView.css
rename to src/third_party/devtools/front_end/network/requestInitiatorView.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/network/signedExchangeInfoTree.css b/src/third_party/devtools/front_end/network/signedExchangeInfoTree.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/network/signedExchangeInfoTree.css
rename to src/third_party/devtools/front_end/network/signedExchangeInfoTree.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/network/signedExchangeInfoView.css b/src/third_party/devtools/front_end/network/signedExchangeInfoView.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/network/signedExchangeInfoView.css
rename to src/third_party/devtools/front_end/network/signedExchangeInfoView.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/network/webSocketFrameView.css b/src/third_party/devtools/front_end/network/webSocketFrameView.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/network/webSocketFrameView.css
rename to src/third_party/devtools/front_end/network/webSocketFrameView.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/network_test_runner/NetworkTestRunner.js b/src/third_party/devtools/front_end/network_test_runner/NetworkTestRunner.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/network_test_runner/NetworkTestRunner.js
rename to src/third_party/devtools/front_end/network_test_runner/NetworkTestRunner.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/network_test_runner/module.json b/src/third_party/devtools/front_end/network_test_runner/module.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/network_test_runner/module.json
rename to src/third_party/devtools/front_end/network_test_runner/module.json
diff --git a/src/cobalt/debug/remote/devtools/front_end/node_app.html b/src/third_party/devtools/front_end/node_app.html
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/node_app.html
rename to src/third_party/devtools/front_end/node_app.html
diff --git a/src/cobalt/debug/remote/devtools/front_end/node_app.js b/src/third_party/devtools/front_end/node_app.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/node_app.js
rename to src/third_party/devtools/front_end/node_app.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/node_app.json b/src/third_party/devtools/front_end/node_app.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/node_app.json
rename to src/third_party/devtools/front_end/node_app.json
diff --git a/src/cobalt/debug/remote/devtools/front_end/node_debugger/module.json b/src/third_party/devtools/front_end/node_debugger/module.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/node_debugger/module.json
rename to src/third_party/devtools/front_end/node_debugger/module.json
diff --git a/src/cobalt/debug/remote/devtools/front_end/node_debugger/node_debugger_strings.grdp b/src/third_party/devtools/front_end/node_debugger/node_debugger_strings.grdp
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/node_debugger/node_debugger_strings.grdp
rename to src/third_party/devtools/front_end/node_debugger/node_debugger_strings.grdp
diff --git a/src/cobalt/debug/remote/devtools/front_end/node_main/NodeConnectionsPanel.js b/src/third_party/devtools/front_end/node_main/NodeConnectionsPanel.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/node_main/NodeConnectionsPanel.js
rename to src/third_party/devtools/front_end/node_main/NodeConnectionsPanel.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/node_main/NodeMain.js b/src/third_party/devtools/front_end/node_main/NodeMain.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/node_main/NodeMain.js
rename to src/third_party/devtools/front_end/node_main/NodeMain.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/node_main/module.json b/src/third_party/devtools/front_end/node_main/module.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/node_main/module.json
rename to src/third_party/devtools/front_end/node_main/module.json
diff --git a/src/cobalt/debug/remote/devtools/front_end/node_main/nodeConnectionsPanel.css b/src/third_party/devtools/front_end/node_main/nodeConnectionsPanel.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/node_main/nodeConnectionsPanel.css
rename to src/third_party/devtools/front_end/node_main/nodeConnectionsPanel.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/node_main/node_main_strings.grdp b/src/third_party/devtools/front_end/node_main/node_main_strings.grdp
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/node_main/node_main_strings.grdp
rename to src/third_party/devtools/front_end/node_main/node_main_strings.grdp
diff --git a/src/cobalt/debug/remote/devtools/front_end/object_ui/CustomPreviewComponent.js b/src/third_party/devtools/front_end/object_ui/CustomPreviewComponent.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/object_ui/CustomPreviewComponent.js
rename to src/third_party/devtools/front_end/object_ui/CustomPreviewComponent.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/object_ui/JavaScriptAutocomplete.js b/src/third_party/devtools/front_end/object_ui/JavaScriptAutocomplete.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/object_ui/JavaScriptAutocomplete.js
rename to src/third_party/devtools/front_end/object_ui/JavaScriptAutocomplete.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/object_ui/JavaScriptREPL.js b/src/third_party/devtools/front_end/object_ui/JavaScriptREPL.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/object_ui/JavaScriptREPL.js
rename to src/third_party/devtools/front_end/object_ui/JavaScriptREPL.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/object_ui/ObjectPopoverHelper.js b/src/third_party/devtools/front_end/object_ui/ObjectPopoverHelper.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/object_ui/ObjectPopoverHelper.js
rename to src/third_party/devtools/front_end/object_ui/ObjectPopoverHelper.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/object_ui/ObjectPropertiesSection.js b/src/third_party/devtools/front_end/object_ui/ObjectPropertiesSection.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/object_ui/ObjectPropertiesSection.js
rename to src/third_party/devtools/front_end/object_ui/ObjectPropertiesSection.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/object_ui/RemoteObjectPreviewFormatter.js b/src/third_party/devtools/front_end/object_ui/RemoteObjectPreviewFormatter.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/object_ui/RemoteObjectPreviewFormatter.js
rename to src/third_party/devtools/front_end/object_ui/RemoteObjectPreviewFormatter.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/object_ui/customPreviewComponent.css b/src/third_party/devtools/front_end/object_ui/customPreviewComponent.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/object_ui/customPreviewComponent.css
rename to src/third_party/devtools/front_end/object_ui/customPreviewComponent.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/object_ui/module.json b/src/third_party/devtools/front_end/object_ui/module.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/object_ui/module.json
rename to src/third_party/devtools/front_end/object_ui/module.json
diff --git a/src/cobalt/debug/remote/devtools/front_end/object_ui/objectPopover.css b/src/third_party/devtools/front_end/object_ui/objectPopover.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/object_ui/objectPopover.css
rename to src/third_party/devtools/front_end/object_ui/objectPopover.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/object_ui/objectPropertiesSection.css b/src/third_party/devtools/front_end/object_ui/objectPropertiesSection.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/object_ui/objectPropertiesSection.css
rename to src/third_party/devtools/front_end/object_ui/objectPropertiesSection.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/object_ui/objectValue.css b/src/third_party/devtools/front_end/object_ui/objectValue.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/object_ui/objectValue.css
rename to src/third_party/devtools/front_end/object_ui/objectValue.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/object_ui/object_ui.js b/src/third_party/devtools/front_end/object_ui/object_ui.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/object_ui/object_ui.js
rename to src/third_party/devtools/front_end/object_ui/object_ui.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/object_ui/object_ui_strings.grdp b/src/third_party/devtools/front_end/object_ui/object_ui_strings.grdp
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/object_ui/object_ui_strings.grdp
rename to src/third_party/devtools/front_end/object_ui/object_ui_strings.grdp
diff --git a/src/cobalt/debug/remote/devtools/front_end/perf_ui/ChartViewport.js b/src/third_party/devtools/front_end/perf_ui/ChartViewport.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/perf_ui/ChartViewport.js
rename to src/third_party/devtools/front_end/perf_ui/ChartViewport.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/perf_ui/FilmStripView.js b/src/third_party/devtools/front_end/perf_ui/FilmStripView.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/perf_ui/FilmStripView.js
rename to src/third_party/devtools/front_end/perf_ui/FilmStripView.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/perf_ui/FlameChart.js b/src/third_party/devtools/front_end/perf_ui/FlameChart.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/perf_ui/FlameChart.js
rename to src/third_party/devtools/front_end/perf_ui/FlameChart.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/perf_ui/GCActionDelegate.js b/src/third_party/devtools/front_end/perf_ui/GCActionDelegate.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/perf_ui/GCActionDelegate.js
rename to src/third_party/devtools/front_end/perf_ui/GCActionDelegate.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/perf_ui/LineLevelProfile.js b/src/third_party/devtools/front_end/perf_ui/LineLevelProfile.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/perf_ui/LineLevelProfile.js
rename to src/third_party/devtools/front_end/perf_ui/LineLevelProfile.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/perf_ui/LiveHeapProfile.js b/src/third_party/devtools/front_end/perf_ui/LiveHeapProfile.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/perf_ui/LiveHeapProfile.js
rename to src/third_party/devtools/front_end/perf_ui/LiveHeapProfile.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/perf_ui/NetworkPriorities.js b/src/third_party/devtools/front_end/perf_ui/NetworkPriorities.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/perf_ui/NetworkPriorities.js
rename to src/third_party/devtools/front_end/perf_ui/NetworkPriorities.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/perf_ui/OverviewGrid.js b/src/third_party/devtools/front_end/perf_ui/OverviewGrid.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/perf_ui/OverviewGrid.js
rename to src/third_party/devtools/front_end/perf_ui/OverviewGrid.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/perf_ui/PieChart.js b/src/third_party/devtools/front_end/perf_ui/PieChart.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/perf_ui/PieChart.js
rename to src/third_party/devtools/front_end/perf_ui/PieChart.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/perf_ui/TimelineGrid.js b/src/third_party/devtools/front_end/perf_ui/TimelineGrid.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/perf_ui/TimelineGrid.js
rename to src/third_party/devtools/front_end/perf_ui/TimelineGrid.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/perf_ui/TimelineOverviewPane.js b/src/third_party/devtools/front_end/perf_ui/TimelineOverviewPane.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/perf_ui/TimelineOverviewPane.js
rename to src/third_party/devtools/front_end/perf_ui/TimelineOverviewPane.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/perf_ui/chartViewport.css b/src/third_party/devtools/front_end/perf_ui/chartViewport.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/perf_ui/chartViewport.css
rename to src/third_party/devtools/front_end/perf_ui/chartViewport.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/perf_ui/filmStripView.css b/src/third_party/devtools/front_end/perf_ui/filmStripView.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/perf_ui/filmStripView.css
rename to src/third_party/devtools/front_end/perf_ui/filmStripView.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/perf_ui/flameChart.css b/src/third_party/devtools/front_end/perf_ui/flameChart.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/perf_ui/flameChart.css
rename to src/third_party/devtools/front_end/perf_ui/flameChart.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/perf_ui/module.json b/src/third_party/devtools/front_end/perf_ui/module.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/perf_ui/module.json
rename to src/third_party/devtools/front_end/perf_ui/module.json
diff --git a/src/cobalt/debug/remote/devtools/front_end/perf_ui/overviewGrid.css b/src/third_party/devtools/front_end/perf_ui/overviewGrid.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/perf_ui/overviewGrid.css
rename to src/third_party/devtools/front_end/perf_ui/overviewGrid.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/perf_ui/perf_ui_strings.grdp b/src/third_party/devtools/front_end/perf_ui/perf_ui_strings.grdp
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/perf_ui/perf_ui_strings.grdp
rename to src/third_party/devtools/front_end/perf_ui/perf_ui_strings.grdp
diff --git a/src/cobalt/debug/remote/devtools/front_end/perf_ui/pieChart.css b/src/third_party/devtools/front_end/perf_ui/pieChart.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/perf_ui/pieChart.css
rename to src/third_party/devtools/front_end/perf_ui/pieChart.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/perf_ui/timelineGrid.css b/src/third_party/devtools/front_end/perf_ui/timelineGrid.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/perf_ui/timelineGrid.css
rename to src/third_party/devtools/front_end/perf_ui/timelineGrid.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/perf_ui/timelineOverviewInfo.css b/src/third_party/devtools/front_end/perf_ui/timelineOverviewInfo.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/perf_ui/timelineOverviewInfo.css
rename to src/third_party/devtools/front_end/perf_ui/timelineOverviewInfo.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/performance_monitor/PerformanceMonitor.js b/src/third_party/devtools/front_end/performance_monitor/PerformanceMonitor.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/performance_monitor/PerformanceMonitor.js
rename to src/third_party/devtools/front_end/performance_monitor/PerformanceMonitor.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/performance_monitor/module.json b/src/third_party/devtools/front_end/performance_monitor/module.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/performance_monitor/module.json
rename to src/third_party/devtools/front_end/performance_monitor/module.json
diff --git a/src/cobalt/debug/remote/devtools/front_end/performance_monitor/performanceMonitor.css b/src/third_party/devtools/front_end/performance_monitor/performanceMonitor.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/performance_monitor/performanceMonitor.css
rename to src/third_party/devtools/front_end/performance_monitor/performanceMonitor.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/performance_monitor/performance_monitor.js b/src/third_party/devtools/front_end/performance_monitor/performance_monitor.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/performance_monitor/performance_monitor.js
rename to src/third_party/devtools/front_end/performance_monitor/performance_monitor.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/performance_monitor/performance_monitor_strings.grdp b/src/third_party/devtools/front_end/performance_monitor/performance_monitor_strings.grdp
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/performance_monitor/performance_monitor_strings.grdp
rename to src/third_party/devtools/front_end/performance_monitor/performance_monitor_strings.grdp
diff --git a/src/cobalt/debug/remote/devtools/front_end/performance_test_runner/TimelineDataTestRunner.js b/src/third_party/devtools/front_end/performance_test_runner/TimelineDataTestRunner.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/performance_test_runner/TimelineDataTestRunner.js
rename to src/third_party/devtools/front_end/performance_test_runner/TimelineDataTestRunner.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/performance_test_runner/TimelineTestRunner.js b/src/third_party/devtools/front_end/performance_test_runner/TimelineTestRunner.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/performance_test_runner/TimelineTestRunner.js
rename to src/third_party/devtools/front_end/performance_test_runner/TimelineTestRunner.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/performance_test_runner/module.json b/src/third_party/devtools/front_end/performance_test_runner/module.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/performance_test_runner/module.json
rename to src/third_party/devtools/front_end/performance_test_runner/module.json
diff --git a/src/cobalt/debug/remote/devtools/front_end/persistence/Automapping.js b/src/third_party/devtools/front_end/persistence/Automapping.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/persistence/Automapping.js
rename to src/third_party/devtools/front_end/persistence/Automapping.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/persistence/EditFileSystemView.js b/src/third_party/devtools/front_end/persistence/EditFileSystemView.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/persistence/EditFileSystemView.js
rename to src/third_party/devtools/front_end/persistence/EditFileSystemView.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/persistence/FileSystemWorkspaceBinding.js b/src/third_party/devtools/front_end/persistence/FileSystemWorkspaceBinding.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/persistence/FileSystemWorkspaceBinding.js
rename to src/third_party/devtools/front_end/persistence/FileSystemWorkspaceBinding.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/persistence/IsolatedFileSystem.js b/src/third_party/devtools/front_end/persistence/IsolatedFileSystem.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/persistence/IsolatedFileSystem.js
rename to src/third_party/devtools/front_end/persistence/IsolatedFileSystem.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/persistence/IsolatedFileSystemManager.js b/src/third_party/devtools/front_end/persistence/IsolatedFileSystemManager.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/persistence/IsolatedFileSystemManager.js
rename to src/third_party/devtools/front_end/persistence/IsolatedFileSystemManager.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/persistence/NetworkPersistenceManager.js b/src/third_party/devtools/front_end/persistence/NetworkPersistenceManager.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/persistence/NetworkPersistenceManager.js
rename to src/third_party/devtools/front_end/persistence/NetworkPersistenceManager.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/persistence/PersistenceActions.js b/src/third_party/devtools/front_end/persistence/PersistenceActions.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/persistence/PersistenceActions.js
rename to src/third_party/devtools/front_end/persistence/PersistenceActions.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/persistence/PersistenceImpl.js b/src/third_party/devtools/front_end/persistence/PersistenceImpl.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/persistence/PersistenceImpl.js
rename to src/third_party/devtools/front_end/persistence/PersistenceImpl.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/persistence/PersistenceUtils.js b/src/third_party/devtools/front_end/persistence/PersistenceUtils.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/persistence/PersistenceUtils.js
rename to src/third_party/devtools/front_end/persistence/PersistenceUtils.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/persistence/PlatformFileSystem.js b/src/third_party/devtools/front_end/persistence/PlatformFileSystem.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/persistence/PlatformFileSystem.js
rename to src/third_party/devtools/front_end/persistence/PlatformFileSystem.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/persistence/WorkspaceSettingsTab.js b/src/third_party/devtools/front_end/persistence/WorkspaceSettingsTab.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/persistence/WorkspaceSettingsTab.js
rename to src/third_party/devtools/front_end/persistence/WorkspaceSettingsTab.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/persistence/editFileSystemView.css b/src/third_party/devtools/front_end/persistence/editFileSystemView.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/persistence/editFileSystemView.css
rename to src/third_party/devtools/front_end/persistence/editFileSystemView.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/persistence/module.json b/src/third_party/devtools/front_end/persistence/module.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/persistence/module.json
rename to src/third_party/devtools/front_end/persistence/module.json
diff --git a/src/cobalt/debug/remote/devtools/front_end/persistence/persistence.js b/src/third_party/devtools/front_end/persistence/persistence.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/persistence/persistence.js
rename to src/third_party/devtools/front_end/persistence/persistence.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/persistence/persistence_strings.grdp b/src/third_party/devtools/front_end/persistence/persistence_strings.grdp
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/persistence/persistence_strings.grdp
rename to src/third_party/devtools/front_end/persistence/persistence_strings.grdp
diff --git a/src/cobalt/debug/remote/devtools/front_end/persistence/workspaceSettingsTab.css b/src/third_party/devtools/front_end/persistence/workspaceSettingsTab.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/persistence/workspaceSettingsTab.css
rename to src/third_party/devtools/front_end/persistence/workspaceSettingsTab.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/platform/module.json b/src/third_party/devtools/front_end/platform/module.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/platform/module.json
rename to src/third_party/devtools/front_end/platform/module.json
diff --git a/src/cobalt/debug/remote/devtools/front_end/platform/platform.js b/src/third_party/devtools/front_end/platform/platform.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/platform/platform.js
rename to src/third_party/devtools/front_end/platform/platform.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/platform/utilities.js b/src/third_party/devtools/front_end/platform/utilities.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/platform/utilities.js
rename to src/third_party/devtools/front_end/platform/utilities.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/profiler/BottomUpProfileDataGrid.js b/src/third_party/devtools/front_end/profiler/BottomUpProfileDataGrid.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/profiler/BottomUpProfileDataGrid.js
rename to src/third_party/devtools/front_end/profiler/BottomUpProfileDataGrid.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/profiler/CPUProfileFlameChart.js b/src/third_party/devtools/front_end/profiler/CPUProfileFlameChart.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/profiler/CPUProfileFlameChart.js
rename to src/third_party/devtools/front_end/profiler/CPUProfileFlameChart.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/profiler/CPUProfileView.js b/src/third_party/devtools/front_end/profiler/CPUProfileView.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/profiler/CPUProfileView.js
rename to src/third_party/devtools/front_end/profiler/CPUProfileView.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/profiler/HeapProfileView.js b/src/third_party/devtools/front_end/profiler/HeapProfileView.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/profiler/HeapProfileView.js
rename to src/third_party/devtools/front_end/profiler/HeapProfileView.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/profiler/HeapProfilerPanel.js b/src/third_party/devtools/front_end/profiler/HeapProfilerPanel.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/profiler/HeapProfilerPanel.js
rename to src/third_party/devtools/front_end/profiler/HeapProfilerPanel.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/profiler/HeapSnapshotDataGrids.js b/src/third_party/devtools/front_end/profiler/HeapSnapshotDataGrids.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/profiler/HeapSnapshotDataGrids.js
rename to src/third_party/devtools/front_end/profiler/HeapSnapshotDataGrids.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/profiler/HeapSnapshotGridNodes.js b/src/third_party/devtools/front_end/profiler/HeapSnapshotGridNodes.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/profiler/HeapSnapshotGridNodes.js
rename to src/third_party/devtools/front_end/profiler/HeapSnapshotGridNodes.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/profiler/HeapSnapshotProxy.js b/src/third_party/devtools/front_end/profiler/HeapSnapshotProxy.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/profiler/HeapSnapshotProxy.js
rename to src/third_party/devtools/front_end/profiler/HeapSnapshotProxy.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/profiler/HeapSnapshotView.js b/src/third_party/devtools/front_end/profiler/HeapSnapshotView.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/profiler/HeapSnapshotView.js
rename to src/third_party/devtools/front_end/profiler/HeapSnapshotView.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/profiler/HeapTimelineOverview.js b/src/third_party/devtools/front_end/profiler/HeapTimelineOverview.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/profiler/HeapTimelineOverview.js
rename to src/third_party/devtools/front_end/profiler/HeapTimelineOverview.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/profiler/IsolateSelector.js b/src/third_party/devtools/front_end/profiler/IsolateSelector.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/profiler/IsolateSelector.js
rename to src/third_party/devtools/front_end/profiler/IsolateSelector.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/profiler/LiveHeapProfileView.js b/src/third_party/devtools/front_end/profiler/LiveHeapProfileView.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/profiler/LiveHeapProfileView.js
rename to src/third_party/devtools/front_end/profiler/LiveHeapProfileView.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/profiler/ProfileDataGrid.js b/src/third_party/devtools/front_end/profiler/ProfileDataGrid.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/profiler/ProfileDataGrid.js
rename to src/third_party/devtools/front_end/profiler/ProfileDataGrid.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/profiler/ProfileHeader.js b/src/third_party/devtools/front_end/profiler/ProfileHeader.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/profiler/ProfileHeader.js
rename to src/third_party/devtools/front_end/profiler/ProfileHeader.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/profiler/ProfileLauncherView.js b/src/third_party/devtools/front_end/profiler/ProfileLauncherView.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/profiler/ProfileLauncherView.js
rename to src/third_party/devtools/front_end/profiler/ProfileLauncherView.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/profiler/ProfileType.js b/src/third_party/devtools/front_end/profiler/ProfileType.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/profiler/ProfileType.js
rename to src/third_party/devtools/front_end/profiler/ProfileType.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/profiler/ProfileTypeRegistry.js b/src/third_party/devtools/front_end/profiler/ProfileTypeRegistry.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/profiler/ProfileTypeRegistry.js
rename to src/third_party/devtools/front_end/profiler/ProfileTypeRegistry.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/profiler/ProfileView.js b/src/third_party/devtools/front_end/profiler/ProfileView.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/profiler/ProfileView.js
rename to src/third_party/devtools/front_end/profiler/ProfileView.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/profiler/ProfilesPanel.js b/src/third_party/devtools/front_end/profiler/ProfilesPanel.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/profiler/ProfilesPanel.js
rename to src/third_party/devtools/front_end/profiler/ProfilesPanel.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/profiler/TopDownProfileDataGrid.js b/src/third_party/devtools/front_end/profiler/TopDownProfileDataGrid.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/profiler/TopDownProfileDataGrid.js
rename to src/third_party/devtools/front_end/profiler/TopDownProfileDataGrid.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/profiler/heapProfiler.css b/src/third_party/devtools/front_end/profiler/heapProfiler.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/profiler/heapProfiler.css
rename to src/third_party/devtools/front_end/profiler/heapProfiler.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/profiler/liveHeapProfile.css b/src/third_party/devtools/front_end/profiler/liveHeapProfile.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/profiler/liveHeapProfile.css
rename to src/third_party/devtools/front_end/profiler/liveHeapProfile.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/profiler/module.json b/src/third_party/devtools/front_end/profiler/module.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/profiler/module.json
rename to src/third_party/devtools/front_end/profiler/module.json
diff --git a/src/cobalt/debug/remote/devtools/front_end/profiler/profileLauncherView.css b/src/third_party/devtools/front_end/profiler/profileLauncherView.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/profiler/profileLauncherView.css
rename to src/third_party/devtools/front_end/profiler/profileLauncherView.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/profiler/profiler_strings.grdp b/src/third_party/devtools/front_end/profiler/profiler_strings.grdp
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/profiler/profiler_strings.grdp
rename to src/third_party/devtools/front_end/profiler/profiler_strings.grdp
diff --git a/src/cobalt/debug/remote/devtools/front_end/profiler/profilesPanel.css b/src/third_party/devtools/front_end/profiler/profilesPanel.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/profiler/profilesPanel.css
rename to src/third_party/devtools/front_end/profiler/profilesPanel.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/profiler/profilesSidebarTree.css b/src/third_party/devtools/front_end/profiler/profilesSidebarTree.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/profiler/profilesSidebarTree.css
rename to src/third_party/devtools/front_end/profiler/profilesSidebarTree.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/protocol/InspectorBackend.js b/src/third_party/devtools/front_end/protocol/InspectorBackend.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/protocol/InspectorBackend.js
rename to src/third_party/devtools/front_end/protocol/InspectorBackend.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/protocol/NodeURL.js b/src/third_party/devtools/front_end/protocol/NodeURL.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/protocol/NodeURL.js
rename to src/third_party/devtools/front_end/protocol/NodeURL.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/protocol/module.json b/src/third_party/devtools/front_end/protocol/module.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/protocol/module.json
rename to src/third_party/devtools/front_end/protocol/module.json
diff --git a/src/cobalt/debug/remote/devtools/front_end/protocol/protocol.js b/src/third_party/devtools/front_end/protocol/protocol.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/protocol/protocol.js
rename to src/third_party/devtools/front_end/protocol/protocol.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/protocol_monitor/ProtocolMonitor.js b/src/third_party/devtools/front_end/protocol_monitor/ProtocolMonitor.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/protocol_monitor/ProtocolMonitor.js
rename to src/third_party/devtools/front_end/protocol_monitor/ProtocolMonitor.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/protocol_monitor/module.json b/src/third_party/devtools/front_end/protocol_monitor/module.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/protocol_monitor/module.json
rename to src/third_party/devtools/front_end/protocol_monitor/module.json
diff --git a/src/cobalt/debug/remote/devtools/front_end/protocol_monitor/protocolMonitor.css b/src/third_party/devtools/front_end/protocol_monitor/protocolMonitor.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/protocol_monitor/protocolMonitor.css
rename to src/third_party/devtools/front_end/protocol_monitor/protocolMonitor.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/protocol_monitor/protocol_monitor.js b/src/third_party/devtools/front_end/protocol_monitor/protocol_monitor.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/protocol_monitor/protocol_monitor.js
rename to src/third_party/devtools/front_end/protocol_monitor/protocol_monitor.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/protocol_monitor/protocol_monitor_strings.grdp b/src/third_party/devtools/front_end/protocol_monitor/protocol_monitor_strings.grdp
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/protocol_monitor/protocol_monitor_strings.grdp
rename to src/third_party/devtools/front_end/protocol_monitor/protocol_monitor_strings.grdp
diff --git a/src/cobalt/debug/remote/devtools/front_end/quick_open/CommandMenu.js b/src/third_party/devtools/front_end/quick_open/CommandMenu.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/quick_open/CommandMenu.js
rename to src/third_party/devtools/front_end/quick_open/CommandMenu.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/quick_open/FilteredListWidget.js b/src/third_party/devtools/front_end/quick_open/FilteredListWidget.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/quick_open/FilteredListWidget.js
rename to src/third_party/devtools/front_end/quick_open/FilteredListWidget.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/quick_open/HelpQuickOpen.js b/src/third_party/devtools/front_end/quick_open/HelpQuickOpen.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/quick_open/HelpQuickOpen.js
rename to src/third_party/devtools/front_end/quick_open/HelpQuickOpen.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/quick_open/QuickOpen.js b/src/third_party/devtools/front_end/quick_open/QuickOpen.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/quick_open/QuickOpen.js
rename to src/third_party/devtools/front_end/quick_open/QuickOpen.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/quick_open/filteredListWidget.css b/src/third_party/devtools/front_end/quick_open/filteredListWidget.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/quick_open/filteredListWidget.css
rename to src/third_party/devtools/front_end/quick_open/filteredListWidget.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/quick_open/module.json b/src/third_party/devtools/front_end/quick_open/module.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/quick_open/module.json
rename to src/third_party/devtools/front_end/quick_open/module.json
diff --git a/src/cobalt/debug/remote/devtools/front_end/quick_open/quick_open.js b/src/third_party/devtools/front_end/quick_open/quick_open.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/quick_open/quick_open.js
rename to src/third_party/devtools/front_end/quick_open/quick_open.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/quick_open/quick_open_strings.grdp b/src/third_party/devtools/front_end/quick_open/quick_open_strings.grdp
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/quick_open/quick_open_strings.grdp
rename to src/third_party/devtools/front_end/quick_open/quick_open_strings.grdp
diff --git a/src/cobalt/debug/remote/devtools/front_end/resources/AppManifestView.js b/src/third_party/devtools/front_end/resources/AppManifestView.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/resources/AppManifestView.js
rename to src/third_party/devtools/front_end/resources/AppManifestView.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/resources/ApplicationCacheItemsView.js b/src/third_party/devtools/front_end/resources/ApplicationCacheItemsView.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/resources/ApplicationCacheItemsView.js
rename to src/third_party/devtools/front_end/resources/ApplicationCacheItemsView.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/resources/ApplicationCacheModel.js b/src/third_party/devtools/front_end/resources/ApplicationCacheModel.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/resources/ApplicationCacheModel.js
rename to src/third_party/devtools/front_end/resources/ApplicationCacheModel.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/resources/ApplicationPanelSidebar.js b/src/third_party/devtools/front_end/resources/ApplicationPanelSidebar.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/resources/ApplicationPanelSidebar.js
rename to src/third_party/devtools/front_end/resources/ApplicationPanelSidebar.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/resources/BackgroundServiceModel.js b/src/third_party/devtools/front_end/resources/BackgroundServiceModel.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/resources/BackgroundServiceModel.js
rename to src/third_party/devtools/front_end/resources/BackgroundServiceModel.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/resources/BackgroundServiceView.js b/src/third_party/devtools/front_end/resources/BackgroundServiceView.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/resources/BackgroundServiceView.js
rename to src/third_party/devtools/front_end/resources/BackgroundServiceView.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/resources/ClearStorageView.js b/src/third_party/devtools/front_end/resources/ClearStorageView.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/resources/ClearStorageView.js
rename to src/third_party/devtools/front_end/resources/ClearStorageView.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/resources/CookieItemsView.js b/src/third_party/devtools/front_end/resources/CookieItemsView.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/resources/CookieItemsView.js
rename to src/third_party/devtools/front_end/resources/CookieItemsView.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/resources/DOMStorageItemsView.js b/src/third_party/devtools/front_end/resources/DOMStorageItemsView.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/resources/DOMStorageItemsView.js
rename to src/third_party/devtools/front_end/resources/DOMStorageItemsView.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/resources/DOMStorageModel.js b/src/third_party/devtools/front_end/resources/DOMStorageModel.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/resources/DOMStorageModel.js
rename to src/third_party/devtools/front_end/resources/DOMStorageModel.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/resources/DatabaseModel.js b/src/third_party/devtools/front_end/resources/DatabaseModel.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/resources/DatabaseModel.js
rename to src/third_party/devtools/front_end/resources/DatabaseModel.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/resources/DatabaseQueryView.js b/src/third_party/devtools/front_end/resources/DatabaseQueryView.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/resources/DatabaseQueryView.js
rename to src/third_party/devtools/front_end/resources/DatabaseQueryView.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/resources/DatabaseTableView.js b/src/third_party/devtools/front_end/resources/DatabaseTableView.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/resources/DatabaseTableView.js
rename to src/third_party/devtools/front_end/resources/DatabaseTableView.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/resources/IndexedDBModel.js b/src/third_party/devtools/front_end/resources/IndexedDBModel.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/resources/IndexedDBModel.js
rename to src/third_party/devtools/front_end/resources/IndexedDBModel.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/resources/IndexedDBViews.js b/src/third_party/devtools/front_end/resources/IndexedDBViews.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/resources/IndexedDBViews.js
rename to src/third_party/devtools/front_end/resources/IndexedDBViews.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/resources/ResourcesPanel.js b/src/third_party/devtools/front_end/resources/ResourcesPanel.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/resources/ResourcesPanel.js
rename to src/third_party/devtools/front_end/resources/ResourcesPanel.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/resources/ResourcesSection.js b/src/third_party/devtools/front_end/resources/ResourcesSection.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/resources/ResourcesSection.js
rename to src/third_party/devtools/front_end/resources/ResourcesSection.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/resources/ServiceWorkerCacheViews.js b/src/third_party/devtools/front_end/resources/ServiceWorkerCacheViews.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/resources/ServiceWorkerCacheViews.js
rename to src/third_party/devtools/front_end/resources/ServiceWorkerCacheViews.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/resources/ServiceWorkersView.js b/src/third_party/devtools/front_end/resources/ServiceWorkersView.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/resources/ServiceWorkersView.js
rename to src/third_party/devtools/front_end/resources/ServiceWorkersView.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/resources/StorageItemsView.js b/src/third_party/devtools/front_end/resources/StorageItemsView.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/resources/StorageItemsView.js
rename to src/third_party/devtools/front_end/resources/StorageItemsView.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/resources/appManifestView.css b/src/third_party/devtools/front_end/resources/appManifestView.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/resources/appManifestView.css
rename to src/third_party/devtools/front_end/resources/appManifestView.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/resources/backgroundServiceView.css b/src/third_party/devtools/front_end/resources/backgroundServiceView.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/resources/backgroundServiceView.css
rename to src/third_party/devtools/front_end/resources/backgroundServiceView.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/resources/clearStorageView.css b/src/third_party/devtools/front_end/resources/clearStorageView.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/resources/clearStorageView.css
rename to src/third_party/devtools/front_end/resources/clearStorageView.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/resources/cookieItemsView.css b/src/third_party/devtools/front_end/resources/cookieItemsView.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/resources/cookieItemsView.css
rename to src/third_party/devtools/front_end/resources/cookieItemsView.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/resources/indexedDBViews.css b/src/third_party/devtools/front_end/resources/indexedDBViews.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/resources/indexedDBViews.css
rename to src/third_party/devtools/front_end/resources/indexedDBViews.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/resources/module.json b/src/third_party/devtools/front_end/resources/module.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/resources/module.json
rename to src/third_party/devtools/front_end/resources/module.json
diff --git a/src/cobalt/debug/remote/devtools/front_end/resources/resourcesPanel.css b/src/third_party/devtools/front_end/resources/resourcesPanel.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/resources/resourcesPanel.css
rename to src/third_party/devtools/front_end/resources/resourcesPanel.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/resources/resourcesSidebar.css b/src/third_party/devtools/front_end/resources/resourcesSidebar.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/resources/resourcesSidebar.css
rename to src/third_party/devtools/front_end/resources/resourcesSidebar.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/resources/resources_strings.grdp b/src/third_party/devtools/front_end/resources/resources_strings.grdp
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/resources/resources_strings.grdp
rename to src/third_party/devtools/front_end/resources/resources_strings.grdp
diff --git a/src/cobalt/debug/remote/devtools/front_end/resources/serviceWorkerCacheViews.css b/src/third_party/devtools/front_end/resources/serviceWorkerCacheViews.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/resources/serviceWorkerCacheViews.css
rename to src/third_party/devtools/front_end/resources/serviceWorkerCacheViews.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/resources/serviceWorkersView.css b/src/third_party/devtools/front_end/resources/serviceWorkersView.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/resources/serviceWorkersView.css
rename to src/third_party/devtools/front_end/resources/serviceWorkersView.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/root.js b/src/third_party/devtools/front_end/root.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/root.js
rename to src/third_party/devtools/front_end/root.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/screencast/InputModel.js b/src/third_party/devtools/front_end/screencast/InputModel.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/screencast/InputModel.js
rename to src/third_party/devtools/front_end/screencast/InputModel.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/screencast/ScreencastApp.js b/src/third_party/devtools/front_end/screencast/ScreencastApp.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/screencast/ScreencastApp.js
rename to src/third_party/devtools/front_end/screencast/ScreencastApp.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/screencast/ScreencastView.js b/src/third_party/devtools/front_end/screencast/ScreencastView.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/screencast/ScreencastView.js
rename to src/third_party/devtools/front_end/screencast/ScreencastView.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/screencast/module.json b/src/third_party/devtools/front_end/screencast/module.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/screencast/module.json
rename to src/third_party/devtools/front_end/screencast/module.json
diff --git a/src/cobalt/debug/remote/devtools/front_end/screencast/screencast.js b/src/third_party/devtools/front_end/screencast/screencast.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/screencast/screencast.js
rename to src/third_party/devtools/front_end/screencast/screencast.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/screencast/screencastView.css b/src/third_party/devtools/front_end/screencast/screencastView.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/screencast/screencastView.css
rename to src/third_party/devtools/front_end/screencast/screencastView.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/screencast/screencast_strings.grdp b/src/third_party/devtools/front_end/screencast/screencast_strings.grdp
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/screencast/screencast_strings.grdp
rename to src/third_party/devtools/front_end/screencast/screencast_strings.grdp
diff --git a/src/cobalt/debug/remote/devtools/front_end/sdk/CPUProfileDataModel.js b/src/third_party/devtools/front_end/sdk/CPUProfileDataModel.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/sdk/CPUProfileDataModel.js
rename to src/third_party/devtools/front_end/sdk/CPUProfileDataModel.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/sdk/CPUProfilerModel.js b/src/third_party/devtools/front_end/sdk/CPUProfilerModel.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/sdk/CPUProfilerModel.js
rename to src/third_party/devtools/front_end/sdk/CPUProfilerModel.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/sdk/CSSMatchedStyles.js b/src/third_party/devtools/front_end/sdk/CSSMatchedStyles.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/sdk/CSSMatchedStyles.js
rename to src/third_party/devtools/front_end/sdk/CSSMatchedStyles.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/sdk/CSSMedia.js b/src/third_party/devtools/front_end/sdk/CSSMedia.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/sdk/CSSMedia.js
rename to src/third_party/devtools/front_end/sdk/CSSMedia.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/sdk/CSSMetadata.js b/src/third_party/devtools/front_end/sdk/CSSMetadata.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/sdk/CSSMetadata.js
rename to src/third_party/devtools/front_end/sdk/CSSMetadata.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/sdk/CSSModel.js b/src/third_party/devtools/front_end/sdk/CSSModel.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/sdk/CSSModel.js
rename to src/third_party/devtools/front_end/sdk/CSSModel.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/sdk/CSSProperty.js b/src/third_party/devtools/front_end/sdk/CSSProperty.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/sdk/CSSProperty.js
rename to src/third_party/devtools/front_end/sdk/CSSProperty.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/sdk/CSSRule.js b/src/third_party/devtools/front_end/sdk/CSSRule.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/sdk/CSSRule.js
rename to src/third_party/devtools/front_end/sdk/CSSRule.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/sdk/CSSStyleDeclaration.js b/src/third_party/devtools/front_end/sdk/CSSStyleDeclaration.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/sdk/CSSStyleDeclaration.js
rename to src/third_party/devtools/front_end/sdk/CSSStyleDeclaration.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/sdk/CSSStyleSheetHeader.js b/src/third_party/devtools/front_end/sdk/CSSStyleSheetHeader.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/sdk/CSSStyleSheetHeader.js
rename to src/third_party/devtools/front_end/sdk/CSSStyleSheetHeader.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/sdk/ChildTargetManager.js b/src/third_party/devtools/front_end/sdk/ChildTargetManager.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/sdk/ChildTargetManager.js
rename to src/third_party/devtools/front_end/sdk/ChildTargetManager.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/sdk/CompilerSourceMappingContentProvider.js b/src/third_party/devtools/front_end/sdk/CompilerSourceMappingContentProvider.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/sdk/CompilerSourceMappingContentProvider.js
rename to src/third_party/devtools/front_end/sdk/CompilerSourceMappingContentProvider.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/sdk/Connections.js b/src/third_party/devtools/front_end/sdk/Connections.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/sdk/Connections.js
rename to src/third_party/devtools/front_end/sdk/Connections.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/sdk/ConsoleModel.js b/src/third_party/devtools/front_end/sdk/ConsoleModel.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/sdk/ConsoleModel.js
rename to src/third_party/devtools/front_end/sdk/ConsoleModel.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/sdk/CookieModel.js b/src/third_party/devtools/front_end/sdk/CookieModel.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/sdk/CookieModel.js
rename to src/third_party/devtools/front_end/sdk/CookieModel.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/sdk/CookieParser.js b/src/third_party/devtools/front_end/sdk/CookieParser.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/sdk/CookieParser.js
rename to src/third_party/devtools/front_end/sdk/CookieParser.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/sdk/DOMDebuggerModel.js b/src/third_party/devtools/front_end/sdk/DOMDebuggerModel.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/sdk/DOMDebuggerModel.js
rename to src/third_party/devtools/front_end/sdk/DOMDebuggerModel.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/sdk/DOMModel.js b/src/third_party/devtools/front_end/sdk/DOMModel.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/sdk/DOMModel.js
rename to src/third_party/devtools/front_end/sdk/DOMModel.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/sdk/DebuggerModel.js b/src/third_party/devtools/front_end/sdk/DebuggerModel.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/sdk/DebuggerModel.js
rename to src/third_party/devtools/front_end/sdk/DebuggerModel.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/sdk/EmulationModel.js b/src/third_party/devtools/front_end/sdk/EmulationModel.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/sdk/EmulationModel.js
rename to src/third_party/devtools/front_end/sdk/EmulationModel.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/sdk/FilmStripModel.js b/src/third_party/devtools/front_end/sdk/FilmStripModel.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/sdk/FilmStripModel.js
rename to src/third_party/devtools/front_end/sdk/FilmStripModel.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/sdk/HARLog.js b/src/third_party/devtools/front_end/sdk/HARLog.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/sdk/HARLog.js
rename to src/third_party/devtools/front_end/sdk/HARLog.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/sdk/HeapProfilerModel.js b/src/third_party/devtools/front_end/sdk/HeapProfilerModel.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/sdk/HeapProfilerModel.js
rename to src/third_party/devtools/front_end/sdk/HeapProfilerModel.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/sdk/IsolateManager.js b/src/third_party/devtools/front_end/sdk/IsolateManager.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/sdk/IsolateManager.js
rename to src/third_party/devtools/front_end/sdk/IsolateManager.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/sdk/IssuesModel.js b/src/third_party/devtools/front_end/sdk/IssuesModel.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/sdk/IssuesModel.js
rename to src/third_party/devtools/front_end/sdk/IssuesModel.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/sdk/LayerTreeBase.js b/src/third_party/devtools/front_end/sdk/LayerTreeBase.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/sdk/LayerTreeBase.js
rename to src/third_party/devtools/front_end/sdk/LayerTreeBase.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/sdk/LogModel.js b/src/third_party/devtools/front_end/sdk/LogModel.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/sdk/LogModel.js
rename to src/third_party/devtools/front_end/sdk/LogModel.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/sdk/NetworkLog.js b/src/third_party/devtools/front_end/sdk/NetworkLog.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/sdk/NetworkLog.js
rename to src/third_party/devtools/front_end/sdk/NetworkLog.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/sdk/NetworkManager.js b/src/third_party/devtools/front_end/sdk/NetworkManager.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/sdk/NetworkManager.js
rename to src/third_party/devtools/front_end/sdk/NetworkManager.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/sdk/NetworkRequest.js b/src/third_party/devtools/front_end/sdk/NetworkRequest.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/sdk/NetworkRequest.js
rename to src/third_party/devtools/front_end/sdk/NetworkRequest.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/sdk/OverlayModel.js b/src/third_party/devtools/front_end/sdk/OverlayModel.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/sdk/OverlayModel.js
rename to src/third_party/devtools/front_end/sdk/OverlayModel.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/sdk/PaintProfiler.js b/src/third_party/devtools/front_end/sdk/PaintProfiler.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/sdk/PaintProfiler.js
rename to src/third_party/devtools/front_end/sdk/PaintProfiler.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/sdk/PerformanceMetricsModel.js b/src/third_party/devtools/front_end/sdk/PerformanceMetricsModel.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/sdk/PerformanceMetricsModel.js
rename to src/third_party/devtools/front_end/sdk/PerformanceMetricsModel.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/sdk/ProfileTreeModel.js b/src/third_party/devtools/front_end/sdk/ProfileTreeModel.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/sdk/ProfileTreeModel.js
rename to src/third_party/devtools/front_end/sdk/ProfileTreeModel.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/sdk/RemoteObject.js b/src/third_party/devtools/front_end/sdk/RemoteObject.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/sdk/RemoteObject.js
rename to src/third_party/devtools/front_end/sdk/RemoteObject.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/sdk/Resource.js b/src/third_party/devtools/front_end/sdk/Resource.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/sdk/Resource.js
rename to src/third_party/devtools/front_end/sdk/Resource.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/sdk/ResourceTreeModel.js b/src/third_party/devtools/front_end/sdk/ResourceTreeModel.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/sdk/ResourceTreeModel.js
rename to src/third_party/devtools/front_end/sdk/ResourceTreeModel.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/sdk/RuntimeModel.js b/src/third_party/devtools/front_end/sdk/RuntimeModel.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/sdk/RuntimeModel.js
rename to src/third_party/devtools/front_end/sdk/RuntimeModel.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/sdk/SDKModel.js b/src/third_party/devtools/front_end/sdk/SDKModel.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/sdk/SDKModel.js
rename to src/third_party/devtools/front_end/sdk/SDKModel.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/sdk/ScreenCaptureModel.js b/src/third_party/devtools/front_end/sdk/ScreenCaptureModel.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/sdk/ScreenCaptureModel.js
rename to src/third_party/devtools/front_end/sdk/ScreenCaptureModel.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/sdk/Script.js b/src/third_party/devtools/front_end/sdk/Script.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/sdk/Script.js
rename to src/third_party/devtools/front_end/sdk/Script.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/sdk/SecurityOriginManager.js b/src/third_party/devtools/front_end/sdk/SecurityOriginManager.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/sdk/SecurityOriginManager.js
rename to src/third_party/devtools/front_end/sdk/SecurityOriginManager.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/sdk/ServerTiming.js b/src/third_party/devtools/front_end/sdk/ServerTiming.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/sdk/ServerTiming.js
rename to src/third_party/devtools/front_end/sdk/ServerTiming.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/sdk/ServiceWorkerCacheModel.js b/src/third_party/devtools/front_end/sdk/ServiceWorkerCacheModel.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/sdk/ServiceWorkerCacheModel.js
rename to src/third_party/devtools/front_end/sdk/ServiceWorkerCacheModel.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/sdk/ServiceWorkerManager.js b/src/third_party/devtools/front_end/sdk/ServiceWorkerManager.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/sdk/ServiceWorkerManager.js
rename to src/third_party/devtools/front_end/sdk/ServiceWorkerManager.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/sdk/SourceMap.js b/src/third_party/devtools/front_end/sdk/SourceMap.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/sdk/SourceMap.js
rename to src/third_party/devtools/front_end/sdk/SourceMap.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/sdk/SourceMapManager.js b/src/third_party/devtools/front_end/sdk/SourceMapManager.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/sdk/SourceMapManager.js
rename to src/third_party/devtools/front_end/sdk/SourceMapManager.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/sdk/Target.js b/src/third_party/devtools/front_end/sdk/Target.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/sdk/Target.js
rename to src/third_party/devtools/front_end/sdk/Target.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/sdk/TargetManager.js b/src/third_party/devtools/front_end/sdk/TargetManager.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/sdk/TargetManager.js
rename to src/third_party/devtools/front_end/sdk/TargetManager.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/sdk/TracingManager.js b/src/third_party/devtools/front_end/sdk/TracingManager.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/sdk/TracingManager.js
rename to src/third_party/devtools/front_end/sdk/TracingManager.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/sdk/TracingModel.js b/src/third_party/devtools/front_end/sdk/TracingModel.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/sdk/TracingModel.js
rename to src/third_party/devtools/front_end/sdk/TracingModel.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/sdk/module.json b/src/third_party/devtools/front_end/sdk/module.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/sdk/module.json
rename to src/third_party/devtools/front_end/sdk/module.json
diff --git a/src/cobalt/debug/remote/devtools/front_end/sdk/sdk.js b/src/third_party/devtools/front_end/sdk/sdk.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/sdk/sdk.js
rename to src/third_party/devtools/front_end/sdk/sdk.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/sdk/sdk_strings.grdp b/src/third_party/devtools/front_end/sdk/sdk_strings.grdp
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/sdk/sdk_strings.grdp
rename to src/third_party/devtools/front_end/sdk/sdk_strings.grdp
diff --git a/src/cobalt/debug/remote/devtools/front_end/sdk/wasm_source_map/Cargo.lock b/src/third_party/devtools/front_end/sdk/wasm_source_map/Cargo.lock
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/sdk/wasm_source_map/Cargo.lock
rename to src/third_party/devtools/front_end/sdk/wasm_source_map/Cargo.lock
diff --git a/src/cobalt/debug/remote/devtools/front_end/sdk/wasm_source_map/Cargo.toml b/src/third_party/devtools/front_end/sdk/wasm_source_map/Cargo.toml
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/sdk/wasm_source_map/Cargo.toml
rename to src/third_party/devtools/front_end/sdk/wasm_source_map/Cargo.toml
diff --git a/src/cobalt/debug/remote/devtools/front_end/sdk/wasm_source_map/LICENSES.deps b/src/third_party/devtools/front_end/sdk/wasm_source_map/LICENSES.deps
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/sdk/wasm_source_map/LICENSES.deps
rename to src/third_party/devtools/front_end/sdk/wasm_source_map/LICENSES.deps
diff --git a/src/cobalt/debug/remote/devtools/front_end/sdk/wasm_source_map/README b/src/third_party/devtools/front_end/sdk/wasm_source_map/README
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/sdk/wasm_source_map/README
rename to src/third_party/devtools/front_end/sdk/wasm_source_map/README
diff --git a/src/cobalt/debug/remote/devtools/front_end/sdk/wasm_source_map/pkg/wasm_source_map.js b/src/third_party/devtools/front_end/sdk/wasm_source_map/pkg/wasm_source_map.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/sdk/wasm_source_map/pkg/wasm_source_map.js
rename to src/third_party/devtools/front_end/sdk/wasm_source_map/pkg/wasm_source_map.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/sdk/wasm_source_map/pkg/wasm_source_map_bg.wasm b/src/third_party/devtools/front_end/sdk/wasm_source_map/pkg/wasm_source_map_bg.wasm
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/sdk/wasm_source_map/pkg/wasm_source_map_bg.wasm
rename to src/third_party/devtools/front_end/sdk/wasm_source_map/pkg/wasm_source_map_bg.wasm
Binary files differ
diff --git a/src/cobalt/debug/remote/devtools/front_end/sdk/wasm_source_map/rustfmt.toml b/src/third_party/devtools/front_end/sdk/wasm_source_map/rustfmt.toml
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/sdk/wasm_source_map/rustfmt.toml
rename to src/third_party/devtools/front_end/sdk/wasm_source_map/rustfmt.toml
diff --git a/src/cobalt/debug/remote/devtools/front_end/sdk/wasm_source_map/src/lib.rs b/src/third_party/devtools/front_end/sdk/wasm_source_map/src/lib.rs
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/sdk/wasm_source_map/src/lib.rs
rename to src/third_party/devtools/front_end/sdk/wasm_source_map/src/lib.rs
diff --git a/src/cobalt/debug/remote/devtools/front_end/sdk/wasm_source_map/src/location.rs b/src/third_party/devtools/front_end/sdk/wasm_source_map/src/location.rs
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/sdk/wasm_source_map/src/location.rs
rename to src/third_party/devtools/front_end/sdk/wasm_source_map/src/location.rs
diff --git a/src/cobalt/debug/remote/devtools/front_end/sdk/wasm_source_map/src/log.rs b/src/third_party/devtools/front_end/sdk/wasm_source_map/src/log.rs
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/sdk/wasm_source_map/src/log.rs
rename to src/third_party/devtools/front_end/sdk/wasm_source_map/src/log.rs
diff --git a/src/cobalt/debug/remote/devtools/front_end/sdk/wasm_source_map/src/path.rs b/src/third_party/devtools/front_end/sdk/wasm_source_map/src/path.rs
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/sdk/wasm_source_map/src/path.rs
rename to src/third_party/devtools/front_end/sdk/wasm_source_map/src/path.rs
diff --git a/src/cobalt/debug/remote/devtools/front_end/sdk/wasm_source_map/src/wasm.rs b/src/third_party/devtools/front_end/sdk/wasm_source_map/src/wasm.rs
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/sdk/wasm_source_map/src/wasm.rs
rename to src/third_party/devtools/front_end/sdk/wasm_source_map/src/wasm.rs
diff --git a/src/cobalt/debug/remote/devtools/front_end/sdk/wasm_source_map/types.js b/src/third_party/devtools/front_end/sdk/wasm_source_map/types.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/sdk/wasm_source_map/types.js
rename to src/third_party/devtools/front_end/sdk/wasm_source_map/types.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/sdk_test_runner/PageMockTestRunner.js b/src/third_party/devtools/front_end/sdk_test_runner/PageMockTestRunner.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/sdk_test_runner/PageMockTestRunner.js
rename to src/third_party/devtools/front_end/sdk_test_runner/PageMockTestRunner.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/sdk_test_runner/module.json b/src/third_party/devtools/front_end/sdk_test_runner/module.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/sdk_test_runner/module.json
rename to src/third_party/devtools/front_end/sdk_test_runner/module.json
diff --git a/src/cobalt/debug/remote/devtools/front_end/search/SearchConfig.js b/src/third_party/devtools/front_end/search/SearchConfig.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/search/SearchConfig.js
rename to src/third_party/devtools/front_end/search/SearchConfig.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/search/SearchResultsPane.js b/src/third_party/devtools/front_end/search/SearchResultsPane.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/search/SearchResultsPane.js
rename to src/third_party/devtools/front_end/search/SearchResultsPane.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/search/SearchView.js b/src/third_party/devtools/front_end/search/SearchView.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/search/SearchView.js
rename to src/third_party/devtools/front_end/search/SearchView.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/search/module.json b/src/third_party/devtools/front_end/search/module.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/search/module.json
rename to src/third_party/devtools/front_end/search/module.json
diff --git a/src/cobalt/debug/remote/devtools/front_end/search/search.js b/src/third_party/devtools/front_end/search/search.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/search/search.js
rename to src/third_party/devtools/front_end/search/search.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/search/searchResultsPane.css b/src/third_party/devtools/front_end/search/searchResultsPane.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/search/searchResultsPane.css
rename to src/third_party/devtools/front_end/search/searchResultsPane.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/search/searchView.css b/src/third_party/devtools/front_end/search/searchView.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/search/searchView.css
rename to src/third_party/devtools/front_end/search/searchView.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/search/search_strings.grdp b/src/third_party/devtools/front_end/search/search_strings.grdp
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/search/search_strings.grdp
rename to src/third_party/devtools/front_end/search/search_strings.grdp
diff --git a/src/cobalt/debug/remote/devtools/front_end/security/SecurityModel.js b/src/third_party/devtools/front_end/security/SecurityModel.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/security/SecurityModel.js
rename to src/third_party/devtools/front_end/security/SecurityModel.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/security/SecurityPanel.js b/src/third_party/devtools/front_end/security/SecurityPanel.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/security/SecurityPanel.js
rename to src/third_party/devtools/front_end/security/SecurityPanel.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/security/lockIcon.css b/src/third_party/devtools/front_end/security/lockIcon.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/security/lockIcon.css
rename to src/third_party/devtools/front_end/security/lockIcon.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/security/mainView.css b/src/third_party/devtools/front_end/security/mainView.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/security/mainView.css
rename to src/third_party/devtools/front_end/security/mainView.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/security/module.json b/src/third_party/devtools/front_end/security/module.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/security/module.json
rename to src/third_party/devtools/front_end/security/module.json
diff --git a/src/cobalt/debug/remote/devtools/front_end/security/originView.css b/src/third_party/devtools/front_end/security/originView.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/security/originView.css
rename to src/third_party/devtools/front_end/security/originView.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/security/security.js b/src/third_party/devtools/front_end/security/security.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/security/security.js
rename to src/third_party/devtools/front_end/security/security.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/security/security_strings.grdp b/src/third_party/devtools/front_end/security/security_strings.grdp
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/security/security_strings.grdp
rename to src/third_party/devtools/front_end/security/security_strings.grdp
diff --git a/src/cobalt/debug/remote/devtools/front_end/security/sidebar.css b/src/third_party/devtools/front_end/security/sidebar.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/security/sidebar.css
rename to src/third_party/devtools/front_end/security/sidebar.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/security_test_runner/SecurityTestRunner.js b/src/third_party/devtools/front_end/security_test_runner/SecurityTestRunner.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/security_test_runner/SecurityTestRunner.js
rename to src/third_party/devtools/front_end/security_test_runner/SecurityTestRunner.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/security_test_runner/module.json b/src/third_party/devtools/front_end/security_test_runner/module.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/security_test_runner/module.json
rename to src/third_party/devtools/front_end/security_test_runner/module.json
diff --git a/src/cobalt/debug/remote/devtools/front_end/services/ServiceManager.js b/src/third_party/devtools/front_end/services/ServiceManager.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/services/ServiceManager.js
rename to src/third_party/devtools/front_end/services/ServiceManager.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/services/module.json b/src/third_party/devtools/front_end/services/module.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/services/module.json
rename to src/third_party/devtools/front_end/services/module.json
diff --git a/src/cobalt/debug/remote/devtools/front_end/services/services.js b/src/third_party/devtools/front_end/services/services.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/services/services.js
rename to src/third_party/devtools/front_end/services/services.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/settings/FrameworkBlackboxSettingsTab.js b/src/third_party/devtools/front_end/settings/FrameworkBlackboxSettingsTab.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/settings/FrameworkBlackboxSettingsTab.js
rename to src/third_party/devtools/front_end/settings/FrameworkBlackboxSettingsTab.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/settings/SettingsScreen.js b/src/third_party/devtools/front_end/settings/SettingsScreen.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/settings/SettingsScreen.js
rename to src/third_party/devtools/front_end/settings/SettingsScreen.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/settings/frameworkBlackboxSettingsTab.css b/src/third_party/devtools/front_end/settings/frameworkBlackboxSettingsTab.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/settings/frameworkBlackboxSettingsTab.css
rename to src/third_party/devtools/front_end/settings/frameworkBlackboxSettingsTab.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/settings/module.json b/src/third_party/devtools/front_end/settings/module.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/settings/module.json
rename to src/third_party/devtools/front_end/settings/module.json
diff --git a/src/cobalt/debug/remote/devtools/front_end/settings/settings.js b/src/third_party/devtools/front_end/settings/settings.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/settings/settings.js
rename to src/third_party/devtools/front_end/settings/settings.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/settings/settingsScreen.css b/src/third_party/devtools/front_end/settings/settingsScreen.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/settings/settingsScreen.css
rename to src/third_party/devtools/front_end/settings/settingsScreen.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/settings/settings_strings.grdp b/src/third_party/devtools/front_end/settings/settings_strings.grdp
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/settings/settings_strings.grdp
rename to src/third_party/devtools/front_end/settings/settings_strings.grdp
diff --git a/src/cobalt/debug/remote/devtools/front_end/shell.json b/src/third_party/devtools/front_end/shell.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/shell.json
rename to src/third_party/devtools/front_end/shell.json
diff --git a/src/cobalt/debug/remote/devtools/front_end/snippets/ScriptSnippetFileSystem.js b/src/third_party/devtools/front_end/snippets/ScriptSnippetFileSystem.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/snippets/ScriptSnippetFileSystem.js
rename to src/third_party/devtools/front_end/snippets/ScriptSnippetFileSystem.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/snippets/SnippetsQuickOpen.js b/src/third_party/devtools/front_end/snippets/SnippetsQuickOpen.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/snippets/SnippetsQuickOpen.js
rename to src/third_party/devtools/front_end/snippets/SnippetsQuickOpen.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/snippets/module.json b/src/third_party/devtools/front_end/snippets/module.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/snippets/module.json
rename to src/third_party/devtools/front_end/snippets/module.json
diff --git a/src/cobalt/debug/remote/devtools/front_end/snippets/snippets.js b/src/third_party/devtools/front_end/snippets/snippets.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/snippets/snippets.js
rename to src/third_party/devtools/front_end/snippets/snippets.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/snippets/snippets_strings.grdp b/src/third_party/devtools/front_end/snippets/snippets_strings.grdp
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/snippets/snippets_strings.grdp
rename to src/third_party/devtools/front_end/snippets/snippets_strings.grdp
diff --git a/src/cobalt/debug/remote/devtools/front_end/source_frame/BinaryResourceViewFactory.js b/src/third_party/devtools/front_end/source_frame/BinaryResourceViewFactory.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/source_frame/BinaryResourceViewFactory.js
rename to src/third_party/devtools/front_end/source_frame/BinaryResourceViewFactory.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/source_frame/FontView.js b/src/third_party/devtools/front_end/source_frame/FontView.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/source_frame/FontView.js
rename to src/third_party/devtools/front_end/source_frame/FontView.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/source_frame/ImageView.js b/src/third_party/devtools/front_end/source_frame/ImageView.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/source_frame/ImageView.js
rename to src/third_party/devtools/front_end/source_frame/ImageView.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/source_frame/JSONView.js b/src/third_party/devtools/front_end/source_frame/JSONView.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/source_frame/JSONView.js
rename to src/third_party/devtools/front_end/source_frame/JSONView.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/source_frame/PreviewFactory.js b/src/third_party/devtools/front_end/source_frame/PreviewFactory.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/source_frame/PreviewFactory.js
rename to src/third_party/devtools/front_end/source_frame/PreviewFactory.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/source_frame/ResourceSourceFrame.js b/src/third_party/devtools/front_end/source_frame/ResourceSourceFrame.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/source_frame/ResourceSourceFrame.js
rename to src/third_party/devtools/front_end/source_frame/ResourceSourceFrame.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/source_frame/SourceCodeDiff.js b/src/third_party/devtools/front_end/source_frame/SourceCodeDiff.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/source_frame/SourceCodeDiff.js
rename to src/third_party/devtools/front_end/source_frame/SourceCodeDiff.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/source_frame/SourceFrame.js b/src/third_party/devtools/front_end/source_frame/SourceFrame.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/source_frame/SourceFrame.js
rename to src/third_party/devtools/front_end/source_frame/SourceFrame.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/source_frame/SourcesTextEditor.js b/src/third_party/devtools/front_end/source_frame/SourcesTextEditor.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/source_frame/SourcesTextEditor.js
rename to src/third_party/devtools/front_end/source_frame/SourcesTextEditor.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/source_frame/XMLView.js b/src/third_party/devtools/front_end/source_frame/XMLView.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/source_frame/XMLView.js
rename to src/third_party/devtools/front_end/source_frame/XMLView.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/source_frame/fontView.css b/src/third_party/devtools/front_end/source_frame/fontView.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/source_frame/fontView.css
rename to src/third_party/devtools/front_end/source_frame/fontView.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/source_frame/imageView.css b/src/third_party/devtools/front_end/source_frame/imageView.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/source_frame/imageView.css
rename to src/third_party/devtools/front_end/source_frame/imageView.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/source_frame/jsonView.css b/src/third_party/devtools/front_end/source_frame/jsonView.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/source_frame/jsonView.css
rename to src/third_party/devtools/front_end/source_frame/jsonView.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/source_frame/messagesPopover.css b/src/third_party/devtools/front_end/source_frame/messagesPopover.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/source_frame/messagesPopover.css
rename to src/third_party/devtools/front_end/source_frame/messagesPopover.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/source_frame/module.json b/src/third_party/devtools/front_end/source_frame/module.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/source_frame/module.json
rename to src/third_party/devtools/front_end/source_frame/module.json
diff --git a/src/cobalt/debug/remote/devtools/front_end/source_frame/resourceSourceFrame.css b/src/third_party/devtools/front_end/source_frame/resourceSourceFrame.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/source_frame/resourceSourceFrame.css
rename to src/third_party/devtools/front_end/source_frame/resourceSourceFrame.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/source_frame/source_frame.js b/src/third_party/devtools/front_end/source_frame/source_frame.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/source_frame/source_frame.js
rename to src/third_party/devtools/front_end/source_frame/source_frame.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/source_frame/source_frame_strings.grdp b/src/third_party/devtools/front_end/source_frame/source_frame_strings.grdp
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/source_frame/source_frame_strings.grdp
rename to src/third_party/devtools/front_end/source_frame/source_frame_strings.grdp
diff --git a/src/cobalt/debug/remote/devtools/front_end/source_frame/xmlTree.css b/src/third_party/devtools/front_end/source_frame/xmlTree.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/source_frame/xmlTree.css
rename to src/third_party/devtools/front_end/source_frame/xmlTree.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/source_frame/xmlView.css b/src/third_party/devtools/front_end/source_frame/xmlView.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/source_frame/xmlView.css
rename to src/third_party/devtools/front_end/source_frame/xmlView.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/sources/AddSourceMapURLDialog.js b/src/third_party/devtools/front_end/sources/AddSourceMapURLDialog.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/sources/AddSourceMapURLDialog.js
rename to src/third_party/devtools/front_end/sources/AddSourceMapURLDialog.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/sources/BreakpointEditDialog.js b/src/third_party/devtools/front_end/sources/BreakpointEditDialog.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/sources/BreakpointEditDialog.js
rename to src/third_party/devtools/front_end/sources/BreakpointEditDialog.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/sources/CSSPlugin.js b/src/third_party/devtools/front_end/sources/CSSPlugin.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/sources/CSSPlugin.js
rename to src/third_party/devtools/front_end/sources/CSSPlugin.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/sources/CallStackSidebarPane.js b/src/third_party/devtools/front_end/sources/CallStackSidebarPane.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/sources/CallStackSidebarPane.js
rename to src/third_party/devtools/front_end/sources/CallStackSidebarPane.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/sources/CoveragePlugin.js b/src/third_party/devtools/front_end/sources/CoveragePlugin.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/sources/CoveragePlugin.js
rename to src/third_party/devtools/front_end/sources/CoveragePlugin.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/sources/DebuggerPausedMessage.js b/src/third_party/devtools/front_end/sources/DebuggerPausedMessage.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/sources/DebuggerPausedMessage.js
rename to src/third_party/devtools/front_end/sources/DebuggerPausedMessage.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/sources/DebuggerPlugin.js b/src/third_party/devtools/front_end/sources/DebuggerPlugin.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/sources/DebuggerPlugin.js
rename to src/third_party/devtools/front_end/sources/DebuggerPlugin.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/sources/EditingLocationHistoryManager.js b/src/third_party/devtools/front_end/sources/EditingLocationHistoryManager.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/sources/EditingLocationHistoryManager.js
rename to src/third_party/devtools/front_end/sources/EditingLocationHistoryManager.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/sources/FilePathScoreFunction.js b/src/third_party/devtools/front_end/sources/FilePathScoreFunction.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/sources/FilePathScoreFunction.js
rename to src/third_party/devtools/front_end/sources/FilePathScoreFunction.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/sources/FilteredUISourceCodeListProvider.js b/src/third_party/devtools/front_end/sources/FilteredUISourceCodeListProvider.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/sources/FilteredUISourceCodeListProvider.js
rename to src/third_party/devtools/front_end/sources/FilteredUISourceCodeListProvider.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/sources/GoToLineQuickOpen.js b/src/third_party/devtools/front_end/sources/GoToLineQuickOpen.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/sources/GoToLineQuickOpen.js
rename to src/third_party/devtools/front_end/sources/GoToLineQuickOpen.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/sources/GutterDiffPlugin.js b/src/third_party/devtools/front_end/sources/GutterDiffPlugin.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/sources/GutterDiffPlugin.js
rename to src/third_party/devtools/front_end/sources/GutterDiffPlugin.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/sources/InplaceFormatterEditorAction.js b/src/third_party/devtools/front_end/sources/InplaceFormatterEditorAction.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/sources/InplaceFormatterEditorAction.js
rename to src/third_party/devtools/front_end/sources/InplaceFormatterEditorAction.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/sources/JavaScriptBreakpointsSidebarPane.js b/src/third_party/devtools/front_end/sources/JavaScriptBreakpointsSidebarPane.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/sources/JavaScriptBreakpointsSidebarPane.js
rename to src/third_party/devtools/front_end/sources/JavaScriptBreakpointsSidebarPane.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/sources/JavaScriptCompilerPlugin.js b/src/third_party/devtools/front_end/sources/JavaScriptCompilerPlugin.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/sources/JavaScriptCompilerPlugin.js
rename to src/third_party/devtools/front_end/sources/JavaScriptCompilerPlugin.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/sources/NavigatorView.js b/src/third_party/devtools/front_end/sources/NavigatorView.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/sources/NavigatorView.js
rename to src/third_party/devtools/front_end/sources/NavigatorView.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/sources/OpenFileQuickOpen.js b/src/third_party/devtools/front_end/sources/OpenFileQuickOpen.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/sources/OpenFileQuickOpen.js
rename to src/third_party/devtools/front_end/sources/OpenFileQuickOpen.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/sources/OutlineQuickOpen.js b/src/third_party/devtools/front_end/sources/OutlineQuickOpen.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/sources/OutlineQuickOpen.js
rename to src/third_party/devtools/front_end/sources/OutlineQuickOpen.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/sources/ScopeChainSidebarPane.js b/src/third_party/devtools/front_end/sources/ScopeChainSidebarPane.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/sources/ScopeChainSidebarPane.js
rename to src/third_party/devtools/front_end/sources/ScopeChainSidebarPane.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/sources/ScriptFormatterEditorAction.js b/src/third_party/devtools/front_end/sources/ScriptFormatterEditorAction.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/sources/ScriptFormatterEditorAction.js
rename to src/third_party/devtools/front_end/sources/ScriptFormatterEditorAction.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/sources/ScriptOriginPlugin.js b/src/third_party/devtools/front_end/sources/ScriptOriginPlugin.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/sources/ScriptOriginPlugin.js
rename to src/third_party/devtools/front_end/sources/ScriptOriginPlugin.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/sources/SearchSourcesView.js b/src/third_party/devtools/front_end/sources/SearchSourcesView.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/sources/SearchSourcesView.js
rename to src/third_party/devtools/front_end/sources/SearchSourcesView.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/sources/SimpleHistoryManager.js b/src/third_party/devtools/front_end/sources/SimpleHistoryManager.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/sources/SimpleHistoryManager.js
rename to src/third_party/devtools/front_end/sources/SimpleHistoryManager.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/sources/SnippetsPlugin.js b/src/third_party/devtools/front_end/sources/SnippetsPlugin.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/sources/SnippetsPlugin.js
rename to src/third_party/devtools/front_end/sources/SnippetsPlugin.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/sources/SourceFormatter.js b/src/third_party/devtools/front_end/sources/SourceFormatter.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/sources/SourceFormatter.js
rename to src/third_party/devtools/front_end/sources/SourceFormatter.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/sources/SourceMapNamesResolver.js b/src/third_party/devtools/front_end/sources/SourceMapNamesResolver.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/sources/SourceMapNamesResolver.js
rename to src/third_party/devtools/front_end/sources/SourceMapNamesResolver.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/sources/SourcesNavigator.js b/src/third_party/devtools/front_end/sources/SourcesNavigator.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/sources/SourcesNavigator.js
rename to src/third_party/devtools/front_end/sources/SourcesNavigator.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/sources/SourcesPanel.js b/src/third_party/devtools/front_end/sources/SourcesPanel.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/sources/SourcesPanel.js
rename to src/third_party/devtools/front_end/sources/SourcesPanel.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/sources/SourcesSearchScope.js b/src/third_party/devtools/front_end/sources/SourcesSearchScope.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/sources/SourcesSearchScope.js
rename to src/third_party/devtools/front_end/sources/SourcesSearchScope.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/sources/SourcesView.js b/src/third_party/devtools/front_end/sources/SourcesView.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/sources/SourcesView.js
rename to src/third_party/devtools/front_end/sources/SourcesView.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/sources/TabbedEditorContainer.js b/src/third_party/devtools/front_end/sources/TabbedEditorContainer.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/sources/TabbedEditorContainer.js
rename to src/third_party/devtools/front_end/sources/TabbedEditorContainer.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/sources/ThreadsSidebarPane.js b/src/third_party/devtools/front_end/sources/ThreadsSidebarPane.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/sources/ThreadsSidebarPane.js
rename to src/third_party/devtools/front_end/sources/ThreadsSidebarPane.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/sources/UISourceCodeFrame.js b/src/third_party/devtools/front_end/sources/UISourceCodeFrame.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/sources/UISourceCodeFrame.js
rename to src/third_party/devtools/front_end/sources/UISourceCodeFrame.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/sources/WatchExpressionsSidebarPane.js b/src/third_party/devtools/front_end/sources/WatchExpressionsSidebarPane.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/sources/WatchExpressionsSidebarPane.js
rename to src/third_party/devtools/front_end/sources/WatchExpressionsSidebarPane.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/sources/breakpointEditDialog.css b/src/third_party/devtools/front_end/sources/breakpointEditDialog.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/sources/breakpointEditDialog.css
rename to src/third_party/devtools/front_end/sources/breakpointEditDialog.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/sources/callStackSidebarPane.css b/src/third_party/devtools/front_end/sources/callStackSidebarPane.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/sources/callStackSidebarPane.css
rename to src/third_party/devtools/front_end/sources/callStackSidebarPane.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/sources/debuggerPausedMessage.css b/src/third_party/devtools/front_end/sources/debuggerPausedMessage.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/sources/debuggerPausedMessage.css
rename to src/third_party/devtools/front_end/sources/debuggerPausedMessage.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/sources/dialog.css b/src/third_party/devtools/front_end/sources/dialog.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/sources/dialog.css
rename to src/third_party/devtools/front_end/sources/dialog.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/sources/javaScriptBreakpointsSidebarPane.css b/src/third_party/devtools/front_end/sources/javaScriptBreakpointsSidebarPane.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/sources/javaScriptBreakpointsSidebarPane.css
rename to src/third_party/devtools/front_end/sources/javaScriptBreakpointsSidebarPane.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/sources/module.json b/src/third_party/devtools/front_end/sources/module.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/sources/module.json
rename to src/third_party/devtools/front_end/sources/module.json
diff --git a/src/cobalt/debug/remote/devtools/front_end/sources/navigatorTree.css b/src/third_party/devtools/front_end/sources/navigatorTree.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/sources/navigatorTree.css
rename to src/third_party/devtools/front_end/sources/navigatorTree.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/sources/navigatorView.css b/src/third_party/devtools/front_end/sources/navigatorView.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/sources/navigatorView.css
rename to src/third_party/devtools/front_end/sources/navigatorView.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/sources/scopeChainSidebarPane.css b/src/third_party/devtools/front_end/sources/scopeChainSidebarPane.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/sources/scopeChainSidebarPane.css
rename to src/third_party/devtools/front_end/sources/scopeChainSidebarPane.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/sources/serviceWorkersSidebar.css b/src/third_party/devtools/front_end/sources/serviceWorkersSidebar.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/sources/serviceWorkersSidebar.css
rename to src/third_party/devtools/front_end/sources/serviceWorkersSidebar.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/sources/sourcesPanel.css b/src/third_party/devtools/front_end/sources/sourcesPanel.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/sources/sourcesPanel.css
rename to src/third_party/devtools/front_end/sources/sourcesPanel.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/sources/sourcesView.css b/src/third_party/devtools/front_end/sources/sourcesView.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/sources/sourcesView.css
rename to src/third_party/devtools/front_end/sources/sourcesView.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/sources/sources_strings.grdp b/src/third_party/devtools/front_end/sources/sources_strings.grdp
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/sources/sources_strings.grdp
rename to src/third_party/devtools/front_end/sources/sources_strings.grdp
diff --git a/src/cobalt/debug/remote/devtools/front_end/sources/threadsSidebarPane.css b/src/third_party/devtools/front_end/sources/threadsSidebarPane.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/sources/threadsSidebarPane.css
rename to src/third_party/devtools/front_end/sources/threadsSidebarPane.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/sources/watchExpressionsSidebarPane.css b/src/third_party/devtools/front_end/sources/watchExpressionsSidebarPane.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/sources/watchExpressionsSidebarPane.css
rename to src/third_party/devtools/front_end/sources/watchExpressionsSidebarPane.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/sources_test_runner/AutocompleteTestRunner.js b/src/third_party/devtools/front_end/sources_test_runner/AutocompleteTestRunner.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/sources_test_runner/AutocompleteTestRunner.js
rename to src/third_party/devtools/front_end/sources_test_runner/AutocompleteTestRunner.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/sources_test_runner/DebuggerTestRunner.js b/src/third_party/devtools/front_end/sources_test_runner/DebuggerTestRunner.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/sources_test_runner/DebuggerTestRunner.js
rename to src/third_party/devtools/front_end/sources_test_runner/DebuggerTestRunner.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/sources_test_runner/EditorTestRunner.js b/src/third_party/devtools/front_end/sources_test_runner/EditorTestRunner.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/sources_test_runner/EditorTestRunner.js
rename to src/third_party/devtools/front_end/sources_test_runner/EditorTestRunner.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/sources_test_runner/LiveEditTestRunner.js b/src/third_party/devtools/front_end/sources_test_runner/LiveEditTestRunner.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/sources_test_runner/LiveEditTestRunner.js
rename to src/third_party/devtools/front_end/sources_test_runner/LiveEditTestRunner.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/sources_test_runner/SearchTestRunner.js b/src/third_party/devtools/front_end/sources_test_runner/SearchTestRunner.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/sources_test_runner/SearchTestRunner.js
rename to src/third_party/devtools/front_end/sources_test_runner/SearchTestRunner.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/sources_test_runner/SourcesTestRunner.js b/src/third_party/devtools/front_end/sources_test_runner/SourcesTestRunner.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/sources_test_runner/SourcesTestRunner.js
rename to src/third_party/devtools/front_end/sources_test_runner/SourcesTestRunner.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/sources_test_runner/module.json b/src/third_party/devtools/front_end/sources_test_runner/module.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/sources_test_runner/module.json
rename to src/third_party/devtools/front_end/sources_test_runner/module.json
diff --git a/src/cobalt/debug/remote/devtools/front_end/test_runner/TestRunner.js b/src/third_party/devtools/front_end/test_runner/TestRunner.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/test_runner/TestRunner.js
rename to src/third_party/devtools/front_end/test_runner/TestRunner.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/test_runner/module.json b/src/third_party/devtools/front_end/test_runner/module.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/test_runner/module.json
rename to src/third_party/devtools/front_end/test_runner/module.json
diff --git a/src/cobalt/debug/remote/devtools/front_end/test_runner/test_runner.js b/src/third_party/devtools/front_end/test_runner/test_runner.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/test_runner/test_runner.js
rename to src/third_party/devtools/front_end/test_runner/test_runner.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/text_editor/CodeMirrorTextEditor.js b/src/third_party/devtools/front_end/text_editor/CodeMirrorTextEditor.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/text_editor/CodeMirrorTextEditor.js
rename to src/third_party/devtools/front_end/text_editor/CodeMirrorTextEditor.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/text_editor/CodeMirrorUtils.js b/src/third_party/devtools/front_end/text_editor/CodeMirrorUtils.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/text_editor/CodeMirrorUtils.js
rename to src/third_party/devtools/front_end/text_editor/CodeMirrorUtils.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/text_editor/TextEditorAutocompleteController.js b/src/third_party/devtools/front_end/text_editor/TextEditorAutocompleteController.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/text_editor/TextEditorAutocompleteController.js
rename to src/third_party/devtools/front_end/text_editor/TextEditorAutocompleteController.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/text_editor/autocompleteTooltip.css b/src/third_party/devtools/front_end/text_editor/autocompleteTooltip.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/text_editor/autocompleteTooltip.css
rename to src/third_party/devtools/front_end/text_editor/autocompleteTooltip.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/text_editor/cmdevtools.css b/src/third_party/devtools/front_end/text_editor/cmdevtools.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/text_editor/cmdevtools.css
rename to src/third_party/devtools/front_end/text_editor/cmdevtools.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/text_editor/module.json b/src/third_party/devtools/front_end/text_editor/module.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/text_editor/module.json
rename to src/third_party/devtools/front_end/text_editor/module.json
diff --git a/src/cobalt/debug/remote/devtools/front_end/text_editor/text_editor.js b/src/third_party/devtools/front_end/text_editor/text_editor.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/text_editor/text_editor.js
rename to src/third_party/devtools/front_end/text_editor/text_editor.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/text_editor/text_editor_strings.grdp b/src/third_party/devtools/front_end/text_editor/text_editor_strings.grdp
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/text_editor/text_editor_strings.grdp
rename to src/third_party/devtools/front_end/text_editor/text_editor_strings.grdp
diff --git a/src/cobalt/debug/remote/devtools/front_end/text_utils/Text.js b/src/third_party/devtools/front_end/text_utils/Text.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/text_utils/Text.js
rename to src/third_party/devtools/front_end/text_utils/Text.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/text_utils/TextRange.js b/src/third_party/devtools/front_end/text_utils/TextRange.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/text_utils/TextRange.js
rename to src/third_party/devtools/front_end/text_utils/TextRange.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/text_utils/TextUtils.js b/src/third_party/devtools/front_end/text_utils/TextUtils.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/text_utils/TextUtils.js
rename to src/third_party/devtools/front_end/text_utils/TextUtils.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/text_utils/module.json b/src/third_party/devtools/front_end/text_utils/module.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/text_utils/module.json
rename to src/third_party/devtools/front_end/text_utils/module.json
diff --git a/src/cobalt/debug/remote/devtools/front_end/text_utils/text_utils.js b/src/third_party/devtools/front_end/text_utils/text_utils.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/text_utils/text_utils.js
rename to src/third_party/devtools/front_end/text_utils/text_utils.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/third_party/README.md b/src/third_party/devtools/front_end/third_party/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/third_party/README.md
rename to src/third_party/devtools/front_end/third_party/README.md
diff --git a/src/cobalt/debug/remote/devtools/front_end/timeline/CountersGraph.js b/src/third_party/devtools/front_end/timeline/CountersGraph.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/timeline/CountersGraph.js
rename to src/third_party/devtools/front_end/timeline/CountersGraph.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/timeline/EventsTimelineTreeView.js b/src/third_party/devtools/front_end/timeline/EventsTimelineTreeView.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/timeline/EventsTimelineTreeView.js
rename to src/third_party/devtools/front_end/timeline/EventsTimelineTreeView.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/timeline/ExtensionTracingSession.js b/src/third_party/devtools/front_end/timeline/ExtensionTracingSession.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/timeline/ExtensionTracingSession.js
rename to src/third_party/devtools/front_end/timeline/ExtensionTracingSession.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/timeline/PerformanceModel.js b/src/third_party/devtools/front_end/timeline/PerformanceModel.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/timeline/PerformanceModel.js
rename to src/third_party/devtools/front_end/timeline/PerformanceModel.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/timeline/TimelineController.js b/src/third_party/devtools/front_end/timeline/TimelineController.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/timeline/TimelineController.js
rename to src/third_party/devtools/front_end/timeline/TimelineController.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/timeline/TimelineDetailsView.js b/src/third_party/devtools/front_end/timeline/TimelineDetailsView.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/timeline/TimelineDetailsView.js
rename to src/third_party/devtools/front_end/timeline/TimelineDetailsView.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/timeline/TimelineEventOverview.js b/src/third_party/devtools/front_end/timeline/TimelineEventOverview.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/timeline/TimelineEventOverview.js
rename to src/third_party/devtools/front_end/timeline/TimelineEventOverview.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/timeline/TimelineFilters.js b/src/third_party/devtools/front_end/timeline/TimelineFilters.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/timeline/TimelineFilters.js
rename to src/third_party/devtools/front_end/timeline/TimelineFilters.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/timeline/TimelineFlameChartDataProvider.js b/src/third_party/devtools/front_end/timeline/TimelineFlameChartDataProvider.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/timeline/TimelineFlameChartDataProvider.js
rename to src/third_party/devtools/front_end/timeline/TimelineFlameChartDataProvider.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/timeline/TimelineFlameChartNetworkDataProvider.js b/src/third_party/devtools/front_end/timeline/TimelineFlameChartNetworkDataProvider.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/timeline/TimelineFlameChartNetworkDataProvider.js
rename to src/third_party/devtools/front_end/timeline/TimelineFlameChartNetworkDataProvider.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/timeline/TimelineFlameChartView.js b/src/third_party/devtools/front_end/timeline/TimelineFlameChartView.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/timeline/TimelineFlameChartView.js
rename to src/third_party/devtools/front_end/timeline/TimelineFlameChartView.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/timeline/TimelineHistoryManager.js b/src/third_party/devtools/front_end/timeline/TimelineHistoryManager.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/timeline/TimelineHistoryManager.js
rename to src/third_party/devtools/front_end/timeline/TimelineHistoryManager.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/timeline/TimelineLayersView.js b/src/third_party/devtools/front_end/timeline/TimelineLayersView.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/timeline/TimelineLayersView.js
rename to src/third_party/devtools/front_end/timeline/TimelineLayersView.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/timeline/TimelineLoader.js b/src/third_party/devtools/front_end/timeline/TimelineLoader.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/timeline/TimelineLoader.js
rename to src/third_party/devtools/front_end/timeline/TimelineLoader.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/timeline/TimelinePaintProfilerView.js b/src/third_party/devtools/front_end/timeline/TimelinePaintProfilerView.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/timeline/TimelinePaintProfilerView.js
rename to src/third_party/devtools/front_end/timeline/TimelinePaintProfilerView.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/timeline/TimelinePanel.js b/src/third_party/devtools/front_end/timeline/TimelinePanel.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/timeline/TimelinePanel.js
rename to src/third_party/devtools/front_end/timeline/TimelinePanel.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/timeline/TimelineTreeView.js b/src/third_party/devtools/front_end/timeline/TimelineTreeView.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/timeline/TimelineTreeView.js
rename to src/third_party/devtools/front_end/timeline/TimelineTreeView.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/timeline/TimelineUIUtils.js b/src/third_party/devtools/front_end/timeline/TimelineUIUtils.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/timeline/TimelineUIUtils.js
rename to src/third_party/devtools/front_end/timeline/TimelineUIUtils.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/timeline/UIDevtoolsController.js b/src/third_party/devtools/front_end/timeline/UIDevtoolsController.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/timeline/UIDevtoolsController.js
rename to src/third_party/devtools/front_end/timeline/UIDevtoolsController.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/timeline/UIDevtoolsUtils.js b/src/third_party/devtools/front_end/timeline/UIDevtoolsUtils.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/timeline/UIDevtoolsUtils.js
rename to src/third_party/devtools/front_end/timeline/UIDevtoolsUtils.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/timeline/historyToolbarButton.css b/src/third_party/devtools/front_end/timeline/historyToolbarButton.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/timeline/historyToolbarButton.css
rename to src/third_party/devtools/front_end/timeline/historyToolbarButton.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/timeline/invalidationsTree.css b/src/third_party/devtools/front_end/timeline/invalidationsTree.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/timeline/invalidationsTree.css
rename to src/third_party/devtools/front_end/timeline/invalidationsTree.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/timeline/module.json b/src/third_party/devtools/front_end/timeline/module.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/timeline/module.json
rename to src/third_party/devtools/front_end/timeline/module.json
diff --git a/src/cobalt/debug/remote/devtools/front_end/timeline/timelineFlamechartPopover.css b/src/third_party/devtools/front_end/timeline/timelineFlamechartPopover.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/timeline/timelineFlamechartPopover.css
rename to src/third_party/devtools/front_end/timeline/timelineFlamechartPopover.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/timeline/timelineHistoryManager.css b/src/third_party/devtools/front_end/timeline/timelineHistoryManager.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/timeline/timelineHistoryManager.css
rename to src/third_party/devtools/front_end/timeline/timelineHistoryManager.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/timeline/timelinePaintProfiler.css b/src/third_party/devtools/front_end/timeline/timelinePaintProfiler.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/timeline/timelinePaintProfiler.css
rename to src/third_party/devtools/front_end/timeline/timelinePaintProfiler.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/timeline/timelinePanel.css b/src/third_party/devtools/front_end/timeline/timelinePanel.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/timeline/timelinePanel.css
rename to src/third_party/devtools/front_end/timeline/timelinePanel.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/timeline/timelineStatusDialog.css b/src/third_party/devtools/front_end/timeline/timelineStatusDialog.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/timeline/timelineStatusDialog.css
rename to src/third_party/devtools/front_end/timeline/timelineStatusDialog.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/timeline/timeline_strings.grdp b/src/third_party/devtools/front_end/timeline/timeline_strings.grdp
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/timeline/timeline_strings.grdp
rename to src/third_party/devtools/front_end/timeline/timeline_strings.grdp
diff --git a/src/cobalt/debug/remote/devtools/front_end/timeline_model/TimelineFrameModel.js b/src/third_party/devtools/front_end/timeline_model/TimelineFrameModel.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/timeline_model/TimelineFrameModel.js
rename to src/third_party/devtools/front_end/timeline_model/TimelineFrameModel.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/timeline_model/TimelineIRModel.js b/src/third_party/devtools/front_end/timeline_model/TimelineIRModel.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/timeline_model/TimelineIRModel.js
rename to src/third_party/devtools/front_end/timeline_model/TimelineIRModel.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/timeline_model/TimelineJSProfile.js b/src/third_party/devtools/front_end/timeline_model/TimelineJSProfile.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/timeline_model/TimelineJSProfile.js
rename to src/third_party/devtools/front_end/timeline_model/TimelineJSProfile.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/timeline_model/TimelineModel.js b/src/third_party/devtools/front_end/timeline_model/TimelineModel.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/timeline_model/TimelineModel.js
rename to src/third_party/devtools/front_end/timeline_model/TimelineModel.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/timeline_model/TimelineModelFilter.js b/src/third_party/devtools/front_end/timeline_model/TimelineModelFilter.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/timeline_model/TimelineModelFilter.js
rename to src/third_party/devtools/front_end/timeline_model/TimelineModelFilter.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/timeline_model/TimelineProfileTree.js b/src/third_party/devtools/front_end/timeline_model/TimelineProfileTree.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/timeline_model/TimelineProfileTree.js
rename to src/third_party/devtools/front_end/timeline_model/TimelineProfileTree.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/timeline_model/TracingLayerTree.js b/src/third_party/devtools/front_end/timeline_model/TracingLayerTree.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/timeline_model/TracingLayerTree.js
rename to src/third_party/devtools/front_end/timeline_model/TracingLayerTree.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/timeline_model/module.json b/src/third_party/devtools/front_end/timeline_model/module.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/timeline_model/module.json
rename to src/third_party/devtools/front_end/timeline_model/module.json
diff --git a/src/cobalt/debug/remote/devtools/front_end/timeline_model/timeline_model.js b/src/third_party/devtools/front_end/timeline_model/timeline_model.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/timeline_model/timeline_model.js
rename to src/third_party/devtools/front_end/timeline_model/timeline_model.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/timeline_model/timeline_model_strings.grdp b/src/third_party/devtools/front_end/timeline_model/timeline_model_strings.grdp
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/timeline_model/timeline_model_strings.grdp
rename to src/third_party/devtools/front_end/timeline_model/timeline_model_strings.grdp
diff --git a/src/cobalt/debug/remote/devtools/front_end/toolbox.html b/src/third_party/devtools/front_end/toolbox.html
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/toolbox.html
rename to src/third_party/devtools/front_end/toolbox.html
diff --git a/src/cobalt/debug/remote/devtools/front_end/toolbox.js b/src/third_party/devtools/front_end/toolbox.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/toolbox.js
rename to src/third_party/devtools/front_end/toolbox.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/toolbox.json b/src/third_party/devtools/front_end/toolbox.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/toolbox.json
rename to src/third_party/devtools/front_end/toolbox.json
diff --git a/src/cobalt/debug/remote/devtools/front_end/toolbox_bootstrap/Toolbox.js b/src/third_party/devtools/front_end/toolbox_bootstrap/Toolbox.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/toolbox_bootstrap/Toolbox.js
rename to src/third_party/devtools/front_end/toolbox_bootstrap/Toolbox.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/toolbox_bootstrap/module.json b/src/third_party/devtools/front_end/toolbox_bootstrap/module.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/toolbox_bootstrap/module.json
rename to src/third_party/devtools/front_end/toolbox_bootstrap/module.json
diff --git a/src/cobalt/debug/remote/devtools/front_end/ui/ARIAUtils.js b/src/third_party/devtools/front_end/ui/ARIAUtils.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/ui/ARIAUtils.js
rename to src/third_party/devtools/front_end/ui/ARIAUtils.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/ui/Action.js b/src/third_party/devtools/front_end/ui/Action.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/ui/Action.js
rename to src/third_party/devtools/front_end/ui/Action.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/ui/ActionDelegate.js b/src/third_party/devtools/front_end/ui/ActionDelegate.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/ui/ActionDelegate.js
rename to src/third_party/devtools/front_end/ui/ActionDelegate.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/ui/ActionRegistry.js b/src/third_party/devtools/front_end/ui/ActionRegistry.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/ui/ActionRegistry.js
rename to src/third_party/devtools/front_end/ui/ActionRegistry.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/ui/Context.js b/src/third_party/devtools/front_end/ui/Context.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/ui/Context.js
rename to src/third_party/devtools/front_end/ui/Context.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/ui/ContextFlavorListener.js b/src/third_party/devtools/front_end/ui/ContextFlavorListener.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/ui/ContextFlavorListener.js
rename to src/third_party/devtools/front_end/ui/ContextFlavorListener.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/ui/ContextMenu.js b/src/third_party/devtools/front_end/ui/ContextMenu.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/ui/ContextMenu.js
rename to src/third_party/devtools/front_end/ui/ContextMenu.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/ui/Dialog.js b/src/third_party/devtools/front_end/ui/Dialog.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/ui/Dialog.js
rename to src/third_party/devtools/front_end/ui/Dialog.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/ui/DropTarget.js b/src/third_party/devtools/front_end/ui/DropTarget.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/ui/DropTarget.js
rename to src/third_party/devtools/front_end/ui/DropTarget.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/ui/EmptyWidget.js b/src/third_party/devtools/front_end/ui/EmptyWidget.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/ui/EmptyWidget.js
rename to src/third_party/devtools/front_end/ui/EmptyWidget.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/ui/FilterBar.js b/src/third_party/devtools/front_end/ui/FilterBar.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/ui/FilterBar.js
rename to src/third_party/devtools/front_end/ui/FilterBar.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/ui/FilterSuggestionBuilder.js b/src/third_party/devtools/front_end/ui/FilterSuggestionBuilder.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/ui/FilterSuggestionBuilder.js
rename to src/third_party/devtools/front_end/ui/FilterSuggestionBuilder.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/ui/ForwardedInputEventHandler.js b/src/third_party/devtools/front_end/ui/ForwardedInputEventHandler.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/ui/ForwardedInputEventHandler.js
rename to src/third_party/devtools/front_end/ui/ForwardedInputEventHandler.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/ui/Fragment.js b/src/third_party/devtools/front_end/ui/Fragment.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/ui/Fragment.js
rename to src/third_party/devtools/front_end/ui/Fragment.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/ui/Geometry.js b/src/third_party/devtools/front_end/ui/Geometry.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/ui/Geometry.js
rename to src/third_party/devtools/front_end/ui/Geometry.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/ui/GlassPane.js b/src/third_party/devtools/front_end/ui/GlassPane.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/ui/GlassPane.js
rename to src/third_party/devtools/front_end/ui/GlassPane.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/ui/HistoryInput.js b/src/third_party/devtools/front_end/ui/HistoryInput.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/ui/HistoryInput.js
rename to src/third_party/devtools/front_end/ui/HistoryInput.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/ui/Icon.js b/src/third_party/devtools/front_end/ui/Icon.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/ui/Icon.js
rename to src/third_party/devtools/front_end/ui/Icon.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/ui/Infobar.js b/src/third_party/devtools/front_end/ui/Infobar.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/ui/Infobar.js
rename to src/third_party/devtools/front_end/ui/Infobar.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/ui/InplaceEditor.js b/src/third_party/devtools/front_end/ui/InplaceEditor.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/ui/InplaceEditor.js
rename to src/third_party/devtools/front_end/ui/InplaceEditor.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/ui/InspectorView.js b/src/third_party/devtools/front_end/ui/InspectorView.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/ui/InspectorView.js
rename to src/third_party/devtools/front_end/ui/InspectorView.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/ui/KeyboardShortcut.js b/src/third_party/devtools/front_end/ui/KeyboardShortcut.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/ui/KeyboardShortcut.js
rename to src/third_party/devtools/front_end/ui/KeyboardShortcut.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/ui/ListControl.js b/src/third_party/devtools/front_end/ui/ListControl.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/ui/ListControl.js
rename to src/third_party/devtools/front_end/ui/ListControl.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/ui/ListModel.js b/src/third_party/devtools/front_end/ui/ListModel.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/ui/ListModel.js
rename to src/third_party/devtools/front_end/ui/ListModel.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/ui/ListWidget.js b/src/third_party/devtools/front_end/ui/ListWidget.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/ui/ListWidget.js
rename to src/third_party/devtools/front_end/ui/ListWidget.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/ui/Panel.js b/src/third_party/devtools/front_end/ui/Panel.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/ui/Panel.js
rename to src/third_party/devtools/front_end/ui/Panel.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/ui/PopoverHelper.js b/src/third_party/devtools/front_end/ui/PopoverHelper.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/ui/PopoverHelper.js
rename to src/third_party/devtools/front_end/ui/PopoverHelper.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/ui/ProgressIndicator.js b/src/third_party/devtools/front_end/ui/ProgressIndicator.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/ui/ProgressIndicator.js
rename to src/third_party/devtools/front_end/ui/ProgressIndicator.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/ui/RemoteDebuggingTerminatedScreen.js b/src/third_party/devtools/front_end/ui/RemoteDebuggingTerminatedScreen.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/ui/RemoteDebuggingTerminatedScreen.js
rename to src/third_party/devtools/front_end/ui/RemoteDebuggingTerminatedScreen.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/ui/ReportView.js b/src/third_party/devtools/front_end/ui/ReportView.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/ui/ReportView.js
rename to src/third_party/devtools/front_end/ui/ReportView.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/ui/ResizerWidget.js b/src/third_party/devtools/front_end/ui/ResizerWidget.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/ui/ResizerWidget.js
rename to src/third_party/devtools/front_end/ui/ResizerWidget.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/ui/RootView.js b/src/third_party/devtools/front_end/ui/RootView.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/ui/RootView.js
rename to src/third_party/devtools/front_end/ui/RootView.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/ui/SearchableView.js b/src/third_party/devtools/front_end/ui/SearchableView.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/ui/SearchableView.js
rename to src/third_party/devtools/front_end/ui/SearchableView.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/ui/SegmentedButton.js b/src/third_party/devtools/front_end/ui/SegmentedButton.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/ui/SegmentedButton.js
rename to src/third_party/devtools/front_end/ui/SegmentedButton.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/ui/SettingsUI.js b/src/third_party/devtools/front_end/ui/SettingsUI.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/ui/SettingsUI.js
rename to src/third_party/devtools/front_end/ui/SettingsUI.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/ui/ShortcutRegistry.js b/src/third_party/devtools/front_end/ui/ShortcutRegistry.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/ui/ShortcutRegistry.js
rename to src/third_party/devtools/front_end/ui/ShortcutRegistry.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/ui/ShortcutsScreen.js b/src/third_party/devtools/front_end/ui/ShortcutsScreen.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/ui/ShortcutsScreen.js
rename to src/third_party/devtools/front_end/ui/ShortcutsScreen.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/ui/SoftContextMenu.js b/src/third_party/devtools/front_end/ui/SoftContextMenu.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/ui/SoftContextMenu.js
rename to src/third_party/devtools/front_end/ui/SoftContextMenu.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/ui/SoftDropDown.js b/src/third_party/devtools/front_end/ui/SoftDropDown.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/ui/SoftDropDown.js
rename to src/third_party/devtools/front_end/ui/SoftDropDown.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/ui/SplitWidget.js b/src/third_party/devtools/front_end/ui/SplitWidget.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/ui/SplitWidget.js
rename to src/third_party/devtools/front_end/ui/SplitWidget.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/ui/SuggestBox.js b/src/third_party/devtools/front_end/ui/SuggestBox.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/ui/SuggestBox.js
rename to src/third_party/devtools/front_end/ui/SuggestBox.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/ui/SyntaxHighlighter.js b/src/third_party/devtools/front_end/ui/SyntaxHighlighter.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/ui/SyntaxHighlighter.js
rename to src/third_party/devtools/front_end/ui/SyntaxHighlighter.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/ui/TabbedPane.js b/src/third_party/devtools/front_end/ui/TabbedPane.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/ui/TabbedPane.js
rename to src/third_party/devtools/front_end/ui/TabbedPane.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/ui/TargetCrashedScreen.js b/src/third_party/devtools/front_end/ui/TargetCrashedScreen.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/ui/TargetCrashedScreen.js
rename to src/third_party/devtools/front_end/ui/TargetCrashedScreen.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/ui/TextEditor.js b/src/third_party/devtools/front_end/ui/TextEditor.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/ui/TextEditor.js
rename to src/third_party/devtools/front_end/ui/TextEditor.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/ui/TextPrompt.js b/src/third_party/devtools/front_end/ui/TextPrompt.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/ui/TextPrompt.js
rename to src/third_party/devtools/front_end/ui/TextPrompt.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/ui/ThrottledWidget.js b/src/third_party/devtools/front_end/ui/ThrottledWidget.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/ui/ThrottledWidget.js
rename to src/third_party/devtools/front_end/ui/ThrottledWidget.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/ui/Toolbar.js b/src/third_party/devtools/front_end/ui/Toolbar.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/ui/Toolbar.js
rename to src/third_party/devtools/front_end/ui/Toolbar.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/ui/Tooltip.js b/src/third_party/devtools/front_end/ui/Tooltip.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/ui/Tooltip.js
rename to src/third_party/devtools/front_end/ui/Tooltip.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/ui/Treeoutline.js b/src/third_party/devtools/front_end/ui/Treeoutline.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/ui/Treeoutline.js
rename to src/third_party/devtools/front_end/ui/Treeoutline.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/ui/UIUtils.js b/src/third_party/devtools/front_end/ui/UIUtils.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/ui/UIUtils.js
rename to src/third_party/devtools/front_end/ui/UIUtils.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/ui/View.js b/src/third_party/devtools/front_end/ui/View.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/ui/View.js
rename to src/third_party/devtools/front_end/ui/View.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/ui/ViewManager.js b/src/third_party/devtools/front_end/ui/ViewManager.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/ui/ViewManager.js
rename to src/third_party/devtools/front_end/ui/ViewManager.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/ui/Widget.js b/src/third_party/devtools/front_end/ui/Widget.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/ui/Widget.js
rename to src/third_party/devtools/front_end/ui/Widget.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/ui/XElement.js b/src/third_party/devtools/front_end/ui/XElement.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/ui/XElement.js
rename to src/third_party/devtools/front_end/ui/XElement.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/ui/XLink.js b/src/third_party/devtools/front_end/ui/XLink.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/ui/XLink.js
rename to src/third_party/devtools/front_end/ui/XLink.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/ui/XWidget.js b/src/third_party/devtools/front_end/ui/XWidget.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/ui/XWidget.js
rename to src/third_party/devtools/front_end/ui/XWidget.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/ui/ZoomManager.js b/src/third_party/devtools/front_end/ui/ZoomManager.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/ui/ZoomManager.js
rename to src/third_party/devtools/front_end/ui/ZoomManager.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/ui/checkboxTextLabel.css b/src/third_party/devtools/front_end/ui/checkboxTextLabel.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/ui/checkboxTextLabel.css
rename to src/third_party/devtools/front_end/ui/checkboxTextLabel.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/ui/closeButton.css b/src/third_party/devtools/front_end/ui/closeButton.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/ui/closeButton.css
rename to src/third_party/devtools/front_end/ui/closeButton.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/ui/confirmDialog.css b/src/third_party/devtools/front_end/ui/confirmDialog.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/ui/confirmDialog.css
rename to src/third_party/devtools/front_end/ui/confirmDialog.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/ui/dialog.css b/src/third_party/devtools/front_end/ui/dialog.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/ui/dialog.css
rename to src/third_party/devtools/front_end/ui/dialog.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/ui/dropTarget.css b/src/third_party/devtools/front_end/ui/dropTarget.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/ui/dropTarget.css
rename to src/third_party/devtools/front_end/ui/dropTarget.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/ui/emptyWidget.css b/src/third_party/devtools/front_end/ui/emptyWidget.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/ui/emptyWidget.css
rename to src/third_party/devtools/front_end/ui/emptyWidget.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/ui/filter.css b/src/third_party/devtools/front_end/ui/filter.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/ui/filter.css
rename to src/third_party/devtools/front_end/ui/filter.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/ui/glassPane.css b/src/third_party/devtools/front_end/ui/glassPane.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/ui/glassPane.css
rename to src/third_party/devtools/front_end/ui/glassPane.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/ui/infobar.css b/src/third_party/devtools/front_end/ui/infobar.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/ui/infobar.css
rename to src/third_party/devtools/front_end/ui/infobar.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/ui/inlineButton.css b/src/third_party/devtools/front_end/ui/inlineButton.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/ui/inlineButton.css
rename to src/third_party/devtools/front_end/ui/inlineButton.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/ui/inspectorCommon.css b/src/third_party/devtools/front_end/ui/inspectorCommon.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/ui/inspectorCommon.css
rename to src/third_party/devtools/front_end/ui/inspectorCommon.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/ui/inspectorStyle.css b/src/third_party/devtools/front_end/ui/inspectorStyle.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/ui/inspectorStyle.css
rename to src/third_party/devtools/front_end/ui/inspectorStyle.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/ui/inspectorSyntaxHighlight.css b/src/third_party/devtools/front_end/ui/inspectorSyntaxHighlight.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/ui/inspectorSyntaxHighlight.css
rename to src/third_party/devtools/front_end/ui/inspectorSyntaxHighlight.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/ui/inspectorSyntaxHighlightDark.css b/src/third_party/devtools/front_end/ui/inspectorSyntaxHighlightDark.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/ui/inspectorSyntaxHighlightDark.css
rename to src/third_party/devtools/front_end/ui/inspectorSyntaxHighlightDark.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/ui/inspectorViewTabbedPane.css b/src/third_party/devtools/front_end/ui/inspectorViewTabbedPane.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/ui/inspectorViewTabbedPane.css
rename to src/third_party/devtools/front_end/ui/inspectorViewTabbedPane.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/ui/listWidget.css b/src/third_party/devtools/front_end/ui/listWidget.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/ui/listWidget.css
rename to src/third_party/devtools/front_end/ui/listWidget.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/ui/module.json b/src/third_party/devtools/front_end/ui/module.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/ui/module.json
rename to src/third_party/devtools/front_end/ui/module.json
diff --git a/src/cobalt/debug/remote/devtools/front_end/ui/popover.css b/src/third_party/devtools/front_end/ui/popover.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/ui/popover.css
rename to src/third_party/devtools/front_end/ui/popover.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/ui/progressIndicator.css b/src/third_party/devtools/front_end/ui/progressIndicator.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/ui/progressIndicator.css
rename to src/third_party/devtools/front_end/ui/progressIndicator.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/ui/radioButton.css b/src/third_party/devtools/front_end/ui/radioButton.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/ui/radioButton.css
rename to src/third_party/devtools/front_end/ui/radioButton.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/ui/remoteDebuggingTerminatedScreen.css b/src/third_party/devtools/front_end/ui/remoteDebuggingTerminatedScreen.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/ui/remoteDebuggingTerminatedScreen.css
rename to src/third_party/devtools/front_end/ui/remoteDebuggingTerminatedScreen.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/ui/reportView.css b/src/third_party/devtools/front_end/ui/reportView.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/ui/reportView.css
rename to src/third_party/devtools/front_end/ui/reportView.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/ui/rootView.css b/src/third_party/devtools/front_end/ui/rootView.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/ui/rootView.css
rename to src/third_party/devtools/front_end/ui/rootView.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/ui/searchableView.css b/src/third_party/devtools/front_end/ui/searchableView.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/ui/searchableView.css
rename to src/third_party/devtools/front_end/ui/searchableView.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/ui/segmentedButton.css b/src/third_party/devtools/front_end/ui/segmentedButton.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/ui/segmentedButton.css
rename to src/third_party/devtools/front_end/ui/segmentedButton.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/ui/slider.css b/src/third_party/devtools/front_end/ui/slider.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/ui/slider.css
rename to src/third_party/devtools/front_end/ui/slider.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/ui/smallBubble.css b/src/third_party/devtools/front_end/ui/smallBubble.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/ui/smallBubble.css
rename to src/third_party/devtools/front_end/ui/smallBubble.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/ui/softContextMenu.css b/src/third_party/devtools/front_end/ui/softContextMenu.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/ui/softContextMenu.css
rename to src/third_party/devtools/front_end/ui/softContextMenu.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/ui/softDropDown.css b/src/third_party/devtools/front_end/ui/softDropDown.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/ui/softDropDown.css
rename to src/third_party/devtools/front_end/ui/softDropDown.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/ui/softDropDownButton.css b/src/third_party/devtools/front_end/ui/softDropDownButton.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/ui/softDropDownButton.css
rename to src/third_party/devtools/front_end/ui/softDropDownButton.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/ui/splitWidget.css b/src/third_party/devtools/front_end/ui/splitWidget.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/ui/splitWidget.css
rename to src/third_party/devtools/front_end/ui/splitWidget.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/ui/suggestBox.css b/src/third_party/devtools/front_end/ui/suggestBox.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/ui/suggestBox.css
rename to src/third_party/devtools/front_end/ui/suggestBox.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/ui/tabbedPane.css b/src/third_party/devtools/front_end/ui/tabbedPane.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/ui/tabbedPane.css
rename to src/third_party/devtools/front_end/ui/tabbedPane.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/ui/targetCrashedScreen.css b/src/third_party/devtools/front_end/ui/targetCrashedScreen.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/ui/targetCrashedScreen.css
rename to src/third_party/devtools/front_end/ui/targetCrashedScreen.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/ui/textButton.css b/src/third_party/devtools/front_end/ui/textButton.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/ui/textButton.css
rename to src/third_party/devtools/front_end/ui/textButton.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/ui/textPrompt.css b/src/third_party/devtools/front_end/ui/textPrompt.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/ui/textPrompt.css
rename to src/third_party/devtools/front_end/ui/textPrompt.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/ui/toolbar.css b/src/third_party/devtools/front_end/ui/toolbar.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/ui/toolbar.css
rename to src/third_party/devtools/front_end/ui/toolbar.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/ui/tooltip.css b/src/third_party/devtools/front_end/ui/tooltip.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/ui/tooltip.css
rename to src/third_party/devtools/front_end/ui/tooltip.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/ui/treeoutline.css b/src/third_party/devtools/front_end/ui/treeoutline.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/ui/treeoutline.css
rename to src/third_party/devtools/front_end/ui/treeoutline.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/ui/ui.js b/src/third_party/devtools/front_end/ui/ui.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/ui/ui.js
rename to src/third_party/devtools/front_end/ui/ui.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/ui/ui_strings.grdp b/src/third_party/devtools/front_end/ui/ui_strings.grdp
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/ui/ui_strings.grdp
rename to src/third_party/devtools/front_end/ui/ui_strings.grdp
diff --git a/src/cobalt/debug/remote/devtools/front_end/ui/viewContainers.css b/src/third_party/devtools/front_end/ui/viewContainers.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/ui/viewContainers.css
rename to src/third_party/devtools/front_end/ui/viewContainers.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/web_audio/AudioContextContentBuilder.js b/src/third_party/devtools/front_end/web_audio/AudioContextContentBuilder.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/web_audio/AudioContextContentBuilder.js
rename to src/third_party/devtools/front_end/web_audio/AudioContextContentBuilder.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/web_audio/AudioContextSelector.js b/src/third_party/devtools/front_end/web_audio/AudioContextSelector.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/web_audio/AudioContextSelector.js
rename to src/third_party/devtools/front_end/web_audio/AudioContextSelector.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/web_audio/WebAudioModel.js b/src/third_party/devtools/front_end/web_audio/WebAudioModel.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/web_audio/WebAudioModel.js
rename to src/third_party/devtools/front_end/web_audio/WebAudioModel.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/web_audio/WebAudioView.js b/src/third_party/devtools/front_end/web_audio/WebAudioView.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/web_audio/WebAudioView.js
rename to src/third_party/devtools/front_end/web_audio/WebAudioView.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/web_audio/audioContextSelector.css b/src/third_party/devtools/front_end/web_audio/audioContextSelector.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/web_audio/audioContextSelector.css
rename to src/third_party/devtools/front_end/web_audio/audioContextSelector.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/web_audio/graph_visualizer/EdgeView.js b/src/third_party/devtools/front_end/web_audio/graph_visualizer/EdgeView.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/web_audio/graph_visualizer/EdgeView.js
rename to src/third_party/devtools/front_end/web_audio/graph_visualizer/EdgeView.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/web_audio/graph_visualizer/GraphManager.js b/src/third_party/devtools/front_end/web_audio/graph_visualizer/GraphManager.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/web_audio/graph_visualizer/GraphManager.js
rename to src/third_party/devtools/front_end/web_audio/graph_visualizer/GraphManager.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/web_audio/graph_visualizer/GraphStyle.js b/src/third_party/devtools/front_end/web_audio/graph_visualizer/GraphStyle.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/web_audio/graph_visualizer/GraphStyle.js
rename to src/third_party/devtools/front_end/web_audio/graph_visualizer/GraphStyle.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/web_audio/graph_visualizer/GraphView.js b/src/third_party/devtools/front_end/web_audio/graph_visualizer/GraphView.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/web_audio/graph_visualizer/GraphView.js
rename to src/third_party/devtools/front_end/web_audio/graph_visualizer/GraphView.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/web_audio/graph_visualizer/NodeRendererUtility.js b/src/third_party/devtools/front_end/web_audio/graph_visualizer/NodeRendererUtility.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/web_audio/graph_visualizer/NodeRendererUtility.js
rename to src/third_party/devtools/front_end/web_audio/graph_visualizer/NodeRendererUtility.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/web_audio/graph_visualizer/NodeView.js b/src/third_party/devtools/front_end/web_audio/graph_visualizer/NodeView.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/web_audio/graph_visualizer/NodeView.js
rename to src/third_party/devtools/front_end/web_audio/graph_visualizer/NodeView.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/web_audio/graph_visualizer/Types.js b/src/third_party/devtools/front_end/web_audio/graph_visualizer/Types.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/web_audio/graph_visualizer/Types.js
rename to src/third_party/devtools/front_end/web_audio/graph_visualizer/Types.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/web_audio/module.json b/src/third_party/devtools/front_end/web_audio/module.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/web_audio/module.json
rename to src/third_party/devtools/front_end/web_audio/module.json
diff --git a/src/cobalt/debug/remote/devtools/front_end/web_audio/webAudio.css b/src/third_party/devtools/front_end/web_audio/webAudio.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/web_audio/webAudio.css
rename to src/third_party/devtools/front_end/web_audio/webAudio.css
diff --git a/src/cobalt/debug/remote/devtools/front_end/web_audio/web_audio.js b/src/third_party/devtools/front_end/web_audio/web_audio.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/web_audio/web_audio.js
rename to src/third_party/devtools/front_end/web_audio/web_audio.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/web_audio/web_audio_strings.grdp b/src/third_party/devtools/front_end/web_audio/web_audio_strings.grdp
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/web_audio/web_audio_strings.grdp
rename to src/third_party/devtools/front_end/web_audio/web_audio_strings.grdp
diff --git a/src/cobalt/debug/remote/devtools/front_end/worker_app.html b/src/third_party/devtools/front_end/worker_app.html
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/worker_app.html
rename to src/third_party/devtools/front_end/worker_app.html
diff --git a/src/cobalt/debug/remote/devtools/front_end/worker_app.js b/src/third_party/devtools/front_end/worker_app.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/worker_app.js
rename to src/third_party/devtools/front_end/worker_app.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/worker_app.json b/src/third_party/devtools/front_end/worker_app.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/worker_app.json
rename to src/third_party/devtools/front_end/worker_app.json
diff --git a/src/cobalt/debug/remote/devtools/front_end/worker_main/WorkerMain.js b/src/third_party/devtools/front_end/worker_main/WorkerMain.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/worker_main/WorkerMain.js
rename to src/third_party/devtools/front_end/worker_main/WorkerMain.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/worker_main/module.json b/src/third_party/devtools/front_end/worker_main/module.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/worker_main/module.json
rename to src/third_party/devtools/front_end/worker_main/module.json
diff --git a/src/cobalt/debug/remote/devtools/front_end/worker_service/ServiceDispatcher.js b/src/third_party/devtools/front_end/worker_service/ServiceDispatcher.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/worker_service/ServiceDispatcher.js
rename to src/third_party/devtools/front_end/worker_service/ServiceDispatcher.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/worker_service/module.json b/src/third_party/devtools/front_end/worker_service/module.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/worker_service/module.json
rename to src/third_party/devtools/front_end/worker_service/module.json
diff --git a/src/cobalt/debug/remote/devtools/front_end/workspace/FileManager.js b/src/third_party/devtools/front_end/workspace/FileManager.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/workspace/FileManager.js
rename to src/third_party/devtools/front_end/workspace/FileManager.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/workspace/UISourceCode.js b/src/third_party/devtools/front_end/workspace/UISourceCode.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/workspace/UISourceCode.js
rename to src/third_party/devtools/front_end/workspace/UISourceCode.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/workspace/WorkspaceImpl.js b/src/third_party/devtools/front_end/workspace/WorkspaceImpl.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/workspace/WorkspaceImpl.js
rename to src/third_party/devtools/front_end/workspace/WorkspaceImpl.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/workspace/module.json b/src/third_party/devtools/front_end/workspace/module.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/workspace/module.json
rename to src/third_party/devtools/front_end/workspace/module.json
diff --git a/src/cobalt/debug/remote/devtools/front_end/workspace/workspace.js b/src/third_party/devtools/front_end/workspace/workspace.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/workspace/workspace.js
rename to src/third_party/devtools/front_end/workspace/workspace.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/workspace/workspace_strings.grdp b/src/third_party/devtools/front_end/workspace/workspace_strings.grdp
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/workspace/workspace_strings.grdp
rename to src/third_party/devtools/front_end/workspace/workspace_strings.grdp
diff --git a/src/cobalt/debug/remote/devtools/front_end/workspace_diff/WorkspaceDiff.js b/src/third_party/devtools/front_end/workspace_diff/WorkspaceDiff.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/workspace_diff/WorkspaceDiff.js
rename to src/third_party/devtools/front_end/workspace_diff/WorkspaceDiff.js
diff --git a/src/cobalt/debug/remote/devtools/front_end/workspace_diff/module.json b/src/third_party/devtools/front_end/workspace_diff/module.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/workspace_diff/module.json
rename to src/third_party/devtools/front_end/workspace_diff/module.json
diff --git a/src/cobalt/debug/remote/devtools/front_end/workspace_diff/workspace_diff.js b/src/third_party/devtools/front_end/workspace_diff/workspace_diff.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/front_end/workspace_diff/workspace_diff.js
rename to src/third_party/devtools/front_end/workspace_diff/workspace_diff.js
diff --git a/src/cobalt/debug/remote/devtools/htaccess b/src/third_party/devtools/htaccess
similarity index 100%
rename from src/cobalt/debug/remote/devtools/htaccess
rename to src/third_party/devtools/htaccess
diff --git a/src/cobalt/debug/remote/devtools/karma.conf.js b/src/third_party/devtools/karma.conf.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/karma.conf.js
rename to src/third_party/devtools/karma.conf.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/.bin/_mocha b/src/third_party/devtools/node_modules/.bin/_mocha
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/.bin/_mocha
rename to src/third_party/devtools/node_modules/.bin/_mocha
diff --git a/src/cobalt/debug/remote/devtools/node_modules/.bin/acorn b/src/third_party/devtools/node_modules/.bin/acorn
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/.bin/acorn
rename to src/third_party/devtools/node_modules/.bin/acorn
diff --git a/src/cobalt/debug/remote/devtools/node_modules/.bin/dateformat b/src/third_party/devtools/node_modules/.bin/dateformat
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/.bin/dateformat
rename to src/third_party/devtools/node_modules/.bin/dateformat
diff --git a/src/cobalt/debug/remote/devtools/node_modules/.bin/escodegen b/src/third_party/devtools/node_modules/.bin/escodegen
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/.bin/escodegen
rename to src/third_party/devtools/node_modules/.bin/escodegen
diff --git a/src/cobalt/debug/remote/devtools/node_modules/.bin/esgenerate b/src/third_party/devtools/node_modules/.bin/esgenerate
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/.bin/esgenerate
rename to src/third_party/devtools/node_modules/.bin/esgenerate
diff --git a/src/cobalt/debug/remote/devtools/node_modules/.bin/eslint b/src/third_party/devtools/node_modules/.bin/eslint
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/.bin/eslint
rename to src/third_party/devtools/node_modules/.bin/eslint
diff --git a/src/cobalt/debug/remote/devtools/node_modules/.bin/esparse b/src/third_party/devtools/node_modules/.bin/esparse
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/.bin/esparse
rename to src/third_party/devtools/node_modules/.bin/esparse
diff --git a/src/cobalt/debug/remote/devtools/node_modules/.bin/esvalidate b/src/third_party/devtools/node_modules/.bin/esvalidate
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/.bin/esvalidate
rename to src/third_party/devtools/node_modules/.bin/esvalidate
diff --git a/src/cobalt/debug/remote/devtools/node_modules/.bin/extract-zip b/src/third_party/devtools/node_modules/.bin/extract-zip
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/.bin/extract-zip
rename to src/third_party/devtools/node_modules/.bin/extract-zip
diff --git a/src/cobalt/debug/remote/devtools/node_modules/.bin/flat b/src/third_party/devtools/node_modules/.bin/flat
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/.bin/flat
rename to src/third_party/devtools/node_modules/.bin/flat
diff --git a/src/cobalt/debug/remote/devtools/node_modules/.bin/handlebars b/src/third_party/devtools/node_modules/.bin/handlebars
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/.bin/handlebars
rename to src/third_party/devtools/node_modules/.bin/handlebars
diff --git a/src/cobalt/debug/remote/devtools/node_modules/.bin/he b/src/third_party/devtools/node_modules/.bin/he
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/.bin/he
rename to src/third_party/devtools/node_modules/.bin/he
diff --git a/src/cobalt/debug/remote/devtools/node_modules/.bin/istanbul b/src/third_party/devtools/node_modules/.bin/istanbul
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/.bin/istanbul
rename to src/third_party/devtools/node_modules/.bin/istanbul
diff --git a/src/cobalt/debug/remote/devtools/node_modules/.bin/js-yaml b/src/third_party/devtools/node_modules/.bin/js-yaml
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/.bin/js-yaml
rename to src/third_party/devtools/node_modules/.bin/js-yaml
diff --git a/src/cobalt/debug/remote/devtools/node_modules/.bin/jsesc b/src/third_party/devtools/node_modules/.bin/jsesc
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/.bin/jsesc
rename to src/third_party/devtools/node_modules/.bin/jsesc
diff --git a/src/cobalt/debug/remote/devtools/node_modules/.bin/karma b/src/third_party/devtools/node_modules/.bin/karma
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/.bin/karma
rename to src/third_party/devtools/node_modules/.bin/karma
diff --git a/src/cobalt/debug/remote/devtools/node_modules/.bin/license-checker b/src/third_party/devtools/node_modules/.bin/license-checker
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/.bin/license-checker
rename to src/third_party/devtools/node_modules/.bin/license-checker
diff --git a/src/cobalt/debug/remote/devtools/node_modules/.bin/miller-rabin b/src/third_party/devtools/node_modules/.bin/miller-rabin
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/.bin/miller-rabin
rename to src/third_party/devtools/node_modules/.bin/miller-rabin
diff --git a/src/cobalt/debug/remote/devtools/node_modules/.bin/mime b/src/third_party/devtools/node_modules/.bin/mime
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/.bin/mime
rename to src/third_party/devtools/node_modules/.bin/mime
diff --git a/src/cobalt/debug/remote/devtools/node_modules/.bin/mkdirp b/src/third_party/devtools/node_modules/.bin/mkdirp
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/.bin/mkdirp
rename to src/third_party/devtools/node_modules/.bin/mkdirp
diff --git a/src/cobalt/debug/remote/devtools/node_modules/.bin/mocha b/src/third_party/devtools/node_modules/.bin/mocha
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/.bin/mocha
rename to src/third_party/devtools/node_modules/.bin/mocha
diff --git a/src/cobalt/debug/remote/devtools/node_modules/.bin/nopt b/src/third_party/devtools/node_modules/.bin/nopt
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/.bin/nopt
rename to src/third_party/devtools/node_modules/.bin/nopt
diff --git a/src/cobalt/debug/remote/devtools/node_modules/.bin/parser b/src/third_party/devtools/node_modules/.bin/parser
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/.bin/parser
rename to src/third_party/devtools/node_modules/.bin/parser
diff --git a/src/cobalt/debug/remote/devtools/node_modules/.bin/remap-istanbul b/src/third_party/devtools/node_modules/.bin/remap-istanbul
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/.bin/remap-istanbul
rename to src/third_party/devtools/node_modules/.bin/remap-istanbul
diff --git a/src/cobalt/debug/remote/devtools/node_modules/.bin/rimraf b/src/third_party/devtools/node_modules/.bin/rimraf
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/.bin/rimraf
rename to src/third_party/devtools/node_modules/.bin/rimraf
diff --git a/src/cobalt/debug/remote/devtools/node_modules/.bin/rollup b/src/third_party/devtools/node_modules/.bin/rollup
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/.bin/rollup
rename to src/third_party/devtools/node_modules/.bin/rollup
diff --git a/src/cobalt/debug/remote/devtools/node_modules/.bin/semver b/src/third_party/devtools/node_modules/.bin/semver
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/.bin/semver
rename to src/third_party/devtools/node_modules/.bin/semver
diff --git a/src/cobalt/debug/remote/devtools/node_modules/.bin/sha.js b/src/third_party/devtools/node_modules/.bin/sha.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/.bin/sha.js
rename to src/third_party/devtools/node_modules/.bin/sha.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/.bin/strip-indent b/src/third_party/devtools/node_modules/.bin/strip-indent
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/.bin/strip-indent
rename to src/third_party/devtools/node_modules/.bin/strip-indent
diff --git a/src/cobalt/debug/remote/devtools/node_modules/.bin/tsc b/src/third_party/devtools/node_modules/.bin/tsc
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/.bin/tsc
rename to src/third_party/devtools/node_modules/.bin/tsc
diff --git a/src/cobalt/debug/remote/devtools/node_modules/.bin/tsserver b/src/third_party/devtools/node_modules/.bin/tsserver
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/.bin/tsserver
rename to src/third_party/devtools/node_modules/.bin/tsserver
diff --git a/src/cobalt/debug/remote/devtools/node_modules/.bin/uglifyjs b/src/third_party/devtools/node_modules/.bin/uglifyjs
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/.bin/uglifyjs
rename to src/third_party/devtools/node_modules/.bin/uglifyjs
diff --git a/src/cobalt/debug/remote/devtools/node_modules/.bin/which b/src/third_party/devtools/node_modules/.bin/which
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/.bin/which
rename to src/third_party/devtools/node_modules/.bin/which
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/code-frame/LICENSE b/src/third_party/devtools/node_modules/@babel/code-frame/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/code-frame/LICENSE
rename to src/third_party/devtools/node_modules/@babel/code-frame/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/code-frame/README.md b/src/third_party/devtools/node_modules/@babel/code-frame/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/code-frame/README.md
rename to src/third_party/devtools/node_modules/@babel/code-frame/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/code-frame/lib/index.js b/src/third_party/devtools/node_modules/@babel/code-frame/lib/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/code-frame/lib/index.js
rename to src/third_party/devtools/node_modules/@babel/code-frame/lib/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/code-frame/package.json b/src/third_party/devtools/node_modules/@babel/code-frame/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/code-frame/package.json
rename to src/third_party/devtools/node_modules/@babel/code-frame/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/generator/LICENSE b/src/third_party/devtools/node_modules/@babel/generator/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/generator/LICENSE
rename to src/third_party/devtools/node_modules/@babel/generator/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/generator/README.md b/src/third_party/devtools/node_modules/@babel/generator/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/generator/README.md
rename to src/third_party/devtools/node_modules/@babel/generator/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/generator/lib/buffer.js b/src/third_party/devtools/node_modules/@babel/generator/lib/buffer.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/generator/lib/buffer.js
rename to src/third_party/devtools/node_modules/@babel/generator/lib/buffer.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/generator/lib/generators/base.js b/src/third_party/devtools/node_modules/@babel/generator/lib/generators/base.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/generator/lib/generators/base.js
rename to src/third_party/devtools/node_modules/@babel/generator/lib/generators/base.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/generator/lib/generators/classes.js b/src/third_party/devtools/node_modules/@babel/generator/lib/generators/classes.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/generator/lib/generators/classes.js
rename to src/third_party/devtools/node_modules/@babel/generator/lib/generators/classes.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/generator/lib/generators/expressions.js b/src/third_party/devtools/node_modules/@babel/generator/lib/generators/expressions.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/generator/lib/generators/expressions.js
rename to src/third_party/devtools/node_modules/@babel/generator/lib/generators/expressions.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/generator/lib/generators/flow.js b/src/third_party/devtools/node_modules/@babel/generator/lib/generators/flow.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/generator/lib/generators/flow.js
rename to src/third_party/devtools/node_modules/@babel/generator/lib/generators/flow.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/generator/lib/generators/index.js b/src/third_party/devtools/node_modules/@babel/generator/lib/generators/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/generator/lib/generators/index.js
rename to src/third_party/devtools/node_modules/@babel/generator/lib/generators/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/generator/lib/generators/jsx.js b/src/third_party/devtools/node_modules/@babel/generator/lib/generators/jsx.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/generator/lib/generators/jsx.js
rename to src/third_party/devtools/node_modules/@babel/generator/lib/generators/jsx.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/generator/lib/generators/methods.js b/src/third_party/devtools/node_modules/@babel/generator/lib/generators/methods.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/generator/lib/generators/methods.js
rename to src/third_party/devtools/node_modules/@babel/generator/lib/generators/methods.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/generator/lib/generators/modules.js b/src/third_party/devtools/node_modules/@babel/generator/lib/generators/modules.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/generator/lib/generators/modules.js
rename to src/third_party/devtools/node_modules/@babel/generator/lib/generators/modules.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/generator/lib/generators/statements.js b/src/third_party/devtools/node_modules/@babel/generator/lib/generators/statements.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/generator/lib/generators/statements.js
rename to src/third_party/devtools/node_modules/@babel/generator/lib/generators/statements.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/generator/lib/generators/template-literals.js b/src/third_party/devtools/node_modules/@babel/generator/lib/generators/template-literals.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/generator/lib/generators/template-literals.js
rename to src/third_party/devtools/node_modules/@babel/generator/lib/generators/template-literals.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/generator/lib/generators/types.js b/src/third_party/devtools/node_modules/@babel/generator/lib/generators/types.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/generator/lib/generators/types.js
rename to src/third_party/devtools/node_modules/@babel/generator/lib/generators/types.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/generator/lib/generators/typescript.js b/src/third_party/devtools/node_modules/@babel/generator/lib/generators/typescript.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/generator/lib/generators/typescript.js
rename to src/third_party/devtools/node_modules/@babel/generator/lib/generators/typescript.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/generator/lib/index.js b/src/third_party/devtools/node_modules/@babel/generator/lib/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/generator/lib/index.js
rename to src/third_party/devtools/node_modules/@babel/generator/lib/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/generator/lib/node/index.js b/src/third_party/devtools/node_modules/@babel/generator/lib/node/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/generator/lib/node/index.js
rename to src/third_party/devtools/node_modules/@babel/generator/lib/node/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/generator/lib/node/parentheses.js b/src/third_party/devtools/node_modules/@babel/generator/lib/node/parentheses.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/generator/lib/node/parentheses.js
rename to src/third_party/devtools/node_modules/@babel/generator/lib/node/parentheses.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/generator/lib/node/whitespace.js b/src/third_party/devtools/node_modules/@babel/generator/lib/node/whitespace.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/generator/lib/node/whitespace.js
rename to src/third_party/devtools/node_modules/@babel/generator/lib/node/whitespace.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/generator/lib/printer.js b/src/third_party/devtools/node_modules/@babel/generator/lib/printer.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/generator/lib/printer.js
rename to src/third_party/devtools/node_modules/@babel/generator/lib/printer.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/generator/lib/source-map.js b/src/third_party/devtools/node_modules/@babel/generator/lib/source-map.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/generator/lib/source-map.js
rename to src/third_party/devtools/node_modules/@babel/generator/lib/source-map.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/generator/node_modules/source-map/CHANGELOG.md b/src/third_party/devtools/node_modules/@babel/generator/node_modules/source-map/CHANGELOG.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/generator/node_modules/source-map/CHANGELOG.md
rename to src/third_party/devtools/node_modules/@babel/generator/node_modules/source-map/CHANGELOG.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/generator/node_modules/source-map/LICENSE b/src/third_party/devtools/node_modules/@babel/generator/node_modules/source-map/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/generator/node_modules/source-map/LICENSE
rename to src/third_party/devtools/node_modules/@babel/generator/node_modules/source-map/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/generator/node_modules/source-map/README.md b/src/third_party/devtools/node_modules/@babel/generator/node_modules/source-map/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/generator/node_modules/source-map/README.md
rename to src/third_party/devtools/node_modules/@babel/generator/node_modules/source-map/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/generator/node_modules/source-map/dist/source-map.debug.js b/src/third_party/devtools/node_modules/@babel/generator/node_modules/source-map/dist/source-map.debug.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/generator/node_modules/source-map/dist/source-map.debug.js
rename to src/third_party/devtools/node_modules/@babel/generator/node_modules/source-map/dist/source-map.debug.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/generator/node_modules/source-map/dist/source-map.js b/src/third_party/devtools/node_modules/@babel/generator/node_modules/source-map/dist/source-map.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/generator/node_modules/source-map/dist/source-map.js
rename to src/third_party/devtools/node_modules/@babel/generator/node_modules/source-map/dist/source-map.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/generator/node_modules/source-map/dist/source-map.min.js b/src/third_party/devtools/node_modules/@babel/generator/node_modules/source-map/dist/source-map.min.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/generator/node_modules/source-map/dist/source-map.min.js
rename to src/third_party/devtools/node_modules/@babel/generator/node_modules/source-map/dist/source-map.min.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/generator/node_modules/source-map/dist/source-map.min.js.map b/src/third_party/devtools/node_modules/@babel/generator/node_modules/source-map/dist/source-map.min.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/generator/node_modules/source-map/dist/source-map.min.js.map
rename to src/third_party/devtools/node_modules/@babel/generator/node_modules/source-map/dist/source-map.min.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/generator/node_modules/source-map/lib/array-set.js b/src/third_party/devtools/node_modules/@babel/generator/node_modules/source-map/lib/array-set.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/generator/node_modules/source-map/lib/array-set.js
rename to src/third_party/devtools/node_modules/@babel/generator/node_modules/source-map/lib/array-set.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/generator/node_modules/source-map/lib/base64-vlq.js b/src/third_party/devtools/node_modules/@babel/generator/node_modules/source-map/lib/base64-vlq.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/generator/node_modules/source-map/lib/base64-vlq.js
rename to src/third_party/devtools/node_modules/@babel/generator/node_modules/source-map/lib/base64-vlq.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/generator/node_modules/source-map/lib/base64.js b/src/third_party/devtools/node_modules/@babel/generator/node_modules/source-map/lib/base64.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/generator/node_modules/source-map/lib/base64.js
rename to src/third_party/devtools/node_modules/@babel/generator/node_modules/source-map/lib/base64.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/generator/node_modules/source-map/lib/binary-search.js b/src/third_party/devtools/node_modules/@babel/generator/node_modules/source-map/lib/binary-search.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/generator/node_modules/source-map/lib/binary-search.js
rename to src/third_party/devtools/node_modules/@babel/generator/node_modules/source-map/lib/binary-search.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/generator/node_modules/source-map/lib/mapping-list.js b/src/third_party/devtools/node_modules/@babel/generator/node_modules/source-map/lib/mapping-list.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/generator/node_modules/source-map/lib/mapping-list.js
rename to src/third_party/devtools/node_modules/@babel/generator/node_modules/source-map/lib/mapping-list.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/generator/node_modules/source-map/lib/quick-sort.js b/src/third_party/devtools/node_modules/@babel/generator/node_modules/source-map/lib/quick-sort.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/generator/node_modules/source-map/lib/quick-sort.js
rename to src/third_party/devtools/node_modules/@babel/generator/node_modules/source-map/lib/quick-sort.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/generator/node_modules/source-map/lib/source-map-consumer.js b/src/third_party/devtools/node_modules/@babel/generator/node_modules/source-map/lib/source-map-consumer.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/generator/node_modules/source-map/lib/source-map-consumer.js
rename to src/third_party/devtools/node_modules/@babel/generator/node_modules/source-map/lib/source-map-consumer.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/generator/node_modules/source-map/lib/source-map-generator.js b/src/third_party/devtools/node_modules/@babel/generator/node_modules/source-map/lib/source-map-generator.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/generator/node_modules/source-map/lib/source-map-generator.js
rename to src/third_party/devtools/node_modules/@babel/generator/node_modules/source-map/lib/source-map-generator.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/generator/node_modules/source-map/lib/source-node.js b/src/third_party/devtools/node_modules/@babel/generator/node_modules/source-map/lib/source-node.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/generator/node_modules/source-map/lib/source-node.js
rename to src/third_party/devtools/node_modules/@babel/generator/node_modules/source-map/lib/source-node.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/generator/node_modules/source-map/lib/util.js b/src/third_party/devtools/node_modules/@babel/generator/node_modules/source-map/lib/util.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/generator/node_modules/source-map/lib/util.js
rename to src/third_party/devtools/node_modules/@babel/generator/node_modules/source-map/lib/util.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/generator/node_modules/source-map/package.json b/src/third_party/devtools/node_modules/@babel/generator/node_modules/source-map/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/generator/node_modules/source-map/package.json
rename to src/third_party/devtools/node_modules/@babel/generator/node_modules/source-map/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/generator/node_modules/source-map/source-map.js b/src/third_party/devtools/node_modules/@babel/generator/node_modules/source-map/source-map.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/generator/node_modules/source-map/source-map.js
rename to src/third_party/devtools/node_modules/@babel/generator/node_modules/source-map/source-map.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/generator/package.json b/src/third_party/devtools/node_modules/@babel/generator/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/generator/package.json
rename to src/third_party/devtools/node_modules/@babel/generator/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/helper-function-name/LICENSE b/src/third_party/devtools/node_modules/@babel/helper-function-name/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/helper-function-name/LICENSE
rename to src/third_party/devtools/node_modules/@babel/helper-function-name/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/helper-function-name/README.md b/src/third_party/devtools/node_modules/@babel/helper-function-name/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/helper-function-name/README.md
rename to src/third_party/devtools/node_modules/@babel/helper-function-name/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/helper-function-name/lib/index.js b/src/third_party/devtools/node_modules/@babel/helper-function-name/lib/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/helper-function-name/lib/index.js
rename to src/third_party/devtools/node_modules/@babel/helper-function-name/lib/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/helper-function-name/package.json b/src/third_party/devtools/node_modules/@babel/helper-function-name/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/helper-function-name/package.json
rename to src/third_party/devtools/node_modules/@babel/helper-function-name/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/helper-get-function-arity/LICENSE b/src/third_party/devtools/node_modules/@babel/helper-get-function-arity/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/helper-get-function-arity/LICENSE
rename to src/third_party/devtools/node_modules/@babel/helper-get-function-arity/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/helper-get-function-arity/README.md b/src/third_party/devtools/node_modules/@babel/helper-get-function-arity/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/helper-get-function-arity/README.md
rename to src/third_party/devtools/node_modules/@babel/helper-get-function-arity/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/helper-get-function-arity/lib/index.js b/src/third_party/devtools/node_modules/@babel/helper-get-function-arity/lib/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/helper-get-function-arity/lib/index.js
rename to src/third_party/devtools/node_modules/@babel/helper-get-function-arity/lib/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/helper-get-function-arity/package.json b/src/third_party/devtools/node_modules/@babel/helper-get-function-arity/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/helper-get-function-arity/package.json
rename to src/third_party/devtools/node_modules/@babel/helper-get-function-arity/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/helper-split-export-declaration/LICENSE b/src/third_party/devtools/node_modules/@babel/helper-split-export-declaration/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/helper-split-export-declaration/LICENSE
rename to src/third_party/devtools/node_modules/@babel/helper-split-export-declaration/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/helper-split-export-declaration/README.md b/src/third_party/devtools/node_modules/@babel/helper-split-export-declaration/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/helper-split-export-declaration/README.md
rename to src/third_party/devtools/node_modules/@babel/helper-split-export-declaration/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/helper-split-export-declaration/lib/index.js b/src/third_party/devtools/node_modules/@babel/helper-split-export-declaration/lib/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/helper-split-export-declaration/lib/index.js
rename to src/third_party/devtools/node_modules/@babel/helper-split-export-declaration/lib/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/helper-split-export-declaration/package.json b/src/third_party/devtools/node_modules/@babel/helper-split-export-declaration/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/helper-split-export-declaration/package.json
rename to src/third_party/devtools/node_modules/@babel/helper-split-export-declaration/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/highlight/LICENSE b/src/third_party/devtools/node_modules/@babel/highlight/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/highlight/LICENSE
rename to src/third_party/devtools/node_modules/@babel/highlight/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/highlight/README.md b/src/third_party/devtools/node_modules/@babel/highlight/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/highlight/README.md
rename to src/third_party/devtools/node_modules/@babel/highlight/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/highlight/lib/index.js b/src/third_party/devtools/node_modules/@babel/highlight/lib/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/highlight/lib/index.js
rename to src/third_party/devtools/node_modules/@babel/highlight/lib/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/highlight/package.json b/src/third_party/devtools/node_modules/@babel/highlight/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/highlight/package.json
rename to src/third_party/devtools/node_modules/@babel/highlight/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/parser/CHANGELOG.md b/src/third_party/devtools/node_modules/@babel/parser/CHANGELOG.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/parser/CHANGELOG.md
rename to src/third_party/devtools/node_modules/@babel/parser/CHANGELOG.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/parser/LICENSE b/src/third_party/devtools/node_modules/@babel/parser/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/parser/LICENSE
rename to src/third_party/devtools/node_modules/@babel/parser/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/parser/README.md b/src/third_party/devtools/node_modules/@babel/parser/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/parser/README.md
rename to src/third_party/devtools/node_modules/@babel/parser/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/parser/bin/babel-parser.js b/src/third_party/devtools/node_modules/@babel/parser/bin/babel-parser.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/parser/bin/babel-parser.js
rename to src/third_party/devtools/node_modules/@babel/parser/bin/babel-parser.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/parser/lib/index.js b/src/third_party/devtools/node_modules/@babel/parser/lib/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/parser/lib/index.js
rename to src/third_party/devtools/node_modules/@babel/parser/lib/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/parser/package.json b/src/third_party/devtools/node_modules/@babel/parser/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/parser/package.json
rename to src/third_party/devtools/node_modules/@babel/parser/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/parser/typings/babel-parser.d.ts b/src/third_party/devtools/node_modules/@babel/parser/typings/babel-parser.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/parser/typings/babel-parser.d.ts
rename to src/third_party/devtools/node_modules/@babel/parser/typings/babel-parser.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/template/LICENSE b/src/third_party/devtools/node_modules/@babel/template/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/template/LICENSE
rename to src/third_party/devtools/node_modules/@babel/template/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/template/README.md b/src/third_party/devtools/node_modules/@babel/template/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/template/README.md
rename to src/third_party/devtools/node_modules/@babel/template/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/template/lib/builder.js b/src/third_party/devtools/node_modules/@babel/template/lib/builder.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/template/lib/builder.js
rename to src/third_party/devtools/node_modules/@babel/template/lib/builder.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/template/lib/formatters.js b/src/third_party/devtools/node_modules/@babel/template/lib/formatters.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/template/lib/formatters.js
rename to src/third_party/devtools/node_modules/@babel/template/lib/formatters.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/template/lib/index.js b/src/third_party/devtools/node_modules/@babel/template/lib/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/template/lib/index.js
rename to src/third_party/devtools/node_modules/@babel/template/lib/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/template/lib/literal.js b/src/third_party/devtools/node_modules/@babel/template/lib/literal.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/template/lib/literal.js
rename to src/third_party/devtools/node_modules/@babel/template/lib/literal.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/template/lib/options.js b/src/third_party/devtools/node_modules/@babel/template/lib/options.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/template/lib/options.js
rename to src/third_party/devtools/node_modules/@babel/template/lib/options.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/template/lib/parse.js b/src/third_party/devtools/node_modules/@babel/template/lib/parse.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/template/lib/parse.js
rename to src/third_party/devtools/node_modules/@babel/template/lib/parse.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/template/lib/populate.js b/src/third_party/devtools/node_modules/@babel/template/lib/populate.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/template/lib/populate.js
rename to src/third_party/devtools/node_modules/@babel/template/lib/populate.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/template/lib/string.js b/src/third_party/devtools/node_modules/@babel/template/lib/string.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/template/lib/string.js
rename to src/third_party/devtools/node_modules/@babel/template/lib/string.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/template/package.json b/src/third_party/devtools/node_modules/@babel/template/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/template/package.json
rename to src/third_party/devtools/node_modules/@babel/template/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/traverse/LICENSE b/src/third_party/devtools/node_modules/@babel/traverse/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/traverse/LICENSE
rename to src/third_party/devtools/node_modules/@babel/traverse/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/traverse/README.md b/src/third_party/devtools/node_modules/@babel/traverse/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/traverse/README.md
rename to src/third_party/devtools/node_modules/@babel/traverse/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/traverse/lib/cache.js b/src/third_party/devtools/node_modules/@babel/traverse/lib/cache.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/traverse/lib/cache.js
rename to src/third_party/devtools/node_modules/@babel/traverse/lib/cache.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/traverse/lib/context.js b/src/third_party/devtools/node_modules/@babel/traverse/lib/context.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/traverse/lib/context.js
rename to src/third_party/devtools/node_modules/@babel/traverse/lib/context.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/traverse/lib/hub.js b/src/third_party/devtools/node_modules/@babel/traverse/lib/hub.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/traverse/lib/hub.js
rename to src/third_party/devtools/node_modules/@babel/traverse/lib/hub.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/traverse/lib/index.js b/src/third_party/devtools/node_modules/@babel/traverse/lib/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/traverse/lib/index.js
rename to src/third_party/devtools/node_modules/@babel/traverse/lib/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/traverse/lib/path/ancestry.js b/src/third_party/devtools/node_modules/@babel/traverse/lib/path/ancestry.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/traverse/lib/path/ancestry.js
rename to src/third_party/devtools/node_modules/@babel/traverse/lib/path/ancestry.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/traverse/lib/path/comments.js b/src/third_party/devtools/node_modules/@babel/traverse/lib/path/comments.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/traverse/lib/path/comments.js
rename to src/third_party/devtools/node_modules/@babel/traverse/lib/path/comments.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/traverse/lib/path/context.js b/src/third_party/devtools/node_modules/@babel/traverse/lib/path/context.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/traverse/lib/path/context.js
rename to src/third_party/devtools/node_modules/@babel/traverse/lib/path/context.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/traverse/lib/path/conversion.js b/src/third_party/devtools/node_modules/@babel/traverse/lib/path/conversion.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/traverse/lib/path/conversion.js
rename to src/third_party/devtools/node_modules/@babel/traverse/lib/path/conversion.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/traverse/lib/path/evaluation.js b/src/third_party/devtools/node_modules/@babel/traverse/lib/path/evaluation.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/traverse/lib/path/evaluation.js
rename to src/third_party/devtools/node_modules/@babel/traverse/lib/path/evaluation.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/traverse/lib/path/family.js b/src/third_party/devtools/node_modules/@babel/traverse/lib/path/family.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/traverse/lib/path/family.js
rename to src/third_party/devtools/node_modules/@babel/traverse/lib/path/family.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/traverse/lib/path/index.js b/src/third_party/devtools/node_modules/@babel/traverse/lib/path/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/traverse/lib/path/index.js
rename to src/third_party/devtools/node_modules/@babel/traverse/lib/path/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/traverse/lib/path/inference/index.js b/src/third_party/devtools/node_modules/@babel/traverse/lib/path/inference/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/traverse/lib/path/inference/index.js
rename to src/third_party/devtools/node_modules/@babel/traverse/lib/path/inference/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/traverse/lib/path/inference/inferer-reference.js b/src/third_party/devtools/node_modules/@babel/traverse/lib/path/inference/inferer-reference.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/traverse/lib/path/inference/inferer-reference.js
rename to src/third_party/devtools/node_modules/@babel/traverse/lib/path/inference/inferer-reference.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/traverse/lib/path/inference/inferers.js b/src/third_party/devtools/node_modules/@babel/traverse/lib/path/inference/inferers.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/traverse/lib/path/inference/inferers.js
rename to src/third_party/devtools/node_modules/@babel/traverse/lib/path/inference/inferers.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/traverse/lib/path/introspection.js b/src/third_party/devtools/node_modules/@babel/traverse/lib/path/introspection.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/traverse/lib/path/introspection.js
rename to src/third_party/devtools/node_modules/@babel/traverse/lib/path/introspection.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/traverse/lib/path/lib/hoister.js b/src/third_party/devtools/node_modules/@babel/traverse/lib/path/lib/hoister.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/traverse/lib/path/lib/hoister.js
rename to src/third_party/devtools/node_modules/@babel/traverse/lib/path/lib/hoister.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/traverse/lib/path/lib/removal-hooks.js b/src/third_party/devtools/node_modules/@babel/traverse/lib/path/lib/removal-hooks.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/traverse/lib/path/lib/removal-hooks.js
rename to src/third_party/devtools/node_modules/@babel/traverse/lib/path/lib/removal-hooks.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/traverse/lib/path/lib/virtual-types.js b/src/third_party/devtools/node_modules/@babel/traverse/lib/path/lib/virtual-types.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/traverse/lib/path/lib/virtual-types.js
rename to src/third_party/devtools/node_modules/@babel/traverse/lib/path/lib/virtual-types.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/traverse/lib/path/modification.js b/src/third_party/devtools/node_modules/@babel/traverse/lib/path/modification.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/traverse/lib/path/modification.js
rename to src/third_party/devtools/node_modules/@babel/traverse/lib/path/modification.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/traverse/lib/path/removal.js b/src/third_party/devtools/node_modules/@babel/traverse/lib/path/removal.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/traverse/lib/path/removal.js
rename to src/third_party/devtools/node_modules/@babel/traverse/lib/path/removal.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/traverse/lib/path/replacement.js b/src/third_party/devtools/node_modules/@babel/traverse/lib/path/replacement.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/traverse/lib/path/replacement.js
rename to src/third_party/devtools/node_modules/@babel/traverse/lib/path/replacement.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/traverse/lib/scope/binding.js b/src/third_party/devtools/node_modules/@babel/traverse/lib/scope/binding.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/traverse/lib/scope/binding.js
rename to src/third_party/devtools/node_modules/@babel/traverse/lib/scope/binding.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/traverse/lib/scope/index.js b/src/third_party/devtools/node_modules/@babel/traverse/lib/scope/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/traverse/lib/scope/index.js
rename to src/third_party/devtools/node_modules/@babel/traverse/lib/scope/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/traverse/lib/scope/lib/renamer.js b/src/third_party/devtools/node_modules/@babel/traverse/lib/scope/lib/renamer.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/traverse/lib/scope/lib/renamer.js
rename to src/third_party/devtools/node_modules/@babel/traverse/lib/scope/lib/renamer.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/traverse/lib/visitors.js b/src/third_party/devtools/node_modules/@babel/traverse/lib/visitors.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/traverse/lib/visitors.js
rename to src/third_party/devtools/node_modules/@babel/traverse/lib/visitors.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/traverse/package.json b/src/third_party/devtools/node_modules/@babel/traverse/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/traverse/package.json
rename to src/third_party/devtools/node_modules/@babel/traverse/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/types/LICENSE b/src/third_party/devtools/node_modules/@babel/types/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/types/LICENSE
rename to src/third_party/devtools/node_modules/@babel/types/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/types/README.md b/src/third_party/devtools/node_modules/@babel/types/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/types/README.md
rename to src/third_party/devtools/node_modules/@babel/types/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/types/lib/asserts/assertNode.js b/src/third_party/devtools/node_modules/@babel/types/lib/asserts/assertNode.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/types/lib/asserts/assertNode.js
rename to src/third_party/devtools/node_modules/@babel/types/lib/asserts/assertNode.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/types/lib/asserts/generated/index.js b/src/third_party/devtools/node_modules/@babel/types/lib/asserts/generated/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/types/lib/asserts/generated/index.js
rename to src/third_party/devtools/node_modules/@babel/types/lib/asserts/generated/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/types/lib/builders/builder.js b/src/third_party/devtools/node_modules/@babel/types/lib/builders/builder.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/types/lib/builders/builder.js
rename to src/third_party/devtools/node_modules/@babel/types/lib/builders/builder.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/types/lib/builders/flow/createTypeAnnotationBasedOnTypeof.js b/src/third_party/devtools/node_modules/@babel/types/lib/builders/flow/createTypeAnnotationBasedOnTypeof.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/types/lib/builders/flow/createTypeAnnotationBasedOnTypeof.js
rename to src/third_party/devtools/node_modules/@babel/types/lib/builders/flow/createTypeAnnotationBasedOnTypeof.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/types/lib/builders/flow/createUnionTypeAnnotation.js b/src/third_party/devtools/node_modules/@babel/types/lib/builders/flow/createUnionTypeAnnotation.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/types/lib/builders/flow/createUnionTypeAnnotation.js
rename to src/third_party/devtools/node_modules/@babel/types/lib/builders/flow/createUnionTypeAnnotation.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/types/lib/builders/generated/index.js b/src/third_party/devtools/node_modules/@babel/types/lib/builders/generated/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/types/lib/builders/generated/index.js
rename to src/third_party/devtools/node_modules/@babel/types/lib/builders/generated/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/types/lib/builders/react/buildChildren.js b/src/third_party/devtools/node_modules/@babel/types/lib/builders/react/buildChildren.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/types/lib/builders/react/buildChildren.js
rename to src/third_party/devtools/node_modules/@babel/types/lib/builders/react/buildChildren.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/types/lib/clone/clone.js b/src/third_party/devtools/node_modules/@babel/types/lib/clone/clone.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/types/lib/clone/clone.js
rename to src/third_party/devtools/node_modules/@babel/types/lib/clone/clone.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/types/lib/clone/cloneDeep.js b/src/third_party/devtools/node_modules/@babel/types/lib/clone/cloneDeep.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/types/lib/clone/cloneDeep.js
rename to src/third_party/devtools/node_modules/@babel/types/lib/clone/cloneDeep.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/types/lib/clone/cloneNode.js b/src/third_party/devtools/node_modules/@babel/types/lib/clone/cloneNode.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/types/lib/clone/cloneNode.js
rename to src/third_party/devtools/node_modules/@babel/types/lib/clone/cloneNode.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/types/lib/clone/cloneWithoutLoc.js b/src/third_party/devtools/node_modules/@babel/types/lib/clone/cloneWithoutLoc.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/types/lib/clone/cloneWithoutLoc.js
rename to src/third_party/devtools/node_modules/@babel/types/lib/clone/cloneWithoutLoc.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/types/lib/comments/addComment.js b/src/third_party/devtools/node_modules/@babel/types/lib/comments/addComment.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/types/lib/comments/addComment.js
rename to src/third_party/devtools/node_modules/@babel/types/lib/comments/addComment.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/types/lib/comments/addComments.js b/src/third_party/devtools/node_modules/@babel/types/lib/comments/addComments.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/types/lib/comments/addComments.js
rename to src/third_party/devtools/node_modules/@babel/types/lib/comments/addComments.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/types/lib/comments/inheritInnerComments.js b/src/third_party/devtools/node_modules/@babel/types/lib/comments/inheritInnerComments.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/types/lib/comments/inheritInnerComments.js
rename to src/third_party/devtools/node_modules/@babel/types/lib/comments/inheritInnerComments.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/types/lib/comments/inheritLeadingComments.js b/src/third_party/devtools/node_modules/@babel/types/lib/comments/inheritLeadingComments.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/types/lib/comments/inheritLeadingComments.js
rename to src/third_party/devtools/node_modules/@babel/types/lib/comments/inheritLeadingComments.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/types/lib/comments/inheritTrailingComments.js b/src/third_party/devtools/node_modules/@babel/types/lib/comments/inheritTrailingComments.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/types/lib/comments/inheritTrailingComments.js
rename to src/third_party/devtools/node_modules/@babel/types/lib/comments/inheritTrailingComments.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/types/lib/comments/inheritsComments.js b/src/third_party/devtools/node_modules/@babel/types/lib/comments/inheritsComments.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/types/lib/comments/inheritsComments.js
rename to src/third_party/devtools/node_modules/@babel/types/lib/comments/inheritsComments.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/types/lib/comments/removeComments.js b/src/third_party/devtools/node_modules/@babel/types/lib/comments/removeComments.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/types/lib/comments/removeComments.js
rename to src/third_party/devtools/node_modules/@babel/types/lib/comments/removeComments.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/types/lib/constants/generated/index.js b/src/third_party/devtools/node_modules/@babel/types/lib/constants/generated/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/types/lib/constants/generated/index.js
rename to src/third_party/devtools/node_modules/@babel/types/lib/constants/generated/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/types/lib/constants/index.js b/src/third_party/devtools/node_modules/@babel/types/lib/constants/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/types/lib/constants/index.js
rename to src/third_party/devtools/node_modules/@babel/types/lib/constants/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/types/lib/converters/ensureBlock.js b/src/third_party/devtools/node_modules/@babel/types/lib/converters/ensureBlock.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/types/lib/converters/ensureBlock.js
rename to src/third_party/devtools/node_modules/@babel/types/lib/converters/ensureBlock.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/types/lib/converters/gatherSequenceExpressions.js b/src/third_party/devtools/node_modules/@babel/types/lib/converters/gatherSequenceExpressions.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/types/lib/converters/gatherSequenceExpressions.js
rename to src/third_party/devtools/node_modules/@babel/types/lib/converters/gatherSequenceExpressions.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/types/lib/converters/toBindingIdentifierName.js b/src/third_party/devtools/node_modules/@babel/types/lib/converters/toBindingIdentifierName.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/types/lib/converters/toBindingIdentifierName.js
rename to src/third_party/devtools/node_modules/@babel/types/lib/converters/toBindingIdentifierName.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/types/lib/converters/toBlock.js b/src/third_party/devtools/node_modules/@babel/types/lib/converters/toBlock.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/types/lib/converters/toBlock.js
rename to src/third_party/devtools/node_modules/@babel/types/lib/converters/toBlock.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/types/lib/converters/toComputedKey.js b/src/third_party/devtools/node_modules/@babel/types/lib/converters/toComputedKey.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/types/lib/converters/toComputedKey.js
rename to src/third_party/devtools/node_modules/@babel/types/lib/converters/toComputedKey.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/types/lib/converters/toExpression.js b/src/third_party/devtools/node_modules/@babel/types/lib/converters/toExpression.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/types/lib/converters/toExpression.js
rename to src/third_party/devtools/node_modules/@babel/types/lib/converters/toExpression.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/types/lib/converters/toIdentifier.js b/src/third_party/devtools/node_modules/@babel/types/lib/converters/toIdentifier.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/types/lib/converters/toIdentifier.js
rename to src/third_party/devtools/node_modules/@babel/types/lib/converters/toIdentifier.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/types/lib/converters/toKeyAlias.js b/src/third_party/devtools/node_modules/@babel/types/lib/converters/toKeyAlias.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/types/lib/converters/toKeyAlias.js
rename to src/third_party/devtools/node_modules/@babel/types/lib/converters/toKeyAlias.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/types/lib/converters/toSequenceExpression.js b/src/third_party/devtools/node_modules/@babel/types/lib/converters/toSequenceExpression.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/types/lib/converters/toSequenceExpression.js
rename to src/third_party/devtools/node_modules/@babel/types/lib/converters/toSequenceExpression.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/types/lib/converters/toStatement.js b/src/third_party/devtools/node_modules/@babel/types/lib/converters/toStatement.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/types/lib/converters/toStatement.js
rename to src/third_party/devtools/node_modules/@babel/types/lib/converters/toStatement.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/types/lib/converters/valueToNode.js b/src/third_party/devtools/node_modules/@babel/types/lib/converters/valueToNode.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/types/lib/converters/valueToNode.js
rename to src/third_party/devtools/node_modules/@babel/types/lib/converters/valueToNode.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/types/lib/definitions/core.js b/src/third_party/devtools/node_modules/@babel/types/lib/definitions/core.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/types/lib/definitions/core.js
rename to src/third_party/devtools/node_modules/@babel/types/lib/definitions/core.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/types/lib/definitions/es2015.js b/src/third_party/devtools/node_modules/@babel/types/lib/definitions/es2015.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/types/lib/definitions/es2015.js
rename to src/third_party/devtools/node_modules/@babel/types/lib/definitions/es2015.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/types/lib/definitions/experimental.js b/src/third_party/devtools/node_modules/@babel/types/lib/definitions/experimental.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/types/lib/definitions/experimental.js
rename to src/third_party/devtools/node_modules/@babel/types/lib/definitions/experimental.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/types/lib/definitions/flow.js b/src/third_party/devtools/node_modules/@babel/types/lib/definitions/flow.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/types/lib/definitions/flow.js
rename to src/third_party/devtools/node_modules/@babel/types/lib/definitions/flow.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/types/lib/definitions/index.js b/src/third_party/devtools/node_modules/@babel/types/lib/definitions/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/types/lib/definitions/index.js
rename to src/third_party/devtools/node_modules/@babel/types/lib/definitions/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/types/lib/definitions/jsx.js b/src/third_party/devtools/node_modules/@babel/types/lib/definitions/jsx.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/types/lib/definitions/jsx.js
rename to src/third_party/devtools/node_modules/@babel/types/lib/definitions/jsx.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/types/lib/definitions/misc.js b/src/third_party/devtools/node_modules/@babel/types/lib/definitions/misc.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/types/lib/definitions/misc.js
rename to src/third_party/devtools/node_modules/@babel/types/lib/definitions/misc.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/types/lib/definitions/placeholders.js b/src/third_party/devtools/node_modules/@babel/types/lib/definitions/placeholders.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/types/lib/definitions/placeholders.js
rename to src/third_party/devtools/node_modules/@babel/types/lib/definitions/placeholders.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/types/lib/definitions/typescript.js b/src/third_party/devtools/node_modules/@babel/types/lib/definitions/typescript.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/types/lib/definitions/typescript.js
rename to src/third_party/devtools/node_modules/@babel/types/lib/definitions/typescript.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/types/lib/definitions/utils.js b/src/third_party/devtools/node_modules/@babel/types/lib/definitions/utils.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/types/lib/definitions/utils.js
rename to src/third_party/devtools/node_modules/@babel/types/lib/definitions/utils.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/types/lib/index.d.ts b/src/third_party/devtools/node_modules/@babel/types/lib/index.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/types/lib/index.d.ts
rename to src/third_party/devtools/node_modules/@babel/types/lib/index.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/types/lib/index.js b/src/third_party/devtools/node_modules/@babel/types/lib/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/types/lib/index.js
rename to src/third_party/devtools/node_modules/@babel/types/lib/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/types/lib/index.js.flow b/src/third_party/devtools/node_modules/@babel/types/lib/index.js.flow
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/types/lib/index.js.flow
rename to src/third_party/devtools/node_modules/@babel/types/lib/index.js.flow
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/types/lib/modifications/appendToMemberExpression.js b/src/third_party/devtools/node_modules/@babel/types/lib/modifications/appendToMemberExpression.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/types/lib/modifications/appendToMemberExpression.js
rename to src/third_party/devtools/node_modules/@babel/types/lib/modifications/appendToMemberExpression.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/types/lib/modifications/flow/removeTypeDuplicates.js b/src/third_party/devtools/node_modules/@babel/types/lib/modifications/flow/removeTypeDuplicates.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/types/lib/modifications/flow/removeTypeDuplicates.js
rename to src/third_party/devtools/node_modules/@babel/types/lib/modifications/flow/removeTypeDuplicates.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/types/lib/modifications/inherits.js b/src/third_party/devtools/node_modules/@babel/types/lib/modifications/inherits.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/types/lib/modifications/inherits.js
rename to src/third_party/devtools/node_modules/@babel/types/lib/modifications/inherits.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/types/lib/modifications/prependToMemberExpression.js b/src/third_party/devtools/node_modules/@babel/types/lib/modifications/prependToMemberExpression.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/types/lib/modifications/prependToMemberExpression.js
rename to src/third_party/devtools/node_modules/@babel/types/lib/modifications/prependToMemberExpression.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/types/lib/modifications/removeProperties.js b/src/third_party/devtools/node_modules/@babel/types/lib/modifications/removeProperties.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/types/lib/modifications/removeProperties.js
rename to src/third_party/devtools/node_modules/@babel/types/lib/modifications/removeProperties.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/types/lib/modifications/removePropertiesDeep.js b/src/third_party/devtools/node_modules/@babel/types/lib/modifications/removePropertiesDeep.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/types/lib/modifications/removePropertiesDeep.js
rename to src/third_party/devtools/node_modules/@babel/types/lib/modifications/removePropertiesDeep.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/types/lib/retrievers/getBindingIdentifiers.js b/src/third_party/devtools/node_modules/@babel/types/lib/retrievers/getBindingIdentifiers.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/types/lib/retrievers/getBindingIdentifiers.js
rename to src/third_party/devtools/node_modules/@babel/types/lib/retrievers/getBindingIdentifiers.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/types/lib/retrievers/getOuterBindingIdentifiers.js b/src/third_party/devtools/node_modules/@babel/types/lib/retrievers/getOuterBindingIdentifiers.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/types/lib/retrievers/getOuterBindingIdentifiers.js
rename to src/third_party/devtools/node_modules/@babel/types/lib/retrievers/getOuterBindingIdentifiers.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/types/lib/traverse/traverse.js b/src/third_party/devtools/node_modules/@babel/types/lib/traverse/traverse.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/types/lib/traverse/traverse.js
rename to src/third_party/devtools/node_modules/@babel/types/lib/traverse/traverse.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/types/lib/traverse/traverseFast.js b/src/third_party/devtools/node_modules/@babel/types/lib/traverse/traverseFast.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/types/lib/traverse/traverseFast.js
rename to src/third_party/devtools/node_modules/@babel/types/lib/traverse/traverseFast.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/types/lib/utils/inherit.js b/src/third_party/devtools/node_modules/@babel/types/lib/utils/inherit.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/types/lib/utils/inherit.js
rename to src/third_party/devtools/node_modules/@babel/types/lib/utils/inherit.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/types/lib/utils/react/cleanJSXElementLiteralChild.js b/src/third_party/devtools/node_modules/@babel/types/lib/utils/react/cleanJSXElementLiteralChild.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/types/lib/utils/react/cleanJSXElementLiteralChild.js
rename to src/third_party/devtools/node_modules/@babel/types/lib/utils/react/cleanJSXElementLiteralChild.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/types/lib/utils/shallowEqual.js b/src/third_party/devtools/node_modules/@babel/types/lib/utils/shallowEqual.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/types/lib/utils/shallowEqual.js
rename to src/third_party/devtools/node_modules/@babel/types/lib/utils/shallowEqual.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/types/lib/validators/buildMatchMemberExpression.js b/src/third_party/devtools/node_modules/@babel/types/lib/validators/buildMatchMemberExpression.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/types/lib/validators/buildMatchMemberExpression.js
rename to src/third_party/devtools/node_modules/@babel/types/lib/validators/buildMatchMemberExpression.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/types/lib/validators/generated/index.js b/src/third_party/devtools/node_modules/@babel/types/lib/validators/generated/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/types/lib/validators/generated/index.js
rename to src/third_party/devtools/node_modules/@babel/types/lib/validators/generated/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/types/lib/validators/is.js b/src/third_party/devtools/node_modules/@babel/types/lib/validators/is.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/types/lib/validators/is.js
rename to src/third_party/devtools/node_modules/@babel/types/lib/validators/is.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/types/lib/validators/isBinding.js b/src/third_party/devtools/node_modules/@babel/types/lib/validators/isBinding.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/types/lib/validators/isBinding.js
rename to src/third_party/devtools/node_modules/@babel/types/lib/validators/isBinding.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/types/lib/validators/isBlockScoped.js b/src/third_party/devtools/node_modules/@babel/types/lib/validators/isBlockScoped.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/types/lib/validators/isBlockScoped.js
rename to src/third_party/devtools/node_modules/@babel/types/lib/validators/isBlockScoped.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/types/lib/validators/isImmutable.js b/src/third_party/devtools/node_modules/@babel/types/lib/validators/isImmutable.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/types/lib/validators/isImmutable.js
rename to src/third_party/devtools/node_modules/@babel/types/lib/validators/isImmutable.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/types/lib/validators/isLet.js b/src/third_party/devtools/node_modules/@babel/types/lib/validators/isLet.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/types/lib/validators/isLet.js
rename to src/third_party/devtools/node_modules/@babel/types/lib/validators/isLet.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/types/lib/validators/isNode.js b/src/third_party/devtools/node_modules/@babel/types/lib/validators/isNode.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/types/lib/validators/isNode.js
rename to src/third_party/devtools/node_modules/@babel/types/lib/validators/isNode.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/types/lib/validators/isNodesEquivalent.js b/src/third_party/devtools/node_modules/@babel/types/lib/validators/isNodesEquivalent.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/types/lib/validators/isNodesEquivalent.js
rename to src/third_party/devtools/node_modules/@babel/types/lib/validators/isNodesEquivalent.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/types/lib/validators/isPlaceholderType.js b/src/third_party/devtools/node_modules/@babel/types/lib/validators/isPlaceholderType.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/types/lib/validators/isPlaceholderType.js
rename to src/third_party/devtools/node_modules/@babel/types/lib/validators/isPlaceholderType.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/types/lib/validators/isReferenced.js b/src/third_party/devtools/node_modules/@babel/types/lib/validators/isReferenced.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/types/lib/validators/isReferenced.js
rename to src/third_party/devtools/node_modules/@babel/types/lib/validators/isReferenced.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/types/lib/validators/isScope.js b/src/third_party/devtools/node_modules/@babel/types/lib/validators/isScope.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/types/lib/validators/isScope.js
rename to src/third_party/devtools/node_modules/@babel/types/lib/validators/isScope.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/types/lib/validators/isSpecifierDefault.js b/src/third_party/devtools/node_modules/@babel/types/lib/validators/isSpecifierDefault.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/types/lib/validators/isSpecifierDefault.js
rename to src/third_party/devtools/node_modules/@babel/types/lib/validators/isSpecifierDefault.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/types/lib/validators/isType.js b/src/third_party/devtools/node_modules/@babel/types/lib/validators/isType.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/types/lib/validators/isType.js
rename to src/third_party/devtools/node_modules/@babel/types/lib/validators/isType.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/types/lib/validators/isValidES3Identifier.js b/src/third_party/devtools/node_modules/@babel/types/lib/validators/isValidES3Identifier.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/types/lib/validators/isValidES3Identifier.js
rename to src/third_party/devtools/node_modules/@babel/types/lib/validators/isValidES3Identifier.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/types/lib/validators/isValidIdentifier.js b/src/third_party/devtools/node_modules/@babel/types/lib/validators/isValidIdentifier.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/types/lib/validators/isValidIdentifier.js
rename to src/third_party/devtools/node_modules/@babel/types/lib/validators/isValidIdentifier.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/types/lib/validators/isVar.js b/src/third_party/devtools/node_modules/@babel/types/lib/validators/isVar.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/types/lib/validators/isVar.js
rename to src/third_party/devtools/node_modules/@babel/types/lib/validators/isVar.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/types/lib/validators/matchesPattern.js b/src/third_party/devtools/node_modules/@babel/types/lib/validators/matchesPattern.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/types/lib/validators/matchesPattern.js
rename to src/third_party/devtools/node_modules/@babel/types/lib/validators/matchesPattern.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/types/lib/validators/react/isCompatTag.js b/src/third_party/devtools/node_modules/@babel/types/lib/validators/react/isCompatTag.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/types/lib/validators/react/isCompatTag.js
rename to src/third_party/devtools/node_modules/@babel/types/lib/validators/react/isCompatTag.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/types/lib/validators/react/isReactComponent.js b/src/third_party/devtools/node_modules/@babel/types/lib/validators/react/isReactComponent.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/types/lib/validators/react/isReactComponent.js
rename to src/third_party/devtools/node_modules/@babel/types/lib/validators/react/isReactComponent.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/types/lib/validators/validate.js b/src/third_party/devtools/node_modules/@babel/types/lib/validators/validate.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/types/lib/validators/validate.js
rename to src/third_party/devtools/node_modules/@babel/types/lib/validators/validate.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/types/package.json b/src/third_party/devtools/node_modules/@babel/types/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/types/package.json
rename to src/third_party/devtools/node_modules/@babel/types/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/types/scripts/generateTypeHelpers.js b/src/third_party/devtools/node_modules/@babel/types/scripts/generateTypeHelpers.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/types/scripts/generateTypeHelpers.js
rename to src/third_party/devtools/node_modules/@babel/types/scripts/generateTypeHelpers.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/types/scripts/generators/docs.js b/src/third_party/devtools/node_modules/@babel/types/scripts/generators/docs.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/types/scripts/generators/docs.js
rename to src/third_party/devtools/node_modules/@babel/types/scripts/generators/docs.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/types/scripts/generators/flow.js b/src/third_party/devtools/node_modules/@babel/types/scripts/generators/flow.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/types/scripts/generators/flow.js
rename to src/third_party/devtools/node_modules/@babel/types/scripts/generators/flow.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/types/scripts/generators/generateAsserts.js b/src/third_party/devtools/node_modules/@babel/types/scripts/generators/generateAsserts.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/types/scripts/generators/generateAsserts.js
rename to src/third_party/devtools/node_modules/@babel/types/scripts/generators/generateAsserts.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/types/scripts/generators/generateBuilders.js b/src/third_party/devtools/node_modules/@babel/types/scripts/generators/generateBuilders.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/types/scripts/generators/generateBuilders.js
rename to src/third_party/devtools/node_modules/@babel/types/scripts/generators/generateBuilders.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/types/scripts/generators/generateConstants.js b/src/third_party/devtools/node_modules/@babel/types/scripts/generators/generateConstants.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/types/scripts/generators/generateConstants.js
rename to src/third_party/devtools/node_modules/@babel/types/scripts/generators/generateConstants.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/types/scripts/generators/generateValidators.js b/src/third_party/devtools/node_modules/@babel/types/scripts/generators/generateValidators.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/types/scripts/generators/generateValidators.js
rename to src/third_party/devtools/node_modules/@babel/types/scripts/generators/generateValidators.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/types/scripts/generators/typescript.js b/src/third_party/devtools/node_modules/@babel/types/scripts/generators/typescript.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/types/scripts/generators/typescript.js
rename to src/third_party/devtools/node_modules/@babel/types/scripts/generators/typescript.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/types/scripts/utils/formatBuilderName.js b/src/third_party/devtools/node_modules/@babel/types/scripts/utils/formatBuilderName.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/types/scripts/utils/formatBuilderName.js
rename to src/third_party/devtools/node_modules/@babel/types/scripts/utils/formatBuilderName.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/types/scripts/utils/lowerFirst.js b/src/third_party/devtools/node_modules/@babel/types/scripts/utils/lowerFirst.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/types/scripts/utils/lowerFirst.js
rename to src/third_party/devtools/node_modules/@babel/types/scripts/utils/lowerFirst.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/types/scripts/utils/stringifyValidator.js b/src/third_party/devtools/node_modules/@babel/types/scripts/utils/stringifyValidator.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/types/scripts/utils/stringifyValidator.js
rename to src/third_party/devtools/node_modules/@babel/types/scripts/utils/stringifyValidator.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@babel/types/scripts/utils/toFunctionName.js b/src/third_party/devtools/node_modules/@babel/types/scripts/utils/toFunctionName.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@babel/types/scripts/utils/toFunctionName.js
rename to src/third_party/devtools/node_modules/@babel/types/scripts/utils/toFunctionName.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@types/color-name/LICENSE b/src/third_party/devtools/node_modules/@types/chai/LICENSE
similarity index 100%
copy from src/cobalt/debug/remote/devtools/node_modules/@types/color-name/LICENSE
copy to src/third_party/devtools/node_modules/@types/chai/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@types/chai/README.md b/src/third_party/devtools/node_modules/@types/chai/README.md
similarity index 99%
rename from src/cobalt/debug/remote/devtools/node_modules/@types/chai/README.md
rename to src/third_party/devtools/node_modules/@types/chai/README.md
index 8d2d728..2b8556e 100644
--- a/src/cobalt/debug/remote/devtools/node_modules/@types/chai/README.md
+++ b/src/third_party/devtools/node_modules/@types/chai/README.md
@@ -1,16 +1,16 @@
-# Installation

-> `npm install --save @types/chai`

-

-# Summary

-This package contains type definitions for chai (http://chaijs.com/).

-

-# Details

-Files were exported from https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/chai

-

-Additional Details

- * Last updated: Thu, 08 Aug 2019 16:09:05 GMT

- * Dependencies: none

- * Global values: Chai, chai

-

-# Credits

-These definitions were written by Jed Mao <https://github.com/jedmao>, Bart van der Schoor <https://github.com/Bartvds>, Andrew Brown <https://github.com/AGBrown>, Olivier Chevet <https://github.com/olivr70>, Matt Wistrand <https://github.com/mwistrand>, Josh Goldberg <https://github.com/joshuakgoldberg>, Shaun Luttin <https://github.com/shaunluttin>, Gintautas Miselis <https://github.com/Naktibalda>, Satana Charuwichitratana <https://github.com/micksatana>, Erik Schierboom <https://github.com/ErikSchierboom>, and Rebecca Turner <https://github.com/9999years>.

+# Installation
+> `npm install --save @types/chai`
+
+# Summary
+This package contains type definitions for chai (http://chaijs.com/).
+
+# Details
+Files were exported from https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/chai
+
+Additional Details
+ * Last updated: Thu, 08 Aug 2019 16:09:05 GMT
+ * Dependencies: none
+ * Global values: Chai, chai
+
+# Credits
+These definitions were written by Jed Mao <https://github.com/jedmao>, Bart van der Schoor <https://github.com/Bartvds>, Andrew Brown <https://github.com/AGBrown>, Olivier Chevet <https://github.com/olivr70>, Matt Wistrand <https://github.com/mwistrand>, Josh Goldberg <https://github.com/joshuakgoldberg>, Shaun Luttin <https://github.com/shaunluttin>, Gintautas Miselis <https://github.com/Naktibalda>, Satana Charuwichitratana <https://github.com/micksatana>, Erik Schierboom <https://github.com/ErikSchierboom>, and Rebecca Turner <https://github.com/9999years>.
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@types/chai/index.d.ts b/src/third_party/devtools/node_modules/@types/chai/index.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@types/chai/index.d.ts
rename to src/third_party/devtools/node_modules/@types/chai/index.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@types/chai/package.json b/src/third_party/devtools/node_modules/@types/chai/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@types/chai/package.json
rename to src/third_party/devtools/node_modules/@types/chai/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@types/color-name/LICENSE b/src/third_party/devtools/node_modules/@types/color-name/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@types/color-name/LICENSE
rename to src/third_party/devtools/node_modules/@types/color-name/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@types/color-name/README.md b/src/third_party/devtools/node_modules/@types/color-name/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@types/color-name/README.md
rename to src/third_party/devtools/node_modules/@types/color-name/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@types/color-name/index.d.ts b/src/third_party/devtools/node_modules/@types/color-name/index.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@types/color-name/index.d.ts
rename to src/third_party/devtools/node_modules/@types/color-name/index.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@types/color-name/package.json b/src/third_party/devtools/node_modules/@types/color-name/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@types/color-name/package.json
rename to src/third_party/devtools/node_modules/@types/color-name/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@types/color-name/LICENSE b/src/third_party/devtools/node_modules/@types/estree/LICENSE
similarity index 100%
copy from src/cobalt/debug/remote/devtools/node_modules/@types/color-name/LICENSE
copy to src/third_party/devtools/node_modules/@types/estree/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@types/estree/README.md b/src/third_party/devtools/node_modules/@types/estree/README.md
similarity index 99%
rename from src/cobalt/debug/remote/devtools/node_modules/@types/estree/README.md
rename to src/third_party/devtools/node_modules/@types/estree/README.md
index c9df69d..3000ba3 100644
--- a/src/cobalt/debug/remote/devtools/node_modules/@types/estree/README.md
+++ b/src/third_party/devtools/node_modules/@types/estree/README.md
@@ -1,16 +1,16 @@
-# Installation

-> `npm install --save @types/estree`

-

-# Summary

-This package contains type definitions for ESTree AST specification (https://github.com/estree/estree).

-

-# Details

-Files were exported from https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/estree.

-

-### Additional Details

- * Last updated: Tue, 26 Nov 2019 23:20:33 GMT

- * Dependencies: none

- * Global values: none

-

-# Credits

-These definitions were written by RReverser (https://github.com/RReverser).

+# Installation
+> `npm install --save @types/estree`
+
+# Summary
+This package contains type definitions for ESTree AST specification (https://github.com/estree/estree).
+
+# Details
+Files were exported from https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/estree.
+
+### Additional Details
+ * Last updated: Tue, 26 Nov 2019 23:20:33 GMT
+ * Dependencies: none
+ * Global values: none
+
+# Credits
+These definitions were written by RReverser (https://github.com/RReverser).
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@types/estree/flow.d.ts b/src/third_party/devtools/node_modules/@types/estree/flow.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@types/estree/flow.d.ts
rename to src/third_party/devtools/node_modules/@types/estree/flow.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@types/estree/index.d.ts b/src/third_party/devtools/node_modules/@types/estree/index.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@types/estree/index.d.ts
rename to src/third_party/devtools/node_modules/@types/estree/index.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@types/estree/package.json b/src/third_party/devtools/node_modules/@types/estree/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@types/estree/package.json
rename to src/third_party/devtools/node_modules/@types/estree/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@types/color-name/LICENSE b/src/third_party/devtools/node_modules/@types/mocha/LICENSE
similarity index 100%
copy from src/cobalt/debug/remote/devtools/node_modules/@types/color-name/LICENSE
copy to src/third_party/devtools/node_modules/@types/mocha/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@types/mocha/README.md b/src/third_party/devtools/node_modules/@types/mocha/README.md
similarity index 99%
rename from src/cobalt/debug/remote/devtools/node_modules/@types/mocha/README.md
rename to src/third_party/devtools/node_modules/@types/mocha/README.md
index 224b968..0c05285 100644
--- a/src/cobalt/debug/remote/devtools/node_modules/@types/mocha/README.md
+++ b/src/third_party/devtools/node_modules/@types/mocha/README.md
@@ -1,16 +1,16 @@
-# Installation

-> `npm install --save @types/mocha`

-

-# Summary

-This package contains type definitions for mocha ( https://mochajs.org ).

-

-# Details

-Files were exported from https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/mocha

-

-Additional Details

- * Last updated: Thu, 30 May 2019 18:05:34 GMT

- * Dependencies: none

- * Global values: Mocha, after, afterEach, before, beforeEach, context, describe, it, mocha, run, setup, specify, suite, suiteSetup, suiteTeardown, teardown, test, xcontext, xdescribe, xit, xspecify

-

-# Credits

-These definitions were written by Kazi Manzur Rashid <https://github.com/kazimanzurrashid>, otiai10 <https://github.com/otiai10>, jt000 <https://github.com/jt000>, Vadim Macagon <https://github.com/enlight>, Andrew Bradley <https://github.com/cspotcode>, Dmitrii Sorin <https://github.com/1999>.

+# Installation
+> `npm install --save @types/mocha`
+
+# Summary
+This package contains type definitions for mocha ( https://mochajs.org ).
+
+# Details
+Files were exported from https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/mocha
+
+Additional Details
+ * Last updated: Thu, 30 May 2019 18:05:34 GMT
+ * Dependencies: none
+ * Global values: Mocha, after, afterEach, before, beforeEach, context, describe, it, mocha, run, setup, specify, suite, suiteSetup, suiteTeardown, teardown, test, xcontext, xdescribe, xit, xspecify
+
+# Credits
+These definitions were written by Kazi Manzur Rashid <https://github.com/kazimanzurrashid>, otiai10 <https://github.com/otiai10>, jt000 <https://github.com/jt000>, Vadim Macagon <https://github.com/enlight>, Andrew Bradley <https://github.com/cspotcode>, Dmitrii Sorin <https://github.com/1999>.
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@types/mocha/index.d.ts b/src/third_party/devtools/node_modules/@types/mocha/index.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@types/mocha/index.d.ts
rename to src/third_party/devtools/node_modules/@types/mocha/index.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@types/mocha/package.json b/src/third_party/devtools/node_modules/@types/mocha/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@types/mocha/package.json
rename to src/third_party/devtools/node_modules/@types/mocha/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@types/color-name/LICENSE b/src/third_party/devtools/node_modules/@types/node/LICENSE
similarity index 100%
copy from src/cobalt/debug/remote/devtools/node_modules/@types/color-name/LICENSE
copy to src/third_party/devtools/node_modules/@types/node/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@types/node/README.md b/src/third_party/devtools/node_modules/@types/node/README.md
similarity index 99%
rename from src/cobalt/debug/remote/devtools/node_modules/@types/node/README.md
rename to src/third_party/devtools/node_modules/@types/node/README.md
index 2b40615..dd73fe1 100644
--- a/src/cobalt/debug/remote/devtools/node_modules/@types/node/README.md
+++ b/src/third_party/devtools/node_modules/@types/node/README.md
@@ -1,16 +1,16 @@
-# Installation

-> `npm install --save @types/node`

-

-# Summary

-This package contains type definitions for Node.js (http://nodejs.org/).

-

-# Details

-Files were exported from https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node.

-

-### Additional Details

- * Last updated: Mon, 25 Nov 2019 22:58:16 GMT

- * Dependencies: none

- * Global values: `Buffer`, `NodeJS`, `Symbol`, `__dirname`, `__filename`, `clearImmediate`, `clearInterval`, `clearTimeout`, `console`, `exports`, `global`, `module`, `process`, `queueMicrotask`, `require`, `setImmediate`, `setInterval`, `setTimeout`

-

-# Credits

-These definitions were written by Microsoft TypeScript (https://github.com/Microsoft), DefinitelyTyped (https://github.com/DefinitelyTyped), Alberto Schiabel (https://github.com/jkomyno), Alexander T. (https://github.com/a-tarasyuk), Alvis HT Tang (https://github.com/alvis), Andrew Makarov (https://github.com/r3nya), Benjamin Toueg (https://github.com/btoueg), Bruno Scheufler (https://github.com/brunoscheufler), Chigozirim C. (https://github.com/smac89), Christian Vaagland Tellnes (https://github.com/tellnes), David Junger (https://github.com/touffy), Deividas Bakanas (https://github.com/DeividasBakanas), Eugene Y. Q. Shen (https://github.com/eyqs), Flarna (https://github.com/Flarna), Hannes Magnusson (https://github.com/Hannes-Magnusson-CK), Hoàng Văn Khải (https://github.com/KSXGitHub), Huw (https://github.com/hoo29), Kelvin Jin (https://github.com/kjin), Klaus Meinhardt (https://github.com/ajafff), Lishude (https://github.com/islishude), Mariusz Wiktorczyk (https://github.com/mwiktorczyk), Mohsen Azimi (https://github.com/mohsen1), Nicolas Even (https://github.com/n-e), Nicolas Voigt (https://github.com/octo-sniffle), Nikita Galkin (https://github.com/galkin), Parambir Singh (https://github.com/parambirs), Sebastian Silbermann (https://github.com/eps1lon), Simon Schick (https://github.com/SimonSchick), Thomas den Hollander (https://github.com/ThomasdenH), Wilco Bakker (https://github.com/WilcoBakker), wwwy3y3 (https://github.com/wwwy3y3), Zane Hannan AU (https://github.com/ZaneHannanAU), Samuel Ainsworth (https://github.com/samuela), Kyle Uehlein (https://github.com/kuehlein), Jordi Oliveras Rovira (https://github.com/j-oliveras), Thanik Bhongbhibhat (https://github.com/bhongy), Marcin Kopacz (https://github.com/chyzwar), Trivikram Kamat (https://github.com/trivikr), Minh Son Nguyen (https://github.com/nguymin4), Junxiao Shi (https://github.com/yoursunny), and Ilia Baryshnikov (https://github.com/qwelias).

+# Installation
+> `npm install --save @types/node`
+
+# Summary
+This package contains type definitions for Node.js (http://nodejs.org/).
+
+# Details
+Files were exported from https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node.
+
+### Additional Details
+ * Last updated: Mon, 25 Nov 2019 22:58:16 GMT
+ * Dependencies: none
+ * Global values: `Buffer`, `NodeJS`, `Symbol`, `__dirname`, `__filename`, `clearImmediate`, `clearInterval`, `clearTimeout`, `console`, `exports`, `global`, `module`, `process`, `queueMicrotask`, `require`, `setImmediate`, `setInterval`, `setTimeout`
+
+# Credits
+These definitions were written by Microsoft TypeScript (https://github.com/Microsoft), DefinitelyTyped (https://github.com/DefinitelyTyped), Alberto Schiabel (https://github.com/jkomyno), Alexander T. (https://github.com/a-tarasyuk), Alvis HT Tang (https://github.com/alvis), Andrew Makarov (https://github.com/r3nya), Benjamin Toueg (https://github.com/btoueg), Bruno Scheufler (https://github.com/brunoscheufler), Chigozirim C. (https://github.com/smac89), Christian Vaagland Tellnes (https://github.com/tellnes), David Junger (https://github.com/touffy), Deividas Bakanas (https://github.com/DeividasBakanas), Eugene Y. Q. Shen (https://github.com/eyqs), Flarna (https://github.com/Flarna), Hannes Magnusson (https://github.com/Hannes-Magnusson-CK), Hoàng Văn Khải (https://github.com/KSXGitHub), Huw (https://github.com/hoo29), Kelvin Jin (https://github.com/kjin), Klaus Meinhardt (https://github.com/ajafff), Lishude (https://github.com/islishude), Mariusz Wiktorczyk (https://github.com/mwiktorczyk), Mohsen Azimi (https://github.com/mohsen1), Nicolas Even (https://github.com/n-e), Nicolas Voigt (https://github.com/octo-sniffle), Nikita Galkin (https://github.com/galkin), Parambir Singh (https://github.com/parambirs), Sebastian Silbermann (https://github.com/eps1lon), Simon Schick (https://github.com/SimonSchick), Thomas den Hollander (https://github.com/ThomasdenH), Wilco Bakker (https://github.com/WilcoBakker), wwwy3y3 (https://github.com/wwwy3y3), Zane Hannan AU (https://github.com/ZaneHannanAU), Samuel Ainsworth (https://github.com/samuela), Kyle Uehlein (https://github.com/kuehlein), Jordi Oliveras Rovira (https://github.com/j-oliveras), Thanik Bhongbhibhat (https://github.com/bhongy), Marcin Kopacz (https://github.com/chyzwar), Trivikram Kamat (https://github.com/trivikr), Minh Son Nguyen (https://github.com/nguymin4), Junxiao Shi (https://github.com/yoursunny), and Ilia Baryshnikov (https://github.com/qwelias).
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@types/node/assert.d.ts b/src/third_party/devtools/node_modules/@types/node/assert.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@types/node/assert.d.ts
rename to src/third_party/devtools/node_modules/@types/node/assert.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@types/node/async_hooks.d.ts b/src/third_party/devtools/node_modules/@types/node/async_hooks.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@types/node/async_hooks.d.ts
rename to src/third_party/devtools/node_modules/@types/node/async_hooks.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@types/node/base.d.ts b/src/third_party/devtools/node_modules/@types/node/base.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@types/node/base.d.ts
rename to src/third_party/devtools/node_modules/@types/node/base.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@types/node/buffer.d.ts b/src/third_party/devtools/node_modules/@types/node/buffer.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@types/node/buffer.d.ts
rename to src/third_party/devtools/node_modules/@types/node/buffer.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@types/node/child_process.d.ts b/src/third_party/devtools/node_modules/@types/node/child_process.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@types/node/child_process.d.ts
rename to src/third_party/devtools/node_modules/@types/node/child_process.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@types/node/cluster.d.ts b/src/third_party/devtools/node_modules/@types/node/cluster.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@types/node/cluster.d.ts
rename to src/third_party/devtools/node_modules/@types/node/cluster.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@types/node/console.d.ts b/src/third_party/devtools/node_modules/@types/node/console.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@types/node/console.d.ts
rename to src/third_party/devtools/node_modules/@types/node/console.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@types/node/constants.d.ts b/src/third_party/devtools/node_modules/@types/node/constants.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@types/node/constants.d.ts
rename to src/third_party/devtools/node_modules/@types/node/constants.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@types/node/crypto.d.ts b/src/third_party/devtools/node_modules/@types/node/crypto.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@types/node/crypto.d.ts
rename to src/third_party/devtools/node_modules/@types/node/crypto.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@types/node/dgram.d.ts b/src/third_party/devtools/node_modules/@types/node/dgram.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@types/node/dgram.d.ts
rename to src/third_party/devtools/node_modules/@types/node/dgram.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@types/node/dns.d.ts b/src/third_party/devtools/node_modules/@types/node/dns.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@types/node/dns.d.ts
rename to src/third_party/devtools/node_modules/@types/node/dns.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@types/node/domain.d.ts b/src/third_party/devtools/node_modules/@types/node/domain.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@types/node/domain.d.ts
rename to src/third_party/devtools/node_modules/@types/node/domain.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@types/node/events.d.ts b/src/third_party/devtools/node_modules/@types/node/events.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@types/node/events.d.ts
rename to src/third_party/devtools/node_modules/@types/node/events.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@types/node/fs.d.ts b/src/third_party/devtools/node_modules/@types/node/fs.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@types/node/fs.d.ts
rename to src/third_party/devtools/node_modules/@types/node/fs.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@types/node/globals.d.ts b/src/third_party/devtools/node_modules/@types/node/globals.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@types/node/globals.d.ts
rename to src/third_party/devtools/node_modules/@types/node/globals.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@types/node/http.d.ts b/src/third_party/devtools/node_modules/@types/node/http.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@types/node/http.d.ts
rename to src/third_party/devtools/node_modules/@types/node/http.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@types/node/http2.d.ts b/src/third_party/devtools/node_modules/@types/node/http2.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@types/node/http2.d.ts
rename to src/third_party/devtools/node_modules/@types/node/http2.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@types/node/https.d.ts b/src/third_party/devtools/node_modules/@types/node/https.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@types/node/https.d.ts
rename to src/third_party/devtools/node_modules/@types/node/https.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@types/node/index.d.ts b/src/third_party/devtools/node_modules/@types/node/index.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@types/node/index.d.ts
rename to src/third_party/devtools/node_modules/@types/node/index.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@types/node/inspector.d.ts b/src/third_party/devtools/node_modules/@types/node/inspector.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@types/node/inspector.d.ts
rename to src/third_party/devtools/node_modules/@types/node/inspector.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@types/node/module.d.ts b/src/third_party/devtools/node_modules/@types/node/module.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@types/node/module.d.ts
rename to src/third_party/devtools/node_modules/@types/node/module.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@types/node/net.d.ts b/src/third_party/devtools/node_modules/@types/node/net.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@types/node/net.d.ts
rename to src/third_party/devtools/node_modules/@types/node/net.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@types/node/os.d.ts b/src/third_party/devtools/node_modules/@types/node/os.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@types/node/os.d.ts
rename to src/third_party/devtools/node_modules/@types/node/os.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@types/node/package.json b/src/third_party/devtools/node_modules/@types/node/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@types/node/package.json
rename to src/third_party/devtools/node_modules/@types/node/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@types/node/path.d.ts b/src/third_party/devtools/node_modules/@types/node/path.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@types/node/path.d.ts
rename to src/third_party/devtools/node_modules/@types/node/path.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@types/node/perf_hooks.d.ts b/src/third_party/devtools/node_modules/@types/node/perf_hooks.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@types/node/perf_hooks.d.ts
rename to src/third_party/devtools/node_modules/@types/node/perf_hooks.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@types/node/process.d.ts b/src/third_party/devtools/node_modules/@types/node/process.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@types/node/process.d.ts
rename to src/third_party/devtools/node_modules/@types/node/process.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@types/node/punycode.d.ts b/src/third_party/devtools/node_modules/@types/node/punycode.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@types/node/punycode.d.ts
rename to src/third_party/devtools/node_modules/@types/node/punycode.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@types/node/querystring.d.ts b/src/third_party/devtools/node_modules/@types/node/querystring.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@types/node/querystring.d.ts
rename to src/third_party/devtools/node_modules/@types/node/querystring.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@types/node/readline.d.ts b/src/third_party/devtools/node_modules/@types/node/readline.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@types/node/readline.d.ts
rename to src/third_party/devtools/node_modules/@types/node/readline.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@types/node/repl.d.ts b/src/third_party/devtools/node_modules/@types/node/repl.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@types/node/repl.d.ts
rename to src/third_party/devtools/node_modules/@types/node/repl.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@types/node/stream.d.ts b/src/third_party/devtools/node_modules/@types/node/stream.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@types/node/stream.d.ts
rename to src/third_party/devtools/node_modules/@types/node/stream.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@types/node/string_decoder.d.ts b/src/third_party/devtools/node_modules/@types/node/string_decoder.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@types/node/string_decoder.d.ts
rename to src/third_party/devtools/node_modules/@types/node/string_decoder.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@types/node/timers.d.ts b/src/third_party/devtools/node_modules/@types/node/timers.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@types/node/timers.d.ts
rename to src/third_party/devtools/node_modules/@types/node/timers.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@types/node/tls.d.ts b/src/third_party/devtools/node_modules/@types/node/tls.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@types/node/tls.d.ts
rename to src/third_party/devtools/node_modules/@types/node/tls.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@types/node/trace_events.d.ts b/src/third_party/devtools/node_modules/@types/node/trace_events.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@types/node/trace_events.d.ts
rename to src/third_party/devtools/node_modules/@types/node/trace_events.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@types/node/ts3.2/fs.d.ts b/src/third_party/devtools/node_modules/@types/node/ts3.2/fs.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@types/node/ts3.2/fs.d.ts
rename to src/third_party/devtools/node_modules/@types/node/ts3.2/fs.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@types/node/ts3.2/globals.d.ts b/src/third_party/devtools/node_modules/@types/node/ts3.2/globals.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@types/node/ts3.2/globals.d.ts
rename to src/third_party/devtools/node_modules/@types/node/ts3.2/globals.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@types/node/ts3.2/index.d.ts b/src/third_party/devtools/node_modules/@types/node/ts3.2/index.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@types/node/ts3.2/index.d.ts
rename to src/third_party/devtools/node_modules/@types/node/ts3.2/index.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@types/node/ts3.2/util.d.ts b/src/third_party/devtools/node_modules/@types/node/ts3.2/util.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@types/node/ts3.2/util.d.ts
rename to src/third_party/devtools/node_modules/@types/node/ts3.2/util.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@types/node/tty.d.ts b/src/third_party/devtools/node_modules/@types/node/tty.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@types/node/tty.d.ts
rename to src/third_party/devtools/node_modules/@types/node/tty.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@types/node/url.d.ts b/src/third_party/devtools/node_modules/@types/node/url.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@types/node/url.d.ts
rename to src/third_party/devtools/node_modules/@types/node/url.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@types/node/util.d.ts b/src/third_party/devtools/node_modules/@types/node/util.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@types/node/util.d.ts
rename to src/third_party/devtools/node_modules/@types/node/util.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@types/node/v8.d.ts b/src/third_party/devtools/node_modules/@types/node/v8.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@types/node/v8.d.ts
rename to src/third_party/devtools/node_modules/@types/node/v8.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@types/node/vm.d.ts b/src/third_party/devtools/node_modules/@types/node/vm.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@types/node/vm.d.ts
rename to src/third_party/devtools/node_modules/@types/node/vm.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@types/node/worker_threads.d.ts b/src/third_party/devtools/node_modules/@types/node/worker_threads.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@types/node/worker_threads.d.ts
rename to src/third_party/devtools/node_modules/@types/node/worker_threads.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/@types/node/zlib.d.ts b/src/third_party/devtools/node_modules/@types/node/zlib.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/@types/node/zlib.d.ts
rename to src/third_party/devtools/node_modules/@types/node/zlib.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/abbrev/LICENSE b/src/third_party/devtools/node_modules/abbrev/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/abbrev/LICENSE
rename to src/third_party/devtools/node_modules/abbrev/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/abbrev/README.md b/src/third_party/devtools/node_modules/abbrev/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/abbrev/README.md
rename to src/third_party/devtools/node_modules/abbrev/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/abbrev/abbrev.js b/src/third_party/devtools/node_modules/abbrev/abbrev.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/abbrev/abbrev.js
rename to src/third_party/devtools/node_modules/abbrev/abbrev.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/abbrev/package.json b/src/third_party/devtools/node_modules/abbrev/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/abbrev/package.json
rename to src/third_party/devtools/node_modules/abbrev/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/accepts/HISTORY.md b/src/third_party/devtools/node_modules/accepts/HISTORY.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/accepts/HISTORY.md
rename to src/third_party/devtools/node_modules/accepts/HISTORY.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/accepts/LICENSE b/src/third_party/devtools/node_modules/accepts/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/accepts/LICENSE
rename to src/third_party/devtools/node_modules/accepts/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/accepts/README.md b/src/third_party/devtools/node_modules/accepts/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/accepts/README.md
rename to src/third_party/devtools/node_modules/accepts/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/accepts/index.js b/src/third_party/devtools/node_modules/accepts/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/accepts/index.js
rename to src/third_party/devtools/node_modules/accepts/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/accepts/package.json b/src/third_party/devtools/node_modules/accepts/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/accepts/package.json
rename to src/third_party/devtools/node_modules/accepts/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/acorn-jsx/LICENSE b/src/third_party/devtools/node_modules/acorn-jsx/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/acorn-jsx/LICENSE
rename to src/third_party/devtools/node_modules/acorn-jsx/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/acorn-jsx/README.md b/src/third_party/devtools/node_modules/acorn-jsx/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/acorn-jsx/README.md
rename to src/third_party/devtools/node_modules/acorn-jsx/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/acorn-jsx/index.js b/src/third_party/devtools/node_modules/acorn-jsx/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/acorn-jsx/index.js
rename to src/third_party/devtools/node_modules/acorn-jsx/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/acorn-jsx/package.json b/src/third_party/devtools/node_modules/acorn-jsx/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/acorn-jsx/package.json
rename to src/third_party/devtools/node_modules/acorn-jsx/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/acorn-jsx/xhtml.js b/src/third_party/devtools/node_modules/acorn-jsx/xhtml.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/acorn-jsx/xhtml.js
rename to src/third_party/devtools/node_modules/acorn-jsx/xhtml.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/acorn-walk/CHANGELOG.md b/src/third_party/devtools/node_modules/acorn-walk/CHANGELOG.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/acorn-walk/CHANGELOG.md
rename to src/third_party/devtools/node_modules/acorn-walk/CHANGELOG.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/acorn-walk/LICENSE b/src/third_party/devtools/node_modules/acorn-walk/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/acorn-walk/LICENSE
rename to src/third_party/devtools/node_modules/acorn-walk/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/acorn-walk/README.md b/src/third_party/devtools/node_modules/acorn-walk/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/acorn-walk/README.md
rename to src/third_party/devtools/node_modules/acorn-walk/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/acorn-walk/dist/walk.js b/src/third_party/devtools/node_modules/acorn-walk/dist/walk.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/acorn-walk/dist/walk.js
rename to src/third_party/devtools/node_modules/acorn-walk/dist/walk.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/acorn-walk/dist/walk.js.map b/src/third_party/devtools/node_modules/acorn-walk/dist/walk.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/acorn-walk/dist/walk.js.map
rename to src/third_party/devtools/node_modules/acorn-walk/dist/walk.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/acorn-walk/dist/walk.mjs b/src/third_party/devtools/node_modules/acorn-walk/dist/walk.mjs
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/acorn-walk/dist/walk.mjs
rename to src/third_party/devtools/node_modules/acorn-walk/dist/walk.mjs
diff --git a/src/cobalt/debug/remote/devtools/node_modules/acorn-walk/dist/walk.mjs.map b/src/third_party/devtools/node_modules/acorn-walk/dist/walk.mjs.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/acorn-walk/dist/walk.mjs.map
rename to src/third_party/devtools/node_modules/acorn-walk/dist/walk.mjs.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/acorn-walk/package.json b/src/third_party/devtools/node_modules/acorn-walk/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/acorn-walk/package.json
rename to src/third_party/devtools/node_modules/acorn-walk/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/acorn/CHANGELOG.md b/src/third_party/devtools/node_modules/acorn/CHANGELOG.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/acorn/CHANGELOG.md
rename to src/third_party/devtools/node_modules/acorn/CHANGELOG.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/acorn/LICENSE b/src/third_party/devtools/node_modules/acorn/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/acorn/LICENSE
rename to src/third_party/devtools/node_modules/acorn/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/acorn/README.md b/src/third_party/devtools/node_modules/acorn/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/acorn/README.md
rename to src/third_party/devtools/node_modules/acorn/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/acorn/bin/acorn b/src/third_party/devtools/node_modules/acorn/bin/acorn
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/acorn/bin/acorn
rename to src/third_party/devtools/node_modules/acorn/bin/acorn
diff --git a/src/cobalt/debug/remote/devtools/node_modules/acorn/dist/acorn.d.ts b/src/third_party/devtools/node_modules/acorn/dist/acorn.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/acorn/dist/acorn.d.ts
rename to src/third_party/devtools/node_modules/acorn/dist/acorn.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/acorn/dist/acorn.js b/src/third_party/devtools/node_modules/acorn/dist/acorn.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/acorn/dist/acorn.js
rename to src/third_party/devtools/node_modules/acorn/dist/acorn.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/acorn/dist/acorn.js.map b/src/third_party/devtools/node_modules/acorn/dist/acorn.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/acorn/dist/acorn.js.map
rename to src/third_party/devtools/node_modules/acorn/dist/acorn.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/acorn/dist/acorn.mjs b/src/third_party/devtools/node_modules/acorn/dist/acorn.mjs
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/acorn/dist/acorn.mjs
rename to src/third_party/devtools/node_modules/acorn/dist/acorn.mjs
diff --git a/src/cobalt/debug/remote/devtools/node_modules/acorn/dist/acorn.mjs.map b/src/third_party/devtools/node_modules/acorn/dist/acorn.mjs.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/acorn/dist/acorn.mjs.map
rename to src/third_party/devtools/node_modules/acorn/dist/acorn.mjs.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/acorn/dist/bin.js b/src/third_party/devtools/node_modules/acorn/dist/bin.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/acorn/dist/bin.js
rename to src/third_party/devtools/node_modules/acorn/dist/bin.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/acorn/package.json b/src/third_party/devtools/node_modules/acorn/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/acorn/package.json
rename to src/third_party/devtools/node_modules/acorn/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/after/.npmignore b/src/third_party/devtools/node_modules/after/.npmignore
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/after/.npmignore
rename to src/third_party/devtools/node_modules/after/.npmignore
diff --git a/src/cobalt/debug/remote/devtools/node_modules/after/.travis.yml b/src/third_party/devtools/node_modules/after/.travis.yml
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/after/.travis.yml
rename to src/third_party/devtools/node_modules/after/.travis.yml
diff --git a/src/cobalt/debug/remote/devtools/node_modules/after/LICENCE b/src/third_party/devtools/node_modules/after/LICENCE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/after/LICENCE
rename to src/third_party/devtools/node_modules/after/LICENCE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/after/README.md b/src/third_party/devtools/node_modules/after/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/after/README.md
rename to src/third_party/devtools/node_modules/after/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/after/index.js b/src/third_party/devtools/node_modules/after/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/after/index.js
rename to src/third_party/devtools/node_modules/after/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/after/package.json b/src/third_party/devtools/node_modules/after/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/after/package.json
rename to src/third_party/devtools/node_modules/after/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/after/test/after-test.js b/src/third_party/devtools/node_modules/after/test/after-test.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/after/test/after-test.js
rename to src/third_party/devtools/node_modules/after/test/after-test.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/agent-base/.travis.yml b/src/third_party/devtools/node_modules/agent-base/.travis.yml
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/agent-base/.travis.yml
rename to src/third_party/devtools/node_modules/agent-base/.travis.yml
diff --git a/src/cobalt/debug/remote/devtools/node_modules/agent-base/History.md b/src/third_party/devtools/node_modules/agent-base/History.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/agent-base/History.md
rename to src/third_party/devtools/node_modules/agent-base/History.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/agent-base/README.md b/src/third_party/devtools/node_modules/agent-base/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/agent-base/README.md
rename to src/third_party/devtools/node_modules/agent-base/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/agent-base/index.d.ts b/src/third_party/devtools/node_modules/agent-base/index.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/agent-base/index.d.ts
rename to src/third_party/devtools/node_modules/agent-base/index.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/agent-base/index.js b/src/third_party/devtools/node_modules/agent-base/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/agent-base/index.js
rename to src/third_party/devtools/node_modules/agent-base/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/agent-base/package.json b/src/third_party/devtools/node_modules/agent-base/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/agent-base/package.json
rename to src/third_party/devtools/node_modules/agent-base/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/agent-base/patch-core.js b/src/third_party/devtools/node_modules/agent-base/patch-core.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/agent-base/patch-core.js
rename to src/third_party/devtools/node_modules/agent-base/patch-core.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/agent-base/test/ssl-cert-snakeoil.key b/src/third_party/devtools/node_modules/agent-base/test/ssl-cert-snakeoil.key
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/agent-base/test/ssl-cert-snakeoil.key
rename to src/third_party/devtools/node_modules/agent-base/test/ssl-cert-snakeoil.key
diff --git a/src/cobalt/debug/remote/devtools/node_modules/agent-base/test/ssl-cert-snakeoil.pem b/src/third_party/devtools/node_modules/agent-base/test/ssl-cert-snakeoil.pem
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/agent-base/test/ssl-cert-snakeoil.pem
rename to src/third_party/devtools/node_modules/agent-base/test/ssl-cert-snakeoil.pem
diff --git a/src/cobalt/debug/remote/devtools/node_modules/agent-base/test/test.js b/src/third_party/devtools/node_modules/agent-base/test/test.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/agent-base/test/test.js
rename to src/third_party/devtools/node_modules/agent-base/test/test.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/ajv/.tonic_example.js b/src/third_party/devtools/node_modules/ajv/.tonic_example.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/ajv/.tonic_example.js
rename to src/third_party/devtools/node_modules/ajv/.tonic_example.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/ajv/LICENSE b/src/third_party/devtools/node_modules/ajv/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/ajv/LICENSE
rename to src/third_party/devtools/node_modules/ajv/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/ajv/README.md b/src/third_party/devtools/node_modules/ajv/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/ajv/README.md
rename to src/third_party/devtools/node_modules/ajv/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/ajv/dist/ajv.bundle.js b/src/third_party/devtools/node_modules/ajv/dist/ajv.bundle.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/ajv/dist/ajv.bundle.js
rename to src/third_party/devtools/node_modules/ajv/dist/ajv.bundle.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/ajv/dist/ajv.min.js b/src/third_party/devtools/node_modules/ajv/dist/ajv.min.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/ajv/dist/ajv.min.js
rename to src/third_party/devtools/node_modules/ajv/dist/ajv.min.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/ajv/dist/ajv.min.js.map b/src/third_party/devtools/node_modules/ajv/dist/ajv.min.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/ajv/dist/ajv.min.js.map
rename to src/third_party/devtools/node_modules/ajv/dist/ajv.min.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/ajv/lib/ajv.d.ts b/src/third_party/devtools/node_modules/ajv/lib/ajv.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/ajv/lib/ajv.d.ts
rename to src/third_party/devtools/node_modules/ajv/lib/ajv.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/ajv/lib/ajv.js b/src/third_party/devtools/node_modules/ajv/lib/ajv.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/ajv/lib/ajv.js
rename to src/third_party/devtools/node_modules/ajv/lib/ajv.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/ajv/lib/cache.js b/src/third_party/devtools/node_modules/ajv/lib/cache.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/ajv/lib/cache.js
rename to src/third_party/devtools/node_modules/ajv/lib/cache.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/ajv/lib/compile/async.js b/src/third_party/devtools/node_modules/ajv/lib/compile/async.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/ajv/lib/compile/async.js
rename to src/third_party/devtools/node_modules/ajv/lib/compile/async.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/ajv/lib/compile/equal.js b/src/third_party/devtools/node_modules/ajv/lib/compile/equal.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/ajv/lib/compile/equal.js
rename to src/third_party/devtools/node_modules/ajv/lib/compile/equal.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/ajv/lib/compile/error_classes.js b/src/third_party/devtools/node_modules/ajv/lib/compile/error_classes.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/ajv/lib/compile/error_classes.js
rename to src/third_party/devtools/node_modules/ajv/lib/compile/error_classes.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/ajv/lib/compile/formats.js b/src/third_party/devtools/node_modules/ajv/lib/compile/formats.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/ajv/lib/compile/formats.js
rename to src/third_party/devtools/node_modules/ajv/lib/compile/formats.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/ajv/lib/compile/index.js b/src/third_party/devtools/node_modules/ajv/lib/compile/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/ajv/lib/compile/index.js
rename to src/third_party/devtools/node_modules/ajv/lib/compile/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/ajv/lib/compile/resolve.js b/src/third_party/devtools/node_modules/ajv/lib/compile/resolve.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/ajv/lib/compile/resolve.js
rename to src/third_party/devtools/node_modules/ajv/lib/compile/resolve.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/ajv/lib/compile/rules.js b/src/third_party/devtools/node_modules/ajv/lib/compile/rules.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/ajv/lib/compile/rules.js
rename to src/third_party/devtools/node_modules/ajv/lib/compile/rules.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/ajv/lib/compile/schema_obj.js b/src/third_party/devtools/node_modules/ajv/lib/compile/schema_obj.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/ajv/lib/compile/schema_obj.js
rename to src/third_party/devtools/node_modules/ajv/lib/compile/schema_obj.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/ajv/lib/compile/ucs2length.js b/src/third_party/devtools/node_modules/ajv/lib/compile/ucs2length.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/ajv/lib/compile/ucs2length.js
rename to src/third_party/devtools/node_modules/ajv/lib/compile/ucs2length.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/ajv/lib/compile/util.js b/src/third_party/devtools/node_modules/ajv/lib/compile/util.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/ajv/lib/compile/util.js
rename to src/third_party/devtools/node_modules/ajv/lib/compile/util.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/ajv/lib/data.js b/src/third_party/devtools/node_modules/ajv/lib/data.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/ajv/lib/data.js
rename to src/third_party/devtools/node_modules/ajv/lib/data.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/ajv/lib/definition_schema.js b/src/third_party/devtools/node_modules/ajv/lib/definition_schema.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/ajv/lib/definition_schema.js
rename to src/third_party/devtools/node_modules/ajv/lib/definition_schema.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/ajv/lib/dot/_limit.jst b/src/third_party/devtools/node_modules/ajv/lib/dot/_limit.jst
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/ajv/lib/dot/_limit.jst
rename to src/third_party/devtools/node_modules/ajv/lib/dot/_limit.jst
diff --git a/src/cobalt/debug/remote/devtools/node_modules/ajv/lib/dot/_limitItems.jst b/src/third_party/devtools/node_modules/ajv/lib/dot/_limitItems.jst
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/ajv/lib/dot/_limitItems.jst
rename to src/third_party/devtools/node_modules/ajv/lib/dot/_limitItems.jst
diff --git a/src/cobalt/debug/remote/devtools/node_modules/ajv/lib/dot/_limitLength.jst b/src/third_party/devtools/node_modules/ajv/lib/dot/_limitLength.jst
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/ajv/lib/dot/_limitLength.jst
rename to src/third_party/devtools/node_modules/ajv/lib/dot/_limitLength.jst
diff --git a/src/cobalt/debug/remote/devtools/node_modules/ajv/lib/dot/_limitProperties.jst b/src/third_party/devtools/node_modules/ajv/lib/dot/_limitProperties.jst
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/ajv/lib/dot/_limitProperties.jst
rename to src/third_party/devtools/node_modules/ajv/lib/dot/_limitProperties.jst
diff --git a/src/cobalt/debug/remote/devtools/node_modules/ajv/lib/dot/allOf.jst b/src/third_party/devtools/node_modules/ajv/lib/dot/allOf.jst
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/ajv/lib/dot/allOf.jst
rename to src/third_party/devtools/node_modules/ajv/lib/dot/allOf.jst
diff --git a/src/cobalt/debug/remote/devtools/node_modules/ajv/lib/dot/anyOf.jst b/src/third_party/devtools/node_modules/ajv/lib/dot/anyOf.jst
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/ajv/lib/dot/anyOf.jst
rename to src/third_party/devtools/node_modules/ajv/lib/dot/anyOf.jst
diff --git a/src/cobalt/debug/remote/devtools/node_modules/ajv/lib/dot/coerce.def b/src/third_party/devtools/node_modules/ajv/lib/dot/coerce.def
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/ajv/lib/dot/coerce.def
rename to src/third_party/devtools/node_modules/ajv/lib/dot/coerce.def
diff --git a/src/cobalt/debug/remote/devtools/node_modules/ajv/lib/dot/comment.jst b/src/third_party/devtools/node_modules/ajv/lib/dot/comment.jst
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/ajv/lib/dot/comment.jst
rename to src/third_party/devtools/node_modules/ajv/lib/dot/comment.jst
diff --git a/src/cobalt/debug/remote/devtools/node_modules/ajv/lib/dot/const.jst b/src/third_party/devtools/node_modules/ajv/lib/dot/const.jst
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/ajv/lib/dot/const.jst
rename to src/third_party/devtools/node_modules/ajv/lib/dot/const.jst
diff --git a/src/cobalt/debug/remote/devtools/node_modules/ajv/lib/dot/contains.jst b/src/third_party/devtools/node_modules/ajv/lib/dot/contains.jst
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/ajv/lib/dot/contains.jst
rename to src/third_party/devtools/node_modules/ajv/lib/dot/contains.jst
diff --git a/src/cobalt/debug/remote/devtools/node_modules/ajv/lib/dot/custom.jst b/src/third_party/devtools/node_modules/ajv/lib/dot/custom.jst
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/ajv/lib/dot/custom.jst
rename to src/third_party/devtools/node_modules/ajv/lib/dot/custom.jst
diff --git a/src/cobalt/debug/remote/devtools/node_modules/ajv/lib/dot/defaults.def b/src/third_party/devtools/node_modules/ajv/lib/dot/defaults.def
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/ajv/lib/dot/defaults.def
rename to src/third_party/devtools/node_modules/ajv/lib/dot/defaults.def
diff --git a/src/cobalt/debug/remote/devtools/node_modules/ajv/lib/dot/definitions.def b/src/third_party/devtools/node_modules/ajv/lib/dot/definitions.def
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/ajv/lib/dot/definitions.def
rename to src/third_party/devtools/node_modules/ajv/lib/dot/definitions.def
diff --git a/src/cobalt/debug/remote/devtools/node_modules/ajv/lib/dot/dependencies.jst b/src/third_party/devtools/node_modules/ajv/lib/dot/dependencies.jst
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/ajv/lib/dot/dependencies.jst
rename to src/third_party/devtools/node_modules/ajv/lib/dot/dependencies.jst
diff --git a/src/cobalt/debug/remote/devtools/node_modules/ajv/lib/dot/enum.jst b/src/third_party/devtools/node_modules/ajv/lib/dot/enum.jst
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/ajv/lib/dot/enum.jst
rename to src/third_party/devtools/node_modules/ajv/lib/dot/enum.jst
diff --git a/src/cobalt/debug/remote/devtools/node_modules/ajv/lib/dot/errors.def b/src/third_party/devtools/node_modules/ajv/lib/dot/errors.def
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/ajv/lib/dot/errors.def
rename to src/third_party/devtools/node_modules/ajv/lib/dot/errors.def
diff --git a/src/cobalt/debug/remote/devtools/node_modules/ajv/lib/dot/format.jst b/src/third_party/devtools/node_modules/ajv/lib/dot/format.jst
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/ajv/lib/dot/format.jst
rename to src/third_party/devtools/node_modules/ajv/lib/dot/format.jst
diff --git a/src/cobalt/debug/remote/devtools/node_modules/ajv/lib/dot/if.jst b/src/third_party/devtools/node_modules/ajv/lib/dot/if.jst
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/ajv/lib/dot/if.jst
rename to src/third_party/devtools/node_modules/ajv/lib/dot/if.jst
diff --git a/src/cobalt/debug/remote/devtools/node_modules/ajv/lib/dot/items.jst b/src/third_party/devtools/node_modules/ajv/lib/dot/items.jst
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/ajv/lib/dot/items.jst
rename to src/third_party/devtools/node_modules/ajv/lib/dot/items.jst
diff --git a/src/cobalt/debug/remote/devtools/node_modules/ajv/lib/dot/missing.def b/src/third_party/devtools/node_modules/ajv/lib/dot/missing.def
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/ajv/lib/dot/missing.def
rename to src/third_party/devtools/node_modules/ajv/lib/dot/missing.def
diff --git a/src/cobalt/debug/remote/devtools/node_modules/ajv/lib/dot/multipleOf.jst b/src/third_party/devtools/node_modules/ajv/lib/dot/multipleOf.jst
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/ajv/lib/dot/multipleOf.jst
rename to src/third_party/devtools/node_modules/ajv/lib/dot/multipleOf.jst
diff --git a/src/cobalt/debug/remote/devtools/node_modules/ajv/lib/dot/not.jst b/src/third_party/devtools/node_modules/ajv/lib/dot/not.jst
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/ajv/lib/dot/not.jst
rename to src/third_party/devtools/node_modules/ajv/lib/dot/not.jst
diff --git a/src/cobalt/debug/remote/devtools/node_modules/ajv/lib/dot/oneOf.jst b/src/third_party/devtools/node_modules/ajv/lib/dot/oneOf.jst
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/ajv/lib/dot/oneOf.jst
rename to src/third_party/devtools/node_modules/ajv/lib/dot/oneOf.jst
diff --git a/src/cobalt/debug/remote/devtools/node_modules/ajv/lib/dot/pattern.jst b/src/third_party/devtools/node_modules/ajv/lib/dot/pattern.jst
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/ajv/lib/dot/pattern.jst
rename to src/third_party/devtools/node_modules/ajv/lib/dot/pattern.jst
diff --git a/src/cobalt/debug/remote/devtools/node_modules/ajv/lib/dot/properties.jst b/src/third_party/devtools/node_modules/ajv/lib/dot/properties.jst
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/ajv/lib/dot/properties.jst
rename to src/third_party/devtools/node_modules/ajv/lib/dot/properties.jst
diff --git a/src/cobalt/debug/remote/devtools/node_modules/ajv/lib/dot/propertyNames.jst b/src/third_party/devtools/node_modules/ajv/lib/dot/propertyNames.jst
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/ajv/lib/dot/propertyNames.jst
rename to src/third_party/devtools/node_modules/ajv/lib/dot/propertyNames.jst
diff --git a/src/cobalt/debug/remote/devtools/node_modules/ajv/lib/dot/ref.jst b/src/third_party/devtools/node_modules/ajv/lib/dot/ref.jst
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/ajv/lib/dot/ref.jst
rename to src/third_party/devtools/node_modules/ajv/lib/dot/ref.jst
diff --git a/src/cobalt/debug/remote/devtools/node_modules/ajv/lib/dot/required.jst b/src/third_party/devtools/node_modules/ajv/lib/dot/required.jst
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/ajv/lib/dot/required.jst
rename to src/third_party/devtools/node_modules/ajv/lib/dot/required.jst
diff --git a/src/cobalt/debug/remote/devtools/node_modules/ajv/lib/dot/uniqueItems.jst b/src/third_party/devtools/node_modules/ajv/lib/dot/uniqueItems.jst
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/ajv/lib/dot/uniqueItems.jst
rename to src/third_party/devtools/node_modules/ajv/lib/dot/uniqueItems.jst
diff --git a/src/cobalt/debug/remote/devtools/node_modules/ajv/lib/dot/validate.jst b/src/third_party/devtools/node_modules/ajv/lib/dot/validate.jst
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/ajv/lib/dot/validate.jst
rename to src/third_party/devtools/node_modules/ajv/lib/dot/validate.jst
diff --git a/src/cobalt/debug/remote/devtools/node_modules/ajv/lib/dotjs/README.md b/src/third_party/devtools/node_modules/ajv/lib/dotjs/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/ajv/lib/dotjs/README.md
rename to src/third_party/devtools/node_modules/ajv/lib/dotjs/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/ajv/lib/dotjs/_limit.js b/src/third_party/devtools/node_modules/ajv/lib/dotjs/_limit.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/ajv/lib/dotjs/_limit.js
rename to src/third_party/devtools/node_modules/ajv/lib/dotjs/_limit.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/ajv/lib/dotjs/_limitItems.js b/src/third_party/devtools/node_modules/ajv/lib/dotjs/_limitItems.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/ajv/lib/dotjs/_limitItems.js
rename to src/third_party/devtools/node_modules/ajv/lib/dotjs/_limitItems.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/ajv/lib/dotjs/_limitLength.js b/src/third_party/devtools/node_modules/ajv/lib/dotjs/_limitLength.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/ajv/lib/dotjs/_limitLength.js
rename to src/third_party/devtools/node_modules/ajv/lib/dotjs/_limitLength.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/ajv/lib/dotjs/_limitProperties.js b/src/third_party/devtools/node_modules/ajv/lib/dotjs/_limitProperties.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/ajv/lib/dotjs/_limitProperties.js
rename to src/third_party/devtools/node_modules/ajv/lib/dotjs/_limitProperties.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/ajv/lib/dotjs/allOf.js b/src/third_party/devtools/node_modules/ajv/lib/dotjs/allOf.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/ajv/lib/dotjs/allOf.js
rename to src/third_party/devtools/node_modules/ajv/lib/dotjs/allOf.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/ajv/lib/dotjs/anyOf.js b/src/third_party/devtools/node_modules/ajv/lib/dotjs/anyOf.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/ajv/lib/dotjs/anyOf.js
rename to src/third_party/devtools/node_modules/ajv/lib/dotjs/anyOf.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/ajv/lib/dotjs/comment.js b/src/third_party/devtools/node_modules/ajv/lib/dotjs/comment.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/ajv/lib/dotjs/comment.js
rename to src/third_party/devtools/node_modules/ajv/lib/dotjs/comment.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/ajv/lib/dotjs/const.js b/src/third_party/devtools/node_modules/ajv/lib/dotjs/const.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/ajv/lib/dotjs/const.js
rename to src/third_party/devtools/node_modules/ajv/lib/dotjs/const.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/ajv/lib/dotjs/contains.js b/src/third_party/devtools/node_modules/ajv/lib/dotjs/contains.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/ajv/lib/dotjs/contains.js
rename to src/third_party/devtools/node_modules/ajv/lib/dotjs/contains.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/ajv/lib/dotjs/custom.js b/src/third_party/devtools/node_modules/ajv/lib/dotjs/custom.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/ajv/lib/dotjs/custom.js
rename to src/third_party/devtools/node_modules/ajv/lib/dotjs/custom.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/ajv/lib/dotjs/dependencies.js b/src/third_party/devtools/node_modules/ajv/lib/dotjs/dependencies.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/ajv/lib/dotjs/dependencies.js
rename to src/third_party/devtools/node_modules/ajv/lib/dotjs/dependencies.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/ajv/lib/dotjs/enum.js b/src/third_party/devtools/node_modules/ajv/lib/dotjs/enum.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/ajv/lib/dotjs/enum.js
rename to src/third_party/devtools/node_modules/ajv/lib/dotjs/enum.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/ajv/lib/dotjs/format.js b/src/third_party/devtools/node_modules/ajv/lib/dotjs/format.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/ajv/lib/dotjs/format.js
rename to src/third_party/devtools/node_modules/ajv/lib/dotjs/format.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/ajv/lib/dotjs/if.js b/src/third_party/devtools/node_modules/ajv/lib/dotjs/if.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/ajv/lib/dotjs/if.js
rename to src/third_party/devtools/node_modules/ajv/lib/dotjs/if.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/ajv/lib/dotjs/index.js b/src/third_party/devtools/node_modules/ajv/lib/dotjs/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/ajv/lib/dotjs/index.js
rename to src/third_party/devtools/node_modules/ajv/lib/dotjs/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/ajv/lib/dotjs/items.js b/src/third_party/devtools/node_modules/ajv/lib/dotjs/items.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/ajv/lib/dotjs/items.js
rename to src/third_party/devtools/node_modules/ajv/lib/dotjs/items.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/ajv/lib/dotjs/multipleOf.js b/src/third_party/devtools/node_modules/ajv/lib/dotjs/multipleOf.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/ajv/lib/dotjs/multipleOf.js
rename to src/third_party/devtools/node_modules/ajv/lib/dotjs/multipleOf.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/ajv/lib/dotjs/not.js b/src/third_party/devtools/node_modules/ajv/lib/dotjs/not.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/ajv/lib/dotjs/not.js
rename to src/third_party/devtools/node_modules/ajv/lib/dotjs/not.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/ajv/lib/dotjs/oneOf.js b/src/third_party/devtools/node_modules/ajv/lib/dotjs/oneOf.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/ajv/lib/dotjs/oneOf.js
rename to src/third_party/devtools/node_modules/ajv/lib/dotjs/oneOf.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/ajv/lib/dotjs/pattern.js b/src/third_party/devtools/node_modules/ajv/lib/dotjs/pattern.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/ajv/lib/dotjs/pattern.js
rename to src/third_party/devtools/node_modules/ajv/lib/dotjs/pattern.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/ajv/lib/dotjs/properties.js b/src/third_party/devtools/node_modules/ajv/lib/dotjs/properties.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/ajv/lib/dotjs/properties.js
rename to src/third_party/devtools/node_modules/ajv/lib/dotjs/properties.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/ajv/lib/dotjs/propertyNames.js b/src/third_party/devtools/node_modules/ajv/lib/dotjs/propertyNames.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/ajv/lib/dotjs/propertyNames.js
rename to src/third_party/devtools/node_modules/ajv/lib/dotjs/propertyNames.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/ajv/lib/dotjs/ref.js b/src/third_party/devtools/node_modules/ajv/lib/dotjs/ref.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/ajv/lib/dotjs/ref.js
rename to src/third_party/devtools/node_modules/ajv/lib/dotjs/ref.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/ajv/lib/dotjs/required.js b/src/third_party/devtools/node_modules/ajv/lib/dotjs/required.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/ajv/lib/dotjs/required.js
rename to src/third_party/devtools/node_modules/ajv/lib/dotjs/required.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/ajv/lib/dotjs/uniqueItems.js b/src/third_party/devtools/node_modules/ajv/lib/dotjs/uniqueItems.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/ajv/lib/dotjs/uniqueItems.js
rename to src/third_party/devtools/node_modules/ajv/lib/dotjs/uniqueItems.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/ajv/lib/dotjs/validate.js b/src/third_party/devtools/node_modules/ajv/lib/dotjs/validate.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/ajv/lib/dotjs/validate.js
rename to src/third_party/devtools/node_modules/ajv/lib/dotjs/validate.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/ajv/lib/keyword.js b/src/third_party/devtools/node_modules/ajv/lib/keyword.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/ajv/lib/keyword.js
rename to src/third_party/devtools/node_modules/ajv/lib/keyword.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/ajv/lib/refs/data.json b/src/third_party/devtools/node_modules/ajv/lib/refs/data.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/ajv/lib/refs/data.json
rename to src/third_party/devtools/node_modules/ajv/lib/refs/data.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/ajv/lib/refs/json-schema-draft-04.json b/src/third_party/devtools/node_modules/ajv/lib/refs/json-schema-draft-04.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/ajv/lib/refs/json-schema-draft-04.json
rename to src/third_party/devtools/node_modules/ajv/lib/refs/json-schema-draft-04.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/ajv/lib/refs/json-schema-draft-06.json b/src/third_party/devtools/node_modules/ajv/lib/refs/json-schema-draft-06.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/ajv/lib/refs/json-schema-draft-06.json
rename to src/third_party/devtools/node_modules/ajv/lib/refs/json-schema-draft-06.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/ajv/lib/refs/json-schema-draft-07.json b/src/third_party/devtools/node_modules/ajv/lib/refs/json-schema-draft-07.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/ajv/lib/refs/json-schema-draft-07.json
rename to src/third_party/devtools/node_modules/ajv/lib/refs/json-schema-draft-07.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/ajv/lib/refs/json-schema-secure.json b/src/third_party/devtools/node_modules/ajv/lib/refs/json-schema-secure.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/ajv/lib/refs/json-schema-secure.json
rename to src/third_party/devtools/node_modules/ajv/lib/refs/json-schema-secure.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/ajv/package.json b/src/third_party/devtools/node_modules/ajv/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/ajv/package.json
rename to src/third_party/devtools/node_modules/ajv/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/ajv/scripts/.eslintrc.yml b/src/third_party/devtools/node_modules/ajv/scripts/.eslintrc.yml
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/ajv/scripts/.eslintrc.yml
rename to src/third_party/devtools/node_modules/ajv/scripts/.eslintrc.yml
diff --git a/src/cobalt/debug/remote/devtools/node_modules/ajv/scripts/bundle.js b/src/third_party/devtools/node_modules/ajv/scripts/bundle.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/ajv/scripts/bundle.js
rename to src/third_party/devtools/node_modules/ajv/scripts/bundle.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/ajv/scripts/compile-dots.js b/src/third_party/devtools/node_modules/ajv/scripts/compile-dots.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/ajv/scripts/compile-dots.js
rename to src/third_party/devtools/node_modules/ajv/scripts/compile-dots.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/ajv/scripts/info b/src/third_party/devtools/node_modules/ajv/scripts/info
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/ajv/scripts/info
rename to src/third_party/devtools/node_modules/ajv/scripts/info
diff --git a/src/cobalt/debug/remote/devtools/node_modules/ajv/scripts/prepare-tests b/src/third_party/devtools/node_modules/ajv/scripts/prepare-tests
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/ajv/scripts/prepare-tests
rename to src/third_party/devtools/node_modules/ajv/scripts/prepare-tests
diff --git a/src/cobalt/debug/remote/devtools/node_modules/ajv/scripts/publish-built-version b/src/third_party/devtools/node_modules/ajv/scripts/publish-built-version
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/ajv/scripts/publish-built-version
rename to src/third_party/devtools/node_modules/ajv/scripts/publish-built-version
diff --git a/src/cobalt/debug/remote/devtools/node_modules/ajv/scripts/travis-gh-pages b/src/third_party/devtools/node_modules/ajv/scripts/travis-gh-pages
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/ajv/scripts/travis-gh-pages
rename to src/third_party/devtools/node_modules/ajv/scripts/travis-gh-pages
diff --git a/src/cobalt/debug/remote/devtools/node_modules/amdefine/LICENSE b/src/third_party/devtools/node_modules/amdefine/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/amdefine/LICENSE
rename to src/third_party/devtools/node_modules/amdefine/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/amdefine/README.md b/src/third_party/devtools/node_modules/amdefine/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/amdefine/README.md
rename to src/third_party/devtools/node_modules/amdefine/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/amdefine/amdefine.js b/src/third_party/devtools/node_modules/amdefine/amdefine.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/amdefine/amdefine.js
rename to src/third_party/devtools/node_modules/amdefine/amdefine.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/amdefine/intercept.js b/src/third_party/devtools/node_modules/amdefine/intercept.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/amdefine/intercept.js
rename to src/third_party/devtools/node_modules/amdefine/intercept.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/amdefine/package.json b/src/third_party/devtools/node_modules/amdefine/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/amdefine/package.json
rename to src/third_party/devtools/node_modules/amdefine/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/ansi-colors/LICENSE b/src/third_party/devtools/node_modules/ansi-colors/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/ansi-colors/LICENSE
rename to src/third_party/devtools/node_modules/ansi-colors/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/ansi-colors/README.md b/src/third_party/devtools/node_modules/ansi-colors/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/ansi-colors/README.md
rename to src/third_party/devtools/node_modules/ansi-colors/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/ansi-colors/index.js b/src/third_party/devtools/node_modules/ansi-colors/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/ansi-colors/index.js
rename to src/third_party/devtools/node_modules/ansi-colors/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/ansi-colors/package.json b/src/third_party/devtools/node_modules/ansi-colors/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/ansi-colors/package.json
rename to src/third_party/devtools/node_modules/ansi-colors/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/ansi-colors/types/index.d.ts b/src/third_party/devtools/node_modules/ansi-colors/types/index.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/ansi-colors/types/index.d.ts
rename to src/third_party/devtools/node_modules/ansi-colors/types/index.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/ansi-escapes/LICENSE b/src/third_party/devtools/node_modules/ansi-escapes/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/ansi-escapes/LICENSE
rename to src/third_party/devtools/node_modules/ansi-escapes/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/ansi-escapes/index.js b/src/third_party/devtools/node_modules/ansi-escapes/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/ansi-escapes/index.js
rename to src/third_party/devtools/node_modules/ansi-escapes/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/ansi-escapes/package.json b/src/third_party/devtools/node_modules/ansi-escapes/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/ansi-escapes/package.json
rename to src/third_party/devtools/node_modules/ansi-escapes/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/ansi-escapes/readme.md b/src/third_party/devtools/node_modules/ansi-escapes/readme.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/ansi-escapes/readme.md
rename to src/third_party/devtools/node_modules/ansi-escapes/readme.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/ansi-regex/LICENSE b/src/third_party/devtools/node_modules/ansi-regex/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/ansi-regex/LICENSE
rename to src/third_party/devtools/node_modules/ansi-regex/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/ansi-regex/index.js b/src/third_party/devtools/node_modules/ansi-regex/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/ansi-regex/index.js
rename to src/third_party/devtools/node_modules/ansi-regex/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/ansi-regex/package.json b/src/third_party/devtools/node_modules/ansi-regex/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/ansi-regex/package.json
rename to src/third_party/devtools/node_modules/ansi-regex/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/ansi-regex/readme.md b/src/third_party/devtools/node_modules/ansi-regex/readme.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/ansi-regex/readme.md
rename to src/third_party/devtools/node_modules/ansi-regex/readme.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/ansi-styles/LICENSE b/src/third_party/devtools/node_modules/ansi-styles/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/ansi-styles/LICENSE
rename to src/third_party/devtools/node_modules/ansi-styles/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/ansi-styles/index.js b/src/third_party/devtools/node_modules/ansi-styles/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/ansi-styles/index.js
rename to src/third_party/devtools/node_modules/ansi-styles/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/ansi-styles/package.json b/src/third_party/devtools/node_modules/ansi-styles/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/ansi-styles/package.json
rename to src/third_party/devtools/node_modules/ansi-styles/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/ansi-styles/readme.md b/src/third_party/devtools/node_modules/ansi-styles/readme.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/ansi-styles/readme.md
rename to src/third_party/devtools/node_modules/ansi-styles/readme.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/ansi-wrap/LICENSE b/src/third_party/devtools/node_modules/ansi-wrap/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/ansi-wrap/LICENSE
rename to src/third_party/devtools/node_modules/ansi-wrap/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/ansi-wrap/README.md b/src/third_party/devtools/node_modules/ansi-wrap/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/ansi-wrap/README.md
rename to src/third_party/devtools/node_modules/ansi-wrap/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/ansi-wrap/index.js b/src/third_party/devtools/node_modules/ansi-wrap/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/ansi-wrap/index.js
rename to src/third_party/devtools/node_modules/ansi-wrap/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/ansi-wrap/package.json b/src/third_party/devtools/node_modules/ansi-wrap/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/ansi-wrap/package.json
rename to src/third_party/devtools/node_modules/ansi-wrap/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/anymatch/LICENSE b/src/third_party/devtools/node_modules/anymatch/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/anymatch/LICENSE
rename to src/third_party/devtools/node_modules/anymatch/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/anymatch/README.md b/src/third_party/devtools/node_modules/anymatch/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/anymatch/README.md
rename to src/third_party/devtools/node_modules/anymatch/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/anymatch/index.d.ts b/src/third_party/devtools/node_modules/anymatch/index.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/anymatch/index.d.ts
rename to src/third_party/devtools/node_modules/anymatch/index.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/anymatch/index.js b/src/third_party/devtools/node_modules/anymatch/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/anymatch/index.js
rename to src/third_party/devtools/node_modules/anymatch/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/anymatch/package.json b/src/third_party/devtools/node_modules/anymatch/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/anymatch/package.json
rename to src/third_party/devtools/node_modules/anymatch/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/append-transform/index.js b/src/third_party/devtools/node_modules/append-transform/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/append-transform/index.js
rename to src/third_party/devtools/node_modules/append-transform/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/append-transform/license b/src/third_party/devtools/node_modules/append-transform/license
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/append-transform/license
rename to src/third_party/devtools/node_modules/append-transform/license
diff --git a/src/cobalt/debug/remote/devtools/node_modules/append-transform/package.json b/src/third_party/devtools/node_modules/append-transform/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/append-transform/package.json
rename to src/third_party/devtools/node_modules/append-transform/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/append-transform/readme.md b/src/third_party/devtools/node_modules/append-transform/readme.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/append-transform/readme.md
rename to src/third_party/devtools/node_modules/append-transform/readme.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/argparse/CHANGELOG.md b/src/third_party/devtools/node_modules/argparse/CHANGELOG.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/argparse/CHANGELOG.md
rename to src/third_party/devtools/node_modules/argparse/CHANGELOG.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/argparse/LICENSE b/src/third_party/devtools/node_modules/argparse/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/argparse/LICENSE
rename to src/third_party/devtools/node_modules/argparse/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/argparse/README.md b/src/third_party/devtools/node_modules/argparse/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/argparse/README.md
rename to src/third_party/devtools/node_modules/argparse/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/argparse/index.js b/src/third_party/devtools/node_modules/argparse/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/argparse/index.js
rename to src/third_party/devtools/node_modules/argparse/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/argparse/lib/action.js b/src/third_party/devtools/node_modules/argparse/lib/action.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/argparse/lib/action.js
rename to src/third_party/devtools/node_modules/argparse/lib/action.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/argparse/lib/action/append.js b/src/third_party/devtools/node_modules/argparse/lib/action/append.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/argparse/lib/action/append.js
rename to src/third_party/devtools/node_modules/argparse/lib/action/append.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/argparse/lib/action/append/constant.js b/src/third_party/devtools/node_modules/argparse/lib/action/append/constant.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/argparse/lib/action/append/constant.js
rename to src/third_party/devtools/node_modules/argparse/lib/action/append/constant.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/argparse/lib/action/count.js b/src/third_party/devtools/node_modules/argparse/lib/action/count.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/argparse/lib/action/count.js
rename to src/third_party/devtools/node_modules/argparse/lib/action/count.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/argparse/lib/action/help.js b/src/third_party/devtools/node_modules/argparse/lib/action/help.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/argparse/lib/action/help.js
rename to src/third_party/devtools/node_modules/argparse/lib/action/help.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/argparse/lib/action/store.js b/src/third_party/devtools/node_modules/argparse/lib/action/store.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/argparse/lib/action/store.js
rename to src/third_party/devtools/node_modules/argparse/lib/action/store.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/argparse/lib/action/store/constant.js b/src/third_party/devtools/node_modules/argparse/lib/action/store/constant.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/argparse/lib/action/store/constant.js
rename to src/third_party/devtools/node_modules/argparse/lib/action/store/constant.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/argparse/lib/action/store/false.js b/src/third_party/devtools/node_modules/argparse/lib/action/store/false.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/argparse/lib/action/store/false.js
rename to src/third_party/devtools/node_modules/argparse/lib/action/store/false.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/argparse/lib/action/store/true.js b/src/third_party/devtools/node_modules/argparse/lib/action/store/true.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/argparse/lib/action/store/true.js
rename to src/third_party/devtools/node_modules/argparse/lib/action/store/true.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/argparse/lib/action/subparsers.js b/src/third_party/devtools/node_modules/argparse/lib/action/subparsers.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/argparse/lib/action/subparsers.js
rename to src/third_party/devtools/node_modules/argparse/lib/action/subparsers.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/argparse/lib/action/version.js b/src/third_party/devtools/node_modules/argparse/lib/action/version.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/argparse/lib/action/version.js
rename to src/third_party/devtools/node_modules/argparse/lib/action/version.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/argparse/lib/action_container.js b/src/third_party/devtools/node_modules/argparse/lib/action_container.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/argparse/lib/action_container.js
rename to src/third_party/devtools/node_modules/argparse/lib/action_container.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/argparse/lib/argparse.js b/src/third_party/devtools/node_modules/argparse/lib/argparse.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/argparse/lib/argparse.js
rename to src/third_party/devtools/node_modules/argparse/lib/argparse.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/argparse/lib/argument/error.js b/src/third_party/devtools/node_modules/argparse/lib/argument/error.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/argparse/lib/argument/error.js
rename to src/third_party/devtools/node_modules/argparse/lib/argument/error.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/argparse/lib/argument/exclusive.js b/src/third_party/devtools/node_modules/argparse/lib/argument/exclusive.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/argparse/lib/argument/exclusive.js
rename to src/third_party/devtools/node_modules/argparse/lib/argument/exclusive.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/argparse/lib/argument/group.js b/src/third_party/devtools/node_modules/argparse/lib/argument/group.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/argparse/lib/argument/group.js
rename to src/third_party/devtools/node_modules/argparse/lib/argument/group.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/argparse/lib/argument_parser.js b/src/third_party/devtools/node_modules/argparse/lib/argument_parser.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/argparse/lib/argument_parser.js
rename to src/third_party/devtools/node_modules/argparse/lib/argument_parser.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/argparse/lib/const.js b/src/third_party/devtools/node_modules/argparse/lib/const.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/argparse/lib/const.js
rename to src/third_party/devtools/node_modules/argparse/lib/const.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/argparse/lib/help/added_formatters.js b/src/third_party/devtools/node_modules/argparse/lib/help/added_formatters.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/argparse/lib/help/added_formatters.js
rename to src/third_party/devtools/node_modules/argparse/lib/help/added_formatters.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/argparse/lib/help/formatter.js b/src/third_party/devtools/node_modules/argparse/lib/help/formatter.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/argparse/lib/help/formatter.js
rename to src/third_party/devtools/node_modules/argparse/lib/help/formatter.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/argparse/lib/namespace.js b/src/third_party/devtools/node_modules/argparse/lib/namespace.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/argparse/lib/namespace.js
rename to src/third_party/devtools/node_modules/argparse/lib/namespace.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/argparse/lib/utils.js b/src/third_party/devtools/node_modules/argparse/lib/utils.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/argparse/lib/utils.js
rename to src/third_party/devtools/node_modules/argparse/lib/utils.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/argparse/package.json b/src/third_party/devtools/node_modules/argparse/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/argparse/package.json
rename to src/third_party/devtools/node_modules/argparse/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/arr-diff/LICENSE b/src/third_party/devtools/node_modules/arr-diff/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/arr-diff/LICENSE
rename to src/third_party/devtools/node_modules/arr-diff/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/arr-diff/README.md b/src/third_party/devtools/node_modules/arr-diff/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/arr-diff/README.md
rename to src/third_party/devtools/node_modules/arr-diff/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/arr-diff/index.js b/src/third_party/devtools/node_modules/arr-diff/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/arr-diff/index.js
rename to src/third_party/devtools/node_modules/arr-diff/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/arr-diff/package.json b/src/third_party/devtools/node_modules/arr-diff/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/arr-diff/package.json
rename to src/third_party/devtools/node_modules/arr-diff/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/arr-union/LICENSE b/src/third_party/devtools/node_modules/arr-union/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/arr-union/LICENSE
rename to src/third_party/devtools/node_modules/arr-union/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/arr-union/README.md b/src/third_party/devtools/node_modules/arr-union/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/arr-union/README.md
rename to src/third_party/devtools/node_modules/arr-union/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/arr-union/index.js b/src/third_party/devtools/node_modules/arr-union/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/arr-union/index.js
rename to src/third_party/devtools/node_modules/arr-union/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/arr-union/package.json b/src/third_party/devtools/node_modules/arr-union/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/arr-union/package.json
rename to src/third_party/devtools/node_modules/arr-union/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/array-find-index/index.js b/src/third_party/devtools/node_modules/array-find-index/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/array-find-index/index.js
rename to src/third_party/devtools/node_modules/array-find-index/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/array-find-index/license b/src/third_party/devtools/node_modules/array-find-index/license
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/array-find-index/license
rename to src/third_party/devtools/node_modules/array-find-index/license
diff --git a/src/cobalt/debug/remote/devtools/node_modules/array-find-index/package.json b/src/third_party/devtools/node_modules/array-find-index/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/array-find-index/package.json
rename to src/third_party/devtools/node_modules/array-find-index/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/array-find-index/readme.md b/src/third_party/devtools/node_modules/array-find-index/readme.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/array-find-index/readme.md
rename to src/third_party/devtools/node_modules/array-find-index/readme.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/arraybuffer.slice/.npmignore b/src/third_party/devtools/node_modules/arraybuffer.slice/.npmignore
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/arraybuffer.slice/.npmignore
rename to src/third_party/devtools/node_modules/arraybuffer.slice/.npmignore
diff --git a/src/cobalt/debug/remote/devtools/node_modules/arraybuffer.slice/LICENCE b/src/third_party/devtools/node_modules/arraybuffer.slice/LICENCE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/arraybuffer.slice/LICENCE
rename to src/third_party/devtools/node_modules/arraybuffer.slice/LICENCE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/arraybuffer.slice/Makefile b/src/third_party/devtools/node_modules/arraybuffer.slice/Makefile
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/arraybuffer.slice/Makefile
rename to src/third_party/devtools/node_modules/arraybuffer.slice/Makefile
diff --git a/src/cobalt/debug/remote/devtools/node_modules/arraybuffer.slice/README.md b/src/third_party/devtools/node_modules/arraybuffer.slice/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/arraybuffer.slice/README.md
rename to src/third_party/devtools/node_modules/arraybuffer.slice/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/arraybuffer.slice/index.js b/src/third_party/devtools/node_modules/arraybuffer.slice/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/arraybuffer.slice/index.js
rename to src/third_party/devtools/node_modules/arraybuffer.slice/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/arraybuffer.slice/package.json b/src/third_party/devtools/node_modules/arraybuffer.slice/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/arraybuffer.slice/package.json
rename to src/third_party/devtools/node_modules/arraybuffer.slice/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/arraybuffer.slice/test/slice-buffer.js b/src/third_party/devtools/node_modules/arraybuffer.slice/test/slice-buffer.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/arraybuffer.slice/test/slice-buffer.js
rename to src/third_party/devtools/node_modules/arraybuffer.slice/test/slice-buffer.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/asap/CHANGES.md b/src/third_party/devtools/node_modules/asap/CHANGES.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/asap/CHANGES.md
rename to src/third_party/devtools/node_modules/asap/CHANGES.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/asap/LICENSE.md b/src/third_party/devtools/node_modules/asap/LICENSE.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/asap/LICENSE.md
rename to src/third_party/devtools/node_modules/asap/LICENSE.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/asap/README.md b/src/third_party/devtools/node_modules/asap/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/asap/README.md
rename to src/third_party/devtools/node_modules/asap/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/asap/asap.js b/src/third_party/devtools/node_modules/asap/asap.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/asap/asap.js
rename to src/third_party/devtools/node_modules/asap/asap.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/asap/browser-asap.js b/src/third_party/devtools/node_modules/asap/browser-asap.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/asap/browser-asap.js
rename to src/third_party/devtools/node_modules/asap/browser-asap.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/asap/browser-raw.js b/src/third_party/devtools/node_modules/asap/browser-raw.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/asap/browser-raw.js
rename to src/third_party/devtools/node_modules/asap/browser-raw.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/asap/package.json b/src/third_party/devtools/node_modules/asap/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/asap/package.json
rename to src/third_party/devtools/node_modules/asap/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/asap/raw.js b/src/third_party/devtools/node_modules/asap/raw.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/asap/raw.js
rename to src/third_party/devtools/node_modules/asap/raw.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/asn1.js/README.md b/src/third_party/devtools/node_modules/asn1.js/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/asn1.js/README.md
rename to src/third_party/devtools/node_modules/asn1.js/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/asn1.js/lib/asn1.js b/src/third_party/devtools/node_modules/asn1.js/lib/asn1.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/asn1.js/lib/asn1.js
rename to src/third_party/devtools/node_modules/asn1.js/lib/asn1.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/asn1.js/lib/asn1/api.js b/src/third_party/devtools/node_modules/asn1.js/lib/asn1/api.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/asn1.js/lib/asn1/api.js
rename to src/third_party/devtools/node_modules/asn1.js/lib/asn1/api.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/asn1.js/lib/asn1/base/buffer.js b/src/third_party/devtools/node_modules/asn1.js/lib/asn1/base/buffer.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/asn1.js/lib/asn1/base/buffer.js
rename to src/third_party/devtools/node_modules/asn1.js/lib/asn1/base/buffer.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/asn1.js/lib/asn1/base/index.js b/src/third_party/devtools/node_modules/asn1.js/lib/asn1/base/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/asn1.js/lib/asn1/base/index.js
rename to src/third_party/devtools/node_modules/asn1.js/lib/asn1/base/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/asn1.js/lib/asn1/base/node.js b/src/third_party/devtools/node_modules/asn1.js/lib/asn1/base/node.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/asn1.js/lib/asn1/base/node.js
rename to src/third_party/devtools/node_modules/asn1.js/lib/asn1/base/node.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/asn1.js/lib/asn1/base/reporter.js b/src/third_party/devtools/node_modules/asn1.js/lib/asn1/base/reporter.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/asn1.js/lib/asn1/base/reporter.js
rename to src/third_party/devtools/node_modules/asn1.js/lib/asn1/base/reporter.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/asn1.js/lib/asn1/constants/der.js b/src/third_party/devtools/node_modules/asn1.js/lib/asn1/constants/der.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/asn1.js/lib/asn1/constants/der.js
rename to src/third_party/devtools/node_modules/asn1.js/lib/asn1/constants/der.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/asn1.js/lib/asn1/constants/index.js b/src/third_party/devtools/node_modules/asn1.js/lib/asn1/constants/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/asn1.js/lib/asn1/constants/index.js
rename to src/third_party/devtools/node_modules/asn1.js/lib/asn1/constants/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/asn1.js/lib/asn1/decoders/der.js b/src/third_party/devtools/node_modules/asn1.js/lib/asn1/decoders/der.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/asn1.js/lib/asn1/decoders/der.js
rename to src/third_party/devtools/node_modules/asn1.js/lib/asn1/decoders/der.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/asn1.js/lib/asn1/decoders/index.js b/src/third_party/devtools/node_modules/asn1.js/lib/asn1/decoders/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/asn1.js/lib/asn1/decoders/index.js
rename to src/third_party/devtools/node_modules/asn1.js/lib/asn1/decoders/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/asn1.js/lib/asn1/decoders/pem.js b/src/third_party/devtools/node_modules/asn1.js/lib/asn1/decoders/pem.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/asn1.js/lib/asn1/decoders/pem.js
rename to src/third_party/devtools/node_modules/asn1.js/lib/asn1/decoders/pem.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/asn1.js/lib/asn1/encoders/der.js b/src/third_party/devtools/node_modules/asn1.js/lib/asn1/encoders/der.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/asn1.js/lib/asn1/encoders/der.js
rename to src/third_party/devtools/node_modules/asn1.js/lib/asn1/encoders/der.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/asn1.js/lib/asn1/encoders/index.js b/src/third_party/devtools/node_modules/asn1.js/lib/asn1/encoders/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/asn1.js/lib/asn1/encoders/index.js
rename to src/third_party/devtools/node_modules/asn1.js/lib/asn1/encoders/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/asn1.js/lib/asn1/encoders/pem.js b/src/third_party/devtools/node_modules/asn1.js/lib/asn1/encoders/pem.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/asn1.js/lib/asn1/encoders/pem.js
rename to src/third_party/devtools/node_modules/asn1.js/lib/asn1/encoders/pem.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/asn1.js/package.json b/src/third_party/devtools/node_modules/asn1.js/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/asn1.js/package.json
rename to src/third_party/devtools/node_modules/asn1.js/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/assert/CHANGELOG.md b/src/third_party/devtools/node_modules/assert/CHANGELOG.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/assert/CHANGELOG.md
rename to src/third_party/devtools/node_modules/assert/CHANGELOG.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/assert/LICENSE b/src/third_party/devtools/node_modules/assert/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/assert/LICENSE
rename to src/third_party/devtools/node_modules/assert/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/assert/README.md b/src/third_party/devtools/node_modules/assert/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/assert/README.md
rename to src/third_party/devtools/node_modules/assert/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/assert/build/assert.js b/src/third_party/devtools/node_modules/assert/build/assert.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/assert/build/assert.js
rename to src/third_party/devtools/node_modules/assert/build/assert.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/assert/build/internal/assert/assertion_error.js b/src/third_party/devtools/node_modules/assert/build/internal/assert/assertion_error.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/assert/build/internal/assert/assertion_error.js
rename to src/third_party/devtools/node_modules/assert/build/internal/assert/assertion_error.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/assert/build/internal/errors.js b/src/third_party/devtools/node_modules/assert/build/internal/errors.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/assert/build/internal/errors.js
rename to src/third_party/devtools/node_modules/assert/build/internal/errors.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/assert/build/internal/util/comparisons.js b/src/third_party/devtools/node_modules/assert/build/internal/util/comparisons.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/assert/build/internal/util/comparisons.js
rename to src/third_party/devtools/node_modules/assert/build/internal/util/comparisons.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/assert/package.json b/src/third_party/devtools/node_modules/assert/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/assert/package.json
rename to src/third_party/devtools/node_modules/assert/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/assertion-error/History.md b/src/third_party/devtools/node_modules/assertion-error/History.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/assertion-error/History.md
rename to src/third_party/devtools/node_modules/assertion-error/History.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/assertion-error/README.md b/src/third_party/devtools/node_modules/assertion-error/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/assertion-error/README.md
rename to src/third_party/devtools/node_modules/assertion-error/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/assertion-error/index.d.ts b/src/third_party/devtools/node_modules/assertion-error/index.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/assertion-error/index.d.ts
rename to src/third_party/devtools/node_modules/assertion-error/index.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/assertion-error/index.js b/src/third_party/devtools/node_modules/assertion-error/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/assertion-error/index.js
rename to src/third_party/devtools/node_modules/assertion-error/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/assertion-error/package.json b/src/third_party/devtools/node_modules/assertion-error/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/assertion-error/package.json
rename to src/third_party/devtools/node_modules/assertion-error/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/assign-symbols/LICENSE b/src/third_party/devtools/node_modules/assign-symbols/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/assign-symbols/LICENSE
rename to src/third_party/devtools/node_modules/assign-symbols/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/assign-symbols/README.md b/src/third_party/devtools/node_modules/assign-symbols/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/assign-symbols/README.md
rename to src/third_party/devtools/node_modules/assign-symbols/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/assign-symbols/index.js b/src/third_party/devtools/node_modules/assign-symbols/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/assign-symbols/index.js
rename to src/third_party/devtools/node_modules/assign-symbols/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/assign-symbols/package.json b/src/third_party/devtools/node_modules/assign-symbols/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/assign-symbols/package.json
rename to src/third_party/devtools/node_modules/assign-symbols/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/astral-regex/index.js b/src/third_party/devtools/node_modules/astral-regex/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/astral-regex/index.js
rename to src/third_party/devtools/node_modules/astral-regex/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/astral-regex/license b/src/third_party/devtools/node_modules/astral-regex/license
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/astral-regex/license
rename to src/third_party/devtools/node_modules/astral-regex/license
diff --git a/src/cobalt/debug/remote/devtools/node_modules/astral-regex/package.json b/src/third_party/devtools/node_modules/astral-regex/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/astral-regex/package.json
rename to src/third_party/devtools/node_modules/astral-regex/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/astral-regex/readme.md b/src/third_party/devtools/node_modules/astral-regex/readme.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/astral-regex/readme.md
rename to src/third_party/devtools/node_modules/astral-regex/readme.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/async-limiter/.eslintignore b/src/third_party/devtools/node_modules/async-limiter/.eslintignore
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/async-limiter/.eslintignore
rename to src/third_party/devtools/node_modules/async-limiter/.eslintignore
diff --git a/src/cobalt/debug/remote/devtools/node_modules/async-limiter/.nycrc b/src/third_party/devtools/node_modules/async-limiter/.nycrc
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/async-limiter/.nycrc
rename to src/third_party/devtools/node_modules/async-limiter/.nycrc
diff --git a/src/cobalt/debug/remote/devtools/node_modules/async-limiter/.travis.yml b/src/third_party/devtools/node_modules/async-limiter/.travis.yml
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/async-limiter/.travis.yml
rename to src/third_party/devtools/node_modules/async-limiter/.travis.yml
diff --git a/src/cobalt/debug/remote/devtools/node_modules/async-limiter/LICENSE b/src/third_party/devtools/node_modules/async-limiter/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/async-limiter/LICENSE
rename to src/third_party/devtools/node_modules/async-limiter/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/async-limiter/index.js b/src/third_party/devtools/node_modules/async-limiter/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/async-limiter/index.js
rename to src/third_party/devtools/node_modules/async-limiter/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/async-limiter/package.json b/src/third_party/devtools/node_modules/async-limiter/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/async-limiter/package.json
rename to src/third_party/devtools/node_modules/async-limiter/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/async-limiter/readme.md b/src/third_party/devtools/node_modules/async-limiter/readme.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/async-limiter/readme.md
rename to src/third_party/devtools/node_modules/async-limiter/readme.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/async/CHANGELOG.md b/src/third_party/devtools/node_modules/async/CHANGELOG.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/async/CHANGELOG.md
rename to src/third_party/devtools/node_modules/async/CHANGELOG.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/async/LICENSE b/src/third_party/devtools/node_modules/async/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/async/LICENSE
rename to src/third_party/devtools/node_modules/async/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/async/README.md b/src/third_party/devtools/node_modules/async/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/async/README.md
rename to src/third_party/devtools/node_modules/async/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/async/all.js b/src/third_party/devtools/node_modules/async/all.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/async/all.js
rename to src/third_party/devtools/node_modules/async/all.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/async/allLimit.js b/src/third_party/devtools/node_modules/async/allLimit.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/async/allLimit.js
rename to src/third_party/devtools/node_modules/async/allLimit.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/async/allSeries.js b/src/third_party/devtools/node_modules/async/allSeries.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/async/allSeries.js
rename to src/third_party/devtools/node_modules/async/allSeries.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/async/any.js b/src/third_party/devtools/node_modules/async/any.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/async/any.js
rename to src/third_party/devtools/node_modules/async/any.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/async/anyLimit.js b/src/third_party/devtools/node_modules/async/anyLimit.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/async/anyLimit.js
rename to src/third_party/devtools/node_modules/async/anyLimit.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/async/anySeries.js b/src/third_party/devtools/node_modules/async/anySeries.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/async/anySeries.js
rename to src/third_party/devtools/node_modules/async/anySeries.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/async/apply.js b/src/third_party/devtools/node_modules/async/apply.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/async/apply.js
rename to src/third_party/devtools/node_modules/async/apply.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/async/applyEach.js b/src/third_party/devtools/node_modules/async/applyEach.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/async/applyEach.js
rename to src/third_party/devtools/node_modules/async/applyEach.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/async/applyEachSeries.js b/src/third_party/devtools/node_modules/async/applyEachSeries.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/async/applyEachSeries.js
rename to src/third_party/devtools/node_modules/async/applyEachSeries.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/async/asyncify.js b/src/third_party/devtools/node_modules/async/asyncify.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/async/asyncify.js
rename to src/third_party/devtools/node_modules/async/asyncify.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/async/auto.js b/src/third_party/devtools/node_modules/async/auto.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/async/auto.js
rename to src/third_party/devtools/node_modules/async/auto.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/async/autoInject.js b/src/third_party/devtools/node_modules/async/autoInject.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/async/autoInject.js
rename to src/third_party/devtools/node_modules/async/autoInject.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/async/bower.json b/src/third_party/devtools/node_modules/async/bower.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/async/bower.json
rename to src/third_party/devtools/node_modules/async/bower.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/async/cargo.js b/src/third_party/devtools/node_modules/async/cargo.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/async/cargo.js
rename to src/third_party/devtools/node_modules/async/cargo.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/async/compose.js b/src/third_party/devtools/node_modules/async/compose.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/async/compose.js
rename to src/third_party/devtools/node_modules/async/compose.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/async/concat.js b/src/third_party/devtools/node_modules/async/concat.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/async/concat.js
rename to src/third_party/devtools/node_modules/async/concat.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/async/concatLimit.js b/src/third_party/devtools/node_modules/async/concatLimit.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/async/concatLimit.js
rename to src/third_party/devtools/node_modules/async/concatLimit.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/async/concatSeries.js b/src/third_party/devtools/node_modules/async/concatSeries.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/async/concatSeries.js
rename to src/third_party/devtools/node_modules/async/concatSeries.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/async/constant.js b/src/third_party/devtools/node_modules/async/constant.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/async/constant.js
rename to src/third_party/devtools/node_modules/async/constant.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/async/detect.js b/src/third_party/devtools/node_modules/async/detect.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/async/detect.js
rename to src/third_party/devtools/node_modules/async/detect.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/async/detectLimit.js b/src/third_party/devtools/node_modules/async/detectLimit.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/async/detectLimit.js
rename to src/third_party/devtools/node_modules/async/detectLimit.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/async/detectSeries.js b/src/third_party/devtools/node_modules/async/detectSeries.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/async/detectSeries.js
rename to src/third_party/devtools/node_modules/async/detectSeries.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/async/dir.js b/src/third_party/devtools/node_modules/async/dir.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/async/dir.js
rename to src/third_party/devtools/node_modules/async/dir.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/async/dist/async.js b/src/third_party/devtools/node_modules/async/dist/async.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/async/dist/async.js
rename to src/third_party/devtools/node_modules/async/dist/async.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/async/dist/async.min.js b/src/third_party/devtools/node_modules/async/dist/async.min.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/async/dist/async.min.js
rename to src/third_party/devtools/node_modules/async/dist/async.min.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/async/dist/async.min.map b/src/third_party/devtools/node_modules/async/dist/async.min.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/async/dist/async.min.map
rename to src/third_party/devtools/node_modules/async/dist/async.min.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/async/doDuring.js b/src/third_party/devtools/node_modules/async/doDuring.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/async/doDuring.js
rename to src/third_party/devtools/node_modules/async/doDuring.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/async/doUntil.js b/src/third_party/devtools/node_modules/async/doUntil.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/async/doUntil.js
rename to src/third_party/devtools/node_modules/async/doUntil.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/async/doWhilst.js b/src/third_party/devtools/node_modules/async/doWhilst.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/async/doWhilst.js
rename to src/third_party/devtools/node_modules/async/doWhilst.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/async/during.js b/src/third_party/devtools/node_modules/async/during.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/async/during.js
rename to src/third_party/devtools/node_modules/async/during.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/async/each.js b/src/third_party/devtools/node_modules/async/each.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/async/each.js
rename to src/third_party/devtools/node_modules/async/each.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/async/eachLimit.js b/src/third_party/devtools/node_modules/async/eachLimit.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/async/eachLimit.js
rename to src/third_party/devtools/node_modules/async/eachLimit.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/async/eachOf.js b/src/third_party/devtools/node_modules/async/eachOf.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/async/eachOf.js
rename to src/third_party/devtools/node_modules/async/eachOf.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/async/eachOfLimit.js b/src/third_party/devtools/node_modules/async/eachOfLimit.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/async/eachOfLimit.js
rename to src/third_party/devtools/node_modules/async/eachOfLimit.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/async/eachOfSeries.js b/src/third_party/devtools/node_modules/async/eachOfSeries.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/async/eachOfSeries.js
rename to src/third_party/devtools/node_modules/async/eachOfSeries.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/async/eachSeries.js b/src/third_party/devtools/node_modules/async/eachSeries.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/async/eachSeries.js
rename to src/third_party/devtools/node_modules/async/eachSeries.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/async/ensureAsync.js b/src/third_party/devtools/node_modules/async/ensureAsync.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/async/ensureAsync.js
rename to src/third_party/devtools/node_modules/async/ensureAsync.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/async/every.js b/src/third_party/devtools/node_modules/async/every.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/async/every.js
rename to src/third_party/devtools/node_modules/async/every.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/async/everyLimit.js b/src/third_party/devtools/node_modules/async/everyLimit.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/async/everyLimit.js
rename to src/third_party/devtools/node_modules/async/everyLimit.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/async/everySeries.js b/src/third_party/devtools/node_modules/async/everySeries.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/async/everySeries.js
rename to src/third_party/devtools/node_modules/async/everySeries.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/async/filter.js b/src/third_party/devtools/node_modules/async/filter.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/async/filter.js
rename to src/third_party/devtools/node_modules/async/filter.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/async/filterLimit.js b/src/third_party/devtools/node_modules/async/filterLimit.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/async/filterLimit.js
rename to src/third_party/devtools/node_modules/async/filterLimit.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/async/filterSeries.js b/src/third_party/devtools/node_modules/async/filterSeries.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/async/filterSeries.js
rename to src/third_party/devtools/node_modules/async/filterSeries.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/async/find.js b/src/third_party/devtools/node_modules/async/find.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/async/find.js
rename to src/third_party/devtools/node_modules/async/find.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/async/findLimit.js b/src/third_party/devtools/node_modules/async/findLimit.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/async/findLimit.js
rename to src/third_party/devtools/node_modules/async/findLimit.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/async/findSeries.js b/src/third_party/devtools/node_modules/async/findSeries.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/async/findSeries.js
rename to src/third_party/devtools/node_modules/async/findSeries.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/async/foldl.js b/src/third_party/devtools/node_modules/async/foldl.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/async/foldl.js
rename to src/third_party/devtools/node_modules/async/foldl.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/async/foldr.js b/src/third_party/devtools/node_modules/async/foldr.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/async/foldr.js
rename to src/third_party/devtools/node_modules/async/foldr.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/async/forEach.js b/src/third_party/devtools/node_modules/async/forEach.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/async/forEach.js
rename to src/third_party/devtools/node_modules/async/forEach.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/async/forEachLimit.js b/src/third_party/devtools/node_modules/async/forEachLimit.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/async/forEachLimit.js
rename to src/third_party/devtools/node_modules/async/forEachLimit.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/async/forEachOf.js b/src/third_party/devtools/node_modules/async/forEachOf.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/async/forEachOf.js
rename to src/third_party/devtools/node_modules/async/forEachOf.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/async/forEachOfLimit.js b/src/third_party/devtools/node_modules/async/forEachOfLimit.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/async/forEachOfLimit.js
rename to src/third_party/devtools/node_modules/async/forEachOfLimit.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/async/forEachOfSeries.js b/src/third_party/devtools/node_modules/async/forEachOfSeries.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/async/forEachOfSeries.js
rename to src/third_party/devtools/node_modules/async/forEachOfSeries.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/async/forEachSeries.js b/src/third_party/devtools/node_modules/async/forEachSeries.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/async/forEachSeries.js
rename to src/third_party/devtools/node_modules/async/forEachSeries.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/async/forever.js b/src/third_party/devtools/node_modules/async/forever.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/async/forever.js
rename to src/third_party/devtools/node_modules/async/forever.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/async/groupBy.js b/src/third_party/devtools/node_modules/async/groupBy.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/async/groupBy.js
rename to src/third_party/devtools/node_modules/async/groupBy.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/async/groupByLimit.js b/src/third_party/devtools/node_modules/async/groupByLimit.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/async/groupByLimit.js
rename to src/third_party/devtools/node_modules/async/groupByLimit.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/async/groupBySeries.js b/src/third_party/devtools/node_modules/async/groupBySeries.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/async/groupBySeries.js
rename to src/third_party/devtools/node_modules/async/groupBySeries.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/async/index.js b/src/third_party/devtools/node_modules/async/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/async/index.js
rename to src/third_party/devtools/node_modules/async/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/async/inject.js b/src/third_party/devtools/node_modules/async/inject.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/async/inject.js
rename to src/third_party/devtools/node_modules/async/inject.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/async/internal/DoublyLinkedList.js b/src/third_party/devtools/node_modules/async/internal/DoublyLinkedList.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/async/internal/DoublyLinkedList.js
rename to src/third_party/devtools/node_modules/async/internal/DoublyLinkedList.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/async/internal/applyEach.js b/src/third_party/devtools/node_modules/async/internal/applyEach.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/async/internal/applyEach.js
rename to src/third_party/devtools/node_modules/async/internal/applyEach.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/async/internal/breakLoop.js b/src/third_party/devtools/node_modules/async/internal/breakLoop.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/async/internal/breakLoop.js
rename to src/third_party/devtools/node_modules/async/internal/breakLoop.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/async/internal/consoleFunc.js b/src/third_party/devtools/node_modules/async/internal/consoleFunc.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/async/internal/consoleFunc.js
rename to src/third_party/devtools/node_modules/async/internal/consoleFunc.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/async/internal/createTester.js b/src/third_party/devtools/node_modules/async/internal/createTester.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/async/internal/createTester.js
rename to src/third_party/devtools/node_modules/async/internal/createTester.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/async/internal/doLimit.js b/src/third_party/devtools/node_modules/async/internal/doLimit.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/async/internal/doLimit.js
rename to src/third_party/devtools/node_modules/async/internal/doLimit.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/async/internal/doParallel.js b/src/third_party/devtools/node_modules/async/internal/doParallel.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/async/internal/doParallel.js
rename to src/third_party/devtools/node_modules/async/internal/doParallel.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/async/internal/doParallelLimit.js b/src/third_party/devtools/node_modules/async/internal/doParallelLimit.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/async/internal/doParallelLimit.js
rename to src/third_party/devtools/node_modules/async/internal/doParallelLimit.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/async/internal/eachOfLimit.js b/src/third_party/devtools/node_modules/async/internal/eachOfLimit.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/async/internal/eachOfLimit.js
rename to src/third_party/devtools/node_modules/async/internal/eachOfLimit.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/async/internal/filter.js b/src/third_party/devtools/node_modules/async/internal/filter.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/async/internal/filter.js
rename to src/third_party/devtools/node_modules/async/internal/filter.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/async/internal/findGetResult.js b/src/third_party/devtools/node_modules/async/internal/findGetResult.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/async/internal/findGetResult.js
rename to src/third_party/devtools/node_modules/async/internal/findGetResult.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/async/internal/getIterator.js b/src/third_party/devtools/node_modules/async/internal/getIterator.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/async/internal/getIterator.js
rename to src/third_party/devtools/node_modules/async/internal/getIterator.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/async/internal/initialParams.js b/src/third_party/devtools/node_modules/async/internal/initialParams.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/async/internal/initialParams.js
rename to src/third_party/devtools/node_modules/async/internal/initialParams.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/async/internal/iterator.js b/src/third_party/devtools/node_modules/async/internal/iterator.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/async/internal/iterator.js
rename to src/third_party/devtools/node_modules/async/internal/iterator.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/async/internal/map.js b/src/third_party/devtools/node_modules/async/internal/map.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/async/internal/map.js
rename to src/third_party/devtools/node_modules/async/internal/map.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/async/internal/notId.js b/src/third_party/devtools/node_modules/async/internal/notId.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/async/internal/notId.js
rename to src/third_party/devtools/node_modules/async/internal/notId.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/async/internal/once.js b/src/third_party/devtools/node_modules/async/internal/once.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/async/internal/once.js
rename to src/third_party/devtools/node_modules/async/internal/once.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/async/internal/onlyOnce.js b/src/third_party/devtools/node_modules/async/internal/onlyOnce.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/async/internal/onlyOnce.js
rename to src/third_party/devtools/node_modules/async/internal/onlyOnce.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/async/internal/parallel.js b/src/third_party/devtools/node_modules/async/internal/parallel.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/async/internal/parallel.js
rename to src/third_party/devtools/node_modules/async/internal/parallel.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/async/internal/queue.js b/src/third_party/devtools/node_modules/async/internal/queue.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/async/internal/queue.js
rename to src/third_party/devtools/node_modules/async/internal/queue.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/async/internal/reject.js b/src/third_party/devtools/node_modules/async/internal/reject.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/async/internal/reject.js
rename to src/third_party/devtools/node_modules/async/internal/reject.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/async/internal/setImmediate.js b/src/third_party/devtools/node_modules/async/internal/setImmediate.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/async/internal/setImmediate.js
rename to src/third_party/devtools/node_modules/async/internal/setImmediate.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/async/internal/slice.js b/src/third_party/devtools/node_modules/async/internal/slice.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/async/internal/slice.js
rename to src/third_party/devtools/node_modules/async/internal/slice.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/async/internal/withoutIndex.js b/src/third_party/devtools/node_modules/async/internal/withoutIndex.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/async/internal/withoutIndex.js
rename to src/third_party/devtools/node_modules/async/internal/withoutIndex.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/async/internal/wrapAsync.js b/src/third_party/devtools/node_modules/async/internal/wrapAsync.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/async/internal/wrapAsync.js
rename to src/third_party/devtools/node_modules/async/internal/wrapAsync.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/async/log.js b/src/third_party/devtools/node_modules/async/log.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/async/log.js
rename to src/third_party/devtools/node_modules/async/log.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/async/map.js b/src/third_party/devtools/node_modules/async/map.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/async/map.js
rename to src/third_party/devtools/node_modules/async/map.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/async/mapLimit.js b/src/third_party/devtools/node_modules/async/mapLimit.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/async/mapLimit.js
rename to src/third_party/devtools/node_modules/async/mapLimit.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/async/mapSeries.js b/src/third_party/devtools/node_modules/async/mapSeries.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/async/mapSeries.js
rename to src/third_party/devtools/node_modules/async/mapSeries.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/async/mapValues.js b/src/third_party/devtools/node_modules/async/mapValues.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/async/mapValues.js
rename to src/third_party/devtools/node_modules/async/mapValues.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/async/mapValuesLimit.js b/src/third_party/devtools/node_modules/async/mapValuesLimit.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/async/mapValuesLimit.js
rename to src/third_party/devtools/node_modules/async/mapValuesLimit.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/async/mapValuesSeries.js b/src/third_party/devtools/node_modules/async/mapValuesSeries.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/async/mapValuesSeries.js
rename to src/third_party/devtools/node_modules/async/mapValuesSeries.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/async/memoize.js b/src/third_party/devtools/node_modules/async/memoize.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/async/memoize.js
rename to src/third_party/devtools/node_modules/async/memoize.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/async/nextTick.js b/src/third_party/devtools/node_modules/async/nextTick.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/async/nextTick.js
rename to src/third_party/devtools/node_modules/async/nextTick.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/async/package.json b/src/third_party/devtools/node_modules/async/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/async/package.json
rename to src/third_party/devtools/node_modules/async/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/async/parallel.js b/src/third_party/devtools/node_modules/async/parallel.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/async/parallel.js
rename to src/third_party/devtools/node_modules/async/parallel.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/async/parallelLimit.js b/src/third_party/devtools/node_modules/async/parallelLimit.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/async/parallelLimit.js
rename to src/third_party/devtools/node_modules/async/parallelLimit.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/async/priorityQueue.js b/src/third_party/devtools/node_modules/async/priorityQueue.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/async/priorityQueue.js
rename to src/third_party/devtools/node_modules/async/priorityQueue.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/async/queue.js b/src/third_party/devtools/node_modules/async/queue.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/async/queue.js
rename to src/third_party/devtools/node_modules/async/queue.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/async/race.js b/src/third_party/devtools/node_modules/async/race.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/async/race.js
rename to src/third_party/devtools/node_modules/async/race.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/async/reduce.js b/src/third_party/devtools/node_modules/async/reduce.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/async/reduce.js
rename to src/third_party/devtools/node_modules/async/reduce.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/async/reduceRight.js b/src/third_party/devtools/node_modules/async/reduceRight.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/async/reduceRight.js
rename to src/third_party/devtools/node_modules/async/reduceRight.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/async/reflect.js b/src/third_party/devtools/node_modules/async/reflect.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/async/reflect.js
rename to src/third_party/devtools/node_modules/async/reflect.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/async/reflectAll.js b/src/third_party/devtools/node_modules/async/reflectAll.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/async/reflectAll.js
rename to src/third_party/devtools/node_modules/async/reflectAll.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/async/reject.js b/src/third_party/devtools/node_modules/async/reject.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/async/reject.js
rename to src/third_party/devtools/node_modules/async/reject.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/async/rejectLimit.js b/src/third_party/devtools/node_modules/async/rejectLimit.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/async/rejectLimit.js
rename to src/third_party/devtools/node_modules/async/rejectLimit.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/async/rejectSeries.js b/src/third_party/devtools/node_modules/async/rejectSeries.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/async/rejectSeries.js
rename to src/third_party/devtools/node_modules/async/rejectSeries.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/async/retry.js b/src/third_party/devtools/node_modules/async/retry.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/async/retry.js
rename to src/third_party/devtools/node_modules/async/retry.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/async/retryable.js b/src/third_party/devtools/node_modules/async/retryable.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/async/retryable.js
rename to src/third_party/devtools/node_modules/async/retryable.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/async/select.js b/src/third_party/devtools/node_modules/async/select.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/async/select.js
rename to src/third_party/devtools/node_modules/async/select.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/async/selectLimit.js b/src/third_party/devtools/node_modules/async/selectLimit.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/async/selectLimit.js
rename to src/third_party/devtools/node_modules/async/selectLimit.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/async/selectSeries.js b/src/third_party/devtools/node_modules/async/selectSeries.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/async/selectSeries.js
rename to src/third_party/devtools/node_modules/async/selectSeries.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/async/seq.js b/src/third_party/devtools/node_modules/async/seq.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/async/seq.js
rename to src/third_party/devtools/node_modules/async/seq.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/async/series.js b/src/third_party/devtools/node_modules/async/series.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/async/series.js
rename to src/third_party/devtools/node_modules/async/series.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/async/setImmediate.js b/src/third_party/devtools/node_modules/async/setImmediate.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/async/setImmediate.js
rename to src/third_party/devtools/node_modules/async/setImmediate.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/async/some.js b/src/third_party/devtools/node_modules/async/some.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/async/some.js
rename to src/third_party/devtools/node_modules/async/some.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/async/someLimit.js b/src/third_party/devtools/node_modules/async/someLimit.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/async/someLimit.js
rename to src/third_party/devtools/node_modules/async/someLimit.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/async/someSeries.js b/src/third_party/devtools/node_modules/async/someSeries.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/async/someSeries.js
rename to src/third_party/devtools/node_modules/async/someSeries.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/async/sortBy.js b/src/third_party/devtools/node_modules/async/sortBy.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/async/sortBy.js
rename to src/third_party/devtools/node_modules/async/sortBy.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/async/timeout.js b/src/third_party/devtools/node_modules/async/timeout.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/async/timeout.js
rename to src/third_party/devtools/node_modules/async/timeout.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/async/times.js b/src/third_party/devtools/node_modules/async/times.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/async/times.js
rename to src/third_party/devtools/node_modules/async/times.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/async/timesLimit.js b/src/third_party/devtools/node_modules/async/timesLimit.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/async/timesLimit.js
rename to src/third_party/devtools/node_modules/async/timesLimit.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/async/timesSeries.js b/src/third_party/devtools/node_modules/async/timesSeries.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/async/timesSeries.js
rename to src/third_party/devtools/node_modules/async/timesSeries.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/async/transform.js b/src/third_party/devtools/node_modules/async/transform.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/async/transform.js
rename to src/third_party/devtools/node_modules/async/transform.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/async/tryEach.js b/src/third_party/devtools/node_modules/async/tryEach.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/async/tryEach.js
rename to src/third_party/devtools/node_modules/async/tryEach.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/async/unmemoize.js b/src/third_party/devtools/node_modules/async/unmemoize.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/async/unmemoize.js
rename to src/third_party/devtools/node_modules/async/unmemoize.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/async/until.js b/src/third_party/devtools/node_modules/async/until.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/async/until.js
rename to src/third_party/devtools/node_modules/async/until.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/async/waterfall.js b/src/third_party/devtools/node_modules/async/waterfall.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/async/waterfall.js
rename to src/third_party/devtools/node_modules/async/waterfall.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/async/whilst.js b/src/third_party/devtools/node_modules/async/whilst.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/async/whilst.js
rename to src/third_party/devtools/node_modules/async/whilst.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/async/wrapSync.js b/src/third_party/devtools/node_modules/async/wrapSync.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/async/wrapSync.js
rename to src/third_party/devtools/node_modules/async/wrapSync.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/backo2/.npmignore b/src/third_party/devtools/node_modules/backo2/.npmignore
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/backo2/.npmignore
rename to src/third_party/devtools/node_modules/backo2/.npmignore
diff --git a/src/cobalt/debug/remote/devtools/node_modules/backo2/History.md b/src/third_party/devtools/node_modules/backo2/History.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/backo2/History.md
rename to src/third_party/devtools/node_modules/backo2/History.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/backo2/Makefile b/src/third_party/devtools/node_modules/backo2/Makefile
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/backo2/Makefile
rename to src/third_party/devtools/node_modules/backo2/Makefile
diff --git a/src/cobalt/debug/remote/devtools/node_modules/backo2/Readme.md b/src/third_party/devtools/node_modules/backo2/Readme.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/backo2/Readme.md
rename to src/third_party/devtools/node_modules/backo2/Readme.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/backo2/component.json b/src/third_party/devtools/node_modules/backo2/component.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/backo2/component.json
rename to src/third_party/devtools/node_modules/backo2/component.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/backo2/index.js b/src/third_party/devtools/node_modules/backo2/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/backo2/index.js
rename to src/third_party/devtools/node_modules/backo2/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/backo2/package.json b/src/third_party/devtools/node_modules/backo2/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/backo2/package.json
rename to src/third_party/devtools/node_modules/backo2/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/backo2/test/index.js b/src/third_party/devtools/node_modules/backo2/test/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/backo2/test/index.js
rename to src/third_party/devtools/node_modules/backo2/test/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/balanced-match/.npmignore b/src/third_party/devtools/node_modules/balanced-match/.npmignore
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/balanced-match/.npmignore
rename to src/third_party/devtools/node_modules/balanced-match/.npmignore
diff --git a/src/cobalt/debug/remote/devtools/node_modules/balanced-match/LICENSE.md b/src/third_party/devtools/node_modules/balanced-match/LICENSE.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/balanced-match/LICENSE.md
rename to src/third_party/devtools/node_modules/balanced-match/LICENSE.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/balanced-match/README.md b/src/third_party/devtools/node_modules/balanced-match/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/balanced-match/README.md
rename to src/third_party/devtools/node_modules/balanced-match/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/balanced-match/index.js b/src/third_party/devtools/node_modules/balanced-match/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/balanced-match/index.js
rename to src/third_party/devtools/node_modules/balanced-match/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/balanced-match/package.json b/src/third_party/devtools/node_modules/balanced-match/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/balanced-match/package.json
rename to src/third_party/devtools/node_modules/balanced-match/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/base64-arraybuffer/.npmignore b/src/third_party/devtools/node_modules/base64-arraybuffer/.npmignore
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/base64-arraybuffer/.npmignore
rename to src/third_party/devtools/node_modules/base64-arraybuffer/.npmignore
diff --git a/src/cobalt/debug/remote/devtools/node_modules/base64-arraybuffer/.travis.yml b/src/third_party/devtools/node_modules/base64-arraybuffer/.travis.yml
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/base64-arraybuffer/.travis.yml
rename to src/third_party/devtools/node_modules/base64-arraybuffer/.travis.yml
diff --git a/src/cobalt/debug/remote/devtools/node_modules/base64-arraybuffer/LICENSE-MIT b/src/third_party/devtools/node_modules/base64-arraybuffer/LICENSE-MIT
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/base64-arraybuffer/LICENSE-MIT
rename to src/third_party/devtools/node_modules/base64-arraybuffer/LICENSE-MIT
diff --git a/src/cobalt/debug/remote/devtools/node_modules/base64-arraybuffer/README.md b/src/third_party/devtools/node_modules/base64-arraybuffer/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/base64-arraybuffer/README.md
rename to src/third_party/devtools/node_modules/base64-arraybuffer/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/base64-arraybuffer/lib/base64-arraybuffer.js b/src/third_party/devtools/node_modules/base64-arraybuffer/lib/base64-arraybuffer.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/base64-arraybuffer/lib/base64-arraybuffer.js
rename to src/third_party/devtools/node_modules/base64-arraybuffer/lib/base64-arraybuffer.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/base64-arraybuffer/package.json b/src/third_party/devtools/node_modules/base64-arraybuffer/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/base64-arraybuffer/package.json
rename to src/third_party/devtools/node_modules/base64-arraybuffer/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/base64-js/LICENSE b/src/third_party/devtools/node_modules/base64-js/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/base64-js/LICENSE
rename to src/third_party/devtools/node_modules/base64-js/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/base64-js/README.md b/src/third_party/devtools/node_modules/base64-js/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/base64-js/README.md
rename to src/third_party/devtools/node_modules/base64-js/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/base64-js/base64js.min.js b/src/third_party/devtools/node_modules/base64-js/base64js.min.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/base64-js/base64js.min.js
rename to src/third_party/devtools/node_modules/base64-js/base64js.min.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/base64-js/index.js b/src/third_party/devtools/node_modules/base64-js/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/base64-js/index.js
rename to src/third_party/devtools/node_modules/base64-js/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/base64-js/package.json b/src/third_party/devtools/node_modules/base64-js/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/base64-js/package.json
rename to src/third_party/devtools/node_modules/base64-js/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/base64id/.npmignore b/src/third_party/devtools/node_modules/base64id/.npmignore
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/base64id/.npmignore
rename to src/third_party/devtools/node_modules/base64id/.npmignore
diff --git a/src/cobalt/debug/remote/devtools/node_modules/base64id/LICENSE b/src/third_party/devtools/node_modules/base64id/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/base64id/LICENSE
rename to src/third_party/devtools/node_modules/base64id/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/base64id/README.md b/src/third_party/devtools/node_modules/base64id/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/base64id/README.md
rename to src/third_party/devtools/node_modules/base64id/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/base64id/lib/base64id.js b/src/third_party/devtools/node_modules/base64id/lib/base64id.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/base64id/lib/base64id.js
rename to src/third_party/devtools/node_modules/base64id/lib/base64id.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/base64id/package.json b/src/third_party/devtools/node_modules/base64id/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/base64id/package.json
rename to src/third_party/devtools/node_modules/base64id/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/better-assert/.npmignore b/src/third_party/devtools/node_modules/better-assert/.npmignore
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/better-assert/.npmignore
rename to src/third_party/devtools/node_modules/better-assert/.npmignore
diff --git a/src/cobalt/debug/remote/devtools/node_modules/better-assert/History.md b/src/third_party/devtools/node_modules/better-assert/History.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/better-assert/History.md
rename to src/third_party/devtools/node_modules/better-assert/History.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/better-assert/Makefile b/src/third_party/devtools/node_modules/better-assert/Makefile
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/better-assert/Makefile
rename to src/third_party/devtools/node_modules/better-assert/Makefile
diff --git a/src/cobalt/debug/remote/devtools/node_modules/better-assert/Readme.md b/src/third_party/devtools/node_modules/better-assert/Readme.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/better-assert/Readme.md
rename to src/third_party/devtools/node_modules/better-assert/Readme.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/better-assert/example.js b/src/third_party/devtools/node_modules/better-assert/example.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/better-assert/example.js
rename to src/third_party/devtools/node_modules/better-assert/example.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/better-assert/index.js b/src/third_party/devtools/node_modules/better-assert/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/better-assert/index.js
rename to src/third_party/devtools/node_modules/better-assert/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/better-assert/package.json b/src/third_party/devtools/node_modules/better-assert/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/better-assert/package.json
rename to src/third_party/devtools/node_modules/better-assert/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/binary-extensions/binary-extensions.json b/src/third_party/devtools/node_modules/binary-extensions/binary-extensions.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/binary-extensions/binary-extensions.json
rename to src/third_party/devtools/node_modules/binary-extensions/binary-extensions.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/binary-extensions/binary-extensions.json.d.ts b/src/third_party/devtools/node_modules/binary-extensions/binary-extensions.json.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/binary-extensions/binary-extensions.json.d.ts
rename to src/third_party/devtools/node_modules/binary-extensions/binary-extensions.json.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/binary-extensions/index.d.ts b/src/third_party/devtools/node_modules/binary-extensions/index.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/binary-extensions/index.d.ts
rename to src/third_party/devtools/node_modules/binary-extensions/index.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/binary-extensions/index.js b/src/third_party/devtools/node_modules/binary-extensions/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/binary-extensions/index.js
rename to src/third_party/devtools/node_modules/binary-extensions/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/binary-extensions/license b/src/third_party/devtools/node_modules/binary-extensions/license
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/binary-extensions/license
rename to src/third_party/devtools/node_modules/binary-extensions/license
diff --git a/src/cobalt/debug/remote/devtools/node_modules/binary-extensions/package.json b/src/third_party/devtools/node_modules/binary-extensions/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/binary-extensions/package.json
rename to src/third_party/devtools/node_modules/binary-extensions/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/binary-extensions/readme.md b/src/third_party/devtools/node_modules/binary-extensions/readme.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/binary-extensions/readme.md
rename to src/third_party/devtools/node_modules/binary-extensions/readme.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/blob/.zuul.yml b/src/third_party/devtools/node_modules/blob/.zuul.yml
similarity index 99%
rename from src/cobalt/debug/remote/devtools/node_modules/blob/.zuul.yml
rename to src/third_party/devtools/node_modules/blob/.zuul.yml
index d95890b..380c395 100644
--- a/src/cobalt/debug/remote/devtools/node_modules/blob/.zuul.yml
+++ b/src/third_party/devtools/node_modules/blob/.zuul.yml
@@ -1,14 +1,14 @@
-ui: mocha-bdd

-browsers:

-  - name: chrome

-    version: 8..latest

-  - name: firefox

-    version: 7..latest

-  - name: safari

-    version: 6..latest

-  - name: opera

-    version: 12.1..latest

-  - name: ie

-    version: 10..latest

-  - name: android

-    version: latest

+ui: mocha-bdd
+browsers:
+  - name: chrome
+    version: 8..latest
+  - name: firefox
+    version: 7..latest
+  - name: safari
+    version: 6..latest
+  - name: opera
+    version: 12.1..latest
+  - name: ie
+    version: 10..latest
+  - name: android
+    version: latest
diff --git a/src/cobalt/debug/remote/devtools/node_modules/blob/LICENSE b/src/third_party/devtools/node_modules/blob/LICENSE
similarity index 99%
rename from src/cobalt/debug/remote/devtools/node_modules/blob/LICENSE
rename to src/third_party/devtools/node_modules/blob/LICENSE
index aa31544..f1d8aa2 100644
--- a/src/cobalt/debug/remote/devtools/node_modules/blob/LICENSE
+++ b/src/third_party/devtools/node_modules/blob/LICENSE
@@ -1,21 +1,21 @@
-MIT License

-

-Copyright (C) 2014 Rase-

-

-Permission is hereby granted, free of charge, to any person obtaining a copy of

-this software and associated documentation files (the "Software"), to deal in

-the Software without restriction, including without limitation the rights to

-use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of

-the Software, and to permit persons to whom the Software is furnished to do so,

-subject to the following conditions:

-

-The above copyright notice and this permission notice shall be included in all

-copies or substantial portions of the Software.

-

-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR

-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,

-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE

-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER

-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,

-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE

-SOFTWARE.

+MIT License
+
+Copyright (C) 2014 Rase-
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of
+this software and associated documentation files (the "Software"), to deal in
+the Software without restriction, including without limitation the rights to
+use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
+the Software, and to permit persons to whom the Software is furnished to do so,
+subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/src/cobalt/debug/remote/devtools/node_modules/blob/Makefile b/src/third_party/devtools/node_modules/blob/Makefile
similarity index 99%
rename from src/cobalt/debug/remote/devtools/node_modules/blob/Makefile
rename to src/third_party/devtools/node_modules/blob/Makefile
index e886c41..7d9601a 100644
--- a/src/cobalt/debug/remote/devtools/node_modules/blob/Makefile
+++ b/src/third_party/devtools/node_modules/blob/Makefile
@@ -1,14 +1,14 @@
-REPORTER = dot

-

-build: blob.js

-

-blob.js:

-	@./node_modules/.bin/browserify --standalone blob index.js > blob.js

-

-test:

-	@./node_modules/.bin/zuul -- test/index.js

-

-clean:

-	rm blob.js

-

-.PHONY: test blob.js

+REPORTER = dot
+
+build: blob.js
+
+blob.js:
+	@./node_modules/.bin/browserify --standalone blob index.js > blob.js
+
+test:
+	@./node_modules/.bin/zuul -- test/index.js
+
+clean:
+	rm blob.js
+
+.PHONY: test blob.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/blob/README.md b/src/third_party/devtools/node_modules/blob/README.md
similarity index 99%
rename from src/cobalt/debug/remote/devtools/node_modules/blob/README.md
rename to src/third_party/devtools/node_modules/blob/README.md
index 4073ce9..1c9e846 100644
--- a/src/cobalt/debug/remote/devtools/node_modules/blob/README.md
+++ b/src/third_party/devtools/node_modules/blob/README.md
@@ -1,21 +1,21 @@
-# Blob

-

-A cross-browser `Blob` that falls back to `BlobBuilder` when appropriate.

-If neither is available, it exports `undefined`.

-

-## Installation

-

-``` bash

-$ npm install blob

-```

-

-## Example

-

-``` js

-var Blob = require('blob');

-var b = new Blob(['hi', 'constructing', 'a', 'blob']);

-```

-

-## License

-

-MIT

+# Blob
+
+A cross-browser `Blob` that falls back to `BlobBuilder` when appropriate.
+If neither is available, it exports `undefined`.
+
+## Installation
+
+``` bash
+$ npm install blob
+```
+
+## Example
+
+``` js
+var Blob = require('blob');
+var b = new Blob(['hi', 'constructing', 'a', 'blob']);
+```
+
+## License
+
+MIT
diff --git a/src/cobalt/debug/remote/devtools/node_modules/blob/component.json b/src/third_party/devtools/node_modules/blob/component.json
similarity index 99%
rename from src/cobalt/debug/remote/devtools/node_modules/blob/component.json
rename to src/third_party/devtools/node_modules/blob/component.json
index 0f3a481..7bee8d6 100644
--- a/src/cobalt/debug/remote/devtools/node_modules/blob/component.json
+++ b/src/third_party/devtools/node_modules/blob/component.json
@@ -1,11 +1,11 @@
-{

-  "name": "blob",

-  "repo": "webmodules/blob",

-  "description": "Abstracts out Blob and uses BlobBulder in cases where it is supported with any vendor prefix.",

-  "version": "0.0.4",

-  "license": "MIT",

-  "dependencies": {},

-  "scripts": [

-    "index.js"

-  ]

-}

+{
+  "name": "blob",
+  "repo": "webmodules/blob",
+  "description": "Abstracts out Blob and uses BlobBulder in cases where it is supported with any vendor prefix.",
+  "version": "0.0.4",
+  "license": "MIT",
+  "dependencies": {},
+  "scripts": [
+    "index.js"
+  ]
+}
diff --git a/src/cobalt/debug/remote/devtools/node_modules/blob/index.js b/src/third_party/devtools/node_modules/blob/index.js
similarity index 99%
rename from src/cobalt/debug/remote/devtools/node_modules/blob/index.js
rename to src/third_party/devtools/node_modules/blob/index.js
index ee179d7..9168826 100644
--- a/src/cobalt/debug/remote/devtools/node_modules/blob/index.js
+++ b/src/third_party/devtools/node_modules/blob/index.js
@@ -1,100 +1,100 @@
-/**

- * Create a blob builder even when vendor prefixes exist

- */

-

-var BlobBuilder = typeof BlobBuilder !== 'undefined' ? BlobBuilder :

-  typeof WebKitBlobBuilder !== 'undefined' ? WebKitBlobBuilder :

-  typeof MSBlobBuilder !== 'undefined' ? MSBlobBuilder :

-  typeof MozBlobBuilder !== 'undefined' ? MozBlobBuilder : 

-  false;

-

-/**

- * Check if Blob constructor is supported

- */

-

-var blobSupported = (function() {

-  try {

-    var a = new Blob(['hi']);

-    return a.size === 2;

-  } catch(e) {

-    return false;

-  }

-})();

-

-/**

- * Check if Blob constructor supports ArrayBufferViews

- * Fails in Safari 6, so we need to map to ArrayBuffers there.

- */

-

-var blobSupportsArrayBufferView = blobSupported && (function() {

-  try {

-    var b = new Blob([new Uint8Array([1,2])]);

-    return b.size === 2;

-  } catch(e) {

-    return false;

-  }

-})();

-

-/**

- * Check if BlobBuilder is supported

- */

-

-var blobBuilderSupported = BlobBuilder

-  && BlobBuilder.prototype.append

-  && BlobBuilder.prototype.getBlob;

-

-/**

- * Helper function that maps ArrayBufferViews to ArrayBuffers

- * Used by BlobBuilder constructor and old browsers that didn't

- * support it in the Blob constructor.

- */

-

-function mapArrayBufferViews(ary) {

-  return ary.map(function(chunk) {

-    if (chunk.buffer instanceof ArrayBuffer) {

-      var buf = chunk.buffer;

-

-      // if this is a subarray, make a copy so we only

-      // include the subarray region from the underlying buffer

-      if (chunk.byteLength !== buf.byteLength) {

-        var copy = new Uint8Array(chunk.byteLength);

-        copy.set(new Uint8Array(buf, chunk.byteOffset, chunk.byteLength));

-        buf = copy.buffer;

-      }

-

-      return buf;

-    }

-

-    return chunk;

-  });

-}

-

-function BlobBuilderConstructor(ary, options) {

-  options = options || {};

-

-  var bb = new BlobBuilder();

-  mapArrayBufferViews(ary).forEach(function(part) {

-    bb.append(part);

-  });

-

-  return (options.type) ? bb.getBlob(options.type) : bb.getBlob();

-};

-

-function BlobConstructor(ary, options) {

-  return new Blob(mapArrayBufferViews(ary), options || {});

-};

-

-if (typeof Blob !== 'undefined') {

-  BlobBuilderConstructor.prototype = Blob.prototype;

-  BlobConstructor.prototype = Blob.prototype;

-}

-

-module.exports = (function() {

-  if (blobSupported) {

-    return blobSupportsArrayBufferView ? Blob : BlobConstructor;

-  } else if (blobBuilderSupported) {

-    return BlobBuilderConstructor;

-  } else {

-    return undefined;

-  }

-})();

+/**
+ * Create a blob builder even when vendor prefixes exist
+ */
+
+var BlobBuilder = typeof BlobBuilder !== 'undefined' ? BlobBuilder :
+  typeof WebKitBlobBuilder !== 'undefined' ? WebKitBlobBuilder :
+  typeof MSBlobBuilder !== 'undefined' ? MSBlobBuilder :
+  typeof MozBlobBuilder !== 'undefined' ? MozBlobBuilder : 
+  false;
+
+/**
+ * Check if Blob constructor is supported
+ */
+
+var blobSupported = (function() {
+  try {
+    var a = new Blob(['hi']);
+    return a.size === 2;
+  } catch(e) {
+    return false;
+  }
+})();
+
+/**
+ * Check if Blob constructor supports ArrayBufferViews
+ * Fails in Safari 6, so we need to map to ArrayBuffers there.
+ */
+
+var blobSupportsArrayBufferView = blobSupported && (function() {
+  try {
+    var b = new Blob([new Uint8Array([1,2])]);
+    return b.size === 2;
+  } catch(e) {
+    return false;
+  }
+})();
+
+/**
+ * Check if BlobBuilder is supported
+ */
+
+var blobBuilderSupported = BlobBuilder
+  && BlobBuilder.prototype.append
+  && BlobBuilder.prototype.getBlob;
+
+/**
+ * Helper function that maps ArrayBufferViews to ArrayBuffers
+ * Used by BlobBuilder constructor and old browsers that didn't
+ * support it in the Blob constructor.
+ */
+
+function mapArrayBufferViews(ary) {
+  return ary.map(function(chunk) {
+    if (chunk.buffer instanceof ArrayBuffer) {
+      var buf = chunk.buffer;
+
+      // if this is a subarray, make a copy so we only
+      // include the subarray region from the underlying buffer
+      if (chunk.byteLength !== buf.byteLength) {
+        var copy = new Uint8Array(chunk.byteLength);
+        copy.set(new Uint8Array(buf, chunk.byteOffset, chunk.byteLength));
+        buf = copy.buffer;
+      }
+
+      return buf;
+    }
+
+    return chunk;
+  });
+}
+
+function BlobBuilderConstructor(ary, options) {
+  options = options || {};
+
+  var bb = new BlobBuilder();
+  mapArrayBufferViews(ary).forEach(function(part) {
+    bb.append(part);
+  });
+
+  return (options.type) ? bb.getBlob(options.type) : bb.getBlob();
+};
+
+function BlobConstructor(ary, options) {
+  return new Blob(mapArrayBufferViews(ary), options || {});
+};
+
+if (typeof Blob !== 'undefined') {
+  BlobBuilderConstructor.prototype = Blob.prototype;
+  BlobConstructor.prototype = Blob.prototype;
+}
+
+module.exports = (function() {
+  if (blobSupported) {
+    return blobSupportsArrayBufferView ? Blob : BlobConstructor;
+  } else if (blobBuilderSupported) {
+    return BlobBuilderConstructor;
+  } else {
+    return undefined;
+  }
+})();
diff --git a/src/cobalt/debug/remote/devtools/node_modules/blob/package.json b/src/third_party/devtools/node_modules/blob/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/blob/package.json
rename to src/third_party/devtools/node_modules/blob/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/blob/test/index.js b/src/third_party/devtools/node_modules/blob/test/index.js
similarity index 99%
rename from src/cobalt/debug/remote/devtools/node_modules/blob/test/index.js
rename to src/third_party/devtools/node_modules/blob/test/index.js
index fe9105e..c294bbd 100644
--- a/src/cobalt/debug/remote/devtools/node_modules/blob/test/index.js
+++ b/src/third_party/devtools/node_modules/blob/test/index.js
@@ -1,100 +1,100 @@
-var Blob = require('../');

-var expect = require('expect.js');

-

-describe('blob', function() {

-  if (!Blob) {

-    it('should not have a blob or a blob builder in the global namespace, or blob should not be a constructor function if the module exports false', function() {

-      try {

-        var ab = (new Uint8Array(5)).buffer;

-        global.Blob([ab]);

-        expect().fail('Blob shouldn\'t be constructable');

-      } catch (e) {}

-

-      var BlobBuilder = global.BlobBuilder

-        || global.WebKitBlobBuilder

-        || global.MSBlobBuilder

-        || global.MozBlobBuilder;

-      expect(BlobBuilder).to.be(undefined);

-    });

-  } else {

-    it('should encode a proper sized blob when given a string argument', function() {

-      var b = new Blob(['hi']);

-      expect(b.size).to.be(2);

-    });

-

-    it('should encode a blob with proper size when given two strings as arguments', function() {

-      var b = new Blob(['hi', 'hello']);

-      expect(b.size).to.be(7);

-    });

-

-    it('should encode arraybuffers with right content', function(done) {

-      var ary = new Uint8Array(5);

-      for (var i = 0; i < 5; i++) ary[i] = i;

-      var b = new Blob([ary.buffer]);

-      var fr = new FileReader();

-      fr.onload = function() {

-        var newAry = new Uint8Array(this.result);

-        for (var i = 0; i < 5; i++) expect(newAry[i]).to.be(i);

-        done();

-      };

-      fr.readAsArrayBuffer(b);

-    });

-

-    it('should encode typed arrays with right content', function(done) {

-      var ary = new Uint8Array(5);

-      for (var i = 0; i < 5; i++) ary[i] = i;

-      var b = new Blob([ary]);

-      var fr = new FileReader();

-      fr.onload = function() {

-        var newAry = new Uint8Array(this.result);

-        for (var i = 0; i < 5; i++) expect(newAry[i]).to.be(i);

-        done();

-      };

-      fr.readAsArrayBuffer(b);

-    });

-

-    it('should encode sliced typed arrays with right content', function(done) {

-      var ary = new Uint8Array(5);

-      for (var i = 0; i < 5; i++) ary[i] = i;

-      var b = new Blob([ary.subarray(2)]);

-      var fr = new FileReader();

-      fr.onload = function() {

-        var newAry = new Uint8Array(this.result);

-        for (var i = 0; i < 3; i++) expect(newAry[i]).to.be(i + 2);

-        done();

-      };

-      fr.readAsArrayBuffer(b);

-    });

-

-    it('should encode with blobs', function(done) {

-      var ary = new Uint8Array(5);

-      for (var i = 0; i < 5; i++) ary[i] = i;

-      var b = new Blob([new Blob([ary.buffer])]);

-      var fr = new FileReader();

-      fr.onload = function() {

-        var newAry = new Uint8Array(this.result);

-        for (var i = 0; i < 5; i++) expect(newAry[i]).to.be(i);

-        done();

-      };

-      fr.readAsArrayBuffer(b);

-    });

-

-    it('should enode mixed contents to right size', function() {

-      var ary = new Uint8Array(5);

-      for (var i = 0; i < 5; i++) ary[i] = i;

-      var b = new Blob([ary.buffer, 'hello']);

-      expect(b.size).to.be(10);

-    });

-

-    it('should accept mime type', function() {

-      var b = new Blob(['hi', 'hello'], { type: 'text/html' });

-      expect(b.type).to.be('text/html');

-    });

-

-    it('should be an instance of constructor', function() {

-      var b = new Blob(['hi']);

-      expect(b).to.be.a(Blob);

-      expect(b).to.be.a(global.Blob);

-    });

-  }

-});

+var Blob = require('../');
+var expect = require('expect.js');
+
+describe('blob', function() {
+  if (!Blob) {
+    it('should not have a blob or a blob builder in the global namespace, or blob should not be a constructor function if the module exports false', function() {
+      try {
+        var ab = (new Uint8Array(5)).buffer;
+        global.Blob([ab]);
+        expect().fail('Blob shouldn\'t be constructable');
+      } catch (e) {}
+
+      var BlobBuilder = global.BlobBuilder
+        || global.WebKitBlobBuilder
+        || global.MSBlobBuilder
+        || global.MozBlobBuilder;
+      expect(BlobBuilder).to.be(undefined);
+    });
+  } else {
+    it('should encode a proper sized blob when given a string argument', function() {
+      var b = new Blob(['hi']);
+      expect(b.size).to.be(2);
+    });
+
+    it('should encode a blob with proper size when given two strings as arguments', function() {
+      var b = new Blob(['hi', 'hello']);
+      expect(b.size).to.be(7);
+    });
+
+    it('should encode arraybuffers with right content', function(done) {
+      var ary = new Uint8Array(5);
+      for (var i = 0; i < 5; i++) ary[i] = i;
+      var b = new Blob([ary.buffer]);
+      var fr = new FileReader();
+      fr.onload = function() {
+        var newAry = new Uint8Array(this.result);
+        for (var i = 0; i < 5; i++) expect(newAry[i]).to.be(i);
+        done();
+      };
+      fr.readAsArrayBuffer(b);
+    });
+
+    it('should encode typed arrays with right content', function(done) {
+      var ary = new Uint8Array(5);
+      for (var i = 0; i < 5; i++) ary[i] = i;
+      var b = new Blob([ary]);
+      var fr = new FileReader();
+      fr.onload = function() {
+        var newAry = new Uint8Array(this.result);
+        for (var i = 0; i < 5; i++) expect(newAry[i]).to.be(i);
+        done();
+      };
+      fr.readAsArrayBuffer(b);
+    });
+
+    it('should encode sliced typed arrays with right content', function(done) {
+      var ary = new Uint8Array(5);
+      for (var i = 0; i < 5; i++) ary[i] = i;
+      var b = new Blob([ary.subarray(2)]);
+      var fr = new FileReader();
+      fr.onload = function() {
+        var newAry = new Uint8Array(this.result);
+        for (var i = 0; i < 3; i++) expect(newAry[i]).to.be(i + 2);
+        done();
+      };
+      fr.readAsArrayBuffer(b);
+    });
+
+    it('should encode with blobs', function(done) {
+      var ary = new Uint8Array(5);
+      for (var i = 0; i < 5; i++) ary[i] = i;
+      var b = new Blob([new Blob([ary.buffer])]);
+      var fr = new FileReader();
+      fr.onload = function() {
+        var newAry = new Uint8Array(this.result);
+        for (var i = 0; i < 5; i++) expect(newAry[i]).to.be(i);
+        done();
+      };
+      fr.readAsArrayBuffer(b);
+    });
+
+    it('should enode mixed contents to right size', function() {
+      var ary = new Uint8Array(5);
+      for (var i = 0; i < 5; i++) ary[i] = i;
+      var b = new Blob([ary.buffer, 'hello']);
+      expect(b.size).to.be(10);
+    });
+
+    it('should accept mime type', function() {
+      var b = new Blob(['hi', 'hello'], { type: 'text/html' });
+      expect(b.type).to.be('text/html');
+    });
+
+    it('should be an instance of constructor', function() {
+      var b = new Blob(['hi']);
+      expect(b).to.be.a(Blob);
+      expect(b).to.be.a(global.Blob);
+    });
+  }
+});
diff --git a/src/cobalt/debug/remote/devtools/node_modules/bluebird/LICENSE b/src/third_party/devtools/node_modules/bluebird/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/bluebird/LICENSE
rename to src/third_party/devtools/node_modules/bluebird/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/bluebird/README.md b/src/third_party/devtools/node_modules/bluebird/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/bluebird/README.md
rename to src/third_party/devtools/node_modules/bluebird/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/bluebird/changelog.md b/src/third_party/devtools/node_modules/bluebird/changelog.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/bluebird/changelog.md
rename to src/third_party/devtools/node_modules/bluebird/changelog.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/bluebird/js/browser/bluebird.core.js b/src/third_party/devtools/node_modules/bluebird/js/browser/bluebird.core.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/bluebird/js/browser/bluebird.core.js
rename to src/third_party/devtools/node_modules/bluebird/js/browser/bluebird.core.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/bluebird/js/browser/bluebird.core.min.js b/src/third_party/devtools/node_modules/bluebird/js/browser/bluebird.core.min.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/bluebird/js/browser/bluebird.core.min.js
rename to src/third_party/devtools/node_modules/bluebird/js/browser/bluebird.core.min.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/bluebird/js/browser/bluebird.js b/src/third_party/devtools/node_modules/bluebird/js/browser/bluebird.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/bluebird/js/browser/bluebird.js
rename to src/third_party/devtools/node_modules/bluebird/js/browser/bluebird.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/bluebird/js/browser/bluebird.min.js b/src/third_party/devtools/node_modules/bluebird/js/browser/bluebird.min.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/bluebird/js/browser/bluebird.min.js
rename to src/third_party/devtools/node_modules/bluebird/js/browser/bluebird.min.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/bluebird/js/release/any.js b/src/third_party/devtools/node_modules/bluebird/js/release/any.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/bluebird/js/release/any.js
rename to src/third_party/devtools/node_modules/bluebird/js/release/any.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/bluebird/js/release/assert.js b/src/third_party/devtools/node_modules/bluebird/js/release/assert.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/bluebird/js/release/assert.js
rename to src/third_party/devtools/node_modules/bluebird/js/release/assert.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/bluebird/js/release/async.js b/src/third_party/devtools/node_modules/bluebird/js/release/async.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/bluebird/js/release/async.js
rename to src/third_party/devtools/node_modules/bluebird/js/release/async.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/bluebird/js/release/bind.js b/src/third_party/devtools/node_modules/bluebird/js/release/bind.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/bluebird/js/release/bind.js
rename to src/third_party/devtools/node_modules/bluebird/js/release/bind.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/bluebird/js/release/bluebird.js b/src/third_party/devtools/node_modules/bluebird/js/release/bluebird.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/bluebird/js/release/bluebird.js
rename to src/third_party/devtools/node_modules/bluebird/js/release/bluebird.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/bluebird/js/release/call_get.js b/src/third_party/devtools/node_modules/bluebird/js/release/call_get.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/bluebird/js/release/call_get.js
rename to src/third_party/devtools/node_modules/bluebird/js/release/call_get.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/bluebird/js/release/cancel.js b/src/third_party/devtools/node_modules/bluebird/js/release/cancel.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/bluebird/js/release/cancel.js
rename to src/third_party/devtools/node_modules/bluebird/js/release/cancel.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/bluebird/js/release/catch_filter.js b/src/third_party/devtools/node_modules/bluebird/js/release/catch_filter.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/bluebird/js/release/catch_filter.js
rename to src/third_party/devtools/node_modules/bluebird/js/release/catch_filter.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/bluebird/js/release/context.js b/src/third_party/devtools/node_modules/bluebird/js/release/context.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/bluebird/js/release/context.js
rename to src/third_party/devtools/node_modules/bluebird/js/release/context.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/bluebird/js/release/debuggability.js b/src/third_party/devtools/node_modules/bluebird/js/release/debuggability.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/bluebird/js/release/debuggability.js
rename to src/third_party/devtools/node_modules/bluebird/js/release/debuggability.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/bluebird/js/release/direct_resolve.js b/src/third_party/devtools/node_modules/bluebird/js/release/direct_resolve.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/bluebird/js/release/direct_resolve.js
rename to src/third_party/devtools/node_modules/bluebird/js/release/direct_resolve.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/bluebird/js/release/each.js b/src/third_party/devtools/node_modules/bluebird/js/release/each.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/bluebird/js/release/each.js
rename to src/third_party/devtools/node_modules/bluebird/js/release/each.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/bluebird/js/release/errors.js b/src/third_party/devtools/node_modules/bluebird/js/release/errors.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/bluebird/js/release/errors.js
rename to src/third_party/devtools/node_modules/bluebird/js/release/errors.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/bluebird/js/release/es5.js b/src/third_party/devtools/node_modules/bluebird/js/release/es5.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/bluebird/js/release/es5.js
rename to src/third_party/devtools/node_modules/bluebird/js/release/es5.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/bluebird/js/release/filter.js b/src/third_party/devtools/node_modules/bluebird/js/release/filter.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/bluebird/js/release/filter.js
rename to src/third_party/devtools/node_modules/bluebird/js/release/filter.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/bluebird/js/release/finally.js b/src/third_party/devtools/node_modules/bluebird/js/release/finally.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/bluebird/js/release/finally.js
rename to src/third_party/devtools/node_modules/bluebird/js/release/finally.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/bluebird/js/release/generators.js b/src/third_party/devtools/node_modules/bluebird/js/release/generators.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/bluebird/js/release/generators.js
rename to src/third_party/devtools/node_modules/bluebird/js/release/generators.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/bluebird/js/release/join.js b/src/third_party/devtools/node_modules/bluebird/js/release/join.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/bluebird/js/release/join.js
rename to src/third_party/devtools/node_modules/bluebird/js/release/join.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/bluebird/js/release/map.js b/src/third_party/devtools/node_modules/bluebird/js/release/map.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/bluebird/js/release/map.js
rename to src/third_party/devtools/node_modules/bluebird/js/release/map.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/bluebird/js/release/method.js b/src/third_party/devtools/node_modules/bluebird/js/release/method.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/bluebird/js/release/method.js
rename to src/third_party/devtools/node_modules/bluebird/js/release/method.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/bluebird/js/release/nodeback.js b/src/third_party/devtools/node_modules/bluebird/js/release/nodeback.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/bluebird/js/release/nodeback.js
rename to src/third_party/devtools/node_modules/bluebird/js/release/nodeback.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/bluebird/js/release/nodeify.js b/src/third_party/devtools/node_modules/bluebird/js/release/nodeify.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/bluebird/js/release/nodeify.js
rename to src/third_party/devtools/node_modules/bluebird/js/release/nodeify.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/bluebird/js/release/promise.js b/src/third_party/devtools/node_modules/bluebird/js/release/promise.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/bluebird/js/release/promise.js
rename to src/third_party/devtools/node_modules/bluebird/js/release/promise.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/bluebird/js/release/promise_array.js b/src/third_party/devtools/node_modules/bluebird/js/release/promise_array.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/bluebird/js/release/promise_array.js
rename to src/third_party/devtools/node_modules/bluebird/js/release/promise_array.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/bluebird/js/release/promisify.js b/src/third_party/devtools/node_modules/bluebird/js/release/promisify.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/bluebird/js/release/promisify.js
rename to src/third_party/devtools/node_modules/bluebird/js/release/promisify.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/bluebird/js/release/props.js b/src/third_party/devtools/node_modules/bluebird/js/release/props.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/bluebird/js/release/props.js
rename to src/third_party/devtools/node_modules/bluebird/js/release/props.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/bluebird/js/release/queue.js b/src/third_party/devtools/node_modules/bluebird/js/release/queue.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/bluebird/js/release/queue.js
rename to src/third_party/devtools/node_modules/bluebird/js/release/queue.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/bluebird/js/release/race.js b/src/third_party/devtools/node_modules/bluebird/js/release/race.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/bluebird/js/release/race.js
rename to src/third_party/devtools/node_modules/bluebird/js/release/race.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/bluebird/js/release/reduce.js b/src/third_party/devtools/node_modules/bluebird/js/release/reduce.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/bluebird/js/release/reduce.js
rename to src/third_party/devtools/node_modules/bluebird/js/release/reduce.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/bluebird/js/release/schedule.js b/src/third_party/devtools/node_modules/bluebird/js/release/schedule.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/bluebird/js/release/schedule.js
rename to src/third_party/devtools/node_modules/bluebird/js/release/schedule.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/bluebird/js/release/settle.js b/src/third_party/devtools/node_modules/bluebird/js/release/settle.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/bluebird/js/release/settle.js
rename to src/third_party/devtools/node_modules/bluebird/js/release/settle.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/bluebird/js/release/some.js b/src/third_party/devtools/node_modules/bluebird/js/release/some.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/bluebird/js/release/some.js
rename to src/third_party/devtools/node_modules/bluebird/js/release/some.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/bluebird/js/release/synchronous_inspection.js b/src/third_party/devtools/node_modules/bluebird/js/release/synchronous_inspection.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/bluebird/js/release/synchronous_inspection.js
rename to src/third_party/devtools/node_modules/bluebird/js/release/synchronous_inspection.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/bluebird/js/release/thenables.js b/src/third_party/devtools/node_modules/bluebird/js/release/thenables.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/bluebird/js/release/thenables.js
rename to src/third_party/devtools/node_modules/bluebird/js/release/thenables.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/bluebird/js/release/timers.js b/src/third_party/devtools/node_modules/bluebird/js/release/timers.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/bluebird/js/release/timers.js
rename to src/third_party/devtools/node_modules/bluebird/js/release/timers.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/bluebird/js/release/using.js b/src/third_party/devtools/node_modules/bluebird/js/release/using.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/bluebird/js/release/using.js
rename to src/third_party/devtools/node_modules/bluebird/js/release/using.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/bluebird/js/release/util.js b/src/third_party/devtools/node_modules/bluebird/js/release/util.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/bluebird/js/release/util.js
rename to src/third_party/devtools/node_modules/bluebird/js/release/util.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/bluebird/package.json b/src/third_party/devtools/node_modules/bluebird/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/bluebird/package.json
rename to src/third_party/devtools/node_modules/bluebird/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/bn.js/.npmignore b/src/third_party/devtools/node_modules/bn.js/.npmignore
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/bn.js/.npmignore
rename to src/third_party/devtools/node_modules/bn.js/.npmignore
diff --git a/src/cobalt/debug/remote/devtools/node_modules/bn.js/README.md b/src/third_party/devtools/node_modules/bn.js/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/bn.js/README.md
rename to src/third_party/devtools/node_modules/bn.js/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/bn.js/lib/bn.js b/src/third_party/devtools/node_modules/bn.js/lib/bn.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/bn.js/lib/bn.js
rename to src/third_party/devtools/node_modules/bn.js/lib/bn.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/bn.js/package.json b/src/third_party/devtools/node_modules/bn.js/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/bn.js/package.json
rename to src/third_party/devtools/node_modules/bn.js/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/bn.js/util/genCombMulTo.js b/src/third_party/devtools/node_modules/bn.js/util/genCombMulTo.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/bn.js/util/genCombMulTo.js
rename to src/third_party/devtools/node_modules/bn.js/util/genCombMulTo.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/bn.js/util/genCombMulTo10.js b/src/third_party/devtools/node_modules/bn.js/util/genCombMulTo10.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/bn.js/util/genCombMulTo10.js
rename to src/third_party/devtools/node_modules/bn.js/util/genCombMulTo10.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/body-parser/HISTORY.md b/src/third_party/devtools/node_modules/body-parser/HISTORY.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/body-parser/HISTORY.md
rename to src/third_party/devtools/node_modules/body-parser/HISTORY.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/body-parser/LICENSE b/src/third_party/devtools/node_modules/body-parser/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/body-parser/LICENSE
rename to src/third_party/devtools/node_modules/body-parser/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/body-parser/README.md b/src/third_party/devtools/node_modules/body-parser/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/body-parser/README.md
rename to src/third_party/devtools/node_modules/body-parser/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/body-parser/index.js b/src/third_party/devtools/node_modules/body-parser/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/body-parser/index.js
rename to src/third_party/devtools/node_modules/body-parser/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/body-parser/lib/read.js b/src/third_party/devtools/node_modules/body-parser/lib/read.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/body-parser/lib/read.js
rename to src/third_party/devtools/node_modules/body-parser/lib/read.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/body-parser/lib/types/json.js b/src/third_party/devtools/node_modules/body-parser/lib/types/json.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/body-parser/lib/types/json.js
rename to src/third_party/devtools/node_modules/body-parser/lib/types/json.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/body-parser/lib/types/raw.js b/src/third_party/devtools/node_modules/body-parser/lib/types/raw.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/body-parser/lib/types/raw.js
rename to src/third_party/devtools/node_modules/body-parser/lib/types/raw.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/body-parser/lib/types/text.js b/src/third_party/devtools/node_modules/body-parser/lib/types/text.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/body-parser/lib/types/text.js
rename to src/third_party/devtools/node_modules/body-parser/lib/types/text.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/body-parser/lib/types/urlencoded.js b/src/third_party/devtools/node_modules/body-parser/lib/types/urlencoded.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/body-parser/lib/types/urlencoded.js
rename to src/third_party/devtools/node_modules/body-parser/lib/types/urlencoded.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/body-parser/node_modules/debug/.coveralls.yml b/src/third_party/devtools/node_modules/body-parser/node_modules/debug/.coveralls.yml
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/body-parser/node_modules/debug/.coveralls.yml
rename to src/third_party/devtools/node_modules/body-parser/node_modules/debug/.coveralls.yml
diff --git a/src/cobalt/debug/remote/devtools/node_modules/body-parser/node_modules/debug/.eslintrc b/src/third_party/devtools/node_modules/body-parser/node_modules/debug/.eslintrc
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/body-parser/node_modules/debug/.eslintrc
rename to src/third_party/devtools/node_modules/body-parser/node_modules/debug/.eslintrc
diff --git a/src/cobalt/debug/remote/devtools/node_modules/body-parser/node_modules/debug/.npmignore b/src/third_party/devtools/node_modules/body-parser/node_modules/debug/.npmignore
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/body-parser/node_modules/debug/.npmignore
rename to src/third_party/devtools/node_modules/body-parser/node_modules/debug/.npmignore
diff --git a/src/cobalt/debug/remote/devtools/node_modules/body-parser/node_modules/debug/.travis.yml b/src/third_party/devtools/node_modules/body-parser/node_modules/debug/.travis.yml
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/body-parser/node_modules/debug/.travis.yml
rename to src/third_party/devtools/node_modules/body-parser/node_modules/debug/.travis.yml
diff --git a/src/cobalt/debug/remote/devtools/node_modules/body-parser/node_modules/debug/CHANGELOG.md b/src/third_party/devtools/node_modules/body-parser/node_modules/debug/CHANGELOG.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/body-parser/node_modules/debug/CHANGELOG.md
rename to src/third_party/devtools/node_modules/body-parser/node_modules/debug/CHANGELOG.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/body-parser/node_modules/debug/LICENSE b/src/third_party/devtools/node_modules/body-parser/node_modules/debug/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/body-parser/node_modules/debug/LICENSE
rename to src/third_party/devtools/node_modules/body-parser/node_modules/debug/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/body-parser/node_modules/debug/Makefile b/src/third_party/devtools/node_modules/body-parser/node_modules/debug/Makefile
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/body-parser/node_modules/debug/Makefile
rename to src/third_party/devtools/node_modules/body-parser/node_modules/debug/Makefile
diff --git a/src/cobalt/debug/remote/devtools/node_modules/body-parser/node_modules/debug/README.md b/src/third_party/devtools/node_modules/body-parser/node_modules/debug/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/body-parser/node_modules/debug/README.md
rename to src/third_party/devtools/node_modules/body-parser/node_modules/debug/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/body-parser/node_modules/debug/component.json b/src/third_party/devtools/node_modules/body-parser/node_modules/debug/component.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/body-parser/node_modules/debug/component.json
rename to src/third_party/devtools/node_modules/body-parser/node_modules/debug/component.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/body-parser/node_modules/debug/karma.conf.js b/src/third_party/devtools/node_modules/body-parser/node_modules/debug/karma.conf.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/body-parser/node_modules/debug/karma.conf.js
rename to src/third_party/devtools/node_modules/body-parser/node_modules/debug/karma.conf.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/body-parser/node_modules/debug/node.js b/src/third_party/devtools/node_modules/body-parser/node_modules/debug/node.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/body-parser/node_modules/debug/node.js
rename to src/third_party/devtools/node_modules/body-parser/node_modules/debug/node.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/body-parser/node_modules/debug/package.json b/src/third_party/devtools/node_modules/body-parser/node_modules/debug/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/body-parser/node_modules/debug/package.json
rename to src/third_party/devtools/node_modules/body-parser/node_modules/debug/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/body-parser/node_modules/debug/src/browser.js b/src/third_party/devtools/node_modules/body-parser/node_modules/debug/src/browser.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/body-parser/node_modules/debug/src/browser.js
rename to src/third_party/devtools/node_modules/body-parser/node_modules/debug/src/browser.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/body-parser/node_modules/debug/src/debug.js b/src/third_party/devtools/node_modules/body-parser/node_modules/debug/src/debug.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/body-parser/node_modules/debug/src/debug.js
rename to src/third_party/devtools/node_modules/body-parser/node_modules/debug/src/debug.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/body-parser/node_modules/debug/src/index.js b/src/third_party/devtools/node_modules/body-parser/node_modules/debug/src/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/body-parser/node_modules/debug/src/index.js
rename to src/third_party/devtools/node_modules/body-parser/node_modules/debug/src/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/body-parser/node_modules/debug/src/inspector-log.js b/src/third_party/devtools/node_modules/body-parser/node_modules/debug/src/inspector-log.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/body-parser/node_modules/debug/src/inspector-log.js
rename to src/third_party/devtools/node_modules/body-parser/node_modules/debug/src/inspector-log.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/body-parser/node_modules/debug/src/node.js b/src/third_party/devtools/node_modules/body-parser/node_modules/debug/src/node.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/body-parser/node_modules/debug/src/node.js
rename to src/third_party/devtools/node_modules/body-parser/node_modules/debug/src/node.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/body-parser/node_modules/ms/index.js b/src/third_party/devtools/node_modules/body-parser/node_modules/ms/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/body-parser/node_modules/ms/index.js
rename to src/third_party/devtools/node_modules/body-parser/node_modules/ms/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/body-parser/node_modules/ms/license.md b/src/third_party/devtools/node_modules/body-parser/node_modules/ms/license.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/body-parser/node_modules/ms/license.md
rename to src/third_party/devtools/node_modules/body-parser/node_modules/ms/license.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/body-parser/node_modules/ms/package.json b/src/third_party/devtools/node_modules/body-parser/node_modules/ms/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/body-parser/node_modules/ms/package.json
rename to src/third_party/devtools/node_modules/body-parser/node_modules/ms/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/body-parser/node_modules/ms/readme.md b/src/third_party/devtools/node_modules/body-parser/node_modules/ms/readme.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/body-parser/node_modules/ms/readme.md
rename to src/third_party/devtools/node_modules/body-parser/node_modules/ms/readme.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/body-parser/package.json b/src/third_party/devtools/node_modules/body-parser/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/body-parser/package.json
rename to src/third_party/devtools/node_modules/body-parser/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/brace-expansion/LICENSE b/src/third_party/devtools/node_modules/brace-expansion/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/brace-expansion/LICENSE
rename to src/third_party/devtools/node_modules/brace-expansion/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/brace-expansion/README.md b/src/third_party/devtools/node_modules/brace-expansion/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/brace-expansion/README.md
rename to src/third_party/devtools/node_modules/brace-expansion/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/brace-expansion/index.js b/src/third_party/devtools/node_modules/brace-expansion/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/brace-expansion/index.js
rename to src/third_party/devtools/node_modules/brace-expansion/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/brace-expansion/package.json b/src/third_party/devtools/node_modules/brace-expansion/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/brace-expansion/package.json
rename to src/third_party/devtools/node_modules/brace-expansion/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/braces/CHANGELOG.md b/src/third_party/devtools/node_modules/braces/CHANGELOG.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/braces/CHANGELOG.md
rename to src/third_party/devtools/node_modules/braces/CHANGELOG.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/braces/LICENSE b/src/third_party/devtools/node_modules/braces/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/braces/LICENSE
rename to src/third_party/devtools/node_modules/braces/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/braces/README.md b/src/third_party/devtools/node_modules/braces/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/braces/README.md
rename to src/third_party/devtools/node_modules/braces/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/braces/index.js b/src/third_party/devtools/node_modules/braces/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/braces/index.js
rename to src/third_party/devtools/node_modules/braces/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/braces/lib/compile.js b/src/third_party/devtools/node_modules/braces/lib/compile.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/braces/lib/compile.js
rename to src/third_party/devtools/node_modules/braces/lib/compile.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/braces/lib/constants.js b/src/third_party/devtools/node_modules/braces/lib/constants.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/braces/lib/constants.js
rename to src/third_party/devtools/node_modules/braces/lib/constants.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/braces/lib/expand.js b/src/third_party/devtools/node_modules/braces/lib/expand.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/braces/lib/expand.js
rename to src/third_party/devtools/node_modules/braces/lib/expand.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/braces/lib/parse.js b/src/third_party/devtools/node_modules/braces/lib/parse.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/braces/lib/parse.js
rename to src/third_party/devtools/node_modules/braces/lib/parse.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/braces/lib/stringify.js b/src/third_party/devtools/node_modules/braces/lib/stringify.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/braces/lib/stringify.js
rename to src/third_party/devtools/node_modules/braces/lib/stringify.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/braces/lib/utils.js b/src/third_party/devtools/node_modules/braces/lib/utils.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/braces/lib/utils.js
rename to src/third_party/devtools/node_modules/braces/lib/utils.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/braces/package.json b/src/third_party/devtools/node_modules/braces/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/braces/package.json
rename to src/third_party/devtools/node_modules/braces/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/brorand/.npmignore b/src/third_party/devtools/node_modules/brorand/.npmignore
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/brorand/.npmignore
rename to src/third_party/devtools/node_modules/brorand/.npmignore
diff --git a/src/cobalt/debug/remote/devtools/node_modules/brorand/README.md b/src/third_party/devtools/node_modules/brorand/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/brorand/README.md
rename to src/third_party/devtools/node_modules/brorand/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/brorand/index.js b/src/third_party/devtools/node_modules/brorand/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/brorand/index.js
rename to src/third_party/devtools/node_modules/brorand/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/brorand/package.json b/src/third_party/devtools/node_modules/brorand/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/brorand/package.json
rename to src/third_party/devtools/node_modules/brorand/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/brorand/test/api-test.js b/src/third_party/devtools/node_modules/brorand/test/api-test.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/brorand/test/api-test.js
rename to src/third_party/devtools/node_modules/brorand/test/api-test.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/browser-resolve/LICENSE b/src/third_party/devtools/node_modules/browser-resolve/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/browser-resolve/LICENSE
rename to src/third_party/devtools/node_modules/browser-resolve/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/browser-resolve/README.md b/src/third_party/devtools/node_modules/browser-resolve/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/browser-resolve/README.md
rename to src/third_party/devtools/node_modules/browser-resolve/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/browser-resolve/empty.js b/src/third_party/devtools/node_modules/browser-resolve/empty.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/browser-resolve/empty.js
rename to src/third_party/devtools/node_modules/browser-resolve/empty.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/browser-resolve/index.js b/src/third_party/devtools/node_modules/browser-resolve/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/browser-resolve/index.js
rename to src/third_party/devtools/node_modules/browser-resolve/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/browser-resolve/package.json b/src/third_party/devtools/node_modules/browser-resolve/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/browser-resolve/package.json
rename to src/third_party/devtools/node_modules/browser-resolve/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/browser-stdout/LICENSE b/src/third_party/devtools/node_modules/browser-stdout/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/browser-stdout/LICENSE
rename to src/third_party/devtools/node_modules/browser-stdout/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/browser-stdout/README.md b/src/third_party/devtools/node_modules/browser-stdout/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/browser-stdout/README.md
rename to src/third_party/devtools/node_modules/browser-stdout/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/browser-stdout/index.js b/src/third_party/devtools/node_modules/browser-stdout/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/browser-stdout/index.js
rename to src/third_party/devtools/node_modules/browser-stdout/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/browser-stdout/package.json b/src/third_party/devtools/node_modules/browser-stdout/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/browser-stdout/package.json
rename to src/third_party/devtools/node_modules/browser-stdout/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/browserify-aes/.travis.yml b/src/third_party/devtools/node_modules/browserify-aes/.travis.yml
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/browserify-aes/.travis.yml
rename to src/third_party/devtools/node_modules/browserify-aes/.travis.yml
diff --git a/src/cobalt/debug/remote/devtools/node_modules/browserify-aes/LICENSE b/src/third_party/devtools/node_modules/browserify-aes/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/browserify-aes/LICENSE
rename to src/third_party/devtools/node_modules/browserify-aes/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/browserify-aes/README.md b/src/third_party/devtools/node_modules/browserify-aes/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/browserify-aes/README.md
rename to src/third_party/devtools/node_modules/browserify-aes/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/browserify-aes/aes.js b/src/third_party/devtools/node_modules/browserify-aes/aes.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/browserify-aes/aes.js
rename to src/third_party/devtools/node_modules/browserify-aes/aes.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/browserify-aes/authCipher.js b/src/third_party/devtools/node_modules/browserify-aes/authCipher.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/browserify-aes/authCipher.js
rename to src/third_party/devtools/node_modules/browserify-aes/authCipher.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/browserify-aes/browser.js b/src/third_party/devtools/node_modules/browserify-aes/browser.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/browserify-aes/browser.js
rename to src/third_party/devtools/node_modules/browserify-aes/browser.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/browserify-aes/decrypter.js b/src/third_party/devtools/node_modules/browserify-aes/decrypter.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/browserify-aes/decrypter.js
rename to src/third_party/devtools/node_modules/browserify-aes/decrypter.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/browserify-aes/encrypter.js b/src/third_party/devtools/node_modules/browserify-aes/encrypter.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/browserify-aes/encrypter.js
rename to src/third_party/devtools/node_modules/browserify-aes/encrypter.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/browserify-aes/ghash.js b/src/third_party/devtools/node_modules/browserify-aes/ghash.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/browserify-aes/ghash.js
rename to src/third_party/devtools/node_modules/browserify-aes/ghash.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/browserify-aes/incr32.js b/src/third_party/devtools/node_modules/browserify-aes/incr32.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/browserify-aes/incr32.js
rename to src/third_party/devtools/node_modules/browserify-aes/incr32.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/browserify-aes/index.js b/src/third_party/devtools/node_modules/browserify-aes/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/browserify-aes/index.js
rename to src/third_party/devtools/node_modules/browserify-aes/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/browserify-aes/modes/cbc.js b/src/third_party/devtools/node_modules/browserify-aes/modes/cbc.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/browserify-aes/modes/cbc.js
rename to src/third_party/devtools/node_modules/browserify-aes/modes/cbc.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/browserify-aes/modes/cfb.js b/src/third_party/devtools/node_modules/browserify-aes/modes/cfb.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/browserify-aes/modes/cfb.js
rename to src/third_party/devtools/node_modules/browserify-aes/modes/cfb.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/browserify-aes/modes/cfb1.js b/src/third_party/devtools/node_modules/browserify-aes/modes/cfb1.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/browserify-aes/modes/cfb1.js
rename to src/third_party/devtools/node_modules/browserify-aes/modes/cfb1.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/browserify-aes/modes/cfb8.js b/src/third_party/devtools/node_modules/browserify-aes/modes/cfb8.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/browserify-aes/modes/cfb8.js
rename to src/third_party/devtools/node_modules/browserify-aes/modes/cfb8.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/browserify-aes/modes/ctr.js b/src/third_party/devtools/node_modules/browserify-aes/modes/ctr.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/browserify-aes/modes/ctr.js
rename to src/third_party/devtools/node_modules/browserify-aes/modes/ctr.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/browserify-aes/modes/ecb.js b/src/third_party/devtools/node_modules/browserify-aes/modes/ecb.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/browserify-aes/modes/ecb.js
rename to src/third_party/devtools/node_modules/browserify-aes/modes/ecb.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/browserify-aes/modes/index.js b/src/third_party/devtools/node_modules/browserify-aes/modes/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/browserify-aes/modes/index.js
rename to src/third_party/devtools/node_modules/browserify-aes/modes/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/browserify-aes/modes/list.json b/src/third_party/devtools/node_modules/browserify-aes/modes/list.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/browserify-aes/modes/list.json
rename to src/third_party/devtools/node_modules/browserify-aes/modes/list.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/browserify-aes/modes/ofb.js b/src/third_party/devtools/node_modules/browserify-aes/modes/ofb.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/browserify-aes/modes/ofb.js
rename to src/third_party/devtools/node_modules/browserify-aes/modes/ofb.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/browserify-aes/package.json b/src/third_party/devtools/node_modules/browserify-aes/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/browserify-aes/package.json
rename to src/third_party/devtools/node_modules/browserify-aes/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/browserify-aes/streamCipher.js b/src/third_party/devtools/node_modules/browserify-aes/streamCipher.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/browserify-aes/streamCipher.js
rename to src/third_party/devtools/node_modules/browserify-aes/streamCipher.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/browserify-cipher/.travis.yml b/src/third_party/devtools/node_modules/browserify-cipher/.travis.yml
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/browserify-cipher/.travis.yml
rename to src/third_party/devtools/node_modules/browserify-cipher/.travis.yml
diff --git a/src/cobalt/debug/remote/devtools/node_modules/browserify-cipher/LICENSE b/src/third_party/devtools/node_modules/browserify-cipher/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/browserify-cipher/LICENSE
rename to src/third_party/devtools/node_modules/browserify-cipher/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/browserify-cipher/README.md b/src/third_party/devtools/node_modules/browserify-cipher/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/browserify-cipher/README.md
rename to src/third_party/devtools/node_modules/browserify-cipher/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/browserify-cipher/browser.js b/src/third_party/devtools/node_modules/browserify-cipher/browser.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/browserify-cipher/browser.js
rename to src/third_party/devtools/node_modules/browserify-cipher/browser.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/browserify-cipher/index.js b/src/third_party/devtools/node_modules/browserify-cipher/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/browserify-cipher/index.js
rename to src/third_party/devtools/node_modules/browserify-cipher/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/browserify-cipher/package.json b/src/third_party/devtools/node_modules/browserify-cipher/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/browserify-cipher/package.json
rename to src/third_party/devtools/node_modules/browserify-cipher/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/browserify-cipher/test.js b/src/third_party/devtools/node_modules/browserify-cipher/test.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/browserify-cipher/test.js
rename to src/third_party/devtools/node_modules/browserify-cipher/test.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/browserify-des/.travis.yml b/src/third_party/devtools/node_modules/browserify-des/.travis.yml
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/browserify-des/.travis.yml
rename to src/third_party/devtools/node_modules/browserify-des/.travis.yml
diff --git a/src/cobalt/debug/remote/devtools/node_modules/browserify-des/index.js b/src/third_party/devtools/node_modules/browserify-des/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/browserify-des/index.js
rename to src/third_party/devtools/node_modules/browserify-des/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/browserify-des/license b/src/third_party/devtools/node_modules/browserify-des/license
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/browserify-des/license
rename to src/third_party/devtools/node_modules/browserify-des/license
diff --git a/src/cobalt/debug/remote/devtools/node_modules/browserify-des/modes.js b/src/third_party/devtools/node_modules/browserify-des/modes.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/browserify-des/modes.js
rename to src/third_party/devtools/node_modules/browserify-des/modes.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/browserify-des/package.json b/src/third_party/devtools/node_modules/browserify-des/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/browserify-des/package.json
rename to src/third_party/devtools/node_modules/browserify-des/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/browserify-des/readme.md b/src/third_party/devtools/node_modules/browserify-des/readme.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/browserify-des/readme.md
rename to src/third_party/devtools/node_modules/browserify-des/readme.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/browserify-des/test.js b/src/third_party/devtools/node_modules/browserify-des/test.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/browserify-des/test.js
rename to src/third_party/devtools/node_modules/browserify-des/test.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/browserify-rsa/.travis.yml b/src/third_party/devtools/node_modules/browserify-rsa/.travis.yml
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/browserify-rsa/.travis.yml
rename to src/third_party/devtools/node_modules/browserify-rsa/.travis.yml
diff --git a/src/cobalt/debug/remote/devtools/node_modules/browserify-rsa/LICENSE b/src/third_party/devtools/node_modules/browserify-rsa/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/browserify-rsa/LICENSE
rename to src/third_party/devtools/node_modules/browserify-rsa/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/browserify-rsa/index.js b/src/third_party/devtools/node_modules/browserify-rsa/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/browserify-rsa/index.js
rename to src/third_party/devtools/node_modules/browserify-rsa/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/browserify-rsa/package.json b/src/third_party/devtools/node_modules/browserify-rsa/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/browserify-rsa/package.json
rename to src/third_party/devtools/node_modules/browserify-rsa/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/browserify-rsa/readme.md b/src/third_party/devtools/node_modules/browserify-rsa/readme.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/browserify-rsa/readme.md
rename to src/third_party/devtools/node_modules/browserify-rsa/readme.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/browserify-rsa/test.js b/src/third_party/devtools/node_modules/browserify-rsa/test.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/browserify-rsa/test.js
rename to src/third_party/devtools/node_modules/browserify-rsa/test.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/browserify-sign/LICENSE b/src/third_party/devtools/node_modules/browserify-sign/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/browserify-sign/LICENSE
rename to src/third_party/devtools/node_modules/browserify-sign/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/browserify-sign/README.md b/src/third_party/devtools/node_modules/browserify-sign/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/browserify-sign/README.md
rename to src/third_party/devtools/node_modules/browserify-sign/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/browserify-sign/algos.js b/src/third_party/devtools/node_modules/browserify-sign/algos.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/browserify-sign/algos.js
rename to src/third_party/devtools/node_modules/browserify-sign/algos.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/browserify-sign/browser/algorithms.json b/src/third_party/devtools/node_modules/browserify-sign/browser/algorithms.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/browserify-sign/browser/algorithms.json
rename to src/third_party/devtools/node_modules/browserify-sign/browser/algorithms.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/browserify-sign/browser/curves.json b/src/third_party/devtools/node_modules/browserify-sign/browser/curves.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/browserify-sign/browser/curves.json
rename to src/third_party/devtools/node_modules/browserify-sign/browser/curves.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/browserify-sign/browser/index.js b/src/third_party/devtools/node_modules/browserify-sign/browser/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/browserify-sign/browser/index.js
rename to src/third_party/devtools/node_modules/browserify-sign/browser/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/browserify-sign/browser/sign.js b/src/third_party/devtools/node_modules/browserify-sign/browser/sign.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/browserify-sign/browser/sign.js
rename to src/third_party/devtools/node_modules/browserify-sign/browser/sign.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/browserify-sign/browser/verify.js b/src/third_party/devtools/node_modules/browserify-sign/browser/verify.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/browserify-sign/browser/verify.js
rename to src/third_party/devtools/node_modules/browserify-sign/browser/verify.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/browserify-sign/index.js b/src/third_party/devtools/node_modules/browserify-sign/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/browserify-sign/index.js
rename to src/third_party/devtools/node_modules/browserify-sign/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/browserify-sign/package.json b/src/third_party/devtools/node_modules/browserify-sign/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/browserify-sign/package.json
rename to src/third_party/devtools/node_modules/browserify-sign/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/browserify-zlib/.npmignore b/src/third_party/devtools/node_modules/browserify-zlib/.npmignore
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/browserify-zlib/.npmignore
rename to src/third_party/devtools/node_modules/browserify-zlib/.npmignore
diff --git a/src/cobalt/debug/remote/devtools/node_modules/browserify-zlib/.travis.yml b/src/third_party/devtools/node_modules/browserify-zlib/.travis.yml
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/browserify-zlib/.travis.yml
rename to src/third_party/devtools/node_modules/browserify-zlib/.travis.yml
diff --git a/src/cobalt/debug/remote/devtools/node_modules/browserify-zlib/LICENSE b/src/third_party/devtools/node_modules/browserify-zlib/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/browserify-zlib/LICENSE
rename to src/third_party/devtools/node_modules/browserify-zlib/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/browserify-zlib/README.md b/src/third_party/devtools/node_modules/browserify-zlib/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/browserify-zlib/README.md
rename to src/third_party/devtools/node_modules/browserify-zlib/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/browserify-zlib/karma.conf.js b/src/third_party/devtools/node_modules/browserify-zlib/karma.conf.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/browserify-zlib/karma.conf.js
rename to src/third_party/devtools/node_modules/browserify-zlib/karma.conf.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/browserify-zlib/lib/binding.js b/src/third_party/devtools/node_modules/browserify-zlib/lib/binding.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/browserify-zlib/lib/binding.js
rename to src/third_party/devtools/node_modules/browserify-zlib/lib/binding.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/browserify-zlib/lib/index.js b/src/third_party/devtools/node_modules/browserify-zlib/lib/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/browserify-zlib/lib/index.js
rename to src/third_party/devtools/node_modules/browserify-zlib/lib/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/browserify-zlib/package.json b/src/third_party/devtools/node_modules/browserify-zlib/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/browserify-zlib/package.json
rename to src/third_party/devtools/node_modules/browserify-zlib/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/browserify-zlib/src/binding.js b/src/third_party/devtools/node_modules/browserify-zlib/src/binding.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/browserify-zlib/src/binding.js
rename to src/third_party/devtools/node_modules/browserify-zlib/src/binding.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/browserify-zlib/src/index.js b/src/third_party/devtools/node_modules/browserify-zlib/src/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/browserify-zlib/src/index.js
rename to src/third_party/devtools/node_modules/browserify-zlib/src/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/browserify-zlib/yarn.lock b/src/third_party/devtools/node_modules/browserify-zlib/yarn.lock
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/browserify-zlib/yarn.lock
rename to src/third_party/devtools/node_modules/browserify-zlib/yarn.lock
diff --git a/src/cobalt/debug/remote/devtools/node_modules/buffer-alloc-unsafe/index.js b/src/third_party/devtools/node_modules/buffer-alloc-unsafe/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/buffer-alloc-unsafe/index.js
rename to src/third_party/devtools/node_modules/buffer-alloc-unsafe/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/buffer-alloc-unsafe/package.json b/src/third_party/devtools/node_modules/buffer-alloc-unsafe/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/buffer-alloc-unsafe/package.json
rename to src/third_party/devtools/node_modules/buffer-alloc-unsafe/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/buffer-alloc-unsafe/readme.md b/src/third_party/devtools/node_modules/buffer-alloc-unsafe/readme.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/buffer-alloc-unsafe/readme.md
rename to src/third_party/devtools/node_modules/buffer-alloc-unsafe/readme.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/buffer-alloc/index.js b/src/third_party/devtools/node_modules/buffer-alloc/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/buffer-alloc/index.js
rename to src/third_party/devtools/node_modules/buffer-alloc/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/buffer-alloc/package.json b/src/third_party/devtools/node_modules/buffer-alloc/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/buffer-alloc/package.json
rename to src/third_party/devtools/node_modules/buffer-alloc/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/buffer-alloc/readme.md b/src/third_party/devtools/node_modules/buffer-alloc/readme.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/buffer-alloc/readme.md
rename to src/third_party/devtools/node_modules/buffer-alloc/readme.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/buffer-fill/index.js b/src/third_party/devtools/node_modules/buffer-fill/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/buffer-fill/index.js
rename to src/third_party/devtools/node_modules/buffer-fill/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/buffer-fill/package.json b/src/third_party/devtools/node_modules/buffer-fill/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/buffer-fill/package.json
rename to src/third_party/devtools/node_modules/buffer-fill/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/buffer-fill/readme.md b/src/third_party/devtools/node_modules/buffer-fill/readme.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/buffer-fill/readme.md
rename to src/third_party/devtools/node_modules/buffer-fill/readme.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/buffer-from/LICENSE b/src/third_party/devtools/node_modules/buffer-from/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/buffer-from/LICENSE
rename to src/third_party/devtools/node_modules/buffer-from/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/buffer-from/index.js b/src/third_party/devtools/node_modules/buffer-from/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/buffer-from/index.js
rename to src/third_party/devtools/node_modules/buffer-from/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/buffer-from/package.json b/src/third_party/devtools/node_modules/buffer-from/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/buffer-from/package.json
rename to src/third_party/devtools/node_modules/buffer-from/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/buffer-from/readme.md b/src/third_party/devtools/node_modules/buffer-from/readme.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/buffer-from/readme.md
rename to src/third_party/devtools/node_modules/buffer-from/readme.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/buffer-xor/.npmignore b/src/third_party/devtools/node_modules/buffer-xor/.npmignore
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/buffer-xor/.npmignore
rename to src/third_party/devtools/node_modules/buffer-xor/.npmignore
diff --git a/src/cobalt/debug/remote/devtools/node_modules/buffer-xor/.travis.yml b/src/third_party/devtools/node_modules/buffer-xor/.travis.yml
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/buffer-xor/.travis.yml
rename to src/third_party/devtools/node_modules/buffer-xor/.travis.yml
diff --git a/src/cobalt/debug/remote/devtools/node_modules/buffer-xor/LICENSE b/src/third_party/devtools/node_modules/buffer-xor/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/buffer-xor/LICENSE
rename to src/third_party/devtools/node_modules/buffer-xor/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/buffer-xor/README.md b/src/third_party/devtools/node_modules/buffer-xor/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/buffer-xor/README.md
rename to src/third_party/devtools/node_modules/buffer-xor/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/buffer-xor/index.js b/src/third_party/devtools/node_modules/buffer-xor/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/buffer-xor/index.js
rename to src/third_party/devtools/node_modules/buffer-xor/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/buffer-xor/inline.js b/src/third_party/devtools/node_modules/buffer-xor/inline.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/buffer-xor/inline.js
rename to src/third_party/devtools/node_modules/buffer-xor/inline.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/buffer-xor/inplace.js b/src/third_party/devtools/node_modules/buffer-xor/inplace.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/buffer-xor/inplace.js
rename to src/third_party/devtools/node_modules/buffer-xor/inplace.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/buffer-xor/package.json b/src/third_party/devtools/node_modules/buffer-xor/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/buffer-xor/package.json
rename to src/third_party/devtools/node_modules/buffer-xor/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/buffer-xor/test/fixtures.json b/src/third_party/devtools/node_modules/buffer-xor/test/fixtures.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/buffer-xor/test/fixtures.json
rename to src/third_party/devtools/node_modules/buffer-xor/test/fixtures.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/buffer-xor/test/index.js b/src/third_party/devtools/node_modules/buffer-xor/test/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/buffer-xor/test/index.js
rename to src/third_party/devtools/node_modules/buffer-xor/test/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/buffer/AUTHORS.md b/src/third_party/devtools/node_modules/buffer/AUTHORS.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/buffer/AUTHORS.md
rename to src/third_party/devtools/node_modules/buffer/AUTHORS.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/buffer/LICENSE b/src/third_party/devtools/node_modules/buffer/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/buffer/LICENSE
rename to src/third_party/devtools/node_modules/buffer/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/buffer/README.md b/src/third_party/devtools/node_modules/buffer/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/buffer/README.md
rename to src/third_party/devtools/node_modules/buffer/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/buffer/index.d.ts b/src/third_party/devtools/node_modules/buffer/index.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/buffer/index.d.ts
rename to src/third_party/devtools/node_modules/buffer/index.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/buffer/index.js b/src/third_party/devtools/node_modules/buffer/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/buffer/index.js
rename to src/third_party/devtools/node_modules/buffer/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/buffer/package.json b/src/third_party/devtools/node_modules/buffer/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/buffer/package.json
rename to src/third_party/devtools/node_modules/buffer/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/builtin-status-codes/browser.js b/src/third_party/devtools/node_modules/builtin-status-codes/browser.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/builtin-status-codes/browser.js
rename to src/third_party/devtools/node_modules/builtin-status-codes/browser.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/builtin-status-codes/build.js b/src/third_party/devtools/node_modules/builtin-status-codes/build.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/builtin-status-codes/build.js
rename to src/third_party/devtools/node_modules/builtin-status-codes/build.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/builtin-status-codes/index.js b/src/third_party/devtools/node_modules/builtin-status-codes/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/builtin-status-codes/index.js
rename to src/third_party/devtools/node_modules/builtin-status-codes/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/builtin-status-codes/license b/src/third_party/devtools/node_modules/builtin-status-codes/license
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/builtin-status-codes/license
rename to src/third_party/devtools/node_modules/builtin-status-codes/license
diff --git a/src/cobalt/debug/remote/devtools/node_modules/builtin-status-codes/package.json b/src/third_party/devtools/node_modules/builtin-status-codes/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/builtin-status-codes/package.json
rename to src/third_party/devtools/node_modules/builtin-status-codes/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/builtin-status-codes/readme.md b/src/third_party/devtools/node_modules/builtin-status-codes/readme.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/builtin-status-codes/readme.md
rename to src/third_party/devtools/node_modules/builtin-status-codes/readme.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/bytes/History.md b/src/third_party/devtools/node_modules/bytes/History.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/bytes/History.md
rename to src/third_party/devtools/node_modules/bytes/History.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/bytes/LICENSE b/src/third_party/devtools/node_modules/bytes/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/bytes/LICENSE
rename to src/third_party/devtools/node_modules/bytes/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/bytes/Readme.md b/src/third_party/devtools/node_modules/bytes/Readme.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/bytes/Readme.md
rename to src/third_party/devtools/node_modules/bytes/Readme.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/bytes/index.js b/src/third_party/devtools/node_modules/bytes/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/bytes/index.js
rename to src/third_party/devtools/node_modules/bytes/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/bytes/package.json b/src/third_party/devtools/node_modules/bytes/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/bytes/package.json
rename to src/third_party/devtools/node_modules/bytes/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/callsite/.npmignore b/src/third_party/devtools/node_modules/callsite/.npmignore
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/callsite/.npmignore
rename to src/third_party/devtools/node_modules/callsite/.npmignore
diff --git a/src/cobalt/debug/remote/devtools/node_modules/callsite/History.md b/src/third_party/devtools/node_modules/callsite/History.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/callsite/History.md
rename to src/third_party/devtools/node_modules/callsite/History.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/callsite/Makefile b/src/third_party/devtools/node_modules/callsite/Makefile
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/callsite/Makefile
rename to src/third_party/devtools/node_modules/callsite/Makefile
diff --git a/src/cobalt/debug/remote/devtools/node_modules/callsite/Readme.md b/src/third_party/devtools/node_modules/callsite/Readme.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/callsite/Readme.md
rename to src/third_party/devtools/node_modules/callsite/Readme.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/callsite/index.js b/src/third_party/devtools/node_modules/callsite/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/callsite/index.js
rename to src/third_party/devtools/node_modules/callsite/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/callsite/package.json b/src/third_party/devtools/node_modules/callsite/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/callsite/package.json
rename to src/third_party/devtools/node_modules/callsite/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/callsites/index.d.ts b/src/third_party/devtools/node_modules/callsites/index.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/callsites/index.d.ts
rename to src/third_party/devtools/node_modules/callsites/index.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/callsites/index.js b/src/third_party/devtools/node_modules/callsites/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/callsites/index.js
rename to src/third_party/devtools/node_modules/callsites/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/callsites/license b/src/third_party/devtools/node_modules/callsites/license
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/callsites/license
rename to src/third_party/devtools/node_modules/callsites/license
diff --git a/src/cobalt/debug/remote/devtools/node_modules/callsites/package.json b/src/third_party/devtools/node_modules/callsites/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/callsites/package.json
rename to src/third_party/devtools/node_modules/callsites/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/callsites/readme.md b/src/third_party/devtools/node_modules/callsites/readme.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/callsites/readme.md
rename to src/third_party/devtools/node_modules/callsites/readme.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/camelcase-keys/index.js b/src/third_party/devtools/node_modules/camelcase-keys/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/camelcase-keys/index.js
rename to src/third_party/devtools/node_modules/camelcase-keys/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/camelcase-keys/license b/src/third_party/devtools/node_modules/camelcase-keys/license
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/camelcase-keys/license
rename to src/third_party/devtools/node_modules/camelcase-keys/license
diff --git a/src/cobalt/debug/remote/devtools/node_modules/camelcase-keys/package.json b/src/third_party/devtools/node_modules/camelcase-keys/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/camelcase-keys/package.json
rename to src/third_party/devtools/node_modules/camelcase-keys/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/camelcase-keys/readme.md b/src/third_party/devtools/node_modules/camelcase-keys/readme.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/camelcase-keys/readme.md
rename to src/third_party/devtools/node_modules/camelcase-keys/readme.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/camelcase/index.js b/src/third_party/devtools/node_modules/camelcase/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/camelcase/index.js
rename to src/third_party/devtools/node_modules/camelcase/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/camelcase/license b/src/third_party/devtools/node_modules/camelcase/license
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/camelcase/license
rename to src/third_party/devtools/node_modules/camelcase/license
diff --git a/src/cobalt/debug/remote/devtools/node_modules/camelcase/package.json b/src/third_party/devtools/node_modules/camelcase/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/camelcase/package.json
rename to src/third_party/devtools/node_modules/camelcase/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/camelcase/readme.md b/src/third_party/devtools/node_modules/camelcase/readme.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/camelcase/readme.md
rename to src/third_party/devtools/node_modules/camelcase/readme.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/chai/CODEOWNERS b/src/third_party/devtools/node_modules/chai/CODEOWNERS
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/chai/CODEOWNERS
rename to src/third_party/devtools/node_modules/chai/CODEOWNERS
diff --git a/src/cobalt/debug/remote/devtools/node_modules/chai/CODE_OF_CONDUCT.md b/src/third_party/devtools/node_modules/chai/CODE_OF_CONDUCT.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/chai/CODE_OF_CONDUCT.md
rename to src/third_party/devtools/node_modules/chai/CODE_OF_CONDUCT.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/chai/CONTRIBUTING.md b/src/third_party/devtools/node_modules/chai/CONTRIBUTING.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/chai/CONTRIBUTING.md
rename to src/third_party/devtools/node_modules/chai/CONTRIBUTING.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/chai/History.md b/src/third_party/devtools/node_modules/chai/History.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/chai/History.md
rename to src/third_party/devtools/node_modules/chai/History.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/chai/LICENSE b/src/third_party/devtools/node_modules/chai/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/chai/LICENSE
rename to src/third_party/devtools/node_modules/chai/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/chai/README.md b/src/third_party/devtools/node_modules/chai/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/chai/README.md
rename to src/third_party/devtools/node_modules/chai/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/chai/ReleaseNotes.md b/src/third_party/devtools/node_modules/chai/ReleaseNotes.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/chai/ReleaseNotes.md
rename to src/third_party/devtools/node_modules/chai/ReleaseNotes.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/chai/bower.json b/src/third_party/devtools/node_modules/chai/bower.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/chai/bower.json
rename to src/third_party/devtools/node_modules/chai/bower.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/chai/chai.js b/src/third_party/devtools/node_modules/chai/chai.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/chai/chai.js
rename to src/third_party/devtools/node_modules/chai/chai.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/chai/index.js b/src/third_party/devtools/node_modules/chai/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/chai/index.js
rename to src/third_party/devtools/node_modules/chai/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/chai/karma.conf.js b/src/third_party/devtools/node_modules/chai/karma.conf.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/chai/karma.conf.js
rename to src/third_party/devtools/node_modules/chai/karma.conf.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/chai/karma.sauce.js b/src/third_party/devtools/node_modules/chai/karma.sauce.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/chai/karma.sauce.js
rename to src/third_party/devtools/node_modules/chai/karma.sauce.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/chai/lib/chai.js b/src/third_party/devtools/node_modules/chai/lib/chai.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/chai/lib/chai.js
rename to src/third_party/devtools/node_modules/chai/lib/chai.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/chai/lib/chai/assertion.js b/src/third_party/devtools/node_modules/chai/lib/chai/assertion.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/chai/lib/chai/assertion.js
rename to src/third_party/devtools/node_modules/chai/lib/chai/assertion.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/chai/lib/chai/config.js b/src/third_party/devtools/node_modules/chai/lib/chai/config.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/chai/lib/chai/config.js
rename to src/third_party/devtools/node_modules/chai/lib/chai/config.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/chai/lib/chai/core/assertions.js b/src/third_party/devtools/node_modules/chai/lib/chai/core/assertions.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/chai/lib/chai/core/assertions.js
rename to src/third_party/devtools/node_modules/chai/lib/chai/core/assertions.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/chai/lib/chai/interface/assert.js b/src/third_party/devtools/node_modules/chai/lib/chai/interface/assert.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/chai/lib/chai/interface/assert.js
rename to src/third_party/devtools/node_modules/chai/lib/chai/interface/assert.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/chai/lib/chai/interface/expect.js b/src/third_party/devtools/node_modules/chai/lib/chai/interface/expect.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/chai/lib/chai/interface/expect.js
rename to src/third_party/devtools/node_modules/chai/lib/chai/interface/expect.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/chai/lib/chai/interface/should.js b/src/third_party/devtools/node_modules/chai/lib/chai/interface/should.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/chai/lib/chai/interface/should.js
rename to src/third_party/devtools/node_modules/chai/lib/chai/interface/should.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/chai/lib/chai/utils/addChainableMethod.js b/src/third_party/devtools/node_modules/chai/lib/chai/utils/addChainableMethod.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/chai/lib/chai/utils/addChainableMethod.js
rename to src/third_party/devtools/node_modules/chai/lib/chai/utils/addChainableMethod.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/chai/lib/chai/utils/addLengthGuard.js b/src/third_party/devtools/node_modules/chai/lib/chai/utils/addLengthGuard.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/chai/lib/chai/utils/addLengthGuard.js
rename to src/third_party/devtools/node_modules/chai/lib/chai/utils/addLengthGuard.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/chai/lib/chai/utils/addMethod.js b/src/third_party/devtools/node_modules/chai/lib/chai/utils/addMethod.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/chai/lib/chai/utils/addMethod.js
rename to src/third_party/devtools/node_modules/chai/lib/chai/utils/addMethod.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/chai/lib/chai/utils/addProperty.js b/src/third_party/devtools/node_modules/chai/lib/chai/utils/addProperty.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/chai/lib/chai/utils/addProperty.js
rename to src/third_party/devtools/node_modules/chai/lib/chai/utils/addProperty.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/chai/lib/chai/utils/compareByInspect.js b/src/third_party/devtools/node_modules/chai/lib/chai/utils/compareByInspect.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/chai/lib/chai/utils/compareByInspect.js
rename to src/third_party/devtools/node_modules/chai/lib/chai/utils/compareByInspect.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/chai/lib/chai/utils/expectTypes.js b/src/third_party/devtools/node_modules/chai/lib/chai/utils/expectTypes.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/chai/lib/chai/utils/expectTypes.js
rename to src/third_party/devtools/node_modules/chai/lib/chai/utils/expectTypes.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/chai/lib/chai/utils/flag.js b/src/third_party/devtools/node_modules/chai/lib/chai/utils/flag.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/chai/lib/chai/utils/flag.js
rename to src/third_party/devtools/node_modules/chai/lib/chai/utils/flag.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/chai/lib/chai/utils/getActual.js b/src/third_party/devtools/node_modules/chai/lib/chai/utils/getActual.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/chai/lib/chai/utils/getActual.js
rename to src/third_party/devtools/node_modules/chai/lib/chai/utils/getActual.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/chai/lib/chai/utils/getEnumerableProperties.js b/src/third_party/devtools/node_modules/chai/lib/chai/utils/getEnumerableProperties.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/chai/lib/chai/utils/getEnumerableProperties.js
rename to src/third_party/devtools/node_modules/chai/lib/chai/utils/getEnumerableProperties.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/chai/lib/chai/utils/getMessage.js b/src/third_party/devtools/node_modules/chai/lib/chai/utils/getMessage.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/chai/lib/chai/utils/getMessage.js
rename to src/third_party/devtools/node_modules/chai/lib/chai/utils/getMessage.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/chai/lib/chai/utils/getOwnEnumerableProperties.js b/src/third_party/devtools/node_modules/chai/lib/chai/utils/getOwnEnumerableProperties.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/chai/lib/chai/utils/getOwnEnumerableProperties.js
rename to src/third_party/devtools/node_modules/chai/lib/chai/utils/getOwnEnumerableProperties.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/chai/lib/chai/utils/getOwnEnumerablePropertySymbols.js b/src/third_party/devtools/node_modules/chai/lib/chai/utils/getOwnEnumerablePropertySymbols.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/chai/lib/chai/utils/getOwnEnumerablePropertySymbols.js
rename to src/third_party/devtools/node_modules/chai/lib/chai/utils/getOwnEnumerablePropertySymbols.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/chai/lib/chai/utils/getProperties.js b/src/third_party/devtools/node_modules/chai/lib/chai/utils/getProperties.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/chai/lib/chai/utils/getProperties.js
rename to src/third_party/devtools/node_modules/chai/lib/chai/utils/getProperties.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/chai/lib/chai/utils/index.js b/src/third_party/devtools/node_modules/chai/lib/chai/utils/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/chai/lib/chai/utils/index.js
rename to src/third_party/devtools/node_modules/chai/lib/chai/utils/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/chai/lib/chai/utils/inspect.js b/src/third_party/devtools/node_modules/chai/lib/chai/utils/inspect.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/chai/lib/chai/utils/inspect.js
rename to src/third_party/devtools/node_modules/chai/lib/chai/utils/inspect.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/chai/lib/chai/utils/isNaN.js b/src/third_party/devtools/node_modules/chai/lib/chai/utils/isNaN.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/chai/lib/chai/utils/isNaN.js
rename to src/third_party/devtools/node_modules/chai/lib/chai/utils/isNaN.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/chai/lib/chai/utils/isProxyEnabled.js b/src/third_party/devtools/node_modules/chai/lib/chai/utils/isProxyEnabled.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/chai/lib/chai/utils/isProxyEnabled.js
rename to src/third_party/devtools/node_modules/chai/lib/chai/utils/isProxyEnabled.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/chai/lib/chai/utils/objDisplay.js b/src/third_party/devtools/node_modules/chai/lib/chai/utils/objDisplay.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/chai/lib/chai/utils/objDisplay.js
rename to src/third_party/devtools/node_modules/chai/lib/chai/utils/objDisplay.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/chai/lib/chai/utils/overwriteChainableMethod.js b/src/third_party/devtools/node_modules/chai/lib/chai/utils/overwriteChainableMethod.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/chai/lib/chai/utils/overwriteChainableMethod.js
rename to src/third_party/devtools/node_modules/chai/lib/chai/utils/overwriteChainableMethod.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/chai/lib/chai/utils/overwriteMethod.js b/src/third_party/devtools/node_modules/chai/lib/chai/utils/overwriteMethod.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/chai/lib/chai/utils/overwriteMethod.js
rename to src/third_party/devtools/node_modules/chai/lib/chai/utils/overwriteMethod.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/chai/lib/chai/utils/overwriteProperty.js b/src/third_party/devtools/node_modules/chai/lib/chai/utils/overwriteProperty.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/chai/lib/chai/utils/overwriteProperty.js
rename to src/third_party/devtools/node_modules/chai/lib/chai/utils/overwriteProperty.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/chai/lib/chai/utils/proxify.js b/src/third_party/devtools/node_modules/chai/lib/chai/utils/proxify.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/chai/lib/chai/utils/proxify.js
rename to src/third_party/devtools/node_modules/chai/lib/chai/utils/proxify.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/chai/lib/chai/utils/test.js b/src/third_party/devtools/node_modules/chai/lib/chai/utils/test.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/chai/lib/chai/utils/test.js
rename to src/third_party/devtools/node_modules/chai/lib/chai/utils/test.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/chai/lib/chai/utils/transferFlags.js b/src/third_party/devtools/node_modules/chai/lib/chai/utils/transferFlags.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/chai/lib/chai/utils/transferFlags.js
rename to src/third_party/devtools/node_modules/chai/lib/chai/utils/transferFlags.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/chai/package.json b/src/third_party/devtools/node_modules/chai/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/chai/package.json
rename to src/third_party/devtools/node_modules/chai/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/chai/register-assert.js b/src/third_party/devtools/node_modules/chai/register-assert.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/chai/register-assert.js
rename to src/third_party/devtools/node_modules/chai/register-assert.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/chai/register-expect.js b/src/third_party/devtools/node_modules/chai/register-expect.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/chai/register-expect.js
rename to src/third_party/devtools/node_modules/chai/register-expect.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/chai/register-should.js b/src/third_party/devtools/node_modules/chai/register-should.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/chai/register-should.js
rename to src/third_party/devtools/node_modules/chai/register-should.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/chai/sauce.browsers.js b/src/third_party/devtools/node_modules/chai/sauce.browsers.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/chai/sauce.browsers.js
rename to src/third_party/devtools/node_modules/chai/sauce.browsers.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/chalk/LICENSE b/src/third_party/devtools/node_modules/chalk/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/chalk/LICENSE
rename to src/third_party/devtools/node_modules/chalk/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/chalk/index.js b/src/third_party/devtools/node_modules/chalk/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/chalk/index.js
rename to src/third_party/devtools/node_modules/chalk/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/chalk/index.js.flow b/src/third_party/devtools/node_modules/chalk/index.js.flow
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/chalk/index.js.flow
rename to src/third_party/devtools/node_modules/chalk/index.js.flow
diff --git a/src/cobalt/debug/remote/devtools/node_modules/chalk/package.json b/src/third_party/devtools/node_modules/chalk/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/chalk/package.json
rename to src/third_party/devtools/node_modules/chalk/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/chalk/readme.md b/src/third_party/devtools/node_modules/chalk/readme.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/chalk/readme.md
rename to src/third_party/devtools/node_modules/chalk/readme.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/chalk/templates.js b/src/third_party/devtools/node_modules/chalk/templates.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/chalk/templates.js
rename to src/third_party/devtools/node_modules/chalk/templates.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/chalk/types/index.d.ts b/src/third_party/devtools/node_modules/chalk/types/index.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/chalk/types/index.d.ts
rename to src/third_party/devtools/node_modules/chalk/types/index.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/chardet/.travis.yml b/src/third_party/devtools/node_modules/chardet/.travis.yml
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/chardet/.travis.yml
rename to src/third_party/devtools/node_modules/chardet/.travis.yml
diff --git a/src/cobalt/debug/remote/devtools/node_modules/chardet/LICENSE b/src/third_party/devtools/node_modules/chardet/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/chardet/LICENSE
rename to src/third_party/devtools/node_modules/chardet/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/chardet/README.md b/src/third_party/devtools/node_modules/chardet/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/chardet/README.md
rename to src/third_party/devtools/node_modules/chardet/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/chardet/encoding/iso2022.js b/src/third_party/devtools/node_modules/chardet/encoding/iso2022.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/chardet/encoding/iso2022.js
rename to src/third_party/devtools/node_modules/chardet/encoding/iso2022.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/chardet/encoding/mbcs.js b/src/third_party/devtools/node_modules/chardet/encoding/mbcs.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/chardet/encoding/mbcs.js
rename to src/third_party/devtools/node_modules/chardet/encoding/mbcs.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/chardet/encoding/sbcs.js b/src/third_party/devtools/node_modules/chardet/encoding/sbcs.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/chardet/encoding/sbcs.js
rename to src/third_party/devtools/node_modules/chardet/encoding/sbcs.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/chardet/encoding/unicode.js b/src/third_party/devtools/node_modules/chardet/encoding/unicode.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/chardet/encoding/unicode.js
rename to src/third_party/devtools/node_modules/chardet/encoding/unicode.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/chardet/encoding/utf8.js b/src/third_party/devtools/node_modules/chardet/encoding/utf8.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/chardet/encoding/utf8.js
rename to src/third_party/devtools/node_modules/chardet/encoding/utf8.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/chardet/index.js b/src/third_party/devtools/node_modules/chardet/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/chardet/index.js
rename to src/third_party/devtools/node_modules/chardet/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/chardet/match.js b/src/third_party/devtools/node_modules/chardet/match.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/chardet/match.js
rename to src/third_party/devtools/node_modules/chardet/match.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/chardet/package.json b/src/third_party/devtools/node_modules/chardet/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/chardet/package.json
rename to src/third_party/devtools/node_modules/chardet/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/check-error/LICENSE b/src/third_party/devtools/node_modules/check-error/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/check-error/LICENSE
rename to src/third_party/devtools/node_modules/check-error/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/check-error/README.md b/src/third_party/devtools/node_modules/check-error/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/check-error/README.md
rename to src/third_party/devtools/node_modules/check-error/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/check-error/check-error.js b/src/third_party/devtools/node_modules/check-error/check-error.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/check-error/check-error.js
rename to src/third_party/devtools/node_modules/check-error/check-error.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/check-error/index.js b/src/third_party/devtools/node_modules/check-error/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/check-error/index.js
rename to src/third_party/devtools/node_modules/check-error/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/check-error/package.json b/src/third_party/devtools/node_modules/check-error/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/check-error/package.json
rename to src/third_party/devtools/node_modules/check-error/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/chokidar/LICENSE b/src/third_party/devtools/node_modules/chokidar/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/chokidar/LICENSE
rename to src/third_party/devtools/node_modules/chokidar/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/chokidar/README.md b/src/third_party/devtools/node_modules/chokidar/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/chokidar/README.md
rename to src/third_party/devtools/node_modules/chokidar/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/chokidar/index.js b/src/third_party/devtools/node_modules/chokidar/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/chokidar/index.js
rename to src/third_party/devtools/node_modules/chokidar/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/chokidar/lib/constants.js b/src/third_party/devtools/node_modules/chokidar/lib/constants.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/chokidar/lib/constants.js
rename to src/third_party/devtools/node_modules/chokidar/lib/constants.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/chokidar/lib/fsevents-handler.js b/src/third_party/devtools/node_modules/chokidar/lib/fsevents-handler.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/chokidar/lib/fsevents-handler.js
rename to src/third_party/devtools/node_modules/chokidar/lib/fsevents-handler.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/chokidar/lib/nodefs-handler.js b/src/third_party/devtools/node_modules/chokidar/lib/nodefs-handler.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/chokidar/lib/nodefs-handler.js
rename to src/third_party/devtools/node_modules/chokidar/lib/nodefs-handler.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/chokidar/node_modules/glob-parent/LICENSE b/src/third_party/devtools/node_modules/chokidar/node_modules/glob-parent/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/chokidar/node_modules/glob-parent/LICENSE
rename to src/third_party/devtools/node_modules/chokidar/node_modules/glob-parent/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/chokidar/node_modules/glob-parent/README.md b/src/third_party/devtools/node_modules/chokidar/node_modules/glob-parent/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/chokidar/node_modules/glob-parent/README.md
rename to src/third_party/devtools/node_modules/chokidar/node_modules/glob-parent/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/chokidar/node_modules/glob-parent/index.js b/src/third_party/devtools/node_modules/chokidar/node_modules/glob-parent/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/chokidar/node_modules/glob-parent/index.js
rename to src/third_party/devtools/node_modules/chokidar/node_modules/glob-parent/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/chokidar/node_modules/glob-parent/package.json b/src/third_party/devtools/node_modules/chokidar/node_modules/glob-parent/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/chokidar/node_modules/glob-parent/package.json
rename to src/third_party/devtools/node_modules/chokidar/node_modules/glob-parent/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/chokidar/package.json b/src/third_party/devtools/node_modules/chokidar/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/chokidar/package.json
rename to src/third_party/devtools/node_modules/chokidar/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/chokidar/types/index.d.ts b/src/third_party/devtools/node_modules/chokidar/types/index.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/chokidar/types/index.d.ts
rename to src/third_party/devtools/node_modules/chokidar/types/index.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/cipher-base/.eslintrc b/src/third_party/devtools/node_modules/cipher-base/.eslintrc
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/cipher-base/.eslintrc
rename to src/third_party/devtools/node_modules/cipher-base/.eslintrc
diff --git a/src/cobalt/debug/remote/devtools/node_modules/cipher-base/.npmignore b/src/third_party/devtools/node_modules/cipher-base/.npmignore
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/cipher-base/.npmignore
rename to src/third_party/devtools/node_modules/cipher-base/.npmignore
diff --git a/src/cobalt/debug/remote/devtools/node_modules/cipher-base/.travis.yml b/src/third_party/devtools/node_modules/cipher-base/.travis.yml
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/cipher-base/.travis.yml
rename to src/third_party/devtools/node_modules/cipher-base/.travis.yml
diff --git a/src/cobalt/debug/remote/devtools/node_modules/cipher-base/LICENSE b/src/third_party/devtools/node_modules/cipher-base/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/cipher-base/LICENSE
rename to src/third_party/devtools/node_modules/cipher-base/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/cipher-base/README.md b/src/third_party/devtools/node_modules/cipher-base/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/cipher-base/README.md
rename to src/third_party/devtools/node_modules/cipher-base/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/cipher-base/index.js b/src/third_party/devtools/node_modules/cipher-base/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/cipher-base/index.js
rename to src/third_party/devtools/node_modules/cipher-base/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/cipher-base/package.json b/src/third_party/devtools/node_modules/cipher-base/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/cipher-base/package.json
rename to src/third_party/devtools/node_modules/cipher-base/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/cipher-base/test.js b/src/third_party/devtools/node_modules/cipher-base/test.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/cipher-base/test.js
rename to src/third_party/devtools/node_modules/cipher-base/test.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/cli-cursor/LICENSE b/src/third_party/devtools/node_modules/cli-cursor/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/cli-cursor/LICENSE
rename to src/third_party/devtools/node_modules/cli-cursor/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/cli-cursor/index.js b/src/third_party/devtools/node_modules/cli-cursor/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/cli-cursor/index.js
rename to src/third_party/devtools/node_modules/cli-cursor/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/cli-cursor/package.json b/src/third_party/devtools/node_modules/cli-cursor/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/cli-cursor/package.json
rename to src/third_party/devtools/node_modules/cli-cursor/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/cli-cursor/readme.md b/src/third_party/devtools/node_modules/cli-cursor/readme.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/cli-cursor/readme.md
rename to src/third_party/devtools/node_modules/cli-cursor/readme.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/cli-width/.npmignore b/src/third_party/devtools/node_modules/cli-width/.npmignore
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/cli-width/.npmignore
rename to src/third_party/devtools/node_modules/cli-width/.npmignore
diff --git a/src/cobalt/debug/remote/devtools/node_modules/cli-width/.travis.yml b/src/third_party/devtools/node_modules/cli-width/.travis.yml
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/cli-width/.travis.yml
rename to src/third_party/devtools/node_modules/cli-width/.travis.yml
diff --git a/src/cobalt/debug/remote/devtools/node_modules/cli-width/CHANGELOG.md b/src/third_party/devtools/node_modules/cli-width/CHANGELOG.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/cli-width/CHANGELOG.md
rename to src/third_party/devtools/node_modules/cli-width/CHANGELOG.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/cli-width/LICENSE b/src/third_party/devtools/node_modules/cli-width/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/cli-width/LICENSE
rename to src/third_party/devtools/node_modules/cli-width/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/cli-width/README.md b/src/third_party/devtools/node_modules/cli-width/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/cli-width/README.md
rename to src/third_party/devtools/node_modules/cli-width/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/cli-width/index.js b/src/third_party/devtools/node_modules/cli-width/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/cli-width/index.js
rename to src/third_party/devtools/node_modules/cli-width/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/cli-width/package.json b/src/third_party/devtools/node_modules/cli-width/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/cli-width/package.json
rename to src/third_party/devtools/node_modules/cli-width/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/cliui/CHANGELOG.md b/src/third_party/devtools/node_modules/cliui/CHANGELOG.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/cliui/CHANGELOG.md
rename to src/third_party/devtools/node_modules/cliui/CHANGELOG.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/cliui/LICENSE.txt b/src/third_party/devtools/node_modules/cliui/LICENSE.txt
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/cliui/LICENSE.txt
rename to src/third_party/devtools/node_modules/cliui/LICENSE.txt
diff --git a/src/cobalt/debug/remote/devtools/node_modules/cliui/README.md b/src/third_party/devtools/node_modules/cliui/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/cliui/README.md
rename to src/third_party/devtools/node_modules/cliui/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/cliui/index.js b/src/third_party/devtools/node_modules/cliui/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/cliui/index.js
rename to src/third_party/devtools/node_modules/cliui/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/cliui/package.json b/src/third_party/devtools/node_modules/cliui/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/cliui/package.json
rename to src/third_party/devtools/node_modules/cliui/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/clone/.npmignore b/src/third_party/devtools/node_modules/clone/.npmignore
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/clone/.npmignore
rename to src/third_party/devtools/node_modules/clone/.npmignore
diff --git a/src/cobalt/debug/remote/devtools/node_modules/clone/LICENSE b/src/third_party/devtools/node_modules/clone/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/clone/LICENSE
rename to src/third_party/devtools/node_modules/clone/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/clone/README.md b/src/third_party/devtools/node_modules/clone/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/clone/README.md
rename to src/third_party/devtools/node_modules/clone/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/clone/clone.iml b/src/third_party/devtools/node_modules/clone/clone.iml
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/clone/clone.iml
rename to src/third_party/devtools/node_modules/clone/clone.iml
diff --git a/src/cobalt/debug/remote/devtools/node_modules/clone/clone.js b/src/third_party/devtools/node_modules/clone/clone.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/clone/clone.js
rename to src/third_party/devtools/node_modules/clone/clone.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/clone/package.json b/src/third_party/devtools/node_modules/clone/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/clone/package.json
rename to src/third_party/devtools/node_modules/clone/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/code-point-at/index.js b/src/third_party/devtools/node_modules/code-point-at/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/code-point-at/index.js
rename to src/third_party/devtools/node_modules/code-point-at/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/code-point-at/license b/src/third_party/devtools/node_modules/code-point-at/license
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/code-point-at/license
rename to src/third_party/devtools/node_modules/code-point-at/license
diff --git a/src/cobalt/debug/remote/devtools/node_modules/code-point-at/package.json b/src/third_party/devtools/node_modules/code-point-at/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/code-point-at/package.json
rename to src/third_party/devtools/node_modules/code-point-at/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/code-point-at/readme.md b/src/third_party/devtools/node_modules/code-point-at/readme.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/code-point-at/readme.md
rename to src/third_party/devtools/node_modules/code-point-at/readme.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/color-convert/CHANGELOG.md b/src/third_party/devtools/node_modules/color-convert/CHANGELOG.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/color-convert/CHANGELOG.md
rename to src/third_party/devtools/node_modules/color-convert/CHANGELOG.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/color-convert/LICENSE b/src/third_party/devtools/node_modules/color-convert/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/color-convert/LICENSE
rename to src/third_party/devtools/node_modules/color-convert/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/color-convert/README.md b/src/third_party/devtools/node_modules/color-convert/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/color-convert/README.md
rename to src/third_party/devtools/node_modules/color-convert/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/color-convert/conversions.js b/src/third_party/devtools/node_modules/color-convert/conversions.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/color-convert/conversions.js
rename to src/third_party/devtools/node_modules/color-convert/conversions.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/color-convert/index.js b/src/third_party/devtools/node_modules/color-convert/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/color-convert/index.js
rename to src/third_party/devtools/node_modules/color-convert/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/color-convert/package.json b/src/third_party/devtools/node_modules/color-convert/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/color-convert/package.json
rename to src/third_party/devtools/node_modules/color-convert/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/color-convert/route.js b/src/third_party/devtools/node_modules/color-convert/route.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/color-convert/route.js
rename to src/third_party/devtools/node_modules/color-convert/route.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/color-name/.eslintrc.json b/src/third_party/devtools/node_modules/color-name/.eslintrc.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/color-name/.eslintrc.json
rename to src/third_party/devtools/node_modules/color-name/.eslintrc.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/color-name/.npmignore b/src/third_party/devtools/node_modules/color-name/.npmignore
similarity index 99%
rename from src/cobalt/debug/remote/devtools/node_modules/color-name/.npmignore
rename to src/third_party/devtools/node_modules/color-name/.npmignore
index f9f2816..3854c07 100644
--- a/src/cobalt/debug/remote/devtools/node_modules/color-name/.npmignore
+++ b/src/third_party/devtools/node_modules/color-name/.npmignore
@@ -1,107 +1,107 @@
-//this will affect all the git repos

-git config --global core.excludesfile ~/.gitignore

-

-

-//update files since .ignore won't if already tracked

-git rm --cached <file>

-

-# Compiled source #

-###################

-*.com

-*.class

-*.dll

-*.exe

-*.o

-*.so

-

-# Packages #

-############

-# it's better to unpack these files and commit the raw source

-# git has its own built in compression methods

-*.7z

-*.dmg

-*.gz

-*.iso

-*.jar

-*.rar

-*.tar

-*.zip

-

-# Logs and databases #

-######################

-*.log

-*.sql

-*.sqlite

-

-# OS generated files #

-######################

-.DS_Store

-.DS_Store?

-._*

-.Spotlight-V100

-.Trashes

-# Icon?

-ehthumbs.db

-Thumbs.db

-.cache

-.project

-.settings

-.tmproj

-*.esproj

-nbproject

-

-# Numerous always-ignore extensions #

-#####################################

-*.diff

-*.err

-*.orig

-*.rej

-*.swn

-*.swo

-*.swp

-*.vi

-*~

-*.sass-cache

-*.grunt

-*.tmp

-

-# Dreamweaver added files #

-###########################

-_notes

-dwsync.xml

-

-# Komodo #

-###########################

-*.komodoproject

-.komodotools

-

-# Node #

-#####################

-node_modules

-

-# Bower #

-#####################

-bower_components

-

-# Folders to ignore #

-#####################

-.hg

-.svn

-.CVS

-intermediate

-publish

-.idea

-.graphics

-_test

-_archive

-uploads

-tmp

-

-# Vim files to ignore #

-#######################

-.VimballRecord

-.netrwhist

-

-bundle.*

-

+//this will affect all the git repos
+git config --global core.excludesfile ~/.gitignore
+
+
+//update files since .ignore won't if already tracked
+git rm --cached <file>
+
+# Compiled source #
+###################
+*.com
+*.class
+*.dll
+*.exe
+*.o
+*.so
+
+# Packages #
+############
+# it's better to unpack these files and commit the raw source
+# git has its own built in compression methods
+*.7z
+*.dmg
+*.gz
+*.iso
+*.jar
+*.rar
+*.tar
+*.zip
+
+# Logs and databases #
+######################
+*.log
+*.sql
+*.sqlite
+
+# OS generated files #
+######################
+.DS_Store
+.DS_Store?
+._*
+.Spotlight-V100
+.Trashes
+# Icon?
+ehthumbs.db
+Thumbs.db
+.cache
+.project
+.settings
+.tmproj
+*.esproj
+nbproject
+
+# Numerous always-ignore extensions #
+#####################################
+*.diff
+*.err
+*.orig
+*.rej
+*.swn
+*.swo
+*.swp
+*.vi
+*~
+*.sass-cache
+*.grunt
+*.tmp
+
+# Dreamweaver added files #
+###########################
+_notes
+dwsync.xml
+
+# Komodo #
+###########################
+*.komodoproject
+.komodotools
+
+# Node #
+#####################
+node_modules
+
+# Bower #
+#####################
+bower_components
+
+# Folders to ignore #
+#####################
+.hg
+.svn
+.CVS
+intermediate
+publish
+.idea
+.graphics
+_test
+_archive
+uploads
+tmp
+
+# Vim files to ignore #
+#######################
+.VimballRecord
+.netrwhist
+
+bundle.*
+
 _demo
\ No newline at end of file
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs/node_modules/color-name/LICENSE b/src/third_party/devtools/node_modules/color-name/LICENSE
similarity index 100%
copy from src/cobalt/debug/remote/devtools/node_modules/yargs/node_modules/color-name/LICENSE
copy to src/third_party/devtools/node_modules/color-name/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs/node_modules/color-name/README.md b/src/third_party/devtools/node_modules/color-name/README.md
similarity index 100%
copy from src/cobalt/debug/remote/devtools/node_modules/yargs/node_modules/color-name/README.md
copy to src/third_party/devtools/node_modules/color-name/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs/node_modules/color-name/index.js b/src/third_party/devtools/node_modules/color-name/index.js
similarity index 100%
copy from src/cobalt/debug/remote/devtools/node_modules/yargs/node_modules/color-name/index.js
copy to src/third_party/devtools/node_modules/color-name/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/color-name/package.json b/src/third_party/devtools/node_modules/color-name/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/color-name/package.json
rename to src/third_party/devtools/node_modules/color-name/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/color-name/test.js b/src/third_party/devtools/node_modules/color-name/test.js
similarity index 99%
rename from src/cobalt/debug/remote/devtools/node_modules/color-name/test.js
rename to src/third_party/devtools/node_modules/color-name/test.js
index 6e6bf30..7a08746 100644
--- a/src/cobalt/debug/remote/devtools/node_modules/color-name/test.js
+++ b/src/third_party/devtools/node_modules/color-name/test.js
@@ -1,7 +1,7 @@
-'use strict'

-

-var names = require('./');

-var assert = require('assert');

-

-assert.deepEqual(names.red, [255,0,0]);

-assert.deepEqual(names.aliceblue, [240,248,255]);

+'use strict'
+
+var names = require('./');
+var assert = require('assert');
+
+assert.deepEqual(names.red, [255,0,0]);
+assert.deepEqual(names.aliceblue, [240,248,255]);
diff --git a/src/cobalt/debug/remote/devtools/node_modules/colors/LICENSE b/src/third_party/devtools/node_modules/colors/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/colors/LICENSE
rename to src/third_party/devtools/node_modules/colors/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/colors/README.md b/src/third_party/devtools/node_modules/colors/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/colors/README.md
rename to src/third_party/devtools/node_modules/colors/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/colors/examples/normal-usage.js b/src/third_party/devtools/node_modules/colors/examples/normal-usage.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/colors/examples/normal-usage.js
rename to src/third_party/devtools/node_modules/colors/examples/normal-usage.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/colors/examples/safe-string.js b/src/third_party/devtools/node_modules/colors/examples/safe-string.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/colors/examples/safe-string.js
rename to src/third_party/devtools/node_modules/colors/examples/safe-string.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/colors/index.d.ts b/src/third_party/devtools/node_modules/colors/index.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/colors/index.d.ts
rename to src/third_party/devtools/node_modules/colors/index.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/colors/lib/colors.js b/src/third_party/devtools/node_modules/colors/lib/colors.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/colors/lib/colors.js
rename to src/third_party/devtools/node_modules/colors/lib/colors.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/colors/lib/custom/trap.js b/src/third_party/devtools/node_modules/colors/lib/custom/trap.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/colors/lib/custom/trap.js
rename to src/third_party/devtools/node_modules/colors/lib/custom/trap.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/colors/lib/custom/zalgo.js b/src/third_party/devtools/node_modules/colors/lib/custom/zalgo.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/colors/lib/custom/zalgo.js
rename to src/third_party/devtools/node_modules/colors/lib/custom/zalgo.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/colors/lib/extendStringPrototype.js b/src/third_party/devtools/node_modules/colors/lib/extendStringPrototype.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/colors/lib/extendStringPrototype.js
rename to src/third_party/devtools/node_modules/colors/lib/extendStringPrototype.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/colors/lib/index.js b/src/third_party/devtools/node_modules/colors/lib/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/colors/lib/index.js
rename to src/third_party/devtools/node_modules/colors/lib/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/colors/lib/maps/america.js b/src/third_party/devtools/node_modules/colors/lib/maps/america.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/colors/lib/maps/america.js
rename to src/third_party/devtools/node_modules/colors/lib/maps/america.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/colors/lib/maps/rainbow.js b/src/third_party/devtools/node_modules/colors/lib/maps/rainbow.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/colors/lib/maps/rainbow.js
rename to src/third_party/devtools/node_modules/colors/lib/maps/rainbow.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/colors/lib/maps/random.js b/src/third_party/devtools/node_modules/colors/lib/maps/random.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/colors/lib/maps/random.js
rename to src/third_party/devtools/node_modules/colors/lib/maps/random.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/colors/lib/maps/zebra.js b/src/third_party/devtools/node_modules/colors/lib/maps/zebra.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/colors/lib/maps/zebra.js
rename to src/third_party/devtools/node_modules/colors/lib/maps/zebra.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/colors/lib/styles.js b/src/third_party/devtools/node_modules/colors/lib/styles.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/colors/lib/styles.js
rename to src/third_party/devtools/node_modules/colors/lib/styles.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/colors/lib/system/has-flag.js b/src/third_party/devtools/node_modules/colors/lib/system/has-flag.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/colors/lib/system/has-flag.js
rename to src/third_party/devtools/node_modules/colors/lib/system/has-flag.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/colors/lib/system/supports-colors.js b/src/third_party/devtools/node_modules/colors/lib/system/supports-colors.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/colors/lib/system/supports-colors.js
rename to src/third_party/devtools/node_modules/colors/lib/system/supports-colors.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/colors/package.json b/src/third_party/devtools/node_modules/colors/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/colors/package.json
rename to src/third_party/devtools/node_modules/colors/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/colors/safe.d.ts b/src/third_party/devtools/node_modules/colors/safe.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/colors/safe.d.ts
rename to src/third_party/devtools/node_modules/colors/safe.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/colors/safe.js b/src/third_party/devtools/node_modules/colors/safe.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/colors/safe.js
rename to src/third_party/devtools/node_modules/colors/safe.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/colors/themes/generic-logging.js b/src/third_party/devtools/node_modules/colors/themes/generic-logging.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/colors/themes/generic-logging.js
rename to src/third_party/devtools/node_modules/colors/themes/generic-logging.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/combine-source-map/.npmignore b/src/third_party/devtools/node_modules/combine-source-map/.npmignore
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/combine-source-map/.npmignore
rename to src/third_party/devtools/node_modules/combine-source-map/.npmignore
diff --git a/src/cobalt/debug/remote/devtools/node_modules/combine-source-map/.travis.yml b/src/third_party/devtools/node_modules/combine-source-map/.travis.yml
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/combine-source-map/.travis.yml
rename to src/third_party/devtools/node_modules/combine-source-map/.travis.yml
diff --git a/src/cobalt/debug/remote/devtools/node_modules/combine-source-map/LICENSE b/src/third_party/devtools/node_modules/combine-source-map/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/combine-source-map/LICENSE
rename to src/third_party/devtools/node_modules/combine-source-map/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/combine-source-map/README.md b/src/third_party/devtools/node_modules/combine-source-map/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/combine-source-map/README.md
rename to src/third_party/devtools/node_modules/combine-source-map/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/combine-source-map/example/two-files-short.js b/src/third_party/devtools/node_modules/combine-source-map/example/two-files-short.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/combine-source-map/example/two-files-short.js
rename to src/third_party/devtools/node_modules/combine-source-map/example/two-files-short.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/combine-source-map/example/two-files.js b/src/third_party/devtools/node_modules/combine-source-map/example/two-files.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/combine-source-map/example/two-files.js
rename to src/third_party/devtools/node_modules/combine-source-map/example/two-files.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/combine-source-map/index.js b/src/third_party/devtools/node_modules/combine-source-map/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/combine-source-map/index.js
rename to src/third_party/devtools/node_modules/combine-source-map/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/combine-source-map/lib/mappings-from-map.js b/src/third_party/devtools/node_modules/combine-source-map/lib/mappings-from-map.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/combine-source-map/lib/mappings-from-map.js
rename to src/third_party/devtools/node_modules/combine-source-map/lib/mappings-from-map.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/combine-source-map/lib/path-is-absolute.js b/src/third_party/devtools/node_modules/combine-source-map/lib/path-is-absolute.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/combine-source-map/lib/path-is-absolute.js
rename to src/third_party/devtools/node_modules/combine-source-map/lib/path-is-absolute.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/combine-source-map/lib/path-is-absolute.license b/src/third_party/devtools/node_modules/combine-source-map/lib/path-is-absolute.license
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/combine-source-map/lib/path-is-absolute.license
rename to src/third_party/devtools/node_modules/combine-source-map/lib/path-is-absolute.license
diff --git a/src/cobalt/debug/remote/devtools/node_modules/combine-source-map/node_modules/convert-source-map/.npmignore b/src/third_party/devtools/node_modules/combine-source-map/node_modules/convert-source-map/.npmignore
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/combine-source-map/node_modules/convert-source-map/.npmignore
rename to src/third_party/devtools/node_modules/combine-source-map/node_modules/convert-source-map/.npmignore
diff --git a/src/cobalt/debug/remote/devtools/node_modules/combine-source-map/node_modules/convert-source-map/.travis.yml b/src/third_party/devtools/node_modules/combine-source-map/node_modules/convert-source-map/.travis.yml
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/combine-source-map/node_modules/convert-source-map/.travis.yml
rename to src/third_party/devtools/node_modules/combine-source-map/node_modules/convert-source-map/.travis.yml
diff --git a/src/cobalt/debug/remote/devtools/node_modules/combine-source-map/node_modules/convert-source-map/LICENSE b/src/third_party/devtools/node_modules/combine-source-map/node_modules/convert-source-map/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/combine-source-map/node_modules/convert-source-map/LICENSE
rename to src/third_party/devtools/node_modules/combine-source-map/node_modules/convert-source-map/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/combine-source-map/node_modules/convert-source-map/README.md b/src/third_party/devtools/node_modules/combine-source-map/node_modules/convert-source-map/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/combine-source-map/node_modules/convert-source-map/README.md
rename to src/third_party/devtools/node_modules/combine-source-map/node_modules/convert-source-map/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/combine-source-map/node_modules/convert-source-map/example/comment-to-json.js b/src/third_party/devtools/node_modules/combine-source-map/node_modules/convert-source-map/example/comment-to-json.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/combine-source-map/node_modules/convert-source-map/example/comment-to-json.js
rename to src/third_party/devtools/node_modules/combine-source-map/node_modules/convert-source-map/example/comment-to-json.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/combine-source-map/node_modules/convert-source-map/index.js b/src/third_party/devtools/node_modules/combine-source-map/node_modules/convert-source-map/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/combine-source-map/node_modules/convert-source-map/index.js
rename to src/third_party/devtools/node_modules/combine-source-map/node_modules/convert-source-map/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/combine-source-map/node_modules/convert-source-map/package.json b/src/third_party/devtools/node_modules/combine-source-map/node_modules/convert-source-map/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/combine-source-map/node_modules/convert-source-map/package.json
rename to src/third_party/devtools/node_modules/combine-source-map/node_modules/convert-source-map/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/combine-source-map/node_modules/convert-source-map/test/comment-regex.js b/src/third_party/devtools/node_modules/combine-source-map/node_modules/convert-source-map/test/comment-regex.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/combine-source-map/node_modules/convert-source-map/test/comment-regex.js
rename to src/third_party/devtools/node_modules/combine-source-map/node_modules/convert-source-map/test/comment-regex.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/combine-source-map/node_modules/convert-source-map/test/convert-source-map.js b/src/third_party/devtools/node_modules/combine-source-map/node_modules/convert-source-map/test/convert-source-map.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/combine-source-map/node_modules/convert-source-map/test/convert-source-map.js
rename to src/third_party/devtools/node_modules/combine-source-map/node_modules/convert-source-map/test/convert-source-map.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/combine-source-map/node_modules/convert-source-map/test/fixtures/map-file-comment-double-slash.css b/src/third_party/devtools/node_modules/combine-source-map/node_modules/convert-source-map/test/fixtures/map-file-comment-double-slash.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/combine-source-map/node_modules/convert-source-map/test/fixtures/map-file-comment-double-slash.css
rename to src/third_party/devtools/node_modules/combine-source-map/node_modules/convert-source-map/test/fixtures/map-file-comment-double-slash.css
diff --git a/src/cobalt/debug/remote/devtools/node_modules/combine-source-map/node_modules/convert-source-map/test/fixtures/map-file-comment-inline.css b/src/third_party/devtools/node_modules/combine-source-map/node_modules/convert-source-map/test/fixtures/map-file-comment-inline.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/combine-source-map/node_modules/convert-source-map/test/fixtures/map-file-comment-inline.css
rename to src/third_party/devtools/node_modules/combine-source-map/node_modules/convert-source-map/test/fixtures/map-file-comment-inline.css
diff --git a/src/cobalt/debug/remote/devtools/node_modules/combine-source-map/node_modules/convert-source-map/test/fixtures/map-file-comment.css b/src/third_party/devtools/node_modules/combine-source-map/node_modules/convert-source-map/test/fixtures/map-file-comment.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/combine-source-map/node_modules/convert-source-map/test/fixtures/map-file-comment.css
rename to src/third_party/devtools/node_modules/combine-source-map/node_modules/convert-source-map/test/fixtures/map-file-comment.css
diff --git a/src/cobalt/debug/remote/devtools/node_modules/combine-source-map/node_modules/convert-source-map/test/fixtures/map-file-comment.css.map b/src/third_party/devtools/node_modules/combine-source-map/node_modules/convert-source-map/test/fixtures/map-file-comment.css.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/combine-source-map/node_modules/convert-source-map/test/fixtures/map-file-comment.css.map
rename to src/third_party/devtools/node_modules/combine-source-map/node_modules/convert-source-map/test/fixtures/map-file-comment.css.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/combine-source-map/node_modules/convert-source-map/test/map-file-comment.js b/src/third_party/devtools/node_modules/combine-source-map/node_modules/convert-source-map/test/map-file-comment.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/combine-source-map/node_modules/convert-source-map/test/map-file-comment.js
rename to src/third_party/devtools/node_modules/combine-source-map/node_modules/convert-source-map/test/map-file-comment.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/combine-source-map/node_modules/source-map/CHANGELOG.md b/src/third_party/devtools/node_modules/combine-source-map/node_modules/source-map/CHANGELOG.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/combine-source-map/node_modules/source-map/CHANGELOG.md
rename to src/third_party/devtools/node_modules/combine-source-map/node_modules/source-map/CHANGELOG.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/combine-source-map/node_modules/source-map/LICENSE b/src/third_party/devtools/node_modules/combine-source-map/node_modules/source-map/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/combine-source-map/node_modules/source-map/LICENSE
rename to src/third_party/devtools/node_modules/combine-source-map/node_modules/source-map/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/combine-source-map/node_modules/source-map/README.md b/src/third_party/devtools/node_modules/combine-source-map/node_modules/source-map/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/combine-source-map/node_modules/source-map/README.md
rename to src/third_party/devtools/node_modules/combine-source-map/node_modules/source-map/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/combine-source-map/node_modules/source-map/dist/source-map.debug.js b/src/third_party/devtools/node_modules/combine-source-map/node_modules/source-map/dist/source-map.debug.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/combine-source-map/node_modules/source-map/dist/source-map.debug.js
rename to src/third_party/devtools/node_modules/combine-source-map/node_modules/source-map/dist/source-map.debug.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/combine-source-map/node_modules/source-map/dist/source-map.js b/src/third_party/devtools/node_modules/combine-source-map/node_modules/source-map/dist/source-map.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/combine-source-map/node_modules/source-map/dist/source-map.js
rename to src/third_party/devtools/node_modules/combine-source-map/node_modules/source-map/dist/source-map.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/combine-source-map/node_modules/source-map/dist/source-map.min.js b/src/third_party/devtools/node_modules/combine-source-map/node_modules/source-map/dist/source-map.min.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/combine-source-map/node_modules/source-map/dist/source-map.min.js
rename to src/third_party/devtools/node_modules/combine-source-map/node_modules/source-map/dist/source-map.min.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/combine-source-map/node_modules/source-map/dist/source-map.min.js.map b/src/third_party/devtools/node_modules/combine-source-map/node_modules/source-map/dist/source-map.min.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/combine-source-map/node_modules/source-map/dist/source-map.min.js.map
rename to src/third_party/devtools/node_modules/combine-source-map/node_modules/source-map/dist/source-map.min.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/combine-source-map/node_modules/source-map/lib/array-set.js b/src/third_party/devtools/node_modules/combine-source-map/node_modules/source-map/lib/array-set.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/combine-source-map/node_modules/source-map/lib/array-set.js
rename to src/third_party/devtools/node_modules/combine-source-map/node_modules/source-map/lib/array-set.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/combine-source-map/node_modules/source-map/lib/base64-vlq.js b/src/third_party/devtools/node_modules/combine-source-map/node_modules/source-map/lib/base64-vlq.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/combine-source-map/node_modules/source-map/lib/base64-vlq.js
rename to src/third_party/devtools/node_modules/combine-source-map/node_modules/source-map/lib/base64-vlq.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/combine-source-map/node_modules/source-map/lib/base64.js b/src/third_party/devtools/node_modules/combine-source-map/node_modules/source-map/lib/base64.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/combine-source-map/node_modules/source-map/lib/base64.js
rename to src/third_party/devtools/node_modules/combine-source-map/node_modules/source-map/lib/base64.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/combine-source-map/node_modules/source-map/lib/binary-search.js b/src/third_party/devtools/node_modules/combine-source-map/node_modules/source-map/lib/binary-search.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/combine-source-map/node_modules/source-map/lib/binary-search.js
rename to src/third_party/devtools/node_modules/combine-source-map/node_modules/source-map/lib/binary-search.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/combine-source-map/node_modules/source-map/lib/mapping-list.js b/src/third_party/devtools/node_modules/combine-source-map/node_modules/source-map/lib/mapping-list.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/combine-source-map/node_modules/source-map/lib/mapping-list.js
rename to src/third_party/devtools/node_modules/combine-source-map/node_modules/source-map/lib/mapping-list.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/combine-source-map/node_modules/source-map/lib/quick-sort.js b/src/third_party/devtools/node_modules/combine-source-map/node_modules/source-map/lib/quick-sort.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/combine-source-map/node_modules/source-map/lib/quick-sort.js
rename to src/third_party/devtools/node_modules/combine-source-map/node_modules/source-map/lib/quick-sort.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/combine-source-map/node_modules/source-map/lib/source-map-consumer.js b/src/third_party/devtools/node_modules/combine-source-map/node_modules/source-map/lib/source-map-consumer.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/combine-source-map/node_modules/source-map/lib/source-map-consumer.js
rename to src/third_party/devtools/node_modules/combine-source-map/node_modules/source-map/lib/source-map-consumer.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/combine-source-map/node_modules/source-map/lib/source-map-generator.js b/src/third_party/devtools/node_modules/combine-source-map/node_modules/source-map/lib/source-map-generator.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/combine-source-map/node_modules/source-map/lib/source-map-generator.js
rename to src/third_party/devtools/node_modules/combine-source-map/node_modules/source-map/lib/source-map-generator.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/combine-source-map/node_modules/source-map/lib/source-node.js b/src/third_party/devtools/node_modules/combine-source-map/node_modules/source-map/lib/source-node.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/combine-source-map/node_modules/source-map/lib/source-node.js
rename to src/third_party/devtools/node_modules/combine-source-map/node_modules/source-map/lib/source-node.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/combine-source-map/node_modules/source-map/lib/util.js b/src/third_party/devtools/node_modules/combine-source-map/node_modules/source-map/lib/util.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/combine-source-map/node_modules/source-map/lib/util.js
rename to src/third_party/devtools/node_modules/combine-source-map/node_modules/source-map/lib/util.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/combine-source-map/node_modules/source-map/package.json b/src/third_party/devtools/node_modules/combine-source-map/node_modules/source-map/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/combine-source-map/node_modules/source-map/package.json
rename to src/third_party/devtools/node_modules/combine-source-map/node_modules/source-map/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/combine-source-map/node_modules/source-map/source-map.js b/src/third_party/devtools/node_modules/combine-source-map/node_modules/source-map/source-map.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/combine-source-map/node_modules/source-map/source-map.js
rename to src/third_party/devtools/node_modules/combine-source-map/node_modules/source-map/source-map.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/combine-source-map/package.json b/src/third_party/devtools/node_modules/combine-source-map/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/combine-source-map/package.json
rename to src/third_party/devtools/node_modules/combine-source-map/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/combine-source-map/test/combine-source-map.js b/src/third_party/devtools/node_modules/combine-source-map/test/combine-source-map.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/combine-source-map/test/combine-source-map.js
rename to src/third_party/devtools/node_modules/combine-source-map/test/combine-source-map.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/commander/CHANGELOG.md b/src/third_party/devtools/node_modules/commander/CHANGELOG.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/commander/CHANGELOG.md
rename to src/third_party/devtools/node_modules/commander/CHANGELOG.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/commander/LICENSE b/src/third_party/devtools/node_modules/commander/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/commander/LICENSE
rename to src/third_party/devtools/node_modules/commander/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/commander/Readme.md b/src/third_party/devtools/node_modules/commander/Readme.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/commander/Readme.md
rename to src/third_party/devtools/node_modules/commander/Readme.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/commander/index.js b/src/third_party/devtools/node_modules/commander/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/commander/index.js
rename to src/third_party/devtools/node_modules/commander/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/commander/package.json b/src/third_party/devtools/node_modules/commander/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/commander/package.json
rename to src/third_party/devtools/node_modules/commander/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/commander/typings/index.d.ts b/src/third_party/devtools/node_modules/commander/typings/index.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/commander/typings/index.d.ts
rename to src/third_party/devtools/node_modules/commander/typings/index.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/compare-versions/.editorconfig b/src/third_party/devtools/node_modules/compare-versions/.editorconfig
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/compare-versions/.editorconfig
rename to src/third_party/devtools/node_modules/compare-versions/.editorconfig
diff --git a/src/cobalt/debug/remote/devtools/node_modules/compare-versions/.travis.yml b/src/third_party/devtools/node_modules/compare-versions/.travis.yml
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/compare-versions/.travis.yml
rename to src/third_party/devtools/node_modules/compare-versions/.travis.yml
diff --git a/src/cobalt/debug/remote/devtools/node_modules/compare-versions/CHANGELOG.md b/src/third_party/devtools/node_modules/compare-versions/CHANGELOG.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/compare-versions/CHANGELOG.md
rename to src/third_party/devtools/node_modules/compare-versions/CHANGELOG.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/compare-versions/LICENSE b/src/third_party/devtools/node_modules/compare-versions/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/compare-versions/LICENSE
rename to src/third_party/devtools/node_modules/compare-versions/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/compare-versions/README.md b/src/third_party/devtools/node_modules/compare-versions/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/compare-versions/README.md
rename to src/third_party/devtools/node_modules/compare-versions/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/compare-versions/bower.json b/src/third_party/devtools/node_modules/compare-versions/bower.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/compare-versions/bower.json
rename to src/third_party/devtools/node_modules/compare-versions/bower.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/compare-versions/index.d.ts b/src/third_party/devtools/node_modules/compare-versions/index.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/compare-versions/index.d.ts
rename to src/third_party/devtools/node_modules/compare-versions/index.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/compare-versions/index.js b/src/third_party/devtools/node_modules/compare-versions/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/compare-versions/index.js
rename to src/third_party/devtools/node_modules/compare-versions/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/compare-versions/package.json b/src/third_party/devtools/node_modules/compare-versions/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/compare-versions/package.json
rename to src/third_party/devtools/node_modules/compare-versions/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/compare-versions/test/compare.js b/src/third_party/devtools/node_modules/compare-versions/test/compare.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/compare-versions/test/compare.js
rename to src/third_party/devtools/node_modules/compare-versions/test/compare.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/compare-versions/test/sort.js b/src/third_party/devtools/node_modules/compare-versions/test/sort.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/compare-versions/test/sort.js
rename to src/third_party/devtools/node_modules/compare-versions/test/sort.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/component-bind/.npmignore b/src/third_party/devtools/node_modules/component-bind/.npmignore
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/component-bind/.npmignore
rename to src/third_party/devtools/node_modules/component-bind/.npmignore
diff --git a/src/cobalt/debug/remote/devtools/node_modules/component-bind/History.md b/src/third_party/devtools/node_modules/component-bind/History.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/component-bind/History.md
rename to src/third_party/devtools/node_modules/component-bind/History.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/component-bind/Makefile b/src/third_party/devtools/node_modules/component-bind/Makefile
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/component-bind/Makefile
rename to src/third_party/devtools/node_modules/component-bind/Makefile
diff --git a/src/cobalt/debug/remote/devtools/node_modules/component-bind/Readme.md b/src/third_party/devtools/node_modules/component-bind/Readme.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/component-bind/Readme.md
rename to src/third_party/devtools/node_modules/component-bind/Readme.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/component-bind/component.json b/src/third_party/devtools/node_modules/component-bind/component.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/component-bind/component.json
rename to src/third_party/devtools/node_modules/component-bind/component.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/component-bind/index.js b/src/third_party/devtools/node_modules/component-bind/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/component-bind/index.js
rename to src/third_party/devtools/node_modules/component-bind/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/component-bind/package.json b/src/third_party/devtools/node_modules/component-bind/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/component-bind/package.json
rename to src/third_party/devtools/node_modules/component-bind/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/component-emitter/History.md b/src/third_party/devtools/node_modules/component-emitter/History.md
similarity index 99%
rename from src/cobalt/debug/remote/devtools/node_modules/component-emitter/History.md
rename to src/third_party/devtools/node_modules/component-emitter/History.md
index 9189c60..2a49b63 100644
--- a/src/cobalt/debug/remote/devtools/node_modules/component-emitter/History.md
+++ b/src/third_party/devtools/node_modules/component-emitter/History.md
@@ -1,68 +1,68 @@
-

-1.2.1 / 2016-04-18

-==================

-

- * enable client side use

-

-1.2.0 / 2014-02-12

-==================

-

- * prefix events with `$` to support object prototype method names

-

-1.1.3 / 2014-06-20

-==================

-

- * republish for npm

- * add LICENSE file

-

-1.1.2 / 2014-02-10

-==================

-

-  * package: rename to "component-emitter"

-  * package: update "main" and "component" fields

-  * Add license to Readme (same format as the other components)

-  * created .npmignore

-  * travis stuff

-

-1.1.1 / 2013-12-01

-==================

-

-  * fix .once adding .on to the listener

-  * docs: Emitter#off()

-  * component: add `.repo` prop

-

-1.1.0 / 2013-10-20

-==================

-

- * add `.addEventListener()` and `.removeEventListener()` aliases

-

-1.0.1 / 2013-06-27

-==================

-

- * add support for legacy ie

-

-1.0.0 / 2013-02-26

-==================

-

-  * add `.off()` support for removing all listeners

-

-0.0.6 / 2012-10-08

-==================

-

-  * add `this._callbacks` initialization to prevent funky gotcha

-

-0.0.5 / 2012-09-07

-==================

-

-  * fix `Emitter.call(this)` usage

-

-0.0.3 / 2012-07-11

-==================

-

-  * add `.listeners()`

-  * rename `.has()` to `.hasListeners()`

-

-0.0.2 / 2012-06-28

-==================

-

-  * fix `.off()` with `.once()`-registered callbacks

+
+1.2.1 / 2016-04-18
+==================
+
+ * enable client side use
+
+1.2.0 / 2014-02-12
+==================
+
+ * prefix events with `$` to support object prototype method names
+
+1.1.3 / 2014-06-20
+==================
+
+ * republish for npm
+ * add LICENSE file
+
+1.1.2 / 2014-02-10
+==================
+
+  * package: rename to "component-emitter"
+  * package: update "main" and "component" fields
+  * Add license to Readme (same format as the other components)
+  * created .npmignore
+  * travis stuff
+
+1.1.1 / 2013-12-01
+==================
+
+  * fix .once adding .on to the listener
+  * docs: Emitter#off()
+  * component: add `.repo` prop
+
+1.1.0 / 2013-10-20
+==================
+
+ * add `.addEventListener()` and `.removeEventListener()` aliases
+
+1.0.1 / 2013-06-27
+==================
+
+ * add support for legacy ie
+
+1.0.0 / 2013-02-26
+==================
+
+  * add `.off()` support for removing all listeners
+
+0.0.6 / 2012-10-08
+==================
+
+  * add `this._callbacks` initialization to prevent funky gotcha
+
+0.0.5 / 2012-09-07
+==================
+
+  * fix `Emitter.call(this)` usage
+
+0.0.3 / 2012-07-11
+==================
+
+  * add `.listeners()`
+  * rename `.has()` to `.hasListeners()`
+
+0.0.2 / 2012-06-28
+==================
+
+  * fix `.off()` with `.once()`-registered callbacks
diff --git a/src/cobalt/debug/remote/devtools/node_modules/component-emitter/LICENSE b/src/third_party/devtools/node_modules/component-emitter/LICENSE
similarity index 99%
rename from src/cobalt/debug/remote/devtools/node_modules/component-emitter/LICENSE
rename to src/third_party/devtools/node_modules/component-emitter/LICENSE
index d6e43f2..de51692 100644
--- a/src/cobalt/debug/remote/devtools/node_modules/component-emitter/LICENSE
+++ b/src/third_party/devtools/node_modules/component-emitter/LICENSE
@@ -1,24 +1,24 @@
-(The MIT License)

-

-Copyright (c) 2014 Component contributors <dev@component.io>

-

-Permission is hereby granted, free of charge, to any person

-obtaining a copy of this software and associated documentation

-files (the "Software"), to deal in the Software without

-restriction, including without limitation the rights to use,

-copy, modify, merge, publish, distribute, sublicense, and/or sell

-copies of the Software, and to permit persons to whom the

-Software is furnished to do so, subject to the following

-conditions:

-

-The above copyright notice and this permission notice shall be

-included in all copies or substantial portions of the Software.

-

-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,

-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES

-OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND

-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT

-HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,

-WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING

-FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR

-OTHER DEALINGS IN THE SOFTWARE.

+(The MIT License)
+
+Copyright (c) 2014 Component contributors <dev@component.io>
+
+Permission is hereby granted, free of charge, to any person
+obtaining a copy of this software and associated documentation
+files (the "Software"), to deal in the Software without
+restriction, including without limitation the rights to use,
+copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the
+Software is furnished to do so, subject to the following
+conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+OTHER DEALINGS IN THE SOFTWARE.
diff --git a/src/cobalt/debug/remote/devtools/node_modules/component-emitter/Readme.md b/src/third_party/devtools/node_modules/component-emitter/Readme.md
similarity index 99%
rename from src/cobalt/debug/remote/devtools/node_modules/component-emitter/Readme.md
rename to src/third_party/devtools/node_modules/component-emitter/Readme.md
index 0466411..0f3f9b9 100644
--- a/src/cobalt/debug/remote/devtools/node_modules/component-emitter/Readme.md
+++ b/src/third_party/devtools/node_modules/component-emitter/Readme.md
@@ -1,74 +1,74 @@
-# Emitter [![Build Status](https://travis-ci.org/component/emitter.png)](https://travis-ci.org/component/emitter)

-

-  Event emitter component.

-

-## Installation

-

-```

-$ component install component/emitter

-```

-

-## API

-

-### Emitter(obj)

-

-  The `Emitter` may also be used as a mixin. For example

-  a "plain" object may become an emitter, or you may

-  extend an existing prototype.

-

-  As an `Emitter` instance:

-

-```js

-var Emitter = require('emitter');

-var emitter = new Emitter;

-emitter.emit('something');

-```

-

-  As a mixin:

-

-```js

-var Emitter = require('emitter');

-var user = { name: 'tobi' };

-Emitter(user);

-

-user.emit('im a user');

-```

-

-  As a prototype mixin:

-

-```js

-var Emitter = require('emitter');

-Emitter(User.prototype);

-```

-

-### Emitter#on(event, fn)

-

-  Register an `event` handler `fn`.

-

-### Emitter#once(event, fn)

-

-  Register a single-shot `event` handler `fn`,

-  removed immediately after it is invoked the

-  first time.

-

-### Emitter#off(event, fn)

-

-  * Pass `event` and `fn` to remove a listener.

-  * Pass `event` to remove all listeners on that event.

-  * Pass nothing to remove all listeners on all events.

-

-### Emitter#emit(event, ...)

-

-  Emit an `event` with variable option args.

-

-### Emitter#listeners(event)

-

-  Return an array of callbacks, or an empty array.

-

-### Emitter#hasListeners(event)

-

-  Check if this emitter has `event` handlers.

-

-## License

-

-MIT

+# Emitter [![Build Status](https://travis-ci.org/component/emitter.png)](https://travis-ci.org/component/emitter)
+
+  Event emitter component.
+
+## Installation
+
+```
+$ component install component/emitter
+```
+
+## API
+
+### Emitter(obj)
+
+  The `Emitter` may also be used as a mixin. For example
+  a "plain" object may become an emitter, or you may
+  extend an existing prototype.
+
+  As an `Emitter` instance:
+
+```js
+var Emitter = require('emitter');
+var emitter = new Emitter;
+emitter.emit('something');
+```
+
+  As a mixin:
+
+```js
+var Emitter = require('emitter');
+var user = { name: 'tobi' };
+Emitter(user);
+
+user.emit('im a user');
+```
+
+  As a prototype mixin:
+
+```js
+var Emitter = require('emitter');
+Emitter(User.prototype);
+```
+
+### Emitter#on(event, fn)
+
+  Register an `event` handler `fn`.
+
+### Emitter#once(event, fn)
+
+  Register a single-shot `event` handler `fn`,
+  removed immediately after it is invoked the
+  first time.
+
+### Emitter#off(event, fn)
+
+  * Pass `event` and `fn` to remove a listener.
+  * Pass `event` to remove all listeners on that event.
+  * Pass nothing to remove all listeners on all events.
+
+### Emitter#emit(event, ...)
+
+  Emit an `event` with variable option args.
+
+### Emitter#listeners(event)
+
+  Return an array of callbacks, or an empty array.
+
+### Emitter#hasListeners(event)
+
+  Check if this emitter has `event` handlers.
+
+## License
+
+MIT
diff --git a/src/cobalt/debug/remote/devtools/node_modules/component-emitter/index.js b/src/third_party/devtools/node_modules/component-emitter/index.js
similarity index 99%
rename from src/cobalt/debug/remote/devtools/node_modules/component-emitter/index.js
rename to src/third_party/devtools/node_modules/component-emitter/index.js
index df94c78..fa4faee 100644
--- a/src/cobalt/debug/remote/devtools/node_modules/component-emitter/index.js
+++ b/src/third_party/devtools/node_modules/component-emitter/index.js
@@ -1,163 +1,163 @@
-

-/**

- * Expose `Emitter`.

- */

-

-if (typeof module !== 'undefined') {

-  module.exports = Emitter;

-}

-

-/**

- * Initialize a new `Emitter`.

- *

- * @api public

- */

-

-function Emitter(obj) {

-  if (obj) return mixin(obj);

-};

-

-/**

- * Mixin the emitter properties.

- *

- * @param {Object} obj

- * @return {Object}

- * @api private

- */

-

-function mixin(obj) {

-  for (var key in Emitter.prototype) {

-    obj[key] = Emitter.prototype[key];

-  }

-  return obj;

-}

-

-/**

- * Listen on the given `event` with `fn`.

- *

- * @param {String} event

- * @param {Function} fn

- * @return {Emitter}

- * @api public

- */

-

-Emitter.prototype.on =

-Emitter.prototype.addEventListener = function(event, fn){

-  this._callbacks = this._callbacks || {};

-  (this._callbacks['$' + event] = this._callbacks['$' + event] || [])

-    .push(fn);

-  return this;

-};

-

-/**

- * Adds an `event` listener that will be invoked a single

- * time then automatically removed.

- *

- * @param {String} event

- * @param {Function} fn

- * @return {Emitter}

- * @api public

- */

-

-Emitter.prototype.once = function(event, fn){

-  function on() {

-    this.off(event, on);

-    fn.apply(this, arguments);

-  }

-

-  on.fn = fn;

-  this.on(event, on);

-  return this;

-};

-

-/**

- * Remove the given callback for `event` or all

- * registered callbacks.

- *

- * @param {String} event

- * @param {Function} fn

- * @return {Emitter}

- * @api public

- */

-

-Emitter.prototype.off =

-Emitter.prototype.removeListener =

-Emitter.prototype.removeAllListeners =

-Emitter.prototype.removeEventListener = function(event, fn){

-  this._callbacks = this._callbacks || {};

-

-  // all

-  if (0 == arguments.length) {

-    this._callbacks = {};

-    return this;

-  }

-

-  // specific event

-  var callbacks = this._callbacks['$' + event];

-  if (!callbacks) return this;

-

-  // remove all handlers

-  if (1 == arguments.length) {

-    delete this._callbacks['$' + event];

-    return this;

-  }

-

-  // remove specific handler

-  var cb;

-  for (var i = 0; i < callbacks.length; i++) {

-    cb = callbacks[i];

-    if (cb === fn || cb.fn === fn) {

-      callbacks.splice(i, 1);

-      break;

-    }

-  }

-  return this;

-};

-

-/**

- * Emit `event` with the given args.

- *

- * @param {String} event

- * @param {Mixed} ...

- * @return {Emitter}

- */

-

-Emitter.prototype.emit = function(event){

-  this._callbacks = this._callbacks || {};

-  var args = [].slice.call(arguments, 1)

-    , callbacks = this._callbacks['$' + event];

-

-  if (callbacks) {

-    callbacks = callbacks.slice(0);

-    for (var i = 0, len = callbacks.length; i < len; ++i) {

-      callbacks[i].apply(this, args);

-    }

-  }

-

-  return this;

-};

-

-/**

- * Return array of callbacks for `event`.

- *

- * @param {String} event

- * @return {Array}

- * @api public

- */

-

-Emitter.prototype.listeners = function(event){

-  this._callbacks = this._callbacks || {};

-  return this._callbacks['$' + event] || [];

-};

-

-/**

- * Check if this emitter has `event` handlers.

- *

- * @param {String} event

- * @return {Boolean}

- * @api public

- */

-

-Emitter.prototype.hasListeners = function(event){

-  return !! this.listeners(event).length;

-};

+
+/**
+ * Expose `Emitter`.
+ */
+
+if (typeof module !== 'undefined') {
+  module.exports = Emitter;
+}
+
+/**
+ * Initialize a new `Emitter`.
+ *
+ * @api public
+ */
+
+function Emitter(obj) {
+  if (obj) return mixin(obj);
+};
+
+/**
+ * Mixin the emitter properties.
+ *
+ * @param {Object} obj
+ * @return {Object}
+ * @api private
+ */
+
+function mixin(obj) {
+  for (var key in Emitter.prototype) {
+    obj[key] = Emitter.prototype[key];
+  }
+  return obj;
+}
+
+/**
+ * Listen on the given `event` with `fn`.
+ *
+ * @param {String} event
+ * @param {Function} fn
+ * @return {Emitter}
+ * @api public
+ */
+
+Emitter.prototype.on =
+Emitter.prototype.addEventListener = function(event, fn){
+  this._callbacks = this._callbacks || {};
+  (this._callbacks['$' + event] = this._callbacks['$' + event] || [])
+    .push(fn);
+  return this;
+};
+
+/**
+ * Adds an `event` listener that will be invoked a single
+ * time then automatically removed.
+ *
+ * @param {String} event
+ * @param {Function} fn
+ * @return {Emitter}
+ * @api public
+ */
+
+Emitter.prototype.once = function(event, fn){
+  function on() {
+    this.off(event, on);
+    fn.apply(this, arguments);
+  }
+
+  on.fn = fn;
+  this.on(event, on);
+  return this;
+};
+
+/**
+ * Remove the given callback for `event` or all
+ * registered callbacks.
+ *
+ * @param {String} event
+ * @param {Function} fn
+ * @return {Emitter}
+ * @api public
+ */
+
+Emitter.prototype.off =
+Emitter.prototype.removeListener =
+Emitter.prototype.removeAllListeners =
+Emitter.prototype.removeEventListener = function(event, fn){
+  this._callbacks = this._callbacks || {};
+
+  // all
+  if (0 == arguments.length) {
+    this._callbacks = {};
+    return this;
+  }
+
+  // specific event
+  var callbacks = this._callbacks['$' + event];
+  if (!callbacks) return this;
+
+  // remove all handlers
+  if (1 == arguments.length) {
+    delete this._callbacks['$' + event];
+    return this;
+  }
+
+  // remove specific handler
+  var cb;
+  for (var i = 0; i < callbacks.length; i++) {
+    cb = callbacks[i];
+    if (cb === fn || cb.fn === fn) {
+      callbacks.splice(i, 1);
+      break;
+    }
+  }
+  return this;
+};
+
+/**
+ * Emit `event` with the given args.
+ *
+ * @param {String} event
+ * @param {Mixed} ...
+ * @return {Emitter}
+ */
+
+Emitter.prototype.emit = function(event){
+  this._callbacks = this._callbacks || {};
+  var args = [].slice.call(arguments, 1)
+    , callbacks = this._callbacks['$' + event];
+
+  if (callbacks) {
+    callbacks = callbacks.slice(0);
+    for (var i = 0, len = callbacks.length; i < len; ++i) {
+      callbacks[i].apply(this, args);
+    }
+  }
+
+  return this;
+};
+
+/**
+ * Return array of callbacks for `event`.
+ *
+ * @param {String} event
+ * @return {Array}
+ * @api public
+ */
+
+Emitter.prototype.listeners = function(event){
+  this._callbacks = this._callbacks || {};
+  return this._callbacks['$' + event] || [];
+};
+
+/**
+ * Check if this emitter has `event` handlers.
+ *
+ * @param {String} event
+ * @return {Boolean}
+ * @api public
+ */
+
+Emitter.prototype.hasListeners = function(event){
+  return !! this.listeners(event).length;
+};
diff --git a/src/cobalt/debug/remote/devtools/node_modules/component-emitter/package.json b/src/third_party/devtools/node_modules/component-emitter/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/component-emitter/package.json
rename to src/third_party/devtools/node_modules/component-emitter/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/component-inherit/.npmignore b/src/third_party/devtools/node_modules/component-inherit/.npmignore
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/component-inherit/.npmignore
rename to src/third_party/devtools/node_modules/component-inherit/.npmignore
diff --git a/src/cobalt/debug/remote/devtools/node_modules/component-inherit/History.md b/src/third_party/devtools/node_modules/component-inherit/History.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/component-inherit/History.md
rename to src/third_party/devtools/node_modules/component-inherit/History.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/component-inherit/Makefile b/src/third_party/devtools/node_modules/component-inherit/Makefile
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/component-inherit/Makefile
rename to src/third_party/devtools/node_modules/component-inherit/Makefile
diff --git a/src/cobalt/debug/remote/devtools/node_modules/component-inherit/Readme.md b/src/third_party/devtools/node_modules/component-inherit/Readme.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/component-inherit/Readme.md
rename to src/third_party/devtools/node_modules/component-inherit/Readme.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/component-inherit/component.json b/src/third_party/devtools/node_modules/component-inherit/component.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/component-inherit/component.json
rename to src/third_party/devtools/node_modules/component-inherit/component.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/component-inherit/index.js b/src/third_party/devtools/node_modules/component-inherit/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/component-inherit/index.js
rename to src/third_party/devtools/node_modules/component-inherit/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/component-inherit/package.json b/src/third_party/devtools/node_modules/component-inherit/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/component-inherit/package.json
rename to src/third_party/devtools/node_modules/component-inherit/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/component-inherit/test/inherit.js b/src/third_party/devtools/node_modules/component-inherit/test/inherit.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/component-inherit/test/inherit.js
rename to src/third_party/devtools/node_modules/component-inherit/test/inherit.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/concat-map/.travis.yml b/src/third_party/devtools/node_modules/concat-map/.travis.yml
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/concat-map/.travis.yml
rename to src/third_party/devtools/node_modules/concat-map/.travis.yml
diff --git a/src/cobalt/debug/remote/devtools/node_modules/concat-map/LICENSE b/src/third_party/devtools/node_modules/concat-map/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/concat-map/LICENSE
rename to src/third_party/devtools/node_modules/concat-map/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/concat-map/README.markdown b/src/third_party/devtools/node_modules/concat-map/README.markdown
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/concat-map/README.markdown
rename to src/third_party/devtools/node_modules/concat-map/README.markdown
diff --git a/src/cobalt/debug/remote/devtools/node_modules/concat-map/example/map.js b/src/third_party/devtools/node_modules/concat-map/example/map.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/concat-map/example/map.js
rename to src/third_party/devtools/node_modules/concat-map/example/map.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/concat-map/index.js b/src/third_party/devtools/node_modules/concat-map/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/concat-map/index.js
rename to src/third_party/devtools/node_modules/concat-map/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/concat-map/package.json b/src/third_party/devtools/node_modules/concat-map/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/concat-map/package.json
rename to src/third_party/devtools/node_modules/concat-map/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/concat-map/test/map.js b/src/third_party/devtools/node_modules/concat-map/test/map.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/concat-map/test/map.js
rename to src/third_party/devtools/node_modules/concat-map/test/map.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/concat-stream/LICENSE b/src/third_party/devtools/node_modules/concat-stream/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/concat-stream/LICENSE
rename to src/third_party/devtools/node_modules/concat-stream/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/concat-stream/index.js b/src/third_party/devtools/node_modules/concat-stream/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/concat-stream/index.js
rename to src/third_party/devtools/node_modules/concat-stream/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/concat-stream/node_modules/isarray/.npmignore b/src/third_party/devtools/node_modules/concat-stream/node_modules/isarray/.npmignore
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/concat-stream/node_modules/isarray/.npmignore
rename to src/third_party/devtools/node_modules/concat-stream/node_modules/isarray/.npmignore
diff --git a/src/cobalt/debug/remote/devtools/node_modules/concat-stream/node_modules/isarray/.travis.yml b/src/third_party/devtools/node_modules/concat-stream/node_modules/isarray/.travis.yml
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/concat-stream/node_modules/isarray/.travis.yml
rename to src/third_party/devtools/node_modules/concat-stream/node_modules/isarray/.travis.yml
diff --git a/src/cobalt/debug/remote/devtools/node_modules/concat-stream/node_modules/isarray/Makefile b/src/third_party/devtools/node_modules/concat-stream/node_modules/isarray/Makefile
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/concat-stream/node_modules/isarray/Makefile
rename to src/third_party/devtools/node_modules/concat-stream/node_modules/isarray/Makefile
diff --git a/src/cobalt/debug/remote/devtools/node_modules/concat-stream/node_modules/isarray/README.md b/src/third_party/devtools/node_modules/concat-stream/node_modules/isarray/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/concat-stream/node_modules/isarray/README.md
rename to src/third_party/devtools/node_modules/concat-stream/node_modules/isarray/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/concat-stream/node_modules/isarray/component.json b/src/third_party/devtools/node_modules/concat-stream/node_modules/isarray/component.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/concat-stream/node_modules/isarray/component.json
rename to src/third_party/devtools/node_modules/concat-stream/node_modules/isarray/component.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/concat-stream/node_modules/isarray/index.js b/src/third_party/devtools/node_modules/concat-stream/node_modules/isarray/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/concat-stream/node_modules/isarray/index.js
rename to src/third_party/devtools/node_modules/concat-stream/node_modules/isarray/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/concat-stream/node_modules/isarray/package.json b/src/third_party/devtools/node_modules/concat-stream/node_modules/isarray/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/concat-stream/node_modules/isarray/package.json
rename to src/third_party/devtools/node_modules/concat-stream/node_modules/isarray/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/concat-stream/node_modules/isarray/test.js b/src/third_party/devtools/node_modules/concat-stream/node_modules/isarray/test.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/concat-stream/node_modules/isarray/test.js
rename to src/third_party/devtools/node_modules/concat-stream/node_modules/isarray/test.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/concat-stream/node_modules/readable-stream/.travis.yml b/src/third_party/devtools/node_modules/concat-stream/node_modules/readable-stream/.travis.yml
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/concat-stream/node_modules/readable-stream/.travis.yml
rename to src/third_party/devtools/node_modules/concat-stream/node_modules/readable-stream/.travis.yml
diff --git a/src/cobalt/debug/remote/devtools/node_modules/concat-stream/node_modules/readable-stream/CONTRIBUTING.md b/src/third_party/devtools/node_modules/concat-stream/node_modules/readable-stream/CONTRIBUTING.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/concat-stream/node_modules/readable-stream/CONTRIBUTING.md
rename to src/third_party/devtools/node_modules/concat-stream/node_modules/readable-stream/CONTRIBUTING.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/concat-stream/node_modules/readable-stream/GOVERNANCE.md b/src/third_party/devtools/node_modules/concat-stream/node_modules/readable-stream/GOVERNANCE.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/concat-stream/node_modules/readable-stream/GOVERNANCE.md
rename to src/third_party/devtools/node_modules/concat-stream/node_modules/readable-stream/GOVERNANCE.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/concat-stream/node_modules/readable-stream/LICENSE b/src/third_party/devtools/node_modules/concat-stream/node_modules/readable-stream/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/concat-stream/node_modules/readable-stream/LICENSE
rename to src/third_party/devtools/node_modules/concat-stream/node_modules/readable-stream/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/concat-stream/node_modules/readable-stream/README.md b/src/third_party/devtools/node_modules/concat-stream/node_modules/readable-stream/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/concat-stream/node_modules/readable-stream/README.md
rename to src/third_party/devtools/node_modules/concat-stream/node_modules/readable-stream/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/concat-stream/node_modules/readable-stream/doc/wg-meetings/2015-01-30.md b/src/third_party/devtools/node_modules/concat-stream/node_modules/readable-stream/doc/wg-meetings/2015-01-30.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/concat-stream/node_modules/readable-stream/doc/wg-meetings/2015-01-30.md
rename to src/third_party/devtools/node_modules/concat-stream/node_modules/readable-stream/doc/wg-meetings/2015-01-30.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/concat-stream/node_modules/readable-stream/duplex-browser.js b/src/third_party/devtools/node_modules/concat-stream/node_modules/readable-stream/duplex-browser.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/concat-stream/node_modules/readable-stream/duplex-browser.js
rename to src/third_party/devtools/node_modules/concat-stream/node_modules/readable-stream/duplex-browser.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/concat-stream/node_modules/readable-stream/duplex.js b/src/third_party/devtools/node_modules/concat-stream/node_modules/readable-stream/duplex.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/concat-stream/node_modules/readable-stream/duplex.js
rename to src/third_party/devtools/node_modules/concat-stream/node_modules/readable-stream/duplex.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/concat-stream/node_modules/readable-stream/lib/_stream_duplex.js b/src/third_party/devtools/node_modules/concat-stream/node_modules/readable-stream/lib/_stream_duplex.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/concat-stream/node_modules/readable-stream/lib/_stream_duplex.js
rename to src/third_party/devtools/node_modules/concat-stream/node_modules/readable-stream/lib/_stream_duplex.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/concat-stream/node_modules/readable-stream/lib/_stream_passthrough.js b/src/third_party/devtools/node_modules/concat-stream/node_modules/readable-stream/lib/_stream_passthrough.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/concat-stream/node_modules/readable-stream/lib/_stream_passthrough.js
rename to src/third_party/devtools/node_modules/concat-stream/node_modules/readable-stream/lib/_stream_passthrough.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/concat-stream/node_modules/readable-stream/lib/_stream_readable.js b/src/third_party/devtools/node_modules/concat-stream/node_modules/readable-stream/lib/_stream_readable.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/concat-stream/node_modules/readable-stream/lib/_stream_readable.js
rename to src/third_party/devtools/node_modules/concat-stream/node_modules/readable-stream/lib/_stream_readable.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/concat-stream/node_modules/readable-stream/lib/_stream_transform.js b/src/third_party/devtools/node_modules/concat-stream/node_modules/readable-stream/lib/_stream_transform.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/concat-stream/node_modules/readable-stream/lib/_stream_transform.js
rename to src/third_party/devtools/node_modules/concat-stream/node_modules/readable-stream/lib/_stream_transform.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/concat-stream/node_modules/readable-stream/lib/_stream_writable.js b/src/third_party/devtools/node_modules/concat-stream/node_modules/readable-stream/lib/_stream_writable.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/concat-stream/node_modules/readable-stream/lib/_stream_writable.js
rename to src/third_party/devtools/node_modules/concat-stream/node_modules/readable-stream/lib/_stream_writable.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/concat-stream/node_modules/readable-stream/lib/internal/streams/BufferList.js b/src/third_party/devtools/node_modules/concat-stream/node_modules/readable-stream/lib/internal/streams/BufferList.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/concat-stream/node_modules/readable-stream/lib/internal/streams/BufferList.js
rename to src/third_party/devtools/node_modules/concat-stream/node_modules/readable-stream/lib/internal/streams/BufferList.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/concat-stream/node_modules/readable-stream/lib/internal/streams/destroy.js b/src/third_party/devtools/node_modules/concat-stream/node_modules/readable-stream/lib/internal/streams/destroy.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/concat-stream/node_modules/readable-stream/lib/internal/streams/destroy.js
rename to src/third_party/devtools/node_modules/concat-stream/node_modules/readable-stream/lib/internal/streams/destroy.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/concat-stream/node_modules/readable-stream/lib/internal/streams/stream-browser.js b/src/third_party/devtools/node_modules/concat-stream/node_modules/readable-stream/lib/internal/streams/stream-browser.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/concat-stream/node_modules/readable-stream/lib/internal/streams/stream-browser.js
rename to src/third_party/devtools/node_modules/concat-stream/node_modules/readable-stream/lib/internal/streams/stream-browser.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/concat-stream/node_modules/readable-stream/lib/internal/streams/stream.js b/src/third_party/devtools/node_modules/concat-stream/node_modules/readable-stream/lib/internal/streams/stream.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/concat-stream/node_modules/readable-stream/lib/internal/streams/stream.js
rename to src/third_party/devtools/node_modules/concat-stream/node_modules/readable-stream/lib/internal/streams/stream.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/concat-stream/node_modules/readable-stream/package.json b/src/third_party/devtools/node_modules/concat-stream/node_modules/readable-stream/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/concat-stream/node_modules/readable-stream/package.json
rename to src/third_party/devtools/node_modules/concat-stream/node_modules/readable-stream/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/concat-stream/node_modules/readable-stream/passthrough.js b/src/third_party/devtools/node_modules/concat-stream/node_modules/readable-stream/passthrough.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/concat-stream/node_modules/readable-stream/passthrough.js
rename to src/third_party/devtools/node_modules/concat-stream/node_modules/readable-stream/passthrough.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/concat-stream/node_modules/readable-stream/readable-browser.js b/src/third_party/devtools/node_modules/concat-stream/node_modules/readable-stream/readable-browser.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/concat-stream/node_modules/readable-stream/readable-browser.js
rename to src/third_party/devtools/node_modules/concat-stream/node_modules/readable-stream/readable-browser.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/concat-stream/node_modules/readable-stream/readable.js b/src/third_party/devtools/node_modules/concat-stream/node_modules/readable-stream/readable.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/concat-stream/node_modules/readable-stream/readable.js
rename to src/third_party/devtools/node_modules/concat-stream/node_modules/readable-stream/readable.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/concat-stream/node_modules/readable-stream/transform.js b/src/third_party/devtools/node_modules/concat-stream/node_modules/readable-stream/transform.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/concat-stream/node_modules/readable-stream/transform.js
rename to src/third_party/devtools/node_modules/concat-stream/node_modules/readable-stream/transform.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/concat-stream/node_modules/readable-stream/writable-browser.js b/src/third_party/devtools/node_modules/concat-stream/node_modules/readable-stream/writable-browser.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/concat-stream/node_modules/readable-stream/writable-browser.js
rename to src/third_party/devtools/node_modules/concat-stream/node_modules/readable-stream/writable-browser.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/concat-stream/node_modules/readable-stream/writable.js b/src/third_party/devtools/node_modules/concat-stream/node_modules/readable-stream/writable.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/concat-stream/node_modules/readable-stream/writable.js
rename to src/third_party/devtools/node_modules/concat-stream/node_modules/readable-stream/writable.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/concat-stream/node_modules/safe-buffer/LICENSE b/src/third_party/devtools/node_modules/concat-stream/node_modules/safe-buffer/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/concat-stream/node_modules/safe-buffer/LICENSE
rename to src/third_party/devtools/node_modules/concat-stream/node_modules/safe-buffer/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/concat-stream/node_modules/safe-buffer/README.md b/src/third_party/devtools/node_modules/concat-stream/node_modules/safe-buffer/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/concat-stream/node_modules/safe-buffer/README.md
rename to src/third_party/devtools/node_modules/concat-stream/node_modules/safe-buffer/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/concat-stream/node_modules/safe-buffer/index.d.ts b/src/third_party/devtools/node_modules/concat-stream/node_modules/safe-buffer/index.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/concat-stream/node_modules/safe-buffer/index.d.ts
rename to src/third_party/devtools/node_modules/concat-stream/node_modules/safe-buffer/index.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/concat-stream/node_modules/safe-buffer/index.js b/src/third_party/devtools/node_modules/concat-stream/node_modules/safe-buffer/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/concat-stream/node_modules/safe-buffer/index.js
rename to src/third_party/devtools/node_modules/concat-stream/node_modules/safe-buffer/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/concat-stream/node_modules/safe-buffer/package.json b/src/third_party/devtools/node_modules/concat-stream/node_modules/safe-buffer/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/concat-stream/node_modules/safe-buffer/package.json
rename to src/third_party/devtools/node_modules/concat-stream/node_modules/safe-buffer/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/concat-stream/node_modules/string_decoder/.travis.yml b/src/third_party/devtools/node_modules/concat-stream/node_modules/string_decoder/.travis.yml
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/concat-stream/node_modules/string_decoder/.travis.yml
rename to src/third_party/devtools/node_modules/concat-stream/node_modules/string_decoder/.travis.yml
diff --git a/src/cobalt/debug/remote/devtools/node_modules/concat-stream/node_modules/string_decoder/LICENSE b/src/third_party/devtools/node_modules/concat-stream/node_modules/string_decoder/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/concat-stream/node_modules/string_decoder/LICENSE
rename to src/third_party/devtools/node_modules/concat-stream/node_modules/string_decoder/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/concat-stream/node_modules/string_decoder/README.md b/src/third_party/devtools/node_modules/concat-stream/node_modules/string_decoder/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/concat-stream/node_modules/string_decoder/README.md
rename to src/third_party/devtools/node_modules/concat-stream/node_modules/string_decoder/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/concat-stream/node_modules/string_decoder/lib/string_decoder.js b/src/third_party/devtools/node_modules/concat-stream/node_modules/string_decoder/lib/string_decoder.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/concat-stream/node_modules/string_decoder/lib/string_decoder.js
rename to src/third_party/devtools/node_modules/concat-stream/node_modules/string_decoder/lib/string_decoder.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/concat-stream/node_modules/string_decoder/package.json b/src/third_party/devtools/node_modules/concat-stream/node_modules/string_decoder/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/concat-stream/node_modules/string_decoder/package.json
rename to src/third_party/devtools/node_modules/concat-stream/node_modules/string_decoder/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/concat-stream/package.json b/src/third_party/devtools/node_modules/concat-stream/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/concat-stream/package.json
rename to src/third_party/devtools/node_modules/concat-stream/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/concat-stream/readme.md b/src/third_party/devtools/node_modules/concat-stream/readme.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/concat-stream/readme.md
rename to src/third_party/devtools/node_modules/concat-stream/readme.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/connect/HISTORY.md b/src/third_party/devtools/node_modules/connect/HISTORY.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/connect/HISTORY.md
rename to src/third_party/devtools/node_modules/connect/HISTORY.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/connect/LICENSE b/src/third_party/devtools/node_modules/connect/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/connect/LICENSE
rename to src/third_party/devtools/node_modules/connect/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/connect/README.md b/src/third_party/devtools/node_modules/connect/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/connect/README.md
rename to src/third_party/devtools/node_modules/connect/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/connect/SECURITY.md b/src/third_party/devtools/node_modules/connect/SECURITY.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/connect/SECURITY.md
rename to src/third_party/devtools/node_modules/connect/SECURITY.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/connect/index.js b/src/third_party/devtools/node_modules/connect/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/connect/index.js
rename to src/third_party/devtools/node_modules/connect/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/connect/node_modules/debug/.coveralls.yml b/src/third_party/devtools/node_modules/connect/node_modules/debug/.coveralls.yml
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/connect/node_modules/debug/.coveralls.yml
rename to src/third_party/devtools/node_modules/connect/node_modules/debug/.coveralls.yml
diff --git a/src/cobalt/debug/remote/devtools/node_modules/connect/node_modules/debug/.eslintrc b/src/third_party/devtools/node_modules/connect/node_modules/debug/.eslintrc
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/connect/node_modules/debug/.eslintrc
rename to src/third_party/devtools/node_modules/connect/node_modules/debug/.eslintrc
diff --git a/src/cobalt/debug/remote/devtools/node_modules/connect/node_modules/debug/.npmignore b/src/third_party/devtools/node_modules/connect/node_modules/debug/.npmignore
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/connect/node_modules/debug/.npmignore
rename to src/third_party/devtools/node_modules/connect/node_modules/debug/.npmignore
diff --git a/src/cobalt/debug/remote/devtools/node_modules/connect/node_modules/debug/.travis.yml b/src/third_party/devtools/node_modules/connect/node_modules/debug/.travis.yml
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/connect/node_modules/debug/.travis.yml
rename to src/third_party/devtools/node_modules/connect/node_modules/debug/.travis.yml
diff --git a/src/cobalt/debug/remote/devtools/node_modules/connect/node_modules/debug/CHANGELOG.md b/src/third_party/devtools/node_modules/connect/node_modules/debug/CHANGELOG.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/connect/node_modules/debug/CHANGELOG.md
rename to src/third_party/devtools/node_modules/connect/node_modules/debug/CHANGELOG.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/connect/node_modules/debug/LICENSE b/src/third_party/devtools/node_modules/connect/node_modules/debug/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/connect/node_modules/debug/LICENSE
rename to src/third_party/devtools/node_modules/connect/node_modules/debug/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/connect/node_modules/debug/Makefile b/src/third_party/devtools/node_modules/connect/node_modules/debug/Makefile
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/connect/node_modules/debug/Makefile
rename to src/third_party/devtools/node_modules/connect/node_modules/debug/Makefile
diff --git a/src/cobalt/debug/remote/devtools/node_modules/connect/node_modules/debug/README.md b/src/third_party/devtools/node_modules/connect/node_modules/debug/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/connect/node_modules/debug/README.md
rename to src/third_party/devtools/node_modules/connect/node_modules/debug/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/connect/node_modules/debug/component.json b/src/third_party/devtools/node_modules/connect/node_modules/debug/component.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/connect/node_modules/debug/component.json
rename to src/third_party/devtools/node_modules/connect/node_modules/debug/component.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/connect/node_modules/debug/karma.conf.js b/src/third_party/devtools/node_modules/connect/node_modules/debug/karma.conf.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/connect/node_modules/debug/karma.conf.js
rename to src/third_party/devtools/node_modules/connect/node_modules/debug/karma.conf.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/connect/node_modules/debug/node.js b/src/third_party/devtools/node_modules/connect/node_modules/debug/node.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/connect/node_modules/debug/node.js
rename to src/third_party/devtools/node_modules/connect/node_modules/debug/node.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/connect/node_modules/debug/package.json b/src/third_party/devtools/node_modules/connect/node_modules/debug/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/connect/node_modules/debug/package.json
rename to src/third_party/devtools/node_modules/connect/node_modules/debug/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/connect/node_modules/debug/src/browser.js b/src/third_party/devtools/node_modules/connect/node_modules/debug/src/browser.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/connect/node_modules/debug/src/browser.js
rename to src/third_party/devtools/node_modules/connect/node_modules/debug/src/browser.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/connect/node_modules/debug/src/debug.js b/src/third_party/devtools/node_modules/connect/node_modules/debug/src/debug.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/connect/node_modules/debug/src/debug.js
rename to src/third_party/devtools/node_modules/connect/node_modules/debug/src/debug.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/connect/node_modules/debug/src/index.js b/src/third_party/devtools/node_modules/connect/node_modules/debug/src/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/connect/node_modules/debug/src/index.js
rename to src/third_party/devtools/node_modules/connect/node_modules/debug/src/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/connect/node_modules/debug/src/inspector-log.js b/src/third_party/devtools/node_modules/connect/node_modules/debug/src/inspector-log.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/connect/node_modules/debug/src/inspector-log.js
rename to src/third_party/devtools/node_modules/connect/node_modules/debug/src/inspector-log.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/connect/node_modules/debug/src/node.js b/src/third_party/devtools/node_modules/connect/node_modules/debug/src/node.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/connect/node_modules/debug/src/node.js
rename to src/third_party/devtools/node_modules/connect/node_modules/debug/src/node.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/connect/node_modules/ms/index.js b/src/third_party/devtools/node_modules/connect/node_modules/ms/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/connect/node_modules/ms/index.js
rename to src/third_party/devtools/node_modules/connect/node_modules/ms/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/connect/node_modules/ms/license.md b/src/third_party/devtools/node_modules/connect/node_modules/ms/license.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/connect/node_modules/ms/license.md
rename to src/third_party/devtools/node_modules/connect/node_modules/ms/license.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/connect/node_modules/ms/package.json b/src/third_party/devtools/node_modules/connect/node_modules/ms/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/connect/node_modules/ms/package.json
rename to src/third_party/devtools/node_modules/connect/node_modules/ms/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/connect/node_modules/ms/readme.md b/src/third_party/devtools/node_modules/connect/node_modules/ms/readme.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/connect/node_modules/ms/readme.md
rename to src/third_party/devtools/node_modules/connect/node_modules/ms/readme.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/connect/package.json b/src/third_party/devtools/node_modules/connect/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/connect/package.json
rename to src/third_party/devtools/node_modules/connect/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/console-browserify/.npmignore b/src/third_party/devtools/node_modules/console-browserify/.npmignore
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/console-browserify/.npmignore
rename to src/third_party/devtools/node_modules/console-browserify/.npmignore
diff --git a/src/cobalt/debug/remote/devtools/node_modules/console-browserify/.testem.json b/src/third_party/devtools/node_modules/console-browserify/.testem.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/console-browserify/.testem.json
rename to src/third_party/devtools/node_modules/console-browserify/.testem.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/console-browserify/.travis.yml b/src/third_party/devtools/node_modules/console-browserify/.travis.yml
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/console-browserify/.travis.yml
rename to src/third_party/devtools/node_modules/console-browserify/.travis.yml
diff --git a/src/cobalt/debug/remote/devtools/node_modules/console-browserify/LICENCE b/src/third_party/devtools/node_modules/console-browserify/LICENCE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/console-browserify/LICENCE
rename to src/third_party/devtools/node_modules/console-browserify/LICENCE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/console-browserify/README.md b/src/third_party/devtools/node_modules/console-browserify/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/console-browserify/README.md
rename to src/third_party/devtools/node_modules/console-browserify/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/console-browserify/index.js b/src/third_party/devtools/node_modules/console-browserify/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/console-browserify/index.js
rename to src/third_party/devtools/node_modules/console-browserify/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/console-browserify/package.json b/src/third_party/devtools/node_modules/console-browserify/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/console-browserify/package.json
rename to src/third_party/devtools/node_modules/console-browserify/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/console-browserify/test/index.js b/src/third_party/devtools/node_modules/console-browserify/test/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/console-browserify/test/index.js
rename to src/third_party/devtools/node_modules/console-browserify/test/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/console-browserify/test/static/index.html b/src/third_party/devtools/node_modules/console-browserify/test/static/index.html
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/console-browserify/test/static/index.html
rename to src/third_party/devtools/node_modules/console-browserify/test/static/index.html
diff --git a/src/cobalt/debug/remote/devtools/node_modules/console-browserify/test/static/test-adapter.js b/src/third_party/devtools/node_modules/console-browserify/test/static/test-adapter.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/console-browserify/test/static/test-adapter.js
rename to src/third_party/devtools/node_modules/console-browserify/test/static/test-adapter.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/constants-browserify/README.md b/src/third_party/devtools/node_modules/constants-browserify/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/constants-browserify/README.md
rename to src/third_party/devtools/node_modules/constants-browserify/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/constants-browserify/build.sh b/src/third_party/devtools/node_modules/constants-browserify/build.sh
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/constants-browserify/build.sh
rename to src/third_party/devtools/node_modules/constants-browserify/build.sh
diff --git a/src/cobalt/debug/remote/devtools/node_modules/constants-browserify/constants.json b/src/third_party/devtools/node_modules/constants-browserify/constants.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/constants-browserify/constants.json
rename to src/third_party/devtools/node_modules/constants-browserify/constants.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/constants-browserify/package.json b/src/third_party/devtools/node_modules/constants-browserify/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/constants-browserify/package.json
rename to src/third_party/devtools/node_modules/constants-browserify/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/constants-browserify/test.js b/src/third_party/devtools/node_modules/constants-browserify/test.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/constants-browserify/test.js
rename to src/third_party/devtools/node_modules/constants-browserify/test.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/content-type/HISTORY.md b/src/third_party/devtools/node_modules/content-type/HISTORY.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/content-type/HISTORY.md
rename to src/third_party/devtools/node_modules/content-type/HISTORY.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/content-type/LICENSE b/src/third_party/devtools/node_modules/content-type/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/content-type/LICENSE
rename to src/third_party/devtools/node_modules/content-type/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/content-type/README.md b/src/third_party/devtools/node_modules/content-type/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/content-type/README.md
rename to src/third_party/devtools/node_modules/content-type/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/content-type/index.js b/src/third_party/devtools/node_modules/content-type/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/content-type/index.js
rename to src/third_party/devtools/node_modules/content-type/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/content-type/package.json b/src/third_party/devtools/node_modules/content-type/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/content-type/package.json
rename to src/third_party/devtools/node_modules/content-type/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/convert-source-map/LICENSE b/src/third_party/devtools/node_modules/convert-source-map/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/convert-source-map/LICENSE
rename to src/third_party/devtools/node_modules/convert-source-map/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/convert-source-map/README.md b/src/third_party/devtools/node_modules/convert-source-map/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/convert-source-map/README.md
rename to src/third_party/devtools/node_modules/convert-source-map/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/convert-source-map/index.js b/src/third_party/devtools/node_modules/convert-source-map/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/convert-source-map/index.js
rename to src/third_party/devtools/node_modules/convert-source-map/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/convert-source-map/node_modules/safe-buffer/LICENSE b/src/third_party/devtools/node_modules/convert-source-map/node_modules/safe-buffer/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/convert-source-map/node_modules/safe-buffer/LICENSE
rename to src/third_party/devtools/node_modules/convert-source-map/node_modules/safe-buffer/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/convert-source-map/node_modules/safe-buffer/README.md b/src/third_party/devtools/node_modules/convert-source-map/node_modules/safe-buffer/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/convert-source-map/node_modules/safe-buffer/README.md
rename to src/third_party/devtools/node_modules/convert-source-map/node_modules/safe-buffer/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/convert-source-map/node_modules/safe-buffer/index.d.ts b/src/third_party/devtools/node_modules/convert-source-map/node_modules/safe-buffer/index.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/convert-source-map/node_modules/safe-buffer/index.d.ts
rename to src/third_party/devtools/node_modules/convert-source-map/node_modules/safe-buffer/index.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/convert-source-map/node_modules/safe-buffer/index.js b/src/third_party/devtools/node_modules/convert-source-map/node_modules/safe-buffer/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/convert-source-map/node_modules/safe-buffer/index.js
rename to src/third_party/devtools/node_modules/convert-source-map/node_modules/safe-buffer/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/convert-source-map/node_modules/safe-buffer/package.json b/src/third_party/devtools/node_modules/convert-source-map/node_modules/safe-buffer/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/convert-source-map/node_modules/safe-buffer/package.json
rename to src/third_party/devtools/node_modules/convert-source-map/node_modules/safe-buffer/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/convert-source-map/package.json b/src/third_party/devtools/node_modules/convert-source-map/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/convert-source-map/package.json
rename to src/third_party/devtools/node_modules/convert-source-map/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/cookie/HISTORY.md b/src/third_party/devtools/node_modules/cookie/HISTORY.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/cookie/HISTORY.md
rename to src/third_party/devtools/node_modules/cookie/HISTORY.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/cookie/LICENSE b/src/third_party/devtools/node_modules/cookie/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/cookie/LICENSE
rename to src/third_party/devtools/node_modules/cookie/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/cookie/README.md b/src/third_party/devtools/node_modules/cookie/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/cookie/README.md
rename to src/third_party/devtools/node_modules/cookie/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/cookie/index.js b/src/third_party/devtools/node_modules/cookie/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/cookie/index.js
rename to src/third_party/devtools/node_modules/cookie/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/cookie/package.json b/src/third_party/devtools/node_modules/cookie/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/cookie/package.json
rename to src/third_party/devtools/node_modules/cookie/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/LICENSE b/src/third_party/devtools/node_modules/core-js/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/LICENSE
rename to src/third_party/devtools/node_modules/core-js/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/README.md b/src/third_party/devtools/node_modules/core-js/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/README.md
rename to src/third_party/devtools/node_modules/core-js/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/configurator.js b/src/third_party/devtools/node_modules/core-js/configurator.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/configurator.js
rename to src/third_party/devtools/node_modules/core-js/configurator.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/README.md b/src/third_party/devtools/node_modules/core-js/es/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/README.md
rename to src/third_party/devtools/node_modules/core-js/es/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/array-buffer/constructor.js b/src/third_party/devtools/node_modules/core-js/es/array-buffer/constructor.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/array-buffer/constructor.js
rename to src/third_party/devtools/node_modules/core-js/es/array-buffer/constructor.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/array-buffer/index.js b/src/third_party/devtools/node_modules/core-js/es/array-buffer/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/array-buffer/index.js
rename to src/third_party/devtools/node_modules/core-js/es/array-buffer/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/array-buffer/is-view.js b/src/third_party/devtools/node_modules/core-js/es/array-buffer/is-view.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/array-buffer/is-view.js
rename to src/third_party/devtools/node_modules/core-js/es/array-buffer/is-view.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/array-buffer/slice.js b/src/third_party/devtools/node_modules/core-js/es/array-buffer/slice.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/array-buffer/slice.js
rename to src/third_party/devtools/node_modules/core-js/es/array-buffer/slice.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/array/concat.js b/src/third_party/devtools/node_modules/core-js/es/array/concat.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/array/concat.js
rename to src/third_party/devtools/node_modules/core-js/es/array/concat.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/array/copy-within.js b/src/third_party/devtools/node_modules/core-js/es/array/copy-within.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/array/copy-within.js
rename to src/third_party/devtools/node_modules/core-js/es/array/copy-within.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/array/entries.js b/src/third_party/devtools/node_modules/core-js/es/array/entries.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/array/entries.js
rename to src/third_party/devtools/node_modules/core-js/es/array/entries.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/array/every.js b/src/third_party/devtools/node_modules/core-js/es/array/every.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/array/every.js
rename to src/third_party/devtools/node_modules/core-js/es/array/every.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/array/fill.js b/src/third_party/devtools/node_modules/core-js/es/array/fill.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/array/fill.js
rename to src/third_party/devtools/node_modules/core-js/es/array/fill.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/array/filter.js b/src/third_party/devtools/node_modules/core-js/es/array/filter.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/array/filter.js
rename to src/third_party/devtools/node_modules/core-js/es/array/filter.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/array/find-index.js b/src/third_party/devtools/node_modules/core-js/es/array/find-index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/array/find-index.js
rename to src/third_party/devtools/node_modules/core-js/es/array/find-index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/array/find.js b/src/third_party/devtools/node_modules/core-js/es/array/find.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/array/find.js
rename to src/third_party/devtools/node_modules/core-js/es/array/find.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/array/flat-map.js b/src/third_party/devtools/node_modules/core-js/es/array/flat-map.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/array/flat-map.js
rename to src/third_party/devtools/node_modules/core-js/es/array/flat-map.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/array/flat.js b/src/third_party/devtools/node_modules/core-js/es/array/flat.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/array/flat.js
rename to src/third_party/devtools/node_modules/core-js/es/array/flat.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/array/for-each.js b/src/third_party/devtools/node_modules/core-js/es/array/for-each.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/array/for-each.js
rename to src/third_party/devtools/node_modules/core-js/es/array/for-each.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/array/from.js b/src/third_party/devtools/node_modules/core-js/es/array/from.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/array/from.js
rename to src/third_party/devtools/node_modules/core-js/es/array/from.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/array/includes.js b/src/third_party/devtools/node_modules/core-js/es/array/includes.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/array/includes.js
rename to src/third_party/devtools/node_modules/core-js/es/array/includes.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/array/index-of.js b/src/third_party/devtools/node_modules/core-js/es/array/index-of.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/array/index-of.js
rename to src/third_party/devtools/node_modules/core-js/es/array/index-of.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/array/index.js b/src/third_party/devtools/node_modules/core-js/es/array/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/array/index.js
rename to src/third_party/devtools/node_modules/core-js/es/array/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/array/is-array.js b/src/third_party/devtools/node_modules/core-js/es/array/is-array.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/array/is-array.js
rename to src/third_party/devtools/node_modules/core-js/es/array/is-array.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/array/iterator.js b/src/third_party/devtools/node_modules/core-js/es/array/iterator.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/array/iterator.js
rename to src/third_party/devtools/node_modules/core-js/es/array/iterator.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/array/join.js b/src/third_party/devtools/node_modules/core-js/es/array/join.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/array/join.js
rename to src/third_party/devtools/node_modules/core-js/es/array/join.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/array/keys.js b/src/third_party/devtools/node_modules/core-js/es/array/keys.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/array/keys.js
rename to src/third_party/devtools/node_modules/core-js/es/array/keys.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/array/last-index-of.js b/src/third_party/devtools/node_modules/core-js/es/array/last-index-of.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/array/last-index-of.js
rename to src/third_party/devtools/node_modules/core-js/es/array/last-index-of.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/array/map.js b/src/third_party/devtools/node_modules/core-js/es/array/map.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/array/map.js
rename to src/third_party/devtools/node_modules/core-js/es/array/map.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/array/of.js b/src/third_party/devtools/node_modules/core-js/es/array/of.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/array/of.js
rename to src/third_party/devtools/node_modules/core-js/es/array/of.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/array/reduce-right.js b/src/third_party/devtools/node_modules/core-js/es/array/reduce-right.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/array/reduce-right.js
rename to src/third_party/devtools/node_modules/core-js/es/array/reduce-right.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/array/reduce.js b/src/third_party/devtools/node_modules/core-js/es/array/reduce.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/array/reduce.js
rename to src/third_party/devtools/node_modules/core-js/es/array/reduce.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/array/reverse.js b/src/third_party/devtools/node_modules/core-js/es/array/reverse.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/array/reverse.js
rename to src/third_party/devtools/node_modules/core-js/es/array/reverse.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/array/slice.js b/src/third_party/devtools/node_modules/core-js/es/array/slice.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/array/slice.js
rename to src/third_party/devtools/node_modules/core-js/es/array/slice.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/array/some.js b/src/third_party/devtools/node_modules/core-js/es/array/some.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/array/some.js
rename to src/third_party/devtools/node_modules/core-js/es/array/some.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/array/sort.js b/src/third_party/devtools/node_modules/core-js/es/array/sort.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/array/sort.js
rename to src/third_party/devtools/node_modules/core-js/es/array/sort.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/array/splice.js b/src/third_party/devtools/node_modules/core-js/es/array/splice.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/array/splice.js
rename to src/third_party/devtools/node_modules/core-js/es/array/splice.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/array/values.js b/src/third_party/devtools/node_modules/core-js/es/array/values.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/array/values.js
rename to src/third_party/devtools/node_modules/core-js/es/array/values.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/array/virtual/concat.js b/src/third_party/devtools/node_modules/core-js/es/array/virtual/concat.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/array/virtual/concat.js
rename to src/third_party/devtools/node_modules/core-js/es/array/virtual/concat.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/array/virtual/copy-within.js b/src/third_party/devtools/node_modules/core-js/es/array/virtual/copy-within.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/array/virtual/copy-within.js
rename to src/third_party/devtools/node_modules/core-js/es/array/virtual/copy-within.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/array/virtual/entries.js b/src/third_party/devtools/node_modules/core-js/es/array/virtual/entries.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/array/virtual/entries.js
rename to src/third_party/devtools/node_modules/core-js/es/array/virtual/entries.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/array/virtual/every.js b/src/third_party/devtools/node_modules/core-js/es/array/virtual/every.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/array/virtual/every.js
rename to src/third_party/devtools/node_modules/core-js/es/array/virtual/every.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/array/virtual/fill.js b/src/third_party/devtools/node_modules/core-js/es/array/virtual/fill.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/array/virtual/fill.js
rename to src/third_party/devtools/node_modules/core-js/es/array/virtual/fill.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/array/virtual/filter.js b/src/third_party/devtools/node_modules/core-js/es/array/virtual/filter.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/array/virtual/filter.js
rename to src/third_party/devtools/node_modules/core-js/es/array/virtual/filter.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/array/virtual/find-index.js b/src/third_party/devtools/node_modules/core-js/es/array/virtual/find-index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/array/virtual/find-index.js
rename to src/third_party/devtools/node_modules/core-js/es/array/virtual/find-index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/array/virtual/find.js b/src/third_party/devtools/node_modules/core-js/es/array/virtual/find.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/array/virtual/find.js
rename to src/third_party/devtools/node_modules/core-js/es/array/virtual/find.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/array/virtual/flat-map.js b/src/third_party/devtools/node_modules/core-js/es/array/virtual/flat-map.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/array/virtual/flat-map.js
rename to src/third_party/devtools/node_modules/core-js/es/array/virtual/flat-map.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/array/virtual/flat.js b/src/third_party/devtools/node_modules/core-js/es/array/virtual/flat.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/array/virtual/flat.js
rename to src/third_party/devtools/node_modules/core-js/es/array/virtual/flat.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/array/virtual/for-each.js b/src/third_party/devtools/node_modules/core-js/es/array/virtual/for-each.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/array/virtual/for-each.js
rename to src/third_party/devtools/node_modules/core-js/es/array/virtual/for-each.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/array/virtual/includes.js b/src/third_party/devtools/node_modules/core-js/es/array/virtual/includes.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/array/virtual/includes.js
rename to src/third_party/devtools/node_modules/core-js/es/array/virtual/includes.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/array/virtual/index-of.js b/src/third_party/devtools/node_modules/core-js/es/array/virtual/index-of.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/array/virtual/index-of.js
rename to src/third_party/devtools/node_modules/core-js/es/array/virtual/index-of.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/array/virtual/index.js b/src/third_party/devtools/node_modules/core-js/es/array/virtual/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/array/virtual/index.js
rename to src/third_party/devtools/node_modules/core-js/es/array/virtual/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/array/virtual/iterator.js b/src/third_party/devtools/node_modules/core-js/es/array/virtual/iterator.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/array/virtual/iterator.js
rename to src/third_party/devtools/node_modules/core-js/es/array/virtual/iterator.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/array/virtual/join.js b/src/third_party/devtools/node_modules/core-js/es/array/virtual/join.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/array/virtual/join.js
rename to src/third_party/devtools/node_modules/core-js/es/array/virtual/join.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/array/virtual/keys.js b/src/third_party/devtools/node_modules/core-js/es/array/virtual/keys.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/array/virtual/keys.js
rename to src/third_party/devtools/node_modules/core-js/es/array/virtual/keys.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/array/virtual/last-index-of.js b/src/third_party/devtools/node_modules/core-js/es/array/virtual/last-index-of.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/array/virtual/last-index-of.js
rename to src/third_party/devtools/node_modules/core-js/es/array/virtual/last-index-of.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/array/virtual/map.js b/src/third_party/devtools/node_modules/core-js/es/array/virtual/map.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/array/virtual/map.js
rename to src/third_party/devtools/node_modules/core-js/es/array/virtual/map.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/array/virtual/reduce-right.js b/src/third_party/devtools/node_modules/core-js/es/array/virtual/reduce-right.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/array/virtual/reduce-right.js
rename to src/third_party/devtools/node_modules/core-js/es/array/virtual/reduce-right.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/array/virtual/reduce.js b/src/third_party/devtools/node_modules/core-js/es/array/virtual/reduce.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/array/virtual/reduce.js
rename to src/third_party/devtools/node_modules/core-js/es/array/virtual/reduce.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/array/virtual/reverse.js b/src/third_party/devtools/node_modules/core-js/es/array/virtual/reverse.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/array/virtual/reverse.js
rename to src/third_party/devtools/node_modules/core-js/es/array/virtual/reverse.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/array/virtual/slice.js b/src/third_party/devtools/node_modules/core-js/es/array/virtual/slice.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/array/virtual/slice.js
rename to src/third_party/devtools/node_modules/core-js/es/array/virtual/slice.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/array/virtual/some.js b/src/third_party/devtools/node_modules/core-js/es/array/virtual/some.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/array/virtual/some.js
rename to src/third_party/devtools/node_modules/core-js/es/array/virtual/some.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/array/virtual/sort.js b/src/third_party/devtools/node_modules/core-js/es/array/virtual/sort.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/array/virtual/sort.js
rename to src/third_party/devtools/node_modules/core-js/es/array/virtual/sort.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/array/virtual/splice.js b/src/third_party/devtools/node_modules/core-js/es/array/virtual/splice.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/array/virtual/splice.js
rename to src/third_party/devtools/node_modules/core-js/es/array/virtual/splice.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/array/virtual/values.js b/src/third_party/devtools/node_modules/core-js/es/array/virtual/values.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/array/virtual/values.js
rename to src/third_party/devtools/node_modules/core-js/es/array/virtual/values.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/data-view/index.js b/src/third_party/devtools/node_modules/core-js/es/data-view/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/data-view/index.js
rename to src/third_party/devtools/node_modules/core-js/es/data-view/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/date/index.js b/src/third_party/devtools/node_modules/core-js/es/date/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/date/index.js
rename to src/third_party/devtools/node_modules/core-js/es/date/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/date/now.js b/src/third_party/devtools/node_modules/core-js/es/date/now.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/date/now.js
rename to src/third_party/devtools/node_modules/core-js/es/date/now.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/date/to-iso-string.js b/src/third_party/devtools/node_modules/core-js/es/date/to-iso-string.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/date/to-iso-string.js
rename to src/third_party/devtools/node_modules/core-js/es/date/to-iso-string.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/date/to-json.js b/src/third_party/devtools/node_modules/core-js/es/date/to-json.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/date/to-json.js
rename to src/third_party/devtools/node_modules/core-js/es/date/to-json.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/date/to-primitive.js b/src/third_party/devtools/node_modules/core-js/es/date/to-primitive.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/date/to-primitive.js
rename to src/third_party/devtools/node_modules/core-js/es/date/to-primitive.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/date/to-string.js b/src/third_party/devtools/node_modules/core-js/es/date/to-string.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/date/to-string.js
rename to src/third_party/devtools/node_modules/core-js/es/date/to-string.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/function/bind.js b/src/third_party/devtools/node_modules/core-js/es/function/bind.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/function/bind.js
rename to src/third_party/devtools/node_modules/core-js/es/function/bind.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/function/has-instance.js b/src/third_party/devtools/node_modules/core-js/es/function/has-instance.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/function/has-instance.js
rename to src/third_party/devtools/node_modules/core-js/es/function/has-instance.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/function/index.js b/src/third_party/devtools/node_modules/core-js/es/function/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/function/index.js
rename to src/third_party/devtools/node_modules/core-js/es/function/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/function/name.js b/src/third_party/devtools/node_modules/core-js/es/function/name.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/function/name.js
rename to src/third_party/devtools/node_modules/core-js/es/function/name.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/function/virtual/bind.js b/src/third_party/devtools/node_modules/core-js/es/function/virtual/bind.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/function/virtual/bind.js
rename to src/third_party/devtools/node_modules/core-js/es/function/virtual/bind.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/function/virtual/index.js b/src/third_party/devtools/node_modules/core-js/es/function/virtual/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/function/virtual/index.js
rename to src/third_party/devtools/node_modules/core-js/es/function/virtual/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/global-this.js b/src/third_party/devtools/node_modules/core-js/es/global-this.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/global-this.js
rename to src/third_party/devtools/node_modules/core-js/es/global-this.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/index.js b/src/third_party/devtools/node_modules/core-js/es/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/index.js
rename to src/third_party/devtools/node_modules/core-js/es/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/instance/bind.js b/src/third_party/devtools/node_modules/core-js/es/instance/bind.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/instance/bind.js
rename to src/third_party/devtools/node_modules/core-js/es/instance/bind.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/instance/code-point-at.js b/src/third_party/devtools/node_modules/core-js/es/instance/code-point-at.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/instance/code-point-at.js
rename to src/third_party/devtools/node_modules/core-js/es/instance/code-point-at.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/instance/concat.js b/src/third_party/devtools/node_modules/core-js/es/instance/concat.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/instance/concat.js
rename to src/third_party/devtools/node_modules/core-js/es/instance/concat.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/instance/copy-within.js b/src/third_party/devtools/node_modules/core-js/es/instance/copy-within.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/instance/copy-within.js
rename to src/third_party/devtools/node_modules/core-js/es/instance/copy-within.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/instance/ends-with.js b/src/third_party/devtools/node_modules/core-js/es/instance/ends-with.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/instance/ends-with.js
rename to src/third_party/devtools/node_modules/core-js/es/instance/ends-with.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/instance/entries.js b/src/third_party/devtools/node_modules/core-js/es/instance/entries.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/instance/entries.js
rename to src/third_party/devtools/node_modules/core-js/es/instance/entries.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/instance/every.js b/src/third_party/devtools/node_modules/core-js/es/instance/every.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/instance/every.js
rename to src/third_party/devtools/node_modules/core-js/es/instance/every.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/instance/fill.js b/src/third_party/devtools/node_modules/core-js/es/instance/fill.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/instance/fill.js
rename to src/third_party/devtools/node_modules/core-js/es/instance/fill.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/instance/filter.js b/src/third_party/devtools/node_modules/core-js/es/instance/filter.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/instance/filter.js
rename to src/third_party/devtools/node_modules/core-js/es/instance/filter.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/instance/find-index.js b/src/third_party/devtools/node_modules/core-js/es/instance/find-index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/instance/find-index.js
rename to src/third_party/devtools/node_modules/core-js/es/instance/find-index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/instance/find.js b/src/third_party/devtools/node_modules/core-js/es/instance/find.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/instance/find.js
rename to src/third_party/devtools/node_modules/core-js/es/instance/find.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/instance/flags.js b/src/third_party/devtools/node_modules/core-js/es/instance/flags.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/instance/flags.js
rename to src/third_party/devtools/node_modules/core-js/es/instance/flags.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/instance/flat-map.js b/src/third_party/devtools/node_modules/core-js/es/instance/flat-map.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/instance/flat-map.js
rename to src/third_party/devtools/node_modules/core-js/es/instance/flat-map.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/instance/flat.js b/src/third_party/devtools/node_modules/core-js/es/instance/flat.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/instance/flat.js
rename to src/third_party/devtools/node_modules/core-js/es/instance/flat.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/instance/for-each.js b/src/third_party/devtools/node_modules/core-js/es/instance/for-each.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/instance/for-each.js
rename to src/third_party/devtools/node_modules/core-js/es/instance/for-each.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/instance/includes.js b/src/third_party/devtools/node_modules/core-js/es/instance/includes.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/instance/includes.js
rename to src/third_party/devtools/node_modules/core-js/es/instance/includes.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/instance/index-of.js b/src/third_party/devtools/node_modules/core-js/es/instance/index-of.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/instance/index-of.js
rename to src/third_party/devtools/node_modules/core-js/es/instance/index-of.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/instance/keys.js b/src/third_party/devtools/node_modules/core-js/es/instance/keys.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/instance/keys.js
rename to src/third_party/devtools/node_modules/core-js/es/instance/keys.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/instance/last-index-of.js b/src/third_party/devtools/node_modules/core-js/es/instance/last-index-of.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/instance/last-index-of.js
rename to src/third_party/devtools/node_modules/core-js/es/instance/last-index-of.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/instance/map.js b/src/third_party/devtools/node_modules/core-js/es/instance/map.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/instance/map.js
rename to src/third_party/devtools/node_modules/core-js/es/instance/map.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/instance/match-all.js b/src/third_party/devtools/node_modules/core-js/es/instance/match-all.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/instance/match-all.js
rename to src/third_party/devtools/node_modules/core-js/es/instance/match-all.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/instance/pad-end.js b/src/third_party/devtools/node_modules/core-js/es/instance/pad-end.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/instance/pad-end.js
rename to src/third_party/devtools/node_modules/core-js/es/instance/pad-end.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/instance/pad-start.js b/src/third_party/devtools/node_modules/core-js/es/instance/pad-start.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/instance/pad-start.js
rename to src/third_party/devtools/node_modules/core-js/es/instance/pad-start.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/instance/reduce-right.js b/src/third_party/devtools/node_modules/core-js/es/instance/reduce-right.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/instance/reduce-right.js
rename to src/third_party/devtools/node_modules/core-js/es/instance/reduce-right.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/instance/reduce.js b/src/third_party/devtools/node_modules/core-js/es/instance/reduce.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/instance/reduce.js
rename to src/third_party/devtools/node_modules/core-js/es/instance/reduce.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/instance/repeat.js b/src/third_party/devtools/node_modules/core-js/es/instance/repeat.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/instance/repeat.js
rename to src/third_party/devtools/node_modules/core-js/es/instance/repeat.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/instance/reverse.js b/src/third_party/devtools/node_modules/core-js/es/instance/reverse.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/instance/reverse.js
rename to src/third_party/devtools/node_modules/core-js/es/instance/reverse.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/instance/slice.js b/src/third_party/devtools/node_modules/core-js/es/instance/slice.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/instance/slice.js
rename to src/third_party/devtools/node_modules/core-js/es/instance/slice.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/instance/some.js b/src/third_party/devtools/node_modules/core-js/es/instance/some.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/instance/some.js
rename to src/third_party/devtools/node_modules/core-js/es/instance/some.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/instance/sort.js b/src/third_party/devtools/node_modules/core-js/es/instance/sort.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/instance/sort.js
rename to src/third_party/devtools/node_modules/core-js/es/instance/sort.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/instance/splice.js b/src/third_party/devtools/node_modules/core-js/es/instance/splice.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/instance/splice.js
rename to src/third_party/devtools/node_modules/core-js/es/instance/splice.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/instance/starts-with.js b/src/third_party/devtools/node_modules/core-js/es/instance/starts-with.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/instance/starts-with.js
rename to src/third_party/devtools/node_modules/core-js/es/instance/starts-with.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/instance/trim-end.js b/src/third_party/devtools/node_modules/core-js/es/instance/trim-end.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/instance/trim-end.js
rename to src/third_party/devtools/node_modules/core-js/es/instance/trim-end.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/instance/trim-left.js b/src/third_party/devtools/node_modules/core-js/es/instance/trim-left.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/instance/trim-left.js
rename to src/third_party/devtools/node_modules/core-js/es/instance/trim-left.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/instance/trim-right.js b/src/third_party/devtools/node_modules/core-js/es/instance/trim-right.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/instance/trim-right.js
rename to src/third_party/devtools/node_modules/core-js/es/instance/trim-right.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/instance/trim-start.js b/src/third_party/devtools/node_modules/core-js/es/instance/trim-start.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/instance/trim-start.js
rename to src/third_party/devtools/node_modules/core-js/es/instance/trim-start.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/instance/trim.js b/src/third_party/devtools/node_modules/core-js/es/instance/trim.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/instance/trim.js
rename to src/third_party/devtools/node_modules/core-js/es/instance/trim.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/instance/values.js b/src/third_party/devtools/node_modules/core-js/es/instance/values.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/instance/values.js
rename to src/third_party/devtools/node_modules/core-js/es/instance/values.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/json/index.js b/src/third_party/devtools/node_modules/core-js/es/json/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/json/index.js
rename to src/third_party/devtools/node_modules/core-js/es/json/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/json/stringify.js b/src/third_party/devtools/node_modules/core-js/es/json/stringify.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/json/stringify.js
rename to src/third_party/devtools/node_modules/core-js/es/json/stringify.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/json/to-string-tag.js b/src/third_party/devtools/node_modules/core-js/es/json/to-string-tag.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/json/to-string-tag.js
rename to src/third_party/devtools/node_modules/core-js/es/json/to-string-tag.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/map/index.js b/src/third_party/devtools/node_modules/core-js/es/map/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/map/index.js
rename to src/third_party/devtools/node_modules/core-js/es/map/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/math/acosh.js b/src/third_party/devtools/node_modules/core-js/es/math/acosh.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/math/acosh.js
rename to src/third_party/devtools/node_modules/core-js/es/math/acosh.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/math/asinh.js b/src/third_party/devtools/node_modules/core-js/es/math/asinh.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/math/asinh.js
rename to src/third_party/devtools/node_modules/core-js/es/math/asinh.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/math/atanh.js b/src/third_party/devtools/node_modules/core-js/es/math/atanh.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/math/atanh.js
rename to src/third_party/devtools/node_modules/core-js/es/math/atanh.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/math/cbrt.js b/src/third_party/devtools/node_modules/core-js/es/math/cbrt.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/math/cbrt.js
rename to src/third_party/devtools/node_modules/core-js/es/math/cbrt.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/math/clz32.js b/src/third_party/devtools/node_modules/core-js/es/math/clz32.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/math/clz32.js
rename to src/third_party/devtools/node_modules/core-js/es/math/clz32.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/math/cosh.js b/src/third_party/devtools/node_modules/core-js/es/math/cosh.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/math/cosh.js
rename to src/third_party/devtools/node_modules/core-js/es/math/cosh.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/math/expm1.js b/src/third_party/devtools/node_modules/core-js/es/math/expm1.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/math/expm1.js
rename to src/third_party/devtools/node_modules/core-js/es/math/expm1.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/math/fround.js b/src/third_party/devtools/node_modules/core-js/es/math/fround.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/math/fround.js
rename to src/third_party/devtools/node_modules/core-js/es/math/fround.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/math/hypot.js b/src/third_party/devtools/node_modules/core-js/es/math/hypot.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/math/hypot.js
rename to src/third_party/devtools/node_modules/core-js/es/math/hypot.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/math/imul.js b/src/third_party/devtools/node_modules/core-js/es/math/imul.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/math/imul.js
rename to src/third_party/devtools/node_modules/core-js/es/math/imul.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/math/index.js b/src/third_party/devtools/node_modules/core-js/es/math/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/math/index.js
rename to src/third_party/devtools/node_modules/core-js/es/math/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/math/log10.js b/src/third_party/devtools/node_modules/core-js/es/math/log10.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/math/log10.js
rename to src/third_party/devtools/node_modules/core-js/es/math/log10.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/math/log1p.js b/src/third_party/devtools/node_modules/core-js/es/math/log1p.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/math/log1p.js
rename to src/third_party/devtools/node_modules/core-js/es/math/log1p.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/math/log2.js b/src/third_party/devtools/node_modules/core-js/es/math/log2.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/math/log2.js
rename to src/third_party/devtools/node_modules/core-js/es/math/log2.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/math/sign.js b/src/third_party/devtools/node_modules/core-js/es/math/sign.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/math/sign.js
rename to src/third_party/devtools/node_modules/core-js/es/math/sign.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/math/sinh.js b/src/third_party/devtools/node_modules/core-js/es/math/sinh.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/math/sinh.js
rename to src/third_party/devtools/node_modules/core-js/es/math/sinh.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/math/tanh.js b/src/third_party/devtools/node_modules/core-js/es/math/tanh.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/math/tanh.js
rename to src/third_party/devtools/node_modules/core-js/es/math/tanh.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/math/to-string-tag.js b/src/third_party/devtools/node_modules/core-js/es/math/to-string-tag.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/math/to-string-tag.js
rename to src/third_party/devtools/node_modules/core-js/es/math/to-string-tag.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/math/trunc.js b/src/third_party/devtools/node_modules/core-js/es/math/trunc.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/math/trunc.js
rename to src/third_party/devtools/node_modules/core-js/es/math/trunc.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/number/constructor.js b/src/third_party/devtools/node_modules/core-js/es/number/constructor.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/number/constructor.js
rename to src/third_party/devtools/node_modules/core-js/es/number/constructor.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/number/epsilon.js b/src/third_party/devtools/node_modules/core-js/es/number/epsilon.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/number/epsilon.js
rename to src/third_party/devtools/node_modules/core-js/es/number/epsilon.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/number/index.js b/src/third_party/devtools/node_modules/core-js/es/number/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/number/index.js
rename to src/third_party/devtools/node_modules/core-js/es/number/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/number/is-finite.js b/src/third_party/devtools/node_modules/core-js/es/number/is-finite.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/number/is-finite.js
rename to src/third_party/devtools/node_modules/core-js/es/number/is-finite.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/number/is-integer.js b/src/third_party/devtools/node_modules/core-js/es/number/is-integer.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/number/is-integer.js
rename to src/third_party/devtools/node_modules/core-js/es/number/is-integer.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/number/is-nan.js b/src/third_party/devtools/node_modules/core-js/es/number/is-nan.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/number/is-nan.js
rename to src/third_party/devtools/node_modules/core-js/es/number/is-nan.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/number/is-safe-integer.js b/src/third_party/devtools/node_modules/core-js/es/number/is-safe-integer.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/number/is-safe-integer.js
rename to src/third_party/devtools/node_modules/core-js/es/number/is-safe-integer.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/number/max-safe-integer.js b/src/third_party/devtools/node_modules/core-js/es/number/max-safe-integer.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/number/max-safe-integer.js
rename to src/third_party/devtools/node_modules/core-js/es/number/max-safe-integer.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/number/min-safe-integer.js b/src/third_party/devtools/node_modules/core-js/es/number/min-safe-integer.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/number/min-safe-integer.js
rename to src/third_party/devtools/node_modules/core-js/es/number/min-safe-integer.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/number/parse-float.js b/src/third_party/devtools/node_modules/core-js/es/number/parse-float.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/number/parse-float.js
rename to src/third_party/devtools/node_modules/core-js/es/number/parse-float.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/number/parse-int.js b/src/third_party/devtools/node_modules/core-js/es/number/parse-int.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/number/parse-int.js
rename to src/third_party/devtools/node_modules/core-js/es/number/parse-int.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/number/to-fixed.js b/src/third_party/devtools/node_modules/core-js/es/number/to-fixed.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/number/to-fixed.js
rename to src/third_party/devtools/node_modules/core-js/es/number/to-fixed.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/number/to-precision.js b/src/third_party/devtools/node_modules/core-js/es/number/to-precision.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/number/to-precision.js
rename to src/third_party/devtools/node_modules/core-js/es/number/to-precision.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/number/virtual/index.js b/src/third_party/devtools/node_modules/core-js/es/number/virtual/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/number/virtual/index.js
rename to src/third_party/devtools/node_modules/core-js/es/number/virtual/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/number/virtual/to-fixed.js b/src/third_party/devtools/node_modules/core-js/es/number/virtual/to-fixed.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/number/virtual/to-fixed.js
rename to src/third_party/devtools/node_modules/core-js/es/number/virtual/to-fixed.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/number/virtual/to-precision.js b/src/third_party/devtools/node_modules/core-js/es/number/virtual/to-precision.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/number/virtual/to-precision.js
rename to src/third_party/devtools/node_modules/core-js/es/number/virtual/to-precision.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/object/assign.js b/src/third_party/devtools/node_modules/core-js/es/object/assign.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/object/assign.js
rename to src/third_party/devtools/node_modules/core-js/es/object/assign.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/object/create.js b/src/third_party/devtools/node_modules/core-js/es/object/create.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/object/create.js
rename to src/third_party/devtools/node_modules/core-js/es/object/create.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/object/define-getter.js b/src/third_party/devtools/node_modules/core-js/es/object/define-getter.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/object/define-getter.js
rename to src/third_party/devtools/node_modules/core-js/es/object/define-getter.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/object/define-properties.js b/src/third_party/devtools/node_modules/core-js/es/object/define-properties.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/object/define-properties.js
rename to src/third_party/devtools/node_modules/core-js/es/object/define-properties.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/object/define-property.js b/src/third_party/devtools/node_modules/core-js/es/object/define-property.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/object/define-property.js
rename to src/third_party/devtools/node_modules/core-js/es/object/define-property.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/object/define-setter.js b/src/third_party/devtools/node_modules/core-js/es/object/define-setter.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/object/define-setter.js
rename to src/third_party/devtools/node_modules/core-js/es/object/define-setter.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/object/entries.js b/src/third_party/devtools/node_modules/core-js/es/object/entries.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/object/entries.js
rename to src/third_party/devtools/node_modules/core-js/es/object/entries.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/object/freeze.js b/src/third_party/devtools/node_modules/core-js/es/object/freeze.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/object/freeze.js
rename to src/third_party/devtools/node_modules/core-js/es/object/freeze.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/object/from-entries.js b/src/third_party/devtools/node_modules/core-js/es/object/from-entries.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/object/from-entries.js
rename to src/third_party/devtools/node_modules/core-js/es/object/from-entries.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/object/get-own-property-descriptor.js b/src/third_party/devtools/node_modules/core-js/es/object/get-own-property-descriptor.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/object/get-own-property-descriptor.js
rename to src/third_party/devtools/node_modules/core-js/es/object/get-own-property-descriptor.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/object/get-own-property-descriptors.js b/src/third_party/devtools/node_modules/core-js/es/object/get-own-property-descriptors.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/object/get-own-property-descriptors.js
rename to src/third_party/devtools/node_modules/core-js/es/object/get-own-property-descriptors.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/object/get-own-property-names.js b/src/third_party/devtools/node_modules/core-js/es/object/get-own-property-names.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/object/get-own-property-names.js
rename to src/third_party/devtools/node_modules/core-js/es/object/get-own-property-names.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/object/get-own-property-symbols.js b/src/third_party/devtools/node_modules/core-js/es/object/get-own-property-symbols.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/object/get-own-property-symbols.js
rename to src/third_party/devtools/node_modules/core-js/es/object/get-own-property-symbols.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/object/get-prototype-of.js b/src/third_party/devtools/node_modules/core-js/es/object/get-prototype-of.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/object/get-prototype-of.js
rename to src/third_party/devtools/node_modules/core-js/es/object/get-prototype-of.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/object/index.js b/src/third_party/devtools/node_modules/core-js/es/object/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/object/index.js
rename to src/third_party/devtools/node_modules/core-js/es/object/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/object/is-extensible.js b/src/third_party/devtools/node_modules/core-js/es/object/is-extensible.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/object/is-extensible.js
rename to src/third_party/devtools/node_modules/core-js/es/object/is-extensible.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/object/is-frozen.js b/src/third_party/devtools/node_modules/core-js/es/object/is-frozen.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/object/is-frozen.js
rename to src/third_party/devtools/node_modules/core-js/es/object/is-frozen.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/object/is-sealed.js b/src/third_party/devtools/node_modules/core-js/es/object/is-sealed.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/object/is-sealed.js
rename to src/third_party/devtools/node_modules/core-js/es/object/is-sealed.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/object/is.js b/src/third_party/devtools/node_modules/core-js/es/object/is.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/object/is.js
rename to src/third_party/devtools/node_modules/core-js/es/object/is.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/object/keys.js b/src/third_party/devtools/node_modules/core-js/es/object/keys.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/object/keys.js
rename to src/third_party/devtools/node_modules/core-js/es/object/keys.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/object/lookup-getter.js b/src/third_party/devtools/node_modules/core-js/es/object/lookup-getter.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/object/lookup-getter.js
rename to src/third_party/devtools/node_modules/core-js/es/object/lookup-getter.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/object/lookup-setter.js b/src/third_party/devtools/node_modules/core-js/es/object/lookup-setter.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/object/lookup-setter.js
rename to src/third_party/devtools/node_modules/core-js/es/object/lookup-setter.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/object/prevent-extensions.js b/src/third_party/devtools/node_modules/core-js/es/object/prevent-extensions.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/object/prevent-extensions.js
rename to src/third_party/devtools/node_modules/core-js/es/object/prevent-extensions.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/object/seal.js b/src/third_party/devtools/node_modules/core-js/es/object/seal.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/object/seal.js
rename to src/third_party/devtools/node_modules/core-js/es/object/seal.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/object/set-prototype-of.js b/src/third_party/devtools/node_modules/core-js/es/object/set-prototype-of.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/object/set-prototype-of.js
rename to src/third_party/devtools/node_modules/core-js/es/object/set-prototype-of.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/object/to-string.js b/src/third_party/devtools/node_modules/core-js/es/object/to-string.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/object/to-string.js
rename to src/third_party/devtools/node_modules/core-js/es/object/to-string.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/object/values.js b/src/third_party/devtools/node_modules/core-js/es/object/values.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/object/values.js
rename to src/third_party/devtools/node_modules/core-js/es/object/values.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/parse-float.js b/src/third_party/devtools/node_modules/core-js/es/parse-float.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/parse-float.js
rename to src/third_party/devtools/node_modules/core-js/es/parse-float.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/parse-int.js b/src/third_party/devtools/node_modules/core-js/es/parse-int.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/parse-int.js
rename to src/third_party/devtools/node_modules/core-js/es/parse-int.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/promise/all-settled.js b/src/third_party/devtools/node_modules/core-js/es/promise/all-settled.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/promise/all-settled.js
rename to src/third_party/devtools/node_modules/core-js/es/promise/all-settled.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/promise/finally.js b/src/third_party/devtools/node_modules/core-js/es/promise/finally.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/promise/finally.js
rename to src/third_party/devtools/node_modules/core-js/es/promise/finally.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/promise/index.js b/src/third_party/devtools/node_modules/core-js/es/promise/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/promise/index.js
rename to src/third_party/devtools/node_modules/core-js/es/promise/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/reflect/apply.js b/src/third_party/devtools/node_modules/core-js/es/reflect/apply.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/reflect/apply.js
rename to src/third_party/devtools/node_modules/core-js/es/reflect/apply.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/reflect/construct.js b/src/third_party/devtools/node_modules/core-js/es/reflect/construct.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/reflect/construct.js
rename to src/third_party/devtools/node_modules/core-js/es/reflect/construct.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/reflect/define-property.js b/src/third_party/devtools/node_modules/core-js/es/reflect/define-property.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/reflect/define-property.js
rename to src/third_party/devtools/node_modules/core-js/es/reflect/define-property.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/reflect/delete-property.js b/src/third_party/devtools/node_modules/core-js/es/reflect/delete-property.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/reflect/delete-property.js
rename to src/third_party/devtools/node_modules/core-js/es/reflect/delete-property.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/reflect/get-own-property-descriptor.js b/src/third_party/devtools/node_modules/core-js/es/reflect/get-own-property-descriptor.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/reflect/get-own-property-descriptor.js
rename to src/third_party/devtools/node_modules/core-js/es/reflect/get-own-property-descriptor.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/reflect/get-prototype-of.js b/src/third_party/devtools/node_modules/core-js/es/reflect/get-prototype-of.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/reflect/get-prototype-of.js
rename to src/third_party/devtools/node_modules/core-js/es/reflect/get-prototype-of.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/reflect/get.js b/src/third_party/devtools/node_modules/core-js/es/reflect/get.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/reflect/get.js
rename to src/third_party/devtools/node_modules/core-js/es/reflect/get.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/reflect/has.js b/src/third_party/devtools/node_modules/core-js/es/reflect/has.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/reflect/has.js
rename to src/third_party/devtools/node_modules/core-js/es/reflect/has.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/reflect/index.js b/src/third_party/devtools/node_modules/core-js/es/reflect/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/reflect/index.js
rename to src/third_party/devtools/node_modules/core-js/es/reflect/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/reflect/is-extensible.js b/src/third_party/devtools/node_modules/core-js/es/reflect/is-extensible.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/reflect/is-extensible.js
rename to src/third_party/devtools/node_modules/core-js/es/reflect/is-extensible.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/reflect/own-keys.js b/src/third_party/devtools/node_modules/core-js/es/reflect/own-keys.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/reflect/own-keys.js
rename to src/third_party/devtools/node_modules/core-js/es/reflect/own-keys.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/reflect/prevent-extensions.js b/src/third_party/devtools/node_modules/core-js/es/reflect/prevent-extensions.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/reflect/prevent-extensions.js
rename to src/third_party/devtools/node_modules/core-js/es/reflect/prevent-extensions.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/reflect/set-prototype-of.js b/src/third_party/devtools/node_modules/core-js/es/reflect/set-prototype-of.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/reflect/set-prototype-of.js
rename to src/third_party/devtools/node_modules/core-js/es/reflect/set-prototype-of.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/reflect/set.js b/src/third_party/devtools/node_modules/core-js/es/reflect/set.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/reflect/set.js
rename to src/third_party/devtools/node_modules/core-js/es/reflect/set.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/regexp/constructor.js b/src/third_party/devtools/node_modules/core-js/es/regexp/constructor.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/regexp/constructor.js
rename to src/third_party/devtools/node_modules/core-js/es/regexp/constructor.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/regexp/flags.js b/src/third_party/devtools/node_modules/core-js/es/regexp/flags.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/regexp/flags.js
rename to src/third_party/devtools/node_modules/core-js/es/regexp/flags.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/regexp/index.js b/src/third_party/devtools/node_modules/core-js/es/regexp/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/regexp/index.js
rename to src/third_party/devtools/node_modules/core-js/es/regexp/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/regexp/match.js b/src/third_party/devtools/node_modules/core-js/es/regexp/match.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/regexp/match.js
rename to src/third_party/devtools/node_modules/core-js/es/regexp/match.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/regexp/replace.js b/src/third_party/devtools/node_modules/core-js/es/regexp/replace.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/regexp/replace.js
rename to src/third_party/devtools/node_modules/core-js/es/regexp/replace.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/regexp/search.js b/src/third_party/devtools/node_modules/core-js/es/regexp/search.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/regexp/search.js
rename to src/third_party/devtools/node_modules/core-js/es/regexp/search.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/regexp/split.js b/src/third_party/devtools/node_modules/core-js/es/regexp/split.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/regexp/split.js
rename to src/third_party/devtools/node_modules/core-js/es/regexp/split.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/regexp/to-string.js b/src/third_party/devtools/node_modules/core-js/es/regexp/to-string.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/regexp/to-string.js
rename to src/third_party/devtools/node_modules/core-js/es/regexp/to-string.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/set/index.js b/src/third_party/devtools/node_modules/core-js/es/set/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/set/index.js
rename to src/third_party/devtools/node_modules/core-js/es/set/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/string/anchor.js b/src/third_party/devtools/node_modules/core-js/es/string/anchor.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/string/anchor.js
rename to src/third_party/devtools/node_modules/core-js/es/string/anchor.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/string/big.js b/src/third_party/devtools/node_modules/core-js/es/string/big.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/string/big.js
rename to src/third_party/devtools/node_modules/core-js/es/string/big.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/string/blink.js b/src/third_party/devtools/node_modules/core-js/es/string/blink.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/string/blink.js
rename to src/third_party/devtools/node_modules/core-js/es/string/blink.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/string/bold.js b/src/third_party/devtools/node_modules/core-js/es/string/bold.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/string/bold.js
rename to src/third_party/devtools/node_modules/core-js/es/string/bold.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/string/code-point-at.js b/src/third_party/devtools/node_modules/core-js/es/string/code-point-at.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/string/code-point-at.js
rename to src/third_party/devtools/node_modules/core-js/es/string/code-point-at.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/string/ends-with.js b/src/third_party/devtools/node_modules/core-js/es/string/ends-with.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/string/ends-with.js
rename to src/third_party/devtools/node_modules/core-js/es/string/ends-with.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/string/fixed.js b/src/third_party/devtools/node_modules/core-js/es/string/fixed.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/string/fixed.js
rename to src/third_party/devtools/node_modules/core-js/es/string/fixed.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/string/fontcolor.js b/src/third_party/devtools/node_modules/core-js/es/string/fontcolor.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/string/fontcolor.js
rename to src/third_party/devtools/node_modules/core-js/es/string/fontcolor.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/string/fontsize.js b/src/third_party/devtools/node_modules/core-js/es/string/fontsize.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/string/fontsize.js
rename to src/third_party/devtools/node_modules/core-js/es/string/fontsize.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/string/from-code-point.js b/src/third_party/devtools/node_modules/core-js/es/string/from-code-point.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/string/from-code-point.js
rename to src/third_party/devtools/node_modules/core-js/es/string/from-code-point.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/string/includes.js b/src/third_party/devtools/node_modules/core-js/es/string/includes.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/string/includes.js
rename to src/third_party/devtools/node_modules/core-js/es/string/includes.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/string/index.js b/src/third_party/devtools/node_modules/core-js/es/string/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/string/index.js
rename to src/third_party/devtools/node_modules/core-js/es/string/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/string/italics.js b/src/third_party/devtools/node_modules/core-js/es/string/italics.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/string/italics.js
rename to src/third_party/devtools/node_modules/core-js/es/string/italics.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/string/iterator.js b/src/third_party/devtools/node_modules/core-js/es/string/iterator.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/string/iterator.js
rename to src/third_party/devtools/node_modules/core-js/es/string/iterator.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/string/link.js b/src/third_party/devtools/node_modules/core-js/es/string/link.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/string/link.js
rename to src/third_party/devtools/node_modules/core-js/es/string/link.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/string/match-all.js b/src/third_party/devtools/node_modules/core-js/es/string/match-all.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/string/match-all.js
rename to src/third_party/devtools/node_modules/core-js/es/string/match-all.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/string/match.js b/src/third_party/devtools/node_modules/core-js/es/string/match.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/string/match.js
rename to src/third_party/devtools/node_modules/core-js/es/string/match.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/string/pad-end.js b/src/third_party/devtools/node_modules/core-js/es/string/pad-end.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/string/pad-end.js
rename to src/third_party/devtools/node_modules/core-js/es/string/pad-end.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/string/pad-start.js b/src/third_party/devtools/node_modules/core-js/es/string/pad-start.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/string/pad-start.js
rename to src/third_party/devtools/node_modules/core-js/es/string/pad-start.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/string/raw.js b/src/third_party/devtools/node_modules/core-js/es/string/raw.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/string/raw.js
rename to src/third_party/devtools/node_modules/core-js/es/string/raw.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/string/repeat.js b/src/third_party/devtools/node_modules/core-js/es/string/repeat.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/string/repeat.js
rename to src/third_party/devtools/node_modules/core-js/es/string/repeat.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/string/replace.js b/src/third_party/devtools/node_modules/core-js/es/string/replace.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/string/replace.js
rename to src/third_party/devtools/node_modules/core-js/es/string/replace.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/string/search.js b/src/third_party/devtools/node_modules/core-js/es/string/search.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/string/search.js
rename to src/third_party/devtools/node_modules/core-js/es/string/search.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/string/small.js b/src/third_party/devtools/node_modules/core-js/es/string/small.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/string/small.js
rename to src/third_party/devtools/node_modules/core-js/es/string/small.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/string/split.js b/src/third_party/devtools/node_modules/core-js/es/string/split.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/string/split.js
rename to src/third_party/devtools/node_modules/core-js/es/string/split.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/string/starts-with.js b/src/third_party/devtools/node_modules/core-js/es/string/starts-with.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/string/starts-with.js
rename to src/third_party/devtools/node_modules/core-js/es/string/starts-with.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/string/strike.js b/src/third_party/devtools/node_modules/core-js/es/string/strike.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/string/strike.js
rename to src/third_party/devtools/node_modules/core-js/es/string/strike.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/string/sub.js b/src/third_party/devtools/node_modules/core-js/es/string/sub.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/string/sub.js
rename to src/third_party/devtools/node_modules/core-js/es/string/sub.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/string/sup.js b/src/third_party/devtools/node_modules/core-js/es/string/sup.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/string/sup.js
rename to src/third_party/devtools/node_modules/core-js/es/string/sup.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/string/trim-end.js b/src/third_party/devtools/node_modules/core-js/es/string/trim-end.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/string/trim-end.js
rename to src/third_party/devtools/node_modules/core-js/es/string/trim-end.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/string/trim-left.js b/src/third_party/devtools/node_modules/core-js/es/string/trim-left.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/string/trim-left.js
rename to src/third_party/devtools/node_modules/core-js/es/string/trim-left.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/string/trim-right.js b/src/third_party/devtools/node_modules/core-js/es/string/trim-right.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/string/trim-right.js
rename to src/third_party/devtools/node_modules/core-js/es/string/trim-right.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/string/trim-start.js b/src/third_party/devtools/node_modules/core-js/es/string/trim-start.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/string/trim-start.js
rename to src/third_party/devtools/node_modules/core-js/es/string/trim-start.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/string/trim.js b/src/third_party/devtools/node_modules/core-js/es/string/trim.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/string/trim.js
rename to src/third_party/devtools/node_modules/core-js/es/string/trim.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/string/virtual/anchor.js b/src/third_party/devtools/node_modules/core-js/es/string/virtual/anchor.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/string/virtual/anchor.js
rename to src/third_party/devtools/node_modules/core-js/es/string/virtual/anchor.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/string/virtual/big.js b/src/third_party/devtools/node_modules/core-js/es/string/virtual/big.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/string/virtual/big.js
rename to src/third_party/devtools/node_modules/core-js/es/string/virtual/big.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/string/virtual/blink.js b/src/third_party/devtools/node_modules/core-js/es/string/virtual/blink.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/string/virtual/blink.js
rename to src/third_party/devtools/node_modules/core-js/es/string/virtual/blink.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/string/virtual/bold.js b/src/third_party/devtools/node_modules/core-js/es/string/virtual/bold.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/string/virtual/bold.js
rename to src/third_party/devtools/node_modules/core-js/es/string/virtual/bold.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/string/virtual/code-point-at.js b/src/third_party/devtools/node_modules/core-js/es/string/virtual/code-point-at.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/string/virtual/code-point-at.js
rename to src/third_party/devtools/node_modules/core-js/es/string/virtual/code-point-at.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/string/virtual/ends-with.js b/src/third_party/devtools/node_modules/core-js/es/string/virtual/ends-with.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/string/virtual/ends-with.js
rename to src/third_party/devtools/node_modules/core-js/es/string/virtual/ends-with.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/string/virtual/fixed.js b/src/third_party/devtools/node_modules/core-js/es/string/virtual/fixed.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/string/virtual/fixed.js
rename to src/third_party/devtools/node_modules/core-js/es/string/virtual/fixed.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/string/virtual/fontcolor.js b/src/third_party/devtools/node_modules/core-js/es/string/virtual/fontcolor.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/string/virtual/fontcolor.js
rename to src/third_party/devtools/node_modules/core-js/es/string/virtual/fontcolor.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/string/virtual/fontsize.js b/src/third_party/devtools/node_modules/core-js/es/string/virtual/fontsize.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/string/virtual/fontsize.js
rename to src/third_party/devtools/node_modules/core-js/es/string/virtual/fontsize.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/string/virtual/includes.js b/src/third_party/devtools/node_modules/core-js/es/string/virtual/includes.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/string/virtual/includes.js
rename to src/third_party/devtools/node_modules/core-js/es/string/virtual/includes.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/string/virtual/index.js b/src/third_party/devtools/node_modules/core-js/es/string/virtual/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/string/virtual/index.js
rename to src/third_party/devtools/node_modules/core-js/es/string/virtual/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/string/virtual/italics.js b/src/third_party/devtools/node_modules/core-js/es/string/virtual/italics.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/string/virtual/italics.js
rename to src/third_party/devtools/node_modules/core-js/es/string/virtual/italics.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/string/virtual/iterator.js b/src/third_party/devtools/node_modules/core-js/es/string/virtual/iterator.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/string/virtual/iterator.js
rename to src/third_party/devtools/node_modules/core-js/es/string/virtual/iterator.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/string/virtual/link.js b/src/third_party/devtools/node_modules/core-js/es/string/virtual/link.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/string/virtual/link.js
rename to src/third_party/devtools/node_modules/core-js/es/string/virtual/link.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/string/virtual/match-all.js b/src/third_party/devtools/node_modules/core-js/es/string/virtual/match-all.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/string/virtual/match-all.js
rename to src/third_party/devtools/node_modules/core-js/es/string/virtual/match-all.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/string/virtual/pad-end.js b/src/third_party/devtools/node_modules/core-js/es/string/virtual/pad-end.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/string/virtual/pad-end.js
rename to src/third_party/devtools/node_modules/core-js/es/string/virtual/pad-end.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/string/virtual/pad-start.js b/src/third_party/devtools/node_modules/core-js/es/string/virtual/pad-start.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/string/virtual/pad-start.js
rename to src/third_party/devtools/node_modules/core-js/es/string/virtual/pad-start.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/string/virtual/repeat.js b/src/third_party/devtools/node_modules/core-js/es/string/virtual/repeat.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/string/virtual/repeat.js
rename to src/third_party/devtools/node_modules/core-js/es/string/virtual/repeat.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/string/virtual/small.js b/src/third_party/devtools/node_modules/core-js/es/string/virtual/small.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/string/virtual/small.js
rename to src/third_party/devtools/node_modules/core-js/es/string/virtual/small.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/string/virtual/starts-with.js b/src/third_party/devtools/node_modules/core-js/es/string/virtual/starts-with.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/string/virtual/starts-with.js
rename to src/third_party/devtools/node_modules/core-js/es/string/virtual/starts-with.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/string/virtual/strike.js b/src/third_party/devtools/node_modules/core-js/es/string/virtual/strike.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/string/virtual/strike.js
rename to src/third_party/devtools/node_modules/core-js/es/string/virtual/strike.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/string/virtual/sub.js b/src/third_party/devtools/node_modules/core-js/es/string/virtual/sub.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/string/virtual/sub.js
rename to src/third_party/devtools/node_modules/core-js/es/string/virtual/sub.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/string/virtual/sup.js b/src/third_party/devtools/node_modules/core-js/es/string/virtual/sup.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/string/virtual/sup.js
rename to src/third_party/devtools/node_modules/core-js/es/string/virtual/sup.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/string/virtual/trim-end.js b/src/third_party/devtools/node_modules/core-js/es/string/virtual/trim-end.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/string/virtual/trim-end.js
rename to src/third_party/devtools/node_modules/core-js/es/string/virtual/trim-end.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/string/virtual/trim-left.js b/src/third_party/devtools/node_modules/core-js/es/string/virtual/trim-left.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/string/virtual/trim-left.js
rename to src/third_party/devtools/node_modules/core-js/es/string/virtual/trim-left.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/string/virtual/trim-right.js b/src/third_party/devtools/node_modules/core-js/es/string/virtual/trim-right.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/string/virtual/trim-right.js
rename to src/third_party/devtools/node_modules/core-js/es/string/virtual/trim-right.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/string/virtual/trim-start.js b/src/third_party/devtools/node_modules/core-js/es/string/virtual/trim-start.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/string/virtual/trim-start.js
rename to src/third_party/devtools/node_modules/core-js/es/string/virtual/trim-start.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/string/virtual/trim.js b/src/third_party/devtools/node_modules/core-js/es/string/virtual/trim.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/string/virtual/trim.js
rename to src/third_party/devtools/node_modules/core-js/es/string/virtual/trim.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/symbol/async-iterator.js b/src/third_party/devtools/node_modules/core-js/es/symbol/async-iterator.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/symbol/async-iterator.js
rename to src/third_party/devtools/node_modules/core-js/es/symbol/async-iterator.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/symbol/description.js b/src/third_party/devtools/node_modules/core-js/es/symbol/description.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/symbol/description.js
rename to src/third_party/devtools/node_modules/core-js/es/symbol/description.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/symbol/for.js b/src/third_party/devtools/node_modules/core-js/es/symbol/for.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/symbol/for.js
rename to src/third_party/devtools/node_modules/core-js/es/symbol/for.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/symbol/has-instance.js b/src/third_party/devtools/node_modules/core-js/es/symbol/has-instance.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/symbol/has-instance.js
rename to src/third_party/devtools/node_modules/core-js/es/symbol/has-instance.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/symbol/index.js b/src/third_party/devtools/node_modules/core-js/es/symbol/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/symbol/index.js
rename to src/third_party/devtools/node_modules/core-js/es/symbol/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/symbol/is-concat-spreadable.js b/src/third_party/devtools/node_modules/core-js/es/symbol/is-concat-spreadable.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/symbol/is-concat-spreadable.js
rename to src/third_party/devtools/node_modules/core-js/es/symbol/is-concat-spreadable.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/symbol/iterator.js b/src/third_party/devtools/node_modules/core-js/es/symbol/iterator.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/symbol/iterator.js
rename to src/third_party/devtools/node_modules/core-js/es/symbol/iterator.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/symbol/key-for.js b/src/third_party/devtools/node_modules/core-js/es/symbol/key-for.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/symbol/key-for.js
rename to src/third_party/devtools/node_modules/core-js/es/symbol/key-for.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/symbol/match-all.js b/src/third_party/devtools/node_modules/core-js/es/symbol/match-all.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/symbol/match-all.js
rename to src/third_party/devtools/node_modules/core-js/es/symbol/match-all.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/symbol/match.js b/src/third_party/devtools/node_modules/core-js/es/symbol/match.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/symbol/match.js
rename to src/third_party/devtools/node_modules/core-js/es/symbol/match.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/symbol/replace.js b/src/third_party/devtools/node_modules/core-js/es/symbol/replace.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/symbol/replace.js
rename to src/third_party/devtools/node_modules/core-js/es/symbol/replace.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/symbol/search.js b/src/third_party/devtools/node_modules/core-js/es/symbol/search.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/symbol/search.js
rename to src/third_party/devtools/node_modules/core-js/es/symbol/search.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/symbol/species.js b/src/third_party/devtools/node_modules/core-js/es/symbol/species.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/symbol/species.js
rename to src/third_party/devtools/node_modules/core-js/es/symbol/species.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/symbol/split.js b/src/third_party/devtools/node_modules/core-js/es/symbol/split.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/symbol/split.js
rename to src/third_party/devtools/node_modules/core-js/es/symbol/split.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/symbol/to-primitive.js b/src/third_party/devtools/node_modules/core-js/es/symbol/to-primitive.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/symbol/to-primitive.js
rename to src/third_party/devtools/node_modules/core-js/es/symbol/to-primitive.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/symbol/to-string-tag.js b/src/third_party/devtools/node_modules/core-js/es/symbol/to-string-tag.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/symbol/to-string-tag.js
rename to src/third_party/devtools/node_modules/core-js/es/symbol/to-string-tag.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/symbol/unscopables.js b/src/third_party/devtools/node_modules/core-js/es/symbol/unscopables.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/symbol/unscopables.js
rename to src/third_party/devtools/node_modules/core-js/es/symbol/unscopables.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/typed-array/copy-within.js b/src/third_party/devtools/node_modules/core-js/es/typed-array/copy-within.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/typed-array/copy-within.js
rename to src/third_party/devtools/node_modules/core-js/es/typed-array/copy-within.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/typed-array/entries.js b/src/third_party/devtools/node_modules/core-js/es/typed-array/entries.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/typed-array/entries.js
rename to src/third_party/devtools/node_modules/core-js/es/typed-array/entries.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/typed-array/every.js b/src/third_party/devtools/node_modules/core-js/es/typed-array/every.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/typed-array/every.js
rename to src/third_party/devtools/node_modules/core-js/es/typed-array/every.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/typed-array/fill.js b/src/third_party/devtools/node_modules/core-js/es/typed-array/fill.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/typed-array/fill.js
rename to src/third_party/devtools/node_modules/core-js/es/typed-array/fill.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/typed-array/filter.js b/src/third_party/devtools/node_modules/core-js/es/typed-array/filter.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/typed-array/filter.js
rename to src/third_party/devtools/node_modules/core-js/es/typed-array/filter.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/typed-array/find-index.js b/src/third_party/devtools/node_modules/core-js/es/typed-array/find-index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/typed-array/find-index.js
rename to src/third_party/devtools/node_modules/core-js/es/typed-array/find-index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/typed-array/find.js b/src/third_party/devtools/node_modules/core-js/es/typed-array/find.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/typed-array/find.js
rename to src/third_party/devtools/node_modules/core-js/es/typed-array/find.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/typed-array/float32-array.js b/src/third_party/devtools/node_modules/core-js/es/typed-array/float32-array.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/typed-array/float32-array.js
rename to src/third_party/devtools/node_modules/core-js/es/typed-array/float32-array.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/typed-array/float64-array.js b/src/third_party/devtools/node_modules/core-js/es/typed-array/float64-array.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/typed-array/float64-array.js
rename to src/third_party/devtools/node_modules/core-js/es/typed-array/float64-array.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/typed-array/for-each.js b/src/third_party/devtools/node_modules/core-js/es/typed-array/for-each.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/typed-array/for-each.js
rename to src/third_party/devtools/node_modules/core-js/es/typed-array/for-each.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/typed-array/from.js b/src/third_party/devtools/node_modules/core-js/es/typed-array/from.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/typed-array/from.js
rename to src/third_party/devtools/node_modules/core-js/es/typed-array/from.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/typed-array/includes.js b/src/third_party/devtools/node_modules/core-js/es/typed-array/includes.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/typed-array/includes.js
rename to src/third_party/devtools/node_modules/core-js/es/typed-array/includes.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/typed-array/index-of.js b/src/third_party/devtools/node_modules/core-js/es/typed-array/index-of.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/typed-array/index-of.js
rename to src/third_party/devtools/node_modules/core-js/es/typed-array/index-of.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/typed-array/index.js b/src/third_party/devtools/node_modules/core-js/es/typed-array/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/typed-array/index.js
rename to src/third_party/devtools/node_modules/core-js/es/typed-array/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/typed-array/int16-array.js b/src/third_party/devtools/node_modules/core-js/es/typed-array/int16-array.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/typed-array/int16-array.js
rename to src/third_party/devtools/node_modules/core-js/es/typed-array/int16-array.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/typed-array/int32-array.js b/src/third_party/devtools/node_modules/core-js/es/typed-array/int32-array.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/typed-array/int32-array.js
rename to src/third_party/devtools/node_modules/core-js/es/typed-array/int32-array.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/typed-array/int8-array.js b/src/third_party/devtools/node_modules/core-js/es/typed-array/int8-array.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/typed-array/int8-array.js
rename to src/third_party/devtools/node_modules/core-js/es/typed-array/int8-array.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/typed-array/iterator.js b/src/third_party/devtools/node_modules/core-js/es/typed-array/iterator.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/typed-array/iterator.js
rename to src/third_party/devtools/node_modules/core-js/es/typed-array/iterator.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/typed-array/join.js b/src/third_party/devtools/node_modules/core-js/es/typed-array/join.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/typed-array/join.js
rename to src/third_party/devtools/node_modules/core-js/es/typed-array/join.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/typed-array/keys.js b/src/third_party/devtools/node_modules/core-js/es/typed-array/keys.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/typed-array/keys.js
rename to src/third_party/devtools/node_modules/core-js/es/typed-array/keys.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/typed-array/last-index-of.js b/src/third_party/devtools/node_modules/core-js/es/typed-array/last-index-of.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/typed-array/last-index-of.js
rename to src/third_party/devtools/node_modules/core-js/es/typed-array/last-index-of.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/typed-array/map.js b/src/third_party/devtools/node_modules/core-js/es/typed-array/map.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/typed-array/map.js
rename to src/third_party/devtools/node_modules/core-js/es/typed-array/map.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/typed-array/methods.js b/src/third_party/devtools/node_modules/core-js/es/typed-array/methods.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/typed-array/methods.js
rename to src/third_party/devtools/node_modules/core-js/es/typed-array/methods.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/typed-array/of.js b/src/third_party/devtools/node_modules/core-js/es/typed-array/of.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/typed-array/of.js
rename to src/third_party/devtools/node_modules/core-js/es/typed-array/of.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/typed-array/reduce-right.js b/src/third_party/devtools/node_modules/core-js/es/typed-array/reduce-right.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/typed-array/reduce-right.js
rename to src/third_party/devtools/node_modules/core-js/es/typed-array/reduce-right.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/typed-array/reduce.js b/src/third_party/devtools/node_modules/core-js/es/typed-array/reduce.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/typed-array/reduce.js
rename to src/third_party/devtools/node_modules/core-js/es/typed-array/reduce.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/typed-array/reverse.js b/src/third_party/devtools/node_modules/core-js/es/typed-array/reverse.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/typed-array/reverse.js
rename to src/third_party/devtools/node_modules/core-js/es/typed-array/reverse.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/typed-array/set.js b/src/third_party/devtools/node_modules/core-js/es/typed-array/set.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/typed-array/set.js
rename to src/third_party/devtools/node_modules/core-js/es/typed-array/set.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/typed-array/slice.js b/src/third_party/devtools/node_modules/core-js/es/typed-array/slice.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/typed-array/slice.js
rename to src/third_party/devtools/node_modules/core-js/es/typed-array/slice.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/typed-array/some.js b/src/third_party/devtools/node_modules/core-js/es/typed-array/some.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/typed-array/some.js
rename to src/third_party/devtools/node_modules/core-js/es/typed-array/some.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/typed-array/sort.js b/src/third_party/devtools/node_modules/core-js/es/typed-array/sort.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/typed-array/sort.js
rename to src/third_party/devtools/node_modules/core-js/es/typed-array/sort.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/typed-array/subarray.js b/src/third_party/devtools/node_modules/core-js/es/typed-array/subarray.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/typed-array/subarray.js
rename to src/third_party/devtools/node_modules/core-js/es/typed-array/subarray.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/typed-array/to-locale-string.js b/src/third_party/devtools/node_modules/core-js/es/typed-array/to-locale-string.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/typed-array/to-locale-string.js
rename to src/third_party/devtools/node_modules/core-js/es/typed-array/to-locale-string.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/typed-array/to-string.js b/src/third_party/devtools/node_modules/core-js/es/typed-array/to-string.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/typed-array/to-string.js
rename to src/third_party/devtools/node_modules/core-js/es/typed-array/to-string.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/typed-array/uint16-array.js b/src/third_party/devtools/node_modules/core-js/es/typed-array/uint16-array.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/typed-array/uint16-array.js
rename to src/third_party/devtools/node_modules/core-js/es/typed-array/uint16-array.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/typed-array/uint32-array.js b/src/third_party/devtools/node_modules/core-js/es/typed-array/uint32-array.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/typed-array/uint32-array.js
rename to src/third_party/devtools/node_modules/core-js/es/typed-array/uint32-array.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/typed-array/uint8-array.js b/src/third_party/devtools/node_modules/core-js/es/typed-array/uint8-array.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/typed-array/uint8-array.js
rename to src/third_party/devtools/node_modules/core-js/es/typed-array/uint8-array.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/typed-array/uint8-clamped-array.js b/src/third_party/devtools/node_modules/core-js/es/typed-array/uint8-clamped-array.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/typed-array/uint8-clamped-array.js
rename to src/third_party/devtools/node_modules/core-js/es/typed-array/uint8-clamped-array.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/typed-array/values.js b/src/third_party/devtools/node_modules/core-js/es/typed-array/values.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/typed-array/values.js
rename to src/third_party/devtools/node_modules/core-js/es/typed-array/values.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/weak-map/index.js b/src/third_party/devtools/node_modules/core-js/es/weak-map/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/weak-map/index.js
rename to src/third_party/devtools/node_modules/core-js/es/weak-map/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/es/weak-set/index.js b/src/third_party/devtools/node_modules/core-js/es/weak-set/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/es/weak-set/index.js
rename to src/third_party/devtools/node_modules/core-js/es/weak-set/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/README.md b/src/third_party/devtools/node_modules/core-js/features/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/README.md
rename to src/third_party/devtools/node_modules/core-js/features/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/aggregate-error.js b/src/third_party/devtools/node_modules/core-js/features/aggregate-error.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/aggregate-error.js
rename to src/third_party/devtools/node_modules/core-js/features/aggregate-error.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/array-buffer/constructor.js b/src/third_party/devtools/node_modules/core-js/features/array-buffer/constructor.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/array-buffer/constructor.js
rename to src/third_party/devtools/node_modules/core-js/features/array-buffer/constructor.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/array-buffer/index.js b/src/third_party/devtools/node_modules/core-js/features/array-buffer/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/array-buffer/index.js
rename to src/third_party/devtools/node_modules/core-js/features/array-buffer/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/array-buffer/is-view.js b/src/third_party/devtools/node_modules/core-js/features/array-buffer/is-view.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/array-buffer/is-view.js
rename to src/third_party/devtools/node_modules/core-js/features/array-buffer/is-view.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/array-buffer/slice.js b/src/third_party/devtools/node_modules/core-js/features/array-buffer/slice.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/array-buffer/slice.js
rename to src/third_party/devtools/node_modules/core-js/features/array-buffer/slice.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/array/concat.js b/src/third_party/devtools/node_modules/core-js/features/array/concat.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/array/concat.js
rename to src/third_party/devtools/node_modules/core-js/features/array/concat.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/array/copy-within.js b/src/third_party/devtools/node_modules/core-js/features/array/copy-within.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/array/copy-within.js
rename to src/third_party/devtools/node_modules/core-js/features/array/copy-within.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/array/entries.js b/src/third_party/devtools/node_modules/core-js/features/array/entries.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/array/entries.js
rename to src/third_party/devtools/node_modules/core-js/features/array/entries.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/array/every.js b/src/third_party/devtools/node_modules/core-js/features/array/every.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/array/every.js
rename to src/third_party/devtools/node_modules/core-js/features/array/every.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/array/fill.js b/src/third_party/devtools/node_modules/core-js/features/array/fill.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/array/fill.js
rename to src/third_party/devtools/node_modules/core-js/features/array/fill.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/array/filter.js b/src/third_party/devtools/node_modules/core-js/features/array/filter.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/array/filter.js
rename to src/third_party/devtools/node_modules/core-js/features/array/filter.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/array/find-index.js b/src/third_party/devtools/node_modules/core-js/features/array/find-index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/array/find-index.js
rename to src/third_party/devtools/node_modules/core-js/features/array/find-index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/array/find.js b/src/third_party/devtools/node_modules/core-js/features/array/find.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/array/find.js
rename to src/third_party/devtools/node_modules/core-js/features/array/find.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/array/flat-map.js b/src/third_party/devtools/node_modules/core-js/features/array/flat-map.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/array/flat-map.js
rename to src/third_party/devtools/node_modules/core-js/features/array/flat-map.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/array/flat.js b/src/third_party/devtools/node_modules/core-js/features/array/flat.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/array/flat.js
rename to src/third_party/devtools/node_modules/core-js/features/array/flat.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/array/for-each.js b/src/third_party/devtools/node_modules/core-js/features/array/for-each.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/array/for-each.js
rename to src/third_party/devtools/node_modules/core-js/features/array/for-each.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/array/from.js b/src/third_party/devtools/node_modules/core-js/features/array/from.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/array/from.js
rename to src/third_party/devtools/node_modules/core-js/features/array/from.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/array/includes.js b/src/third_party/devtools/node_modules/core-js/features/array/includes.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/array/includes.js
rename to src/third_party/devtools/node_modules/core-js/features/array/includes.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/array/index-of.js b/src/third_party/devtools/node_modules/core-js/features/array/index-of.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/array/index-of.js
rename to src/third_party/devtools/node_modules/core-js/features/array/index-of.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/array/index.js b/src/third_party/devtools/node_modules/core-js/features/array/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/array/index.js
rename to src/third_party/devtools/node_modules/core-js/features/array/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/array/is-array.js b/src/third_party/devtools/node_modules/core-js/features/array/is-array.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/array/is-array.js
rename to src/third_party/devtools/node_modules/core-js/features/array/is-array.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/array/is-template-object.js b/src/third_party/devtools/node_modules/core-js/features/array/is-template-object.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/array/is-template-object.js
rename to src/third_party/devtools/node_modules/core-js/features/array/is-template-object.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/array/iterator.js b/src/third_party/devtools/node_modules/core-js/features/array/iterator.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/array/iterator.js
rename to src/third_party/devtools/node_modules/core-js/features/array/iterator.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/array/join.js b/src/third_party/devtools/node_modules/core-js/features/array/join.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/array/join.js
rename to src/third_party/devtools/node_modules/core-js/features/array/join.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/array/keys.js b/src/third_party/devtools/node_modules/core-js/features/array/keys.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/array/keys.js
rename to src/third_party/devtools/node_modules/core-js/features/array/keys.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/array/last-index-of.js b/src/third_party/devtools/node_modules/core-js/features/array/last-index-of.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/array/last-index-of.js
rename to src/third_party/devtools/node_modules/core-js/features/array/last-index-of.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/array/last-index.js b/src/third_party/devtools/node_modules/core-js/features/array/last-index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/array/last-index.js
rename to src/third_party/devtools/node_modules/core-js/features/array/last-index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/array/last-item.js b/src/third_party/devtools/node_modules/core-js/features/array/last-item.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/array/last-item.js
rename to src/third_party/devtools/node_modules/core-js/features/array/last-item.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/array/map.js b/src/third_party/devtools/node_modules/core-js/features/array/map.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/array/map.js
rename to src/third_party/devtools/node_modules/core-js/features/array/map.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/array/of.js b/src/third_party/devtools/node_modules/core-js/features/array/of.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/array/of.js
rename to src/third_party/devtools/node_modules/core-js/features/array/of.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/array/reduce-right.js b/src/third_party/devtools/node_modules/core-js/features/array/reduce-right.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/array/reduce-right.js
rename to src/third_party/devtools/node_modules/core-js/features/array/reduce-right.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/array/reduce.js b/src/third_party/devtools/node_modules/core-js/features/array/reduce.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/array/reduce.js
rename to src/third_party/devtools/node_modules/core-js/features/array/reduce.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/array/reverse.js b/src/third_party/devtools/node_modules/core-js/features/array/reverse.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/array/reverse.js
rename to src/third_party/devtools/node_modules/core-js/features/array/reverse.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/array/slice.js b/src/third_party/devtools/node_modules/core-js/features/array/slice.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/array/slice.js
rename to src/third_party/devtools/node_modules/core-js/features/array/slice.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/array/some.js b/src/third_party/devtools/node_modules/core-js/features/array/some.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/array/some.js
rename to src/third_party/devtools/node_modules/core-js/features/array/some.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/array/sort.js b/src/third_party/devtools/node_modules/core-js/features/array/sort.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/array/sort.js
rename to src/third_party/devtools/node_modules/core-js/features/array/sort.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/array/splice.js b/src/third_party/devtools/node_modules/core-js/features/array/splice.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/array/splice.js
rename to src/third_party/devtools/node_modules/core-js/features/array/splice.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/array/values.js b/src/third_party/devtools/node_modules/core-js/features/array/values.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/array/values.js
rename to src/third_party/devtools/node_modules/core-js/features/array/values.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/array/virtual/concat.js b/src/third_party/devtools/node_modules/core-js/features/array/virtual/concat.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/array/virtual/concat.js
rename to src/third_party/devtools/node_modules/core-js/features/array/virtual/concat.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/array/virtual/copy-within.js b/src/third_party/devtools/node_modules/core-js/features/array/virtual/copy-within.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/array/virtual/copy-within.js
rename to src/third_party/devtools/node_modules/core-js/features/array/virtual/copy-within.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/array/virtual/entries.js b/src/third_party/devtools/node_modules/core-js/features/array/virtual/entries.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/array/virtual/entries.js
rename to src/third_party/devtools/node_modules/core-js/features/array/virtual/entries.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/array/virtual/every.js b/src/third_party/devtools/node_modules/core-js/features/array/virtual/every.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/array/virtual/every.js
rename to src/third_party/devtools/node_modules/core-js/features/array/virtual/every.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/array/virtual/fill.js b/src/third_party/devtools/node_modules/core-js/features/array/virtual/fill.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/array/virtual/fill.js
rename to src/third_party/devtools/node_modules/core-js/features/array/virtual/fill.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/array/virtual/filter.js b/src/third_party/devtools/node_modules/core-js/features/array/virtual/filter.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/array/virtual/filter.js
rename to src/third_party/devtools/node_modules/core-js/features/array/virtual/filter.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/array/virtual/find-index.js b/src/third_party/devtools/node_modules/core-js/features/array/virtual/find-index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/array/virtual/find-index.js
rename to src/third_party/devtools/node_modules/core-js/features/array/virtual/find-index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/array/virtual/find.js b/src/third_party/devtools/node_modules/core-js/features/array/virtual/find.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/array/virtual/find.js
rename to src/third_party/devtools/node_modules/core-js/features/array/virtual/find.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/array/virtual/flat-map.js b/src/third_party/devtools/node_modules/core-js/features/array/virtual/flat-map.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/array/virtual/flat-map.js
rename to src/third_party/devtools/node_modules/core-js/features/array/virtual/flat-map.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/array/virtual/flat.js b/src/third_party/devtools/node_modules/core-js/features/array/virtual/flat.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/array/virtual/flat.js
rename to src/third_party/devtools/node_modules/core-js/features/array/virtual/flat.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/array/virtual/for-each.js b/src/third_party/devtools/node_modules/core-js/features/array/virtual/for-each.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/array/virtual/for-each.js
rename to src/third_party/devtools/node_modules/core-js/features/array/virtual/for-each.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/array/virtual/includes.js b/src/third_party/devtools/node_modules/core-js/features/array/virtual/includes.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/array/virtual/includes.js
rename to src/third_party/devtools/node_modules/core-js/features/array/virtual/includes.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/array/virtual/index-of.js b/src/third_party/devtools/node_modules/core-js/features/array/virtual/index-of.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/array/virtual/index-of.js
rename to src/third_party/devtools/node_modules/core-js/features/array/virtual/index-of.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/array/virtual/index.js b/src/third_party/devtools/node_modules/core-js/features/array/virtual/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/array/virtual/index.js
rename to src/third_party/devtools/node_modules/core-js/features/array/virtual/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/array/virtual/iterator.js b/src/third_party/devtools/node_modules/core-js/features/array/virtual/iterator.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/array/virtual/iterator.js
rename to src/third_party/devtools/node_modules/core-js/features/array/virtual/iterator.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/array/virtual/join.js b/src/third_party/devtools/node_modules/core-js/features/array/virtual/join.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/array/virtual/join.js
rename to src/third_party/devtools/node_modules/core-js/features/array/virtual/join.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/array/virtual/keys.js b/src/third_party/devtools/node_modules/core-js/features/array/virtual/keys.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/array/virtual/keys.js
rename to src/third_party/devtools/node_modules/core-js/features/array/virtual/keys.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/array/virtual/last-index-of.js b/src/third_party/devtools/node_modules/core-js/features/array/virtual/last-index-of.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/array/virtual/last-index-of.js
rename to src/third_party/devtools/node_modules/core-js/features/array/virtual/last-index-of.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/array/virtual/map.js b/src/third_party/devtools/node_modules/core-js/features/array/virtual/map.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/array/virtual/map.js
rename to src/third_party/devtools/node_modules/core-js/features/array/virtual/map.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/array/virtual/reduce-right.js b/src/third_party/devtools/node_modules/core-js/features/array/virtual/reduce-right.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/array/virtual/reduce-right.js
rename to src/third_party/devtools/node_modules/core-js/features/array/virtual/reduce-right.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/array/virtual/reduce.js b/src/third_party/devtools/node_modules/core-js/features/array/virtual/reduce.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/array/virtual/reduce.js
rename to src/third_party/devtools/node_modules/core-js/features/array/virtual/reduce.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/array/virtual/reverse.js b/src/third_party/devtools/node_modules/core-js/features/array/virtual/reverse.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/array/virtual/reverse.js
rename to src/third_party/devtools/node_modules/core-js/features/array/virtual/reverse.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/array/virtual/slice.js b/src/third_party/devtools/node_modules/core-js/features/array/virtual/slice.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/array/virtual/slice.js
rename to src/third_party/devtools/node_modules/core-js/features/array/virtual/slice.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/array/virtual/some.js b/src/third_party/devtools/node_modules/core-js/features/array/virtual/some.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/array/virtual/some.js
rename to src/third_party/devtools/node_modules/core-js/features/array/virtual/some.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/array/virtual/sort.js b/src/third_party/devtools/node_modules/core-js/features/array/virtual/sort.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/array/virtual/sort.js
rename to src/third_party/devtools/node_modules/core-js/features/array/virtual/sort.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/array/virtual/splice.js b/src/third_party/devtools/node_modules/core-js/features/array/virtual/splice.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/array/virtual/splice.js
rename to src/third_party/devtools/node_modules/core-js/features/array/virtual/splice.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/array/virtual/values.js b/src/third_party/devtools/node_modules/core-js/features/array/virtual/values.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/array/virtual/values.js
rename to src/third_party/devtools/node_modules/core-js/features/array/virtual/values.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/async-iterator/as-indexed-pairs.js b/src/third_party/devtools/node_modules/core-js/features/async-iterator/as-indexed-pairs.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/async-iterator/as-indexed-pairs.js
rename to src/third_party/devtools/node_modules/core-js/features/async-iterator/as-indexed-pairs.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/async-iterator/drop.js b/src/third_party/devtools/node_modules/core-js/features/async-iterator/drop.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/async-iterator/drop.js
rename to src/third_party/devtools/node_modules/core-js/features/async-iterator/drop.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/async-iterator/every.js b/src/third_party/devtools/node_modules/core-js/features/async-iterator/every.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/async-iterator/every.js
rename to src/third_party/devtools/node_modules/core-js/features/async-iterator/every.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/async-iterator/filter.js b/src/third_party/devtools/node_modules/core-js/features/async-iterator/filter.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/async-iterator/filter.js
rename to src/third_party/devtools/node_modules/core-js/features/async-iterator/filter.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/async-iterator/find.js b/src/third_party/devtools/node_modules/core-js/features/async-iterator/find.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/async-iterator/find.js
rename to src/third_party/devtools/node_modules/core-js/features/async-iterator/find.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/async-iterator/flat-map.js b/src/third_party/devtools/node_modules/core-js/features/async-iterator/flat-map.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/async-iterator/flat-map.js
rename to src/third_party/devtools/node_modules/core-js/features/async-iterator/flat-map.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/async-iterator/for-each.js b/src/third_party/devtools/node_modules/core-js/features/async-iterator/for-each.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/async-iterator/for-each.js
rename to src/third_party/devtools/node_modules/core-js/features/async-iterator/for-each.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/async-iterator/from.js b/src/third_party/devtools/node_modules/core-js/features/async-iterator/from.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/async-iterator/from.js
rename to src/third_party/devtools/node_modules/core-js/features/async-iterator/from.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/async-iterator/index.js b/src/third_party/devtools/node_modules/core-js/features/async-iterator/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/async-iterator/index.js
rename to src/third_party/devtools/node_modules/core-js/features/async-iterator/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/async-iterator/map.js b/src/third_party/devtools/node_modules/core-js/features/async-iterator/map.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/async-iterator/map.js
rename to src/third_party/devtools/node_modules/core-js/features/async-iterator/map.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/async-iterator/reduce.js b/src/third_party/devtools/node_modules/core-js/features/async-iterator/reduce.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/async-iterator/reduce.js
rename to src/third_party/devtools/node_modules/core-js/features/async-iterator/reduce.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/async-iterator/some.js b/src/third_party/devtools/node_modules/core-js/features/async-iterator/some.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/async-iterator/some.js
rename to src/third_party/devtools/node_modules/core-js/features/async-iterator/some.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/async-iterator/take.js b/src/third_party/devtools/node_modules/core-js/features/async-iterator/take.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/async-iterator/take.js
rename to src/third_party/devtools/node_modules/core-js/features/async-iterator/take.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/async-iterator/to-array.js b/src/third_party/devtools/node_modules/core-js/features/async-iterator/to-array.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/async-iterator/to-array.js
rename to src/third_party/devtools/node_modules/core-js/features/async-iterator/to-array.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/clear-immediate.js b/src/third_party/devtools/node_modules/core-js/features/clear-immediate.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/clear-immediate.js
rename to src/third_party/devtools/node_modules/core-js/features/clear-immediate.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/composite-key.js b/src/third_party/devtools/node_modules/core-js/features/composite-key.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/composite-key.js
rename to src/third_party/devtools/node_modules/core-js/features/composite-key.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/composite-symbol.js b/src/third_party/devtools/node_modules/core-js/features/composite-symbol.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/composite-symbol.js
rename to src/third_party/devtools/node_modules/core-js/features/composite-symbol.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/data-view/index.js b/src/third_party/devtools/node_modules/core-js/features/data-view/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/data-view/index.js
rename to src/third_party/devtools/node_modules/core-js/features/data-view/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/date/index.js b/src/third_party/devtools/node_modules/core-js/features/date/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/date/index.js
rename to src/third_party/devtools/node_modules/core-js/features/date/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/date/now.js b/src/third_party/devtools/node_modules/core-js/features/date/now.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/date/now.js
rename to src/third_party/devtools/node_modules/core-js/features/date/now.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/date/to-iso-string.js b/src/third_party/devtools/node_modules/core-js/features/date/to-iso-string.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/date/to-iso-string.js
rename to src/third_party/devtools/node_modules/core-js/features/date/to-iso-string.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/date/to-json.js b/src/third_party/devtools/node_modules/core-js/features/date/to-json.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/date/to-json.js
rename to src/third_party/devtools/node_modules/core-js/features/date/to-json.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/date/to-primitive.js b/src/third_party/devtools/node_modules/core-js/features/date/to-primitive.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/date/to-primitive.js
rename to src/third_party/devtools/node_modules/core-js/features/date/to-primitive.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/date/to-string.js b/src/third_party/devtools/node_modules/core-js/features/date/to-string.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/date/to-string.js
rename to src/third_party/devtools/node_modules/core-js/features/date/to-string.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/dom-collections/for-each.js b/src/third_party/devtools/node_modules/core-js/features/dom-collections/for-each.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/dom-collections/for-each.js
rename to src/third_party/devtools/node_modules/core-js/features/dom-collections/for-each.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/dom-collections/index.js b/src/third_party/devtools/node_modules/core-js/features/dom-collections/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/dom-collections/index.js
rename to src/third_party/devtools/node_modules/core-js/features/dom-collections/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/dom-collections/iterator.js b/src/third_party/devtools/node_modules/core-js/features/dom-collections/iterator.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/dom-collections/iterator.js
rename to src/third_party/devtools/node_modules/core-js/features/dom-collections/iterator.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/function/bind.js b/src/third_party/devtools/node_modules/core-js/features/function/bind.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/function/bind.js
rename to src/third_party/devtools/node_modules/core-js/features/function/bind.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/function/has-instance.js b/src/third_party/devtools/node_modules/core-js/features/function/has-instance.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/function/has-instance.js
rename to src/third_party/devtools/node_modules/core-js/features/function/has-instance.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/function/index.js b/src/third_party/devtools/node_modules/core-js/features/function/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/function/index.js
rename to src/third_party/devtools/node_modules/core-js/features/function/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/function/name.js b/src/third_party/devtools/node_modules/core-js/features/function/name.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/function/name.js
rename to src/third_party/devtools/node_modules/core-js/features/function/name.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/function/virtual/bind.js b/src/third_party/devtools/node_modules/core-js/features/function/virtual/bind.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/function/virtual/bind.js
rename to src/third_party/devtools/node_modules/core-js/features/function/virtual/bind.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/function/virtual/index.js b/src/third_party/devtools/node_modules/core-js/features/function/virtual/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/function/virtual/index.js
rename to src/third_party/devtools/node_modules/core-js/features/function/virtual/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/get-iterator-method.js b/src/third_party/devtools/node_modules/core-js/features/get-iterator-method.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/get-iterator-method.js
rename to src/third_party/devtools/node_modules/core-js/features/get-iterator-method.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/get-iterator.js b/src/third_party/devtools/node_modules/core-js/features/get-iterator.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/get-iterator.js
rename to src/third_party/devtools/node_modules/core-js/features/get-iterator.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/global-this.js b/src/third_party/devtools/node_modules/core-js/features/global-this.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/global-this.js
rename to src/third_party/devtools/node_modules/core-js/features/global-this.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/index.js b/src/third_party/devtools/node_modules/core-js/features/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/index.js
rename to src/third_party/devtools/node_modules/core-js/features/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/instance/at.js b/src/third_party/devtools/node_modules/core-js/features/instance/at.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/instance/at.js
rename to src/third_party/devtools/node_modules/core-js/features/instance/at.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/instance/bind.js b/src/third_party/devtools/node_modules/core-js/features/instance/bind.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/instance/bind.js
rename to src/third_party/devtools/node_modules/core-js/features/instance/bind.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/instance/code-point-at.js b/src/third_party/devtools/node_modules/core-js/features/instance/code-point-at.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/instance/code-point-at.js
rename to src/third_party/devtools/node_modules/core-js/features/instance/code-point-at.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/instance/code-points.js b/src/third_party/devtools/node_modules/core-js/features/instance/code-points.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/instance/code-points.js
rename to src/third_party/devtools/node_modules/core-js/features/instance/code-points.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/instance/concat.js b/src/third_party/devtools/node_modules/core-js/features/instance/concat.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/instance/concat.js
rename to src/third_party/devtools/node_modules/core-js/features/instance/concat.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/instance/copy-within.js b/src/third_party/devtools/node_modules/core-js/features/instance/copy-within.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/instance/copy-within.js
rename to src/third_party/devtools/node_modules/core-js/features/instance/copy-within.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/instance/ends-with.js b/src/third_party/devtools/node_modules/core-js/features/instance/ends-with.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/instance/ends-with.js
rename to src/third_party/devtools/node_modules/core-js/features/instance/ends-with.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/instance/entries.js b/src/third_party/devtools/node_modules/core-js/features/instance/entries.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/instance/entries.js
rename to src/third_party/devtools/node_modules/core-js/features/instance/entries.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/instance/every.js b/src/third_party/devtools/node_modules/core-js/features/instance/every.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/instance/every.js
rename to src/third_party/devtools/node_modules/core-js/features/instance/every.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/instance/fill.js b/src/third_party/devtools/node_modules/core-js/features/instance/fill.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/instance/fill.js
rename to src/third_party/devtools/node_modules/core-js/features/instance/fill.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/instance/filter.js b/src/third_party/devtools/node_modules/core-js/features/instance/filter.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/instance/filter.js
rename to src/third_party/devtools/node_modules/core-js/features/instance/filter.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/instance/find-index.js b/src/third_party/devtools/node_modules/core-js/features/instance/find-index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/instance/find-index.js
rename to src/third_party/devtools/node_modules/core-js/features/instance/find-index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/instance/find.js b/src/third_party/devtools/node_modules/core-js/features/instance/find.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/instance/find.js
rename to src/third_party/devtools/node_modules/core-js/features/instance/find.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/instance/flags.js b/src/third_party/devtools/node_modules/core-js/features/instance/flags.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/instance/flags.js
rename to src/third_party/devtools/node_modules/core-js/features/instance/flags.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/instance/flat-map.js b/src/third_party/devtools/node_modules/core-js/features/instance/flat-map.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/instance/flat-map.js
rename to src/third_party/devtools/node_modules/core-js/features/instance/flat-map.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/instance/flat.js b/src/third_party/devtools/node_modules/core-js/features/instance/flat.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/instance/flat.js
rename to src/third_party/devtools/node_modules/core-js/features/instance/flat.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/instance/for-each.js b/src/third_party/devtools/node_modules/core-js/features/instance/for-each.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/instance/for-each.js
rename to src/third_party/devtools/node_modules/core-js/features/instance/for-each.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/instance/includes.js b/src/third_party/devtools/node_modules/core-js/features/instance/includes.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/instance/includes.js
rename to src/third_party/devtools/node_modules/core-js/features/instance/includes.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/instance/index-of.js b/src/third_party/devtools/node_modules/core-js/features/instance/index-of.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/instance/index-of.js
rename to src/third_party/devtools/node_modules/core-js/features/instance/index-of.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/instance/keys.js b/src/third_party/devtools/node_modules/core-js/features/instance/keys.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/instance/keys.js
rename to src/third_party/devtools/node_modules/core-js/features/instance/keys.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/instance/last-index-of.js b/src/third_party/devtools/node_modules/core-js/features/instance/last-index-of.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/instance/last-index-of.js
rename to src/third_party/devtools/node_modules/core-js/features/instance/last-index-of.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/instance/map.js b/src/third_party/devtools/node_modules/core-js/features/instance/map.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/instance/map.js
rename to src/third_party/devtools/node_modules/core-js/features/instance/map.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/instance/match-all.js b/src/third_party/devtools/node_modules/core-js/features/instance/match-all.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/instance/match-all.js
rename to src/third_party/devtools/node_modules/core-js/features/instance/match-all.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/instance/pad-end.js b/src/third_party/devtools/node_modules/core-js/features/instance/pad-end.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/instance/pad-end.js
rename to src/third_party/devtools/node_modules/core-js/features/instance/pad-end.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/instance/pad-start.js b/src/third_party/devtools/node_modules/core-js/features/instance/pad-start.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/instance/pad-start.js
rename to src/third_party/devtools/node_modules/core-js/features/instance/pad-start.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/instance/reduce-right.js b/src/third_party/devtools/node_modules/core-js/features/instance/reduce-right.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/instance/reduce-right.js
rename to src/third_party/devtools/node_modules/core-js/features/instance/reduce-right.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/instance/reduce.js b/src/third_party/devtools/node_modules/core-js/features/instance/reduce.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/instance/reduce.js
rename to src/third_party/devtools/node_modules/core-js/features/instance/reduce.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/instance/repeat.js b/src/third_party/devtools/node_modules/core-js/features/instance/repeat.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/instance/repeat.js
rename to src/third_party/devtools/node_modules/core-js/features/instance/repeat.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/instance/replace-all.js b/src/third_party/devtools/node_modules/core-js/features/instance/replace-all.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/instance/replace-all.js
rename to src/third_party/devtools/node_modules/core-js/features/instance/replace-all.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/instance/reverse.js b/src/third_party/devtools/node_modules/core-js/features/instance/reverse.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/instance/reverse.js
rename to src/third_party/devtools/node_modules/core-js/features/instance/reverse.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/instance/slice.js b/src/third_party/devtools/node_modules/core-js/features/instance/slice.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/instance/slice.js
rename to src/third_party/devtools/node_modules/core-js/features/instance/slice.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/instance/some.js b/src/third_party/devtools/node_modules/core-js/features/instance/some.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/instance/some.js
rename to src/third_party/devtools/node_modules/core-js/features/instance/some.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/instance/sort.js b/src/third_party/devtools/node_modules/core-js/features/instance/sort.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/instance/sort.js
rename to src/third_party/devtools/node_modules/core-js/features/instance/sort.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/instance/splice.js b/src/third_party/devtools/node_modules/core-js/features/instance/splice.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/instance/splice.js
rename to src/third_party/devtools/node_modules/core-js/features/instance/splice.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/instance/starts-with.js b/src/third_party/devtools/node_modules/core-js/features/instance/starts-with.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/instance/starts-with.js
rename to src/third_party/devtools/node_modules/core-js/features/instance/starts-with.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/instance/trim-end.js b/src/third_party/devtools/node_modules/core-js/features/instance/trim-end.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/instance/trim-end.js
rename to src/third_party/devtools/node_modules/core-js/features/instance/trim-end.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/instance/trim-left.js b/src/third_party/devtools/node_modules/core-js/features/instance/trim-left.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/instance/trim-left.js
rename to src/third_party/devtools/node_modules/core-js/features/instance/trim-left.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/instance/trim-right.js b/src/third_party/devtools/node_modules/core-js/features/instance/trim-right.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/instance/trim-right.js
rename to src/third_party/devtools/node_modules/core-js/features/instance/trim-right.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/instance/trim-start.js b/src/third_party/devtools/node_modules/core-js/features/instance/trim-start.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/instance/trim-start.js
rename to src/third_party/devtools/node_modules/core-js/features/instance/trim-start.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/instance/trim.js b/src/third_party/devtools/node_modules/core-js/features/instance/trim.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/instance/trim.js
rename to src/third_party/devtools/node_modules/core-js/features/instance/trim.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/instance/values.js b/src/third_party/devtools/node_modules/core-js/features/instance/values.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/instance/values.js
rename to src/third_party/devtools/node_modules/core-js/features/instance/values.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/is-iterable.js b/src/third_party/devtools/node_modules/core-js/features/is-iterable.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/is-iterable.js
rename to src/third_party/devtools/node_modules/core-js/features/is-iterable.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/iterator/as-indexed-pairs.js b/src/third_party/devtools/node_modules/core-js/features/iterator/as-indexed-pairs.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/iterator/as-indexed-pairs.js
rename to src/third_party/devtools/node_modules/core-js/features/iterator/as-indexed-pairs.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/iterator/drop.js b/src/third_party/devtools/node_modules/core-js/features/iterator/drop.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/iterator/drop.js
rename to src/third_party/devtools/node_modules/core-js/features/iterator/drop.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/iterator/every.js b/src/third_party/devtools/node_modules/core-js/features/iterator/every.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/iterator/every.js
rename to src/third_party/devtools/node_modules/core-js/features/iterator/every.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/iterator/filter.js b/src/third_party/devtools/node_modules/core-js/features/iterator/filter.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/iterator/filter.js
rename to src/third_party/devtools/node_modules/core-js/features/iterator/filter.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/iterator/find.js b/src/third_party/devtools/node_modules/core-js/features/iterator/find.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/iterator/find.js
rename to src/third_party/devtools/node_modules/core-js/features/iterator/find.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/iterator/flat-map.js b/src/third_party/devtools/node_modules/core-js/features/iterator/flat-map.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/iterator/flat-map.js
rename to src/third_party/devtools/node_modules/core-js/features/iterator/flat-map.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/iterator/for-each.js b/src/third_party/devtools/node_modules/core-js/features/iterator/for-each.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/iterator/for-each.js
rename to src/third_party/devtools/node_modules/core-js/features/iterator/for-each.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/iterator/from.js b/src/third_party/devtools/node_modules/core-js/features/iterator/from.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/iterator/from.js
rename to src/third_party/devtools/node_modules/core-js/features/iterator/from.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/iterator/index.js b/src/third_party/devtools/node_modules/core-js/features/iterator/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/iterator/index.js
rename to src/third_party/devtools/node_modules/core-js/features/iterator/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/iterator/map.js b/src/third_party/devtools/node_modules/core-js/features/iterator/map.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/iterator/map.js
rename to src/third_party/devtools/node_modules/core-js/features/iterator/map.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/iterator/reduce.js b/src/third_party/devtools/node_modules/core-js/features/iterator/reduce.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/iterator/reduce.js
rename to src/third_party/devtools/node_modules/core-js/features/iterator/reduce.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/iterator/some.js b/src/third_party/devtools/node_modules/core-js/features/iterator/some.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/iterator/some.js
rename to src/third_party/devtools/node_modules/core-js/features/iterator/some.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/iterator/take.js b/src/third_party/devtools/node_modules/core-js/features/iterator/take.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/iterator/take.js
rename to src/third_party/devtools/node_modules/core-js/features/iterator/take.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/iterator/to-array.js b/src/third_party/devtools/node_modules/core-js/features/iterator/to-array.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/iterator/to-array.js
rename to src/third_party/devtools/node_modules/core-js/features/iterator/to-array.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/json/index.js b/src/third_party/devtools/node_modules/core-js/features/json/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/json/index.js
rename to src/third_party/devtools/node_modules/core-js/features/json/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/json/stringify.js b/src/third_party/devtools/node_modules/core-js/features/json/stringify.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/json/stringify.js
rename to src/third_party/devtools/node_modules/core-js/features/json/stringify.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/json/to-string-tag.js b/src/third_party/devtools/node_modules/core-js/features/json/to-string-tag.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/json/to-string-tag.js
rename to src/third_party/devtools/node_modules/core-js/features/json/to-string-tag.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/map/delete-all.js b/src/third_party/devtools/node_modules/core-js/features/map/delete-all.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/map/delete-all.js
rename to src/third_party/devtools/node_modules/core-js/features/map/delete-all.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/map/every.js b/src/third_party/devtools/node_modules/core-js/features/map/every.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/map/every.js
rename to src/third_party/devtools/node_modules/core-js/features/map/every.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/map/filter.js b/src/third_party/devtools/node_modules/core-js/features/map/filter.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/map/filter.js
rename to src/third_party/devtools/node_modules/core-js/features/map/filter.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/map/find-key.js b/src/third_party/devtools/node_modules/core-js/features/map/find-key.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/map/find-key.js
rename to src/third_party/devtools/node_modules/core-js/features/map/find-key.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/map/find.js b/src/third_party/devtools/node_modules/core-js/features/map/find.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/map/find.js
rename to src/third_party/devtools/node_modules/core-js/features/map/find.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/map/from.js b/src/third_party/devtools/node_modules/core-js/features/map/from.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/map/from.js
rename to src/third_party/devtools/node_modules/core-js/features/map/from.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/map/group-by.js b/src/third_party/devtools/node_modules/core-js/features/map/group-by.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/map/group-by.js
rename to src/third_party/devtools/node_modules/core-js/features/map/group-by.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/map/includes.js b/src/third_party/devtools/node_modules/core-js/features/map/includes.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/map/includes.js
rename to src/third_party/devtools/node_modules/core-js/features/map/includes.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/map/index.js b/src/third_party/devtools/node_modules/core-js/features/map/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/map/index.js
rename to src/third_party/devtools/node_modules/core-js/features/map/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/map/key-by.js b/src/third_party/devtools/node_modules/core-js/features/map/key-by.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/map/key-by.js
rename to src/third_party/devtools/node_modules/core-js/features/map/key-by.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/map/key-of.js b/src/third_party/devtools/node_modules/core-js/features/map/key-of.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/map/key-of.js
rename to src/third_party/devtools/node_modules/core-js/features/map/key-of.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/map/map-keys.js b/src/third_party/devtools/node_modules/core-js/features/map/map-keys.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/map/map-keys.js
rename to src/third_party/devtools/node_modules/core-js/features/map/map-keys.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/map/map-values.js b/src/third_party/devtools/node_modules/core-js/features/map/map-values.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/map/map-values.js
rename to src/third_party/devtools/node_modules/core-js/features/map/map-values.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/map/merge.js b/src/third_party/devtools/node_modules/core-js/features/map/merge.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/map/merge.js
rename to src/third_party/devtools/node_modules/core-js/features/map/merge.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/map/of.js b/src/third_party/devtools/node_modules/core-js/features/map/of.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/map/of.js
rename to src/third_party/devtools/node_modules/core-js/features/map/of.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/map/reduce.js b/src/third_party/devtools/node_modules/core-js/features/map/reduce.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/map/reduce.js
rename to src/third_party/devtools/node_modules/core-js/features/map/reduce.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/map/some.js b/src/third_party/devtools/node_modules/core-js/features/map/some.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/map/some.js
rename to src/third_party/devtools/node_modules/core-js/features/map/some.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/map/update-or-insert.js b/src/third_party/devtools/node_modules/core-js/features/map/update-or-insert.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/map/update-or-insert.js
rename to src/third_party/devtools/node_modules/core-js/features/map/update-or-insert.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/map/update.js b/src/third_party/devtools/node_modules/core-js/features/map/update.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/map/update.js
rename to src/third_party/devtools/node_modules/core-js/features/map/update.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/map/upsert.js b/src/third_party/devtools/node_modules/core-js/features/map/upsert.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/map/upsert.js
rename to src/third_party/devtools/node_modules/core-js/features/map/upsert.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/math/acosh.js b/src/third_party/devtools/node_modules/core-js/features/math/acosh.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/math/acosh.js
rename to src/third_party/devtools/node_modules/core-js/features/math/acosh.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/math/asinh.js b/src/third_party/devtools/node_modules/core-js/features/math/asinh.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/math/asinh.js
rename to src/third_party/devtools/node_modules/core-js/features/math/asinh.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/math/atanh.js b/src/third_party/devtools/node_modules/core-js/features/math/atanh.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/math/atanh.js
rename to src/third_party/devtools/node_modules/core-js/features/math/atanh.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/math/cbrt.js b/src/third_party/devtools/node_modules/core-js/features/math/cbrt.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/math/cbrt.js
rename to src/third_party/devtools/node_modules/core-js/features/math/cbrt.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/math/clamp.js b/src/third_party/devtools/node_modules/core-js/features/math/clamp.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/math/clamp.js
rename to src/third_party/devtools/node_modules/core-js/features/math/clamp.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/math/clz32.js b/src/third_party/devtools/node_modules/core-js/features/math/clz32.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/math/clz32.js
rename to src/third_party/devtools/node_modules/core-js/features/math/clz32.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/math/cosh.js b/src/third_party/devtools/node_modules/core-js/features/math/cosh.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/math/cosh.js
rename to src/third_party/devtools/node_modules/core-js/features/math/cosh.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/math/deg-per-rad.js b/src/third_party/devtools/node_modules/core-js/features/math/deg-per-rad.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/math/deg-per-rad.js
rename to src/third_party/devtools/node_modules/core-js/features/math/deg-per-rad.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/math/degrees.js b/src/third_party/devtools/node_modules/core-js/features/math/degrees.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/math/degrees.js
rename to src/third_party/devtools/node_modules/core-js/features/math/degrees.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/math/expm1.js b/src/third_party/devtools/node_modules/core-js/features/math/expm1.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/math/expm1.js
rename to src/third_party/devtools/node_modules/core-js/features/math/expm1.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/math/fround.js b/src/third_party/devtools/node_modules/core-js/features/math/fround.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/math/fround.js
rename to src/third_party/devtools/node_modules/core-js/features/math/fround.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/math/fscale.js b/src/third_party/devtools/node_modules/core-js/features/math/fscale.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/math/fscale.js
rename to src/third_party/devtools/node_modules/core-js/features/math/fscale.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/math/hypot.js b/src/third_party/devtools/node_modules/core-js/features/math/hypot.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/math/hypot.js
rename to src/third_party/devtools/node_modules/core-js/features/math/hypot.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/math/iaddh.js b/src/third_party/devtools/node_modules/core-js/features/math/iaddh.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/math/iaddh.js
rename to src/third_party/devtools/node_modules/core-js/features/math/iaddh.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/math/imul.js b/src/third_party/devtools/node_modules/core-js/features/math/imul.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/math/imul.js
rename to src/third_party/devtools/node_modules/core-js/features/math/imul.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/math/imulh.js b/src/third_party/devtools/node_modules/core-js/features/math/imulh.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/math/imulh.js
rename to src/third_party/devtools/node_modules/core-js/features/math/imulh.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/math/index.js b/src/third_party/devtools/node_modules/core-js/features/math/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/math/index.js
rename to src/third_party/devtools/node_modules/core-js/features/math/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/math/isubh.js b/src/third_party/devtools/node_modules/core-js/features/math/isubh.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/math/isubh.js
rename to src/third_party/devtools/node_modules/core-js/features/math/isubh.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/math/log10.js b/src/third_party/devtools/node_modules/core-js/features/math/log10.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/math/log10.js
rename to src/third_party/devtools/node_modules/core-js/features/math/log10.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/math/log1p.js b/src/third_party/devtools/node_modules/core-js/features/math/log1p.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/math/log1p.js
rename to src/third_party/devtools/node_modules/core-js/features/math/log1p.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/math/log2.js b/src/third_party/devtools/node_modules/core-js/features/math/log2.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/math/log2.js
rename to src/third_party/devtools/node_modules/core-js/features/math/log2.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/math/rad-per-deg.js b/src/third_party/devtools/node_modules/core-js/features/math/rad-per-deg.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/math/rad-per-deg.js
rename to src/third_party/devtools/node_modules/core-js/features/math/rad-per-deg.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/math/radians.js b/src/third_party/devtools/node_modules/core-js/features/math/radians.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/math/radians.js
rename to src/third_party/devtools/node_modules/core-js/features/math/radians.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/math/scale.js b/src/third_party/devtools/node_modules/core-js/features/math/scale.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/math/scale.js
rename to src/third_party/devtools/node_modules/core-js/features/math/scale.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/math/seeded-prng.js b/src/third_party/devtools/node_modules/core-js/features/math/seeded-prng.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/math/seeded-prng.js
rename to src/third_party/devtools/node_modules/core-js/features/math/seeded-prng.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/math/sign.js b/src/third_party/devtools/node_modules/core-js/features/math/sign.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/math/sign.js
rename to src/third_party/devtools/node_modules/core-js/features/math/sign.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/math/signbit.js b/src/third_party/devtools/node_modules/core-js/features/math/signbit.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/math/signbit.js
rename to src/third_party/devtools/node_modules/core-js/features/math/signbit.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/math/sinh.js b/src/third_party/devtools/node_modules/core-js/features/math/sinh.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/math/sinh.js
rename to src/third_party/devtools/node_modules/core-js/features/math/sinh.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/math/tanh.js b/src/third_party/devtools/node_modules/core-js/features/math/tanh.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/math/tanh.js
rename to src/third_party/devtools/node_modules/core-js/features/math/tanh.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/math/to-string-tag.js b/src/third_party/devtools/node_modules/core-js/features/math/to-string-tag.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/math/to-string-tag.js
rename to src/third_party/devtools/node_modules/core-js/features/math/to-string-tag.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/math/trunc.js b/src/third_party/devtools/node_modules/core-js/features/math/trunc.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/math/trunc.js
rename to src/third_party/devtools/node_modules/core-js/features/math/trunc.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/math/umulh.js b/src/third_party/devtools/node_modules/core-js/features/math/umulh.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/math/umulh.js
rename to src/third_party/devtools/node_modules/core-js/features/math/umulh.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/number/constructor.js b/src/third_party/devtools/node_modules/core-js/features/number/constructor.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/number/constructor.js
rename to src/third_party/devtools/node_modules/core-js/features/number/constructor.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/number/epsilon.js b/src/third_party/devtools/node_modules/core-js/features/number/epsilon.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/number/epsilon.js
rename to src/third_party/devtools/node_modules/core-js/features/number/epsilon.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/number/from-string.js b/src/third_party/devtools/node_modules/core-js/features/number/from-string.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/number/from-string.js
rename to src/third_party/devtools/node_modules/core-js/features/number/from-string.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/number/index.js b/src/third_party/devtools/node_modules/core-js/features/number/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/number/index.js
rename to src/third_party/devtools/node_modules/core-js/features/number/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/number/is-finite.js b/src/third_party/devtools/node_modules/core-js/features/number/is-finite.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/number/is-finite.js
rename to src/third_party/devtools/node_modules/core-js/features/number/is-finite.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/number/is-integer.js b/src/third_party/devtools/node_modules/core-js/features/number/is-integer.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/number/is-integer.js
rename to src/third_party/devtools/node_modules/core-js/features/number/is-integer.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/number/is-nan.js b/src/third_party/devtools/node_modules/core-js/features/number/is-nan.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/number/is-nan.js
rename to src/third_party/devtools/node_modules/core-js/features/number/is-nan.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/number/is-safe-integer.js b/src/third_party/devtools/node_modules/core-js/features/number/is-safe-integer.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/number/is-safe-integer.js
rename to src/third_party/devtools/node_modules/core-js/features/number/is-safe-integer.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/number/max-safe-integer.js b/src/third_party/devtools/node_modules/core-js/features/number/max-safe-integer.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/number/max-safe-integer.js
rename to src/third_party/devtools/node_modules/core-js/features/number/max-safe-integer.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/number/min-safe-integer.js b/src/third_party/devtools/node_modules/core-js/features/number/min-safe-integer.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/number/min-safe-integer.js
rename to src/third_party/devtools/node_modules/core-js/features/number/min-safe-integer.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/number/parse-float.js b/src/third_party/devtools/node_modules/core-js/features/number/parse-float.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/number/parse-float.js
rename to src/third_party/devtools/node_modules/core-js/features/number/parse-float.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/number/parse-int.js b/src/third_party/devtools/node_modules/core-js/features/number/parse-int.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/number/parse-int.js
rename to src/third_party/devtools/node_modules/core-js/features/number/parse-int.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/number/to-fixed.js b/src/third_party/devtools/node_modules/core-js/features/number/to-fixed.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/number/to-fixed.js
rename to src/third_party/devtools/node_modules/core-js/features/number/to-fixed.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/number/to-precision.js b/src/third_party/devtools/node_modules/core-js/features/number/to-precision.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/number/to-precision.js
rename to src/third_party/devtools/node_modules/core-js/features/number/to-precision.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/number/virtual/index.js b/src/third_party/devtools/node_modules/core-js/features/number/virtual/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/number/virtual/index.js
rename to src/third_party/devtools/node_modules/core-js/features/number/virtual/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/number/virtual/to-fixed.js b/src/third_party/devtools/node_modules/core-js/features/number/virtual/to-fixed.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/number/virtual/to-fixed.js
rename to src/third_party/devtools/node_modules/core-js/features/number/virtual/to-fixed.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/number/virtual/to-precision.js b/src/third_party/devtools/node_modules/core-js/features/number/virtual/to-precision.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/number/virtual/to-precision.js
rename to src/third_party/devtools/node_modules/core-js/features/number/virtual/to-precision.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/object/assign.js b/src/third_party/devtools/node_modules/core-js/features/object/assign.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/object/assign.js
rename to src/third_party/devtools/node_modules/core-js/features/object/assign.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/object/create.js b/src/third_party/devtools/node_modules/core-js/features/object/create.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/object/create.js
rename to src/third_party/devtools/node_modules/core-js/features/object/create.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/object/define-getter.js b/src/third_party/devtools/node_modules/core-js/features/object/define-getter.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/object/define-getter.js
rename to src/third_party/devtools/node_modules/core-js/features/object/define-getter.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/object/define-properties.js b/src/third_party/devtools/node_modules/core-js/features/object/define-properties.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/object/define-properties.js
rename to src/third_party/devtools/node_modules/core-js/features/object/define-properties.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/object/define-property.js b/src/third_party/devtools/node_modules/core-js/features/object/define-property.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/object/define-property.js
rename to src/third_party/devtools/node_modules/core-js/features/object/define-property.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/object/define-setter.js b/src/third_party/devtools/node_modules/core-js/features/object/define-setter.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/object/define-setter.js
rename to src/third_party/devtools/node_modules/core-js/features/object/define-setter.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/object/entries.js b/src/third_party/devtools/node_modules/core-js/features/object/entries.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/object/entries.js
rename to src/third_party/devtools/node_modules/core-js/features/object/entries.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/object/freeze.js b/src/third_party/devtools/node_modules/core-js/features/object/freeze.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/object/freeze.js
rename to src/third_party/devtools/node_modules/core-js/features/object/freeze.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/object/from-entries.js b/src/third_party/devtools/node_modules/core-js/features/object/from-entries.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/object/from-entries.js
rename to src/third_party/devtools/node_modules/core-js/features/object/from-entries.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/object/get-own-property-descriptor.js b/src/third_party/devtools/node_modules/core-js/features/object/get-own-property-descriptor.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/object/get-own-property-descriptor.js
rename to src/third_party/devtools/node_modules/core-js/features/object/get-own-property-descriptor.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/object/get-own-property-descriptors.js b/src/third_party/devtools/node_modules/core-js/features/object/get-own-property-descriptors.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/object/get-own-property-descriptors.js
rename to src/third_party/devtools/node_modules/core-js/features/object/get-own-property-descriptors.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/object/get-own-property-names.js b/src/third_party/devtools/node_modules/core-js/features/object/get-own-property-names.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/object/get-own-property-names.js
rename to src/third_party/devtools/node_modules/core-js/features/object/get-own-property-names.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/object/get-own-property-symbols.js b/src/third_party/devtools/node_modules/core-js/features/object/get-own-property-symbols.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/object/get-own-property-symbols.js
rename to src/third_party/devtools/node_modules/core-js/features/object/get-own-property-symbols.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/object/get-prototype-of.js b/src/third_party/devtools/node_modules/core-js/features/object/get-prototype-of.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/object/get-prototype-of.js
rename to src/third_party/devtools/node_modules/core-js/features/object/get-prototype-of.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/object/index.js b/src/third_party/devtools/node_modules/core-js/features/object/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/object/index.js
rename to src/third_party/devtools/node_modules/core-js/features/object/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/object/is-extensible.js b/src/third_party/devtools/node_modules/core-js/features/object/is-extensible.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/object/is-extensible.js
rename to src/third_party/devtools/node_modules/core-js/features/object/is-extensible.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/object/is-frozen.js b/src/third_party/devtools/node_modules/core-js/features/object/is-frozen.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/object/is-frozen.js
rename to src/third_party/devtools/node_modules/core-js/features/object/is-frozen.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/object/is-sealed.js b/src/third_party/devtools/node_modules/core-js/features/object/is-sealed.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/object/is-sealed.js
rename to src/third_party/devtools/node_modules/core-js/features/object/is-sealed.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/object/is.js b/src/third_party/devtools/node_modules/core-js/features/object/is.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/object/is.js
rename to src/third_party/devtools/node_modules/core-js/features/object/is.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/object/keys.js b/src/third_party/devtools/node_modules/core-js/features/object/keys.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/object/keys.js
rename to src/third_party/devtools/node_modules/core-js/features/object/keys.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/object/lookup-getter.js b/src/third_party/devtools/node_modules/core-js/features/object/lookup-getter.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/object/lookup-getter.js
rename to src/third_party/devtools/node_modules/core-js/features/object/lookup-getter.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/object/lookup-setter.js b/src/third_party/devtools/node_modules/core-js/features/object/lookup-setter.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/object/lookup-setter.js
rename to src/third_party/devtools/node_modules/core-js/features/object/lookup-setter.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/object/prevent-extensions.js b/src/third_party/devtools/node_modules/core-js/features/object/prevent-extensions.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/object/prevent-extensions.js
rename to src/third_party/devtools/node_modules/core-js/features/object/prevent-extensions.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/object/seal.js b/src/third_party/devtools/node_modules/core-js/features/object/seal.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/object/seal.js
rename to src/third_party/devtools/node_modules/core-js/features/object/seal.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/object/set-prototype-of.js b/src/third_party/devtools/node_modules/core-js/features/object/set-prototype-of.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/object/set-prototype-of.js
rename to src/third_party/devtools/node_modules/core-js/features/object/set-prototype-of.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/object/to-string.js b/src/third_party/devtools/node_modules/core-js/features/object/to-string.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/object/to-string.js
rename to src/third_party/devtools/node_modules/core-js/features/object/to-string.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/object/values.js b/src/third_party/devtools/node_modules/core-js/features/object/values.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/object/values.js
rename to src/third_party/devtools/node_modules/core-js/features/object/values.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/observable/index.js b/src/third_party/devtools/node_modules/core-js/features/observable/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/observable/index.js
rename to src/third_party/devtools/node_modules/core-js/features/observable/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/parse-float.js b/src/third_party/devtools/node_modules/core-js/features/parse-float.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/parse-float.js
rename to src/third_party/devtools/node_modules/core-js/features/parse-float.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/parse-int.js b/src/third_party/devtools/node_modules/core-js/features/parse-int.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/parse-int.js
rename to src/third_party/devtools/node_modules/core-js/features/parse-int.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/promise/all-settled.js b/src/third_party/devtools/node_modules/core-js/features/promise/all-settled.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/promise/all-settled.js
rename to src/third_party/devtools/node_modules/core-js/features/promise/all-settled.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/promise/any.js b/src/third_party/devtools/node_modules/core-js/features/promise/any.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/promise/any.js
rename to src/third_party/devtools/node_modules/core-js/features/promise/any.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/promise/finally.js b/src/third_party/devtools/node_modules/core-js/features/promise/finally.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/promise/finally.js
rename to src/third_party/devtools/node_modules/core-js/features/promise/finally.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/promise/index.js b/src/third_party/devtools/node_modules/core-js/features/promise/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/promise/index.js
rename to src/third_party/devtools/node_modules/core-js/features/promise/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/promise/try.js b/src/third_party/devtools/node_modules/core-js/features/promise/try.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/promise/try.js
rename to src/third_party/devtools/node_modules/core-js/features/promise/try.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/queue-microtask.js b/src/third_party/devtools/node_modules/core-js/features/queue-microtask.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/queue-microtask.js
rename to src/third_party/devtools/node_modules/core-js/features/queue-microtask.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/reflect/apply.js b/src/third_party/devtools/node_modules/core-js/features/reflect/apply.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/reflect/apply.js
rename to src/third_party/devtools/node_modules/core-js/features/reflect/apply.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/reflect/construct.js b/src/third_party/devtools/node_modules/core-js/features/reflect/construct.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/reflect/construct.js
rename to src/third_party/devtools/node_modules/core-js/features/reflect/construct.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/reflect/define-metadata.js b/src/third_party/devtools/node_modules/core-js/features/reflect/define-metadata.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/reflect/define-metadata.js
rename to src/third_party/devtools/node_modules/core-js/features/reflect/define-metadata.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/reflect/define-property.js b/src/third_party/devtools/node_modules/core-js/features/reflect/define-property.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/reflect/define-property.js
rename to src/third_party/devtools/node_modules/core-js/features/reflect/define-property.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/reflect/delete-metadata.js b/src/third_party/devtools/node_modules/core-js/features/reflect/delete-metadata.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/reflect/delete-metadata.js
rename to src/third_party/devtools/node_modules/core-js/features/reflect/delete-metadata.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/reflect/delete-property.js b/src/third_party/devtools/node_modules/core-js/features/reflect/delete-property.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/reflect/delete-property.js
rename to src/third_party/devtools/node_modules/core-js/features/reflect/delete-property.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/reflect/get-metadata-keys.js b/src/third_party/devtools/node_modules/core-js/features/reflect/get-metadata-keys.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/reflect/get-metadata-keys.js
rename to src/third_party/devtools/node_modules/core-js/features/reflect/get-metadata-keys.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/reflect/get-metadata.js b/src/third_party/devtools/node_modules/core-js/features/reflect/get-metadata.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/reflect/get-metadata.js
rename to src/third_party/devtools/node_modules/core-js/features/reflect/get-metadata.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/reflect/get-own-metadata-keys.js b/src/third_party/devtools/node_modules/core-js/features/reflect/get-own-metadata-keys.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/reflect/get-own-metadata-keys.js
rename to src/third_party/devtools/node_modules/core-js/features/reflect/get-own-metadata-keys.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/reflect/get-own-metadata.js b/src/third_party/devtools/node_modules/core-js/features/reflect/get-own-metadata.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/reflect/get-own-metadata.js
rename to src/third_party/devtools/node_modules/core-js/features/reflect/get-own-metadata.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/reflect/get-own-property-descriptor.js b/src/third_party/devtools/node_modules/core-js/features/reflect/get-own-property-descriptor.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/reflect/get-own-property-descriptor.js
rename to src/third_party/devtools/node_modules/core-js/features/reflect/get-own-property-descriptor.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/reflect/get-prototype-of.js b/src/third_party/devtools/node_modules/core-js/features/reflect/get-prototype-of.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/reflect/get-prototype-of.js
rename to src/third_party/devtools/node_modules/core-js/features/reflect/get-prototype-of.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/reflect/get.js b/src/third_party/devtools/node_modules/core-js/features/reflect/get.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/reflect/get.js
rename to src/third_party/devtools/node_modules/core-js/features/reflect/get.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/reflect/has-metadata.js b/src/third_party/devtools/node_modules/core-js/features/reflect/has-metadata.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/reflect/has-metadata.js
rename to src/third_party/devtools/node_modules/core-js/features/reflect/has-metadata.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/reflect/has-own-metadata.js b/src/third_party/devtools/node_modules/core-js/features/reflect/has-own-metadata.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/reflect/has-own-metadata.js
rename to src/third_party/devtools/node_modules/core-js/features/reflect/has-own-metadata.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/reflect/has.js b/src/third_party/devtools/node_modules/core-js/features/reflect/has.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/reflect/has.js
rename to src/third_party/devtools/node_modules/core-js/features/reflect/has.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/reflect/index.js b/src/third_party/devtools/node_modules/core-js/features/reflect/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/reflect/index.js
rename to src/third_party/devtools/node_modules/core-js/features/reflect/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/reflect/is-extensible.js b/src/third_party/devtools/node_modules/core-js/features/reflect/is-extensible.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/reflect/is-extensible.js
rename to src/third_party/devtools/node_modules/core-js/features/reflect/is-extensible.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/reflect/metadata.js b/src/third_party/devtools/node_modules/core-js/features/reflect/metadata.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/reflect/metadata.js
rename to src/third_party/devtools/node_modules/core-js/features/reflect/metadata.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/reflect/own-keys.js b/src/third_party/devtools/node_modules/core-js/features/reflect/own-keys.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/reflect/own-keys.js
rename to src/third_party/devtools/node_modules/core-js/features/reflect/own-keys.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/reflect/prevent-extensions.js b/src/third_party/devtools/node_modules/core-js/features/reflect/prevent-extensions.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/reflect/prevent-extensions.js
rename to src/third_party/devtools/node_modules/core-js/features/reflect/prevent-extensions.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/reflect/set-prototype-of.js b/src/third_party/devtools/node_modules/core-js/features/reflect/set-prototype-of.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/reflect/set-prototype-of.js
rename to src/third_party/devtools/node_modules/core-js/features/reflect/set-prototype-of.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/reflect/set.js b/src/third_party/devtools/node_modules/core-js/features/reflect/set.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/reflect/set.js
rename to src/third_party/devtools/node_modules/core-js/features/reflect/set.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/regexp/constructor.js b/src/third_party/devtools/node_modules/core-js/features/regexp/constructor.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/regexp/constructor.js
rename to src/third_party/devtools/node_modules/core-js/features/regexp/constructor.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/regexp/flags.js b/src/third_party/devtools/node_modules/core-js/features/regexp/flags.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/regexp/flags.js
rename to src/third_party/devtools/node_modules/core-js/features/regexp/flags.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/regexp/index.js b/src/third_party/devtools/node_modules/core-js/features/regexp/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/regexp/index.js
rename to src/third_party/devtools/node_modules/core-js/features/regexp/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/regexp/match.js b/src/third_party/devtools/node_modules/core-js/features/regexp/match.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/regexp/match.js
rename to src/third_party/devtools/node_modules/core-js/features/regexp/match.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/regexp/replace.js b/src/third_party/devtools/node_modules/core-js/features/regexp/replace.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/regexp/replace.js
rename to src/third_party/devtools/node_modules/core-js/features/regexp/replace.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/regexp/search.js b/src/third_party/devtools/node_modules/core-js/features/regexp/search.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/regexp/search.js
rename to src/third_party/devtools/node_modules/core-js/features/regexp/search.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/regexp/split.js b/src/third_party/devtools/node_modules/core-js/features/regexp/split.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/regexp/split.js
rename to src/third_party/devtools/node_modules/core-js/features/regexp/split.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/regexp/to-string.js b/src/third_party/devtools/node_modules/core-js/features/regexp/to-string.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/regexp/to-string.js
rename to src/third_party/devtools/node_modules/core-js/features/regexp/to-string.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/set-immediate.js b/src/third_party/devtools/node_modules/core-js/features/set-immediate.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/set-immediate.js
rename to src/third_party/devtools/node_modules/core-js/features/set-immediate.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/set-interval.js b/src/third_party/devtools/node_modules/core-js/features/set-interval.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/set-interval.js
rename to src/third_party/devtools/node_modules/core-js/features/set-interval.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/set-timeout.js b/src/third_party/devtools/node_modules/core-js/features/set-timeout.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/set-timeout.js
rename to src/third_party/devtools/node_modules/core-js/features/set-timeout.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/set/add-all.js b/src/third_party/devtools/node_modules/core-js/features/set/add-all.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/set/add-all.js
rename to src/third_party/devtools/node_modules/core-js/features/set/add-all.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/set/delete-all.js b/src/third_party/devtools/node_modules/core-js/features/set/delete-all.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/set/delete-all.js
rename to src/third_party/devtools/node_modules/core-js/features/set/delete-all.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/set/difference.js b/src/third_party/devtools/node_modules/core-js/features/set/difference.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/set/difference.js
rename to src/third_party/devtools/node_modules/core-js/features/set/difference.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/set/every.js b/src/third_party/devtools/node_modules/core-js/features/set/every.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/set/every.js
rename to src/third_party/devtools/node_modules/core-js/features/set/every.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/set/filter.js b/src/third_party/devtools/node_modules/core-js/features/set/filter.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/set/filter.js
rename to src/third_party/devtools/node_modules/core-js/features/set/filter.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/set/find.js b/src/third_party/devtools/node_modules/core-js/features/set/find.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/set/find.js
rename to src/third_party/devtools/node_modules/core-js/features/set/find.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/set/from.js b/src/third_party/devtools/node_modules/core-js/features/set/from.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/set/from.js
rename to src/third_party/devtools/node_modules/core-js/features/set/from.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/set/index.js b/src/third_party/devtools/node_modules/core-js/features/set/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/set/index.js
rename to src/third_party/devtools/node_modules/core-js/features/set/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/set/intersection.js b/src/third_party/devtools/node_modules/core-js/features/set/intersection.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/set/intersection.js
rename to src/third_party/devtools/node_modules/core-js/features/set/intersection.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/set/is-disjoint-from.js b/src/third_party/devtools/node_modules/core-js/features/set/is-disjoint-from.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/set/is-disjoint-from.js
rename to src/third_party/devtools/node_modules/core-js/features/set/is-disjoint-from.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/set/is-subset-of.js b/src/third_party/devtools/node_modules/core-js/features/set/is-subset-of.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/set/is-subset-of.js
rename to src/third_party/devtools/node_modules/core-js/features/set/is-subset-of.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/set/is-superset-of.js b/src/third_party/devtools/node_modules/core-js/features/set/is-superset-of.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/set/is-superset-of.js
rename to src/third_party/devtools/node_modules/core-js/features/set/is-superset-of.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/set/join.js b/src/third_party/devtools/node_modules/core-js/features/set/join.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/set/join.js
rename to src/third_party/devtools/node_modules/core-js/features/set/join.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/set/map.js b/src/third_party/devtools/node_modules/core-js/features/set/map.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/set/map.js
rename to src/third_party/devtools/node_modules/core-js/features/set/map.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/set/of.js b/src/third_party/devtools/node_modules/core-js/features/set/of.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/set/of.js
rename to src/third_party/devtools/node_modules/core-js/features/set/of.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/set/reduce.js b/src/third_party/devtools/node_modules/core-js/features/set/reduce.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/set/reduce.js
rename to src/third_party/devtools/node_modules/core-js/features/set/reduce.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/set/some.js b/src/third_party/devtools/node_modules/core-js/features/set/some.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/set/some.js
rename to src/third_party/devtools/node_modules/core-js/features/set/some.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/set/symmetric-difference.js b/src/third_party/devtools/node_modules/core-js/features/set/symmetric-difference.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/set/symmetric-difference.js
rename to src/third_party/devtools/node_modules/core-js/features/set/symmetric-difference.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/set/union.js b/src/third_party/devtools/node_modules/core-js/features/set/union.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/set/union.js
rename to src/third_party/devtools/node_modules/core-js/features/set/union.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/string/anchor.js b/src/third_party/devtools/node_modules/core-js/features/string/anchor.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/string/anchor.js
rename to src/third_party/devtools/node_modules/core-js/features/string/anchor.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/string/at.js b/src/third_party/devtools/node_modules/core-js/features/string/at.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/string/at.js
rename to src/third_party/devtools/node_modules/core-js/features/string/at.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/string/big.js b/src/third_party/devtools/node_modules/core-js/features/string/big.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/string/big.js
rename to src/third_party/devtools/node_modules/core-js/features/string/big.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/string/blink.js b/src/third_party/devtools/node_modules/core-js/features/string/blink.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/string/blink.js
rename to src/third_party/devtools/node_modules/core-js/features/string/blink.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/string/bold.js b/src/third_party/devtools/node_modules/core-js/features/string/bold.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/string/bold.js
rename to src/third_party/devtools/node_modules/core-js/features/string/bold.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/string/code-point-at.js b/src/third_party/devtools/node_modules/core-js/features/string/code-point-at.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/string/code-point-at.js
rename to src/third_party/devtools/node_modules/core-js/features/string/code-point-at.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/string/code-points.js b/src/third_party/devtools/node_modules/core-js/features/string/code-points.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/string/code-points.js
rename to src/third_party/devtools/node_modules/core-js/features/string/code-points.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/string/ends-with.js b/src/third_party/devtools/node_modules/core-js/features/string/ends-with.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/string/ends-with.js
rename to src/third_party/devtools/node_modules/core-js/features/string/ends-with.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/string/fixed.js b/src/third_party/devtools/node_modules/core-js/features/string/fixed.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/string/fixed.js
rename to src/third_party/devtools/node_modules/core-js/features/string/fixed.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/string/fontcolor.js b/src/third_party/devtools/node_modules/core-js/features/string/fontcolor.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/string/fontcolor.js
rename to src/third_party/devtools/node_modules/core-js/features/string/fontcolor.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/string/fontsize.js b/src/third_party/devtools/node_modules/core-js/features/string/fontsize.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/string/fontsize.js
rename to src/third_party/devtools/node_modules/core-js/features/string/fontsize.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/string/from-code-point.js b/src/third_party/devtools/node_modules/core-js/features/string/from-code-point.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/string/from-code-point.js
rename to src/third_party/devtools/node_modules/core-js/features/string/from-code-point.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/string/includes.js b/src/third_party/devtools/node_modules/core-js/features/string/includes.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/string/includes.js
rename to src/third_party/devtools/node_modules/core-js/features/string/includes.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/string/index.js b/src/third_party/devtools/node_modules/core-js/features/string/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/string/index.js
rename to src/third_party/devtools/node_modules/core-js/features/string/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/string/italics.js b/src/third_party/devtools/node_modules/core-js/features/string/italics.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/string/italics.js
rename to src/third_party/devtools/node_modules/core-js/features/string/italics.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/string/iterator.js b/src/third_party/devtools/node_modules/core-js/features/string/iterator.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/string/iterator.js
rename to src/third_party/devtools/node_modules/core-js/features/string/iterator.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/string/link.js b/src/third_party/devtools/node_modules/core-js/features/string/link.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/string/link.js
rename to src/third_party/devtools/node_modules/core-js/features/string/link.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/string/match-all.js b/src/third_party/devtools/node_modules/core-js/features/string/match-all.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/string/match-all.js
rename to src/third_party/devtools/node_modules/core-js/features/string/match-all.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/string/match.js b/src/third_party/devtools/node_modules/core-js/features/string/match.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/string/match.js
rename to src/third_party/devtools/node_modules/core-js/features/string/match.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/string/pad-end.js b/src/third_party/devtools/node_modules/core-js/features/string/pad-end.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/string/pad-end.js
rename to src/third_party/devtools/node_modules/core-js/features/string/pad-end.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/string/pad-start.js b/src/third_party/devtools/node_modules/core-js/features/string/pad-start.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/string/pad-start.js
rename to src/third_party/devtools/node_modules/core-js/features/string/pad-start.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/string/raw.js b/src/third_party/devtools/node_modules/core-js/features/string/raw.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/string/raw.js
rename to src/third_party/devtools/node_modules/core-js/features/string/raw.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/string/repeat.js b/src/third_party/devtools/node_modules/core-js/features/string/repeat.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/string/repeat.js
rename to src/third_party/devtools/node_modules/core-js/features/string/repeat.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/string/replace-all.js b/src/third_party/devtools/node_modules/core-js/features/string/replace-all.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/string/replace-all.js
rename to src/third_party/devtools/node_modules/core-js/features/string/replace-all.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/string/replace.js b/src/third_party/devtools/node_modules/core-js/features/string/replace.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/string/replace.js
rename to src/third_party/devtools/node_modules/core-js/features/string/replace.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/string/search.js b/src/third_party/devtools/node_modules/core-js/features/string/search.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/string/search.js
rename to src/third_party/devtools/node_modules/core-js/features/string/search.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/string/small.js b/src/third_party/devtools/node_modules/core-js/features/string/small.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/string/small.js
rename to src/third_party/devtools/node_modules/core-js/features/string/small.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/string/split.js b/src/third_party/devtools/node_modules/core-js/features/string/split.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/string/split.js
rename to src/third_party/devtools/node_modules/core-js/features/string/split.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/string/starts-with.js b/src/third_party/devtools/node_modules/core-js/features/string/starts-with.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/string/starts-with.js
rename to src/third_party/devtools/node_modules/core-js/features/string/starts-with.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/string/strike.js b/src/third_party/devtools/node_modules/core-js/features/string/strike.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/string/strike.js
rename to src/third_party/devtools/node_modules/core-js/features/string/strike.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/string/sub.js b/src/third_party/devtools/node_modules/core-js/features/string/sub.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/string/sub.js
rename to src/third_party/devtools/node_modules/core-js/features/string/sub.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/string/sup.js b/src/third_party/devtools/node_modules/core-js/features/string/sup.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/string/sup.js
rename to src/third_party/devtools/node_modules/core-js/features/string/sup.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/string/trim-end.js b/src/third_party/devtools/node_modules/core-js/features/string/trim-end.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/string/trim-end.js
rename to src/third_party/devtools/node_modules/core-js/features/string/trim-end.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/string/trim-left.js b/src/third_party/devtools/node_modules/core-js/features/string/trim-left.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/string/trim-left.js
rename to src/third_party/devtools/node_modules/core-js/features/string/trim-left.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/string/trim-right.js b/src/third_party/devtools/node_modules/core-js/features/string/trim-right.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/string/trim-right.js
rename to src/third_party/devtools/node_modules/core-js/features/string/trim-right.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/string/trim-start.js b/src/third_party/devtools/node_modules/core-js/features/string/trim-start.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/string/trim-start.js
rename to src/third_party/devtools/node_modules/core-js/features/string/trim-start.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/string/trim.js b/src/third_party/devtools/node_modules/core-js/features/string/trim.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/string/trim.js
rename to src/third_party/devtools/node_modules/core-js/features/string/trim.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/string/virtual/anchor.js b/src/third_party/devtools/node_modules/core-js/features/string/virtual/anchor.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/string/virtual/anchor.js
rename to src/third_party/devtools/node_modules/core-js/features/string/virtual/anchor.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/string/virtual/at.js b/src/third_party/devtools/node_modules/core-js/features/string/virtual/at.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/string/virtual/at.js
rename to src/third_party/devtools/node_modules/core-js/features/string/virtual/at.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/string/virtual/big.js b/src/third_party/devtools/node_modules/core-js/features/string/virtual/big.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/string/virtual/big.js
rename to src/third_party/devtools/node_modules/core-js/features/string/virtual/big.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/string/virtual/blink.js b/src/third_party/devtools/node_modules/core-js/features/string/virtual/blink.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/string/virtual/blink.js
rename to src/third_party/devtools/node_modules/core-js/features/string/virtual/blink.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/string/virtual/bold.js b/src/third_party/devtools/node_modules/core-js/features/string/virtual/bold.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/string/virtual/bold.js
rename to src/third_party/devtools/node_modules/core-js/features/string/virtual/bold.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/string/virtual/code-point-at.js b/src/third_party/devtools/node_modules/core-js/features/string/virtual/code-point-at.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/string/virtual/code-point-at.js
rename to src/third_party/devtools/node_modules/core-js/features/string/virtual/code-point-at.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/string/virtual/code-points.js b/src/third_party/devtools/node_modules/core-js/features/string/virtual/code-points.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/string/virtual/code-points.js
rename to src/third_party/devtools/node_modules/core-js/features/string/virtual/code-points.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/string/virtual/ends-with.js b/src/third_party/devtools/node_modules/core-js/features/string/virtual/ends-with.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/string/virtual/ends-with.js
rename to src/third_party/devtools/node_modules/core-js/features/string/virtual/ends-with.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/string/virtual/fixed.js b/src/third_party/devtools/node_modules/core-js/features/string/virtual/fixed.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/string/virtual/fixed.js
rename to src/third_party/devtools/node_modules/core-js/features/string/virtual/fixed.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/string/virtual/fontcolor.js b/src/third_party/devtools/node_modules/core-js/features/string/virtual/fontcolor.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/string/virtual/fontcolor.js
rename to src/third_party/devtools/node_modules/core-js/features/string/virtual/fontcolor.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/string/virtual/fontsize.js b/src/third_party/devtools/node_modules/core-js/features/string/virtual/fontsize.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/string/virtual/fontsize.js
rename to src/third_party/devtools/node_modules/core-js/features/string/virtual/fontsize.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/string/virtual/includes.js b/src/third_party/devtools/node_modules/core-js/features/string/virtual/includes.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/string/virtual/includes.js
rename to src/third_party/devtools/node_modules/core-js/features/string/virtual/includes.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/string/virtual/index.js b/src/third_party/devtools/node_modules/core-js/features/string/virtual/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/string/virtual/index.js
rename to src/third_party/devtools/node_modules/core-js/features/string/virtual/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/string/virtual/italics.js b/src/third_party/devtools/node_modules/core-js/features/string/virtual/italics.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/string/virtual/italics.js
rename to src/third_party/devtools/node_modules/core-js/features/string/virtual/italics.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/string/virtual/iterator.js b/src/third_party/devtools/node_modules/core-js/features/string/virtual/iterator.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/string/virtual/iterator.js
rename to src/third_party/devtools/node_modules/core-js/features/string/virtual/iterator.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/string/virtual/link.js b/src/third_party/devtools/node_modules/core-js/features/string/virtual/link.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/string/virtual/link.js
rename to src/third_party/devtools/node_modules/core-js/features/string/virtual/link.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/string/virtual/match-all.js b/src/third_party/devtools/node_modules/core-js/features/string/virtual/match-all.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/string/virtual/match-all.js
rename to src/third_party/devtools/node_modules/core-js/features/string/virtual/match-all.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/string/virtual/pad-end.js b/src/third_party/devtools/node_modules/core-js/features/string/virtual/pad-end.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/string/virtual/pad-end.js
rename to src/third_party/devtools/node_modules/core-js/features/string/virtual/pad-end.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/string/virtual/pad-start.js b/src/third_party/devtools/node_modules/core-js/features/string/virtual/pad-start.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/string/virtual/pad-start.js
rename to src/third_party/devtools/node_modules/core-js/features/string/virtual/pad-start.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/string/virtual/repeat.js b/src/third_party/devtools/node_modules/core-js/features/string/virtual/repeat.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/string/virtual/repeat.js
rename to src/third_party/devtools/node_modules/core-js/features/string/virtual/repeat.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/string/virtual/replace-all.js b/src/third_party/devtools/node_modules/core-js/features/string/virtual/replace-all.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/string/virtual/replace-all.js
rename to src/third_party/devtools/node_modules/core-js/features/string/virtual/replace-all.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/string/virtual/small.js b/src/third_party/devtools/node_modules/core-js/features/string/virtual/small.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/string/virtual/small.js
rename to src/third_party/devtools/node_modules/core-js/features/string/virtual/small.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/string/virtual/starts-with.js b/src/third_party/devtools/node_modules/core-js/features/string/virtual/starts-with.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/string/virtual/starts-with.js
rename to src/third_party/devtools/node_modules/core-js/features/string/virtual/starts-with.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/string/virtual/strike.js b/src/third_party/devtools/node_modules/core-js/features/string/virtual/strike.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/string/virtual/strike.js
rename to src/third_party/devtools/node_modules/core-js/features/string/virtual/strike.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/string/virtual/sub.js b/src/third_party/devtools/node_modules/core-js/features/string/virtual/sub.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/string/virtual/sub.js
rename to src/third_party/devtools/node_modules/core-js/features/string/virtual/sub.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/string/virtual/sup.js b/src/third_party/devtools/node_modules/core-js/features/string/virtual/sup.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/string/virtual/sup.js
rename to src/third_party/devtools/node_modules/core-js/features/string/virtual/sup.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/string/virtual/trim-end.js b/src/third_party/devtools/node_modules/core-js/features/string/virtual/trim-end.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/string/virtual/trim-end.js
rename to src/third_party/devtools/node_modules/core-js/features/string/virtual/trim-end.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/string/virtual/trim-left.js b/src/third_party/devtools/node_modules/core-js/features/string/virtual/trim-left.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/string/virtual/trim-left.js
rename to src/third_party/devtools/node_modules/core-js/features/string/virtual/trim-left.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/string/virtual/trim-right.js b/src/third_party/devtools/node_modules/core-js/features/string/virtual/trim-right.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/string/virtual/trim-right.js
rename to src/third_party/devtools/node_modules/core-js/features/string/virtual/trim-right.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/string/virtual/trim-start.js b/src/third_party/devtools/node_modules/core-js/features/string/virtual/trim-start.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/string/virtual/trim-start.js
rename to src/third_party/devtools/node_modules/core-js/features/string/virtual/trim-start.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/string/virtual/trim.js b/src/third_party/devtools/node_modules/core-js/features/string/virtual/trim.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/string/virtual/trim.js
rename to src/third_party/devtools/node_modules/core-js/features/string/virtual/trim.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/symbol/async-dispose.js b/src/third_party/devtools/node_modules/core-js/features/symbol/async-dispose.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/symbol/async-dispose.js
rename to src/third_party/devtools/node_modules/core-js/features/symbol/async-dispose.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/symbol/async-iterator.js b/src/third_party/devtools/node_modules/core-js/features/symbol/async-iterator.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/symbol/async-iterator.js
rename to src/third_party/devtools/node_modules/core-js/features/symbol/async-iterator.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/symbol/description.js b/src/third_party/devtools/node_modules/core-js/features/symbol/description.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/symbol/description.js
rename to src/third_party/devtools/node_modules/core-js/features/symbol/description.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/symbol/dispose.js b/src/third_party/devtools/node_modules/core-js/features/symbol/dispose.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/symbol/dispose.js
rename to src/third_party/devtools/node_modules/core-js/features/symbol/dispose.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/symbol/for.js b/src/third_party/devtools/node_modules/core-js/features/symbol/for.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/symbol/for.js
rename to src/third_party/devtools/node_modules/core-js/features/symbol/for.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/symbol/has-instance.js b/src/third_party/devtools/node_modules/core-js/features/symbol/has-instance.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/symbol/has-instance.js
rename to src/third_party/devtools/node_modules/core-js/features/symbol/has-instance.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/symbol/index.js b/src/third_party/devtools/node_modules/core-js/features/symbol/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/symbol/index.js
rename to src/third_party/devtools/node_modules/core-js/features/symbol/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/symbol/is-concat-spreadable.js b/src/third_party/devtools/node_modules/core-js/features/symbol/is-concat-spreadable.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/symbol/is-concat-spreadable.js
rename to src/third_party/devtools/node_modules/core-js/features/symbol/is-concat-spreadable.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/symbol/iterator.js b/src/third_party/devtools/node_modules/core-js/features/symbol/iterator.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/symbol/iterator.js
rename to src/third_party/devtools/node_modules/core-js/features/symbol/iterator.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/symbol/key-for.js b/src/third_party/devtools/node_modules/core-js/features/symbol/key-for.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/symbol/key-for.js
rename to src/third_party/devtools/node_modules/core-js/features/symbol/key-for.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/symbol/match-all.js b/src/third_party/devtools/node_modules/core-js/features/symbol/match-all.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/symbol/match-all.js
rename to src/third_party/devtools/node_modules/core-js/features/symbol/match-all.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/symbol/match.js b/src/third_party/devtools/node_modules/core-js/features/symbol/match.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/symbol/match.js
rename to src/third_party/devtools/node_modules/core-js/features/symbol/match.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/symbol/observable.js b/src/third_party/devtools/node_modules/core-js/features/symbol/observable.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/symbol/observable.js
rename to src/third_party/devtools/node_modules/core-js/features/symbol/observable.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/symbol/pattern-match.js b/src/third_party/devtools/node_modules/core-js/features/symbol/pattern-match.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/symbol/pattern-match.js
rename to src/third_party/devtools/node_modules/core-js/features/symbol/pattern-match.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/symbol/replace-all.js b/src/third_party/devtools/node_modules/core-js/features/symbol/replace-all.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/symbol/replace-all.js
rename to src/third_party/devtools/node_modules/core-js/features/symbol/replace-all.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/symbol/replace.js b/src/third_party/devtools/node_modules/core-js/features/symbol/replace.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/symbol/replace.js
rename to src/third_party/devtools/node_modules/core-js/features/symbol/replace.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/symbol/search.js b/src/third_party/devtools/node_modules/core-js/features/symbol/search.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/symbol/search.js
rename to src/third_party/devtools/node_modules/core-js/features/symbol/search.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/symbol/species.js b/src/third_party/devtools/node_modules/core-js/features/symbol/species.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/symbol/species.js
rename to src/third_party/devtools/node_modules/core-js/features/symbol/species.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/symbol/split.js b/src/third_party/devtools/node_modules/core-js/features/symbol/split.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/symbol/split.js
rename to src/third_party/devtools/node_modules/core-js/features/symbol/split.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/symbol/to-primitive.js b/src/third_party/devtools/node_modules/core-js/features/symbol/to-primitive.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/symbol/to-primitive.js
rename to src/third_party/devtools/node_modules/core-js/features/symbol/to-primitive.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/symbol/to-string-tag.js b/src/third_party/devtools/node_modules/core-js/features/symbol/to-string-tag.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/symbol/to-string-tag.js
rename to src/third_party/devtools/node_modules/core-js/features/symbol/to-string-tag.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/symbol/unscopables.js b/src/third_party/devtools/node_modules/core-js/features/symbol/unscopables.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/symbol/unscopables.js
rename to src/third_party/devtools/node_modules/core-js/features/symbol/unscopables.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/typed-array/copy-within.js b/src/third_party/devtools/node_modules/core-js/features/typed-array/copy-within.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/typed-array/copy-within.js
rename to src/third_party/devtools/node_modules/core-js/features/typed-array/copy-within.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/typed-array/entries.js b/src/third_party/devtools/node_modules/core-js/features/typed-array/entries.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/typed-array/entries.js
rename to src/third_party/devtools/node_modules/core-js/features/typed-array/entries.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/typed-array/every.js b/src/third_party/devtools/node_modules/core-js/features/typed-array/every.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/typed-array/every.js
rename to src/third_party/devtools/node_modules/core-js/features/typed-array/every.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/typed-array/fill.js b/src/third_party/devtools/node_modules/core-js/features/typed-array/fill.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/typed-array/fill.js
rename to src/third_party/devtools/node_modules/core-js/features/typed-array/fill.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/typed-array/filter.js b/src/third_party/devtools/node_modules/core-js/features/typed-array/filter.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/typed-array/filter.js
rename to src/third_party/devtools/node_modules/core-js/features/typed-array/filter.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/typed-array/find-index.js b/src/third_party/devtools/node_modules/core-js/features/typed-array/find-index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/typed-array/find-index.js
rename to src/third_party/devtools/node_modules/core-js/features/typed-array/find-index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/typed-array/find.js b/src/third_party/devtools/node_modules/core-js/features/typed-array/find.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/typed-array/find.js
rename to src/third_party/devtools/node_modules/core-js/features/typed-array/find.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/typed-array/float32-array.js b/src/third_party/devtools/node_modules/core-js/features/typed-array/float32-array.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/typed-array/float32-array.js
rename to src/third_party/devtools/node_modules/core-js/features/typed-array/float32-array.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/typed-array/float64-array.js b/src/third_party/devtools/node_modules/core-js/features/typed-array/float64-array.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/typed-array/float64-array.js
rename to src/third_party/devtools/node_modules/core-js/features/typed-array/float64-array.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/typed-array/for-each.js b/src/third_party/devtools/node_modules/core-js/features/typed-array/for-each.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/typed-array/for-each.js
rename to src/third_party/devtools/node_modules/core-js/features/typed-array/for-each.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/typed-array/from.js b/src/third_party/devtools/node_modules/core-js/features/typed-array/from.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/typed-array/from.js
rename to src/third_party/devtools/node_modules/core-js/features/typed-array/from.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/typed-array/includes.js b/src/third_party/devtools/node_modules/core-js/features/typed-array/includes.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/typed-array/includes.js
rename to src/third_party/devtools/node_modules/core-js/features/typed-array/includes.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/typed-array/index-of.js b/src/third_party/devtools/node_modules/core-js/features/typed-array/index-of.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/typed-array/index-of.js
rename to src/third_party/devtools/node_modules/core-js/features/typed-array/index-of.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/typed-array/index.js b/src/third_party/devtools/node_modules/core-js/features/typed-array/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/typed-array/index.js
rename to src/third_party/devtools/node_modules/core-js/features/typed-array/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/typed-array/int16-array.js b/src/third_party/devtools/node_modules/core-js/features/typed-array/int16-array.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/typed-array/int16-array.js
rename to src/third_party/devtools/node_modules/core-js/features/typed-array/int16-array.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/typed-array/int32-array.js b/src/third_party/devtools/node_modules/core-js/features/typed-array/int32-array.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/typed-array/int32-array.js
rename to src/third_party/devtools/node_modules/core-js/features/typed-array/int32-array.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/typed-array/int8-array.js b/src/third_party/devtools/node_modules/core-js/features/typed-array/int8-array.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/typed-array/int8-array.js
rename to src/third_party/devtools/node_modules/core-js/features/typed-array/int8-array.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/typed-array/iterator.js b/src/third_party/devtools/node_modules/core-js/features/typed-array/iterator.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/typed-array/iterator.js
rename to src/third_party/devtools/node_modules/core-js/features/typed-array/iterator.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/typed-array/join.js b/src/third_party/devtools/node_modules/core-js/features/typed-array/join.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/typed-array/join.js
rename to src/third_party/devtools/node_modules/core-js/features/typed-array/join.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/typed-array/keys.js b/src/third_party/devtools/node_modules/core-js/features/typed-array/keys.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/typed-array/keys.js
rename to src/third_party/devtools/node_modules/core-js/features/typed-array/keys.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/typed-array/last-index-of.js b/src/third_party/devtools/node_modules/core-js/features/typed-array/last-index-of.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/typed-array/last-index-of.js
rename to src/third_party/devtools/node_modules/core-js/features/typed-array/last-index-of.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/typed-array/map.js b/src/third_party/devtools/node_modules/core-js/features/typed-array/map.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/typed-array/map.js
rename to src/third_party/devtools/node_modules/core-js/features/typed-array/map.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/typed-array/of.js b/src/third_party/devtools/node_modules/core-js/features/typed-array/of.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/typed-array/of.js
rename to src/third_party/devtools/node_modules/core-js/features/typed-array/of.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/typed-array/reduce-right.js b/src/third_party/devtools/node_modules/core-js/features/typed-array/reduce-right.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/typed-array/reduce-right.js
rename to src/third_party/devtools/node_modules/core-js/features/typed-array/reduce-right.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/typed-array/reduce.js b/src/third_party/devtools/node_modules/core-js/features/typed-array/reduce.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/typed-array/reduce.js
rename to src/third_party/devtools/node_modules/core-js/features/typed-array/reduce.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/typed-array/reverse.js b/src/third_party/devtools/node_modules/core-js/features/typed-array/reverse.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/typed-array/reverse.js
rename to src/third_party/devtools/node_modules/core-js/features/typed-array/reverse.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/typed-array/set.js b/src/third_party/devtools/node_modules/core-js/features/typed-array/set.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/typed-array/set.js
rename to src/third_party/devtools/node_modules/core-js/features/typed-array/set.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/typed-array/slice.js b/src/third_party/devtools/node_modules/core-js/features/typed-array/slice.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/typed-array/slice.js
rename to src/third_party/devtools/node_modules/core-js/features/typed-array/slice.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/typed-array/some.js b/src/third_party/devtools/node_modules/core-js/features/typed-array/some.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/typed-array/some.js
rename to src/third_party/devtools/node_modules/core-js/features/typed-array/some.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/typed-array/sort.js b/src/third_party/devtools/node_modules/core-js/features/typed-array/sort.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/typed-array/sort.js
rename to src/third_party/devtools/node_modules/core-js/features/typed-array/sort.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/typed-array/subarray.js b/src/third_party/devtools/node_modules/core-js/features/typed-array/subarray.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/typed-array/subarray.js
rename to src/third_party/devtools/node_modules/core-js/features/typed-array/subarray.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/typed-array/to-locale-string.js b/src/third_party/devtools/node_modules/core-js/features/typed-array/to-locale-string.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/typed-array/to-locale-string.js
rename to src/third_party/devtools/node_modules/core-js/features/typed-array/to-locale-string.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/typed-array/to-string.js b/src/third_party/devtools/node_modules/core-js/features/typed-array/to-string.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/typed-array/to-string.js
rename to src/third_party/devtools/node_modules/core-js/features/typed-array/to-string.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/typed-array/uint16-array.js b/src/third_party/devtools/node_modules/core-js/features/typed-array/uint16-array.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/typed-array/uint16-array.js
rename to src/third_party/devtools/node_modules/core-js/features/typed-array/uint16-array.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/typed-array/uint32-array.js b/src/third_party/devtools/node_modules/core-js/features/typed-array/uint32-array.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/typed-array/uint32-array.js
rename to src/third_party/devtools/node_modules/core-js/features/typed-array/uint32-array.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/typed-array/uint8-array.js b/src/third_party/devtools/node_modules/core-js/features/typed-array/uint8-array.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/typed-array/uint8-array.js
rename to src/third_party/devtools/node_modules/core-js/features/typed-array/uint8-array.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/typed-array/uint8-clamped-array.js b/src/third_party/devtools/node_modules/core-js/features/typed-array/uint8-clamped-array.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/typed-array/uint8-clamped-array.js
rename to src/third_party/devtools/node_modules/core-js/features/typed-array/uint8-clamped-array.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/typed-array/values.js b/src/third_party/devtools/node_modules/core-js/features/typed-array/values.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/typed-array/values.js
rename to src/third_party/devtools/node_modules/core-js/features/typed-array/values.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/url-search-params/index.js b/src/third_party/devtools/node_modules/core-js/features/url-search-params/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/url-search-params/index.js
rename to src/third_party/devtools/node_modules/core-js/features/url-search-params/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/url/index.js b/src/third_party/devtools/node_modules/core-js/features/url/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/url/index.js
rename to src/third_party/devtools/node_modules/core-js/features/url/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/url/to-json.js b/src/third_party/devtools/node_modules/core-js/features/url/to-json.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/url/to-json.js
rename to src/third_party/devtools/node_modules/core-js/features/url/to-json.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/weak-map/delete-all.js b/src/third_party/devtools/node_modules/core-js/features/weak-map/delete-all.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/weak-map/delete-all.js
rename to src/third_party/devtools/node_modules/core-js/features/weak-map/delete-all.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/weak-map/from.js b/src/third_party/devtools/node_modules/core-js/features/weak-map/from.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/weak-map/from.js
rename to src/third_party/devtools/node_modules/core-js/features/weak-map/from.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/weak-map/index.js b/src/third_party/devtools/node_modules/core-js/features/weak-map/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/weak-map/index.js
rename to src/third_party/devtools/node_modules/core-js/features/weak-map/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/weak-map/of.js b/src/third_party/devtools/node_modules/core-js/features/weak-map/of.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/weak-map/of.js
rename to src/third_party/devtools/node_modules/core-js/features/weak-map/of.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/weak-map/upsert.js b/src/third_party/devtools/node_modules/core-js/features/weak-map/upsert.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/weak-map/upsert.js
rename to src/third_party/devtools/node_modules/core-js/features/weak-map/upsert.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/weak-set/add-all.js b/src/third_party/devtools/node_modules/core-js/features/weak-set/add-all.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/weak-set/add-all.js
rename to src/third_party/devtools/node_modules/core-js/features/weak-set/add-all.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/weak-set/delete-all.js b/src/third_party/devtools/node_modules/core-js/features/weak-set/delete-all.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/weak-set/delete-all.js
rename to src/third_party/devtools/node_modules/core-js/features/weak-set/delete-all.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/weak-set/from.js b/src/third_party/devtools/node_modules/core-js/features/weak-set/from.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/weak-set/from.js
rename to src/third_party/devtools/node_modules/core-js/features/weak-set/from.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/weak-set/index.js b/src/third_party/devtools/node_modules/core-js/features/weak-set/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/weak-set/index.js
rename to src/third_party/devtools/node_modules/core-js/features/weak-set/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/features/weak-set/of.js b/src/third_party/devtools/node_modules/core-js/features/weak-set/of.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/features/weak-set/of.js
rename to src/third_party/devtools/node_modules/core-js/features/weak-set/of.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/index.js b/src/third_party/devtools/node_modules/core-js/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/index.js
rename to src/third_party/devtools/node_modules/core-js/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/internals/README.md b/src/third_party/devtools/node_modules/core-js/internals/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/internals/README.md
rename to src/third_party/devtools/node_modules/core-js/internals/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/internals/a-function.js b/src/third_party/devtools/node_modules/core-js/internals/a-function.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/internals/a-function.js
rename to src/third_party/devtools/node_modules/core-js/internals/a-function.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/internals/a-possible-prototype.js b/src/third_party/devtools/node_modules/core-js/internals/a-possible-prototype.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/internals/a-possible-prototype.js
rename to src/third_party/devtools/node_modules/core-js/internals/a-possible-prototype.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/internals/add-to-unscopables.js b/src/third_party/devtools/node_modules/core-js/internals/add-to-unscopables.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/internals/add-to-unscopables.js
rename to src/third_party/devtools/node_modules/core-js/internals/add-to-unscopables.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/internals/advance-string-index.js b/src/third_party/devtools/node_modules/core-js/internals/advance-string-index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/internals/advance-string-index.js
rename to src/third_party/devtools/node_modules/core-js/internals/advance-string-index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/internals/an-instance.js b/src/third_party/devtools/node_modules/core-js/internals/an-instance.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/internals/an-instance.js
rename to src/third_party/devtools/node_modules/core-js/internals/an-instance.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/internals/an-object.js b/src/third_party/devtools/node_modules/core-js/internals/an-object.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/internals/an-object.js
rename to src/third_party/devtools/node_modules/core-js/internals/an-object.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/internals/array-buffer-view-core.js b/src/third_party/devtools/node_modules/core-js/internals/array-buffer-view-core.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/internals/array-buffer-view-core.js
rename to src/third_party/devtools/node_modules/core-js/internals/array-buffer-view-core.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/internals/array-buffer.js b/src/third_party/devtools/node_modules/core-js/internals/array-buffer.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/internals/array-buffer.js
rename to src/third_party/devtools/node_modules/core-js/internals/array-buffer.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/internals/array-copy-within.js b/src/third_party/devtools/node_modules/core-js/internals/array-copy-within.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/internals/array-copy-within.js
rename to src/third_party/devtools/node_modules/core-js/internals/array-copy-within.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/internals/array-fill.js b/src/third_party/devtools/node_modules/core-js/internals/array-fill.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/internals/array-fill.js
rename to src/third_party/devtools/node_modules/core-js/internals/array-fill.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/internals/array-for-each.js b/src/third_party/devtools/node_modules/core-js/internals/array-for-each.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/internals/array-for-each.js
rename to src/third_party/devtools/node_modules/core-js/internals/array-for-each.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/internals/array-from.js b/src/third_party/devtools/node_modules/core-js/internals/array-from.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/internals/array-from.js
rename to src/third_party/devtools/node_modules/core-js/internals/array-from.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/internals/array-includes.js b/src/third_party/devtools/node_modules/core-js/internals/array-includes.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/internals/array-includes.js
rename to src/third_party/devtools/node_modules/core-js/internals/array-includes.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/internals/array-iteration.js b/src/third_party/devtools/node_modules/core-js/internals/array-iteration.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/internals/array-iteration.js
rename to src/third_party/devtools/node_modules/core-js/internals/array-iteration.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/internals/array-last-index-of.js b/src/third_party/devtools/node_modules/core-js/internals/array-last-index-of.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/internals/array-last-index-of.js
rename to src/third_party/devtools/node_modules/core-js/internals/array-last-index-of.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/internals/array-method-has-species-support.js b/src/third_party/devtools/node_modules/core-js/internals/array-method-has-species-support.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/internals/array-method-has-species-support.js
rename to src/third_party/devtools/node_modules/core-js/internals/array-method-has-species-support.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/internals/array-reduce.js b/src/third_party/devtools/node_modules/core-js/internals/array-reduce.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/internals/array-reduce.js
rename to src/third_party/devtools/node_modules/core-js/internals/array-reduce.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/internals/array-species-create.js b/src/third_party/devtools/node_modules/core-js/internals/array-species-create.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/internals/array-species-create.js
rename to src/third_party/devtools/node_modules/core-js/internals/array-species-create.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/internals/async-iterator-iteration.js b/src/third_party/devtools/node_modules/core-js/internals/async-iterator-iteration.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/internals/async-iterator-iteration.js
rename to src/third_party/devtools/node_modules/core-js/internals/async-iterator-iteration.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/internals/async-iterator-prototype.js b/src/third_party/devtools/node_modules/core-js/internals/async-iterator-prototype.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/internals/async-iterator-prototype.js
rename to src/third_party/devtools/node_modules/core-js/internals/async-iterator-prototype.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/internals/bind-context.js b/src/third_party/devtools/node_modules/core-js/internals/bind-context.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/internals/bind-context.js
rename to src/third_party/devtools/node_modules/core-js/internals/bind-context.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/internals/call-with-safe-iteration-closing.js b/src/third_party/devtools/node_modules/core-js/internals/call-with-safe-iteration-closing.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/internals/call-with-safe-iteration-closing.js
rename to src/third_party/devtools/node_modules/core-js/internals/call-with-safe-iteration-closing.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/internals/check-correctness-of-iteration.js b/src/third_party/devtools/node_modules/core-js/internals/check-correctness-of-iteration.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/internals/check-correctness-of-iteration.js
rename to src/third_party/devtools/node_modules/core-js/internals/check-correctness-of-iteration.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/internals/classof-raw.js b/src/third_party/devtools/node_modules/core-js/internals/classof-raw.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/internals/classof-raw.js
rename to src/third_party/devtools/node_modules/core-js/internals/classof-raw.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/internals/classof.js b/src/third_party/devtools/node_modules/core-js/internals/classof.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/internals/classof.js
rename to src/third_party/devtools/node_modules/core-js/internals/classof.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/internals/collection-add-all.js b/src/third_party/devtools/node_modules/core-js/internals/collection-add-all.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/internals/collection-add-all.js
rename to src/third_party/devtools/node_modules/core-js/internals/collection-add-all.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/internals/collection-delete-all.js b/src/third_party/devtools/node_modules/core-js/internals/collection-delete-all.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/internals/collection-delete-all.js
rename to src/third_party/devtools/node_modules/core-js/internals/collection-delete-all.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/internals/collection-from.js b/src/third_party/devtools/node_modules/core-js/internals/collection-from.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/internals/collection-from.js
rename to src/third_party/devtools/node_modules/core-js/internals/collection-from.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/internals/collection-of.js b/src/third_party/devtools/node_modules/core-js/internals/collection-of.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/internals/collection-of.js
rename to src/third_party/devtools/node_modules/core-js/internals/collection-of.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/internals/collection-strong.js b/src/third_party/devtools/node_modules/core-js/internals/collection-strong.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/internals/collection-strong.js
rename to src/third_party/devtools/node_modules/core-js/internals/collection-strong.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/internals/collection-weak.js b/src/third_party/devtools/node_modules/core-js/internals/collection-weak.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/internals/collection-weak.js
rename to src/third_party/devtools/node_modules/core-js/internals/collection-weak.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/internals/collection.js b/src/third_party/devtools/node_modules/core-js/internals/collection.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/internals/collection.js
rename to src/third_party/devtools/node_modules/core-js/internals/collection.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/internals/composite-key.js b/src/third_party/devtools/node_modules/core-js/internals/composite-key.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/internals/composite-key.js
rename to src/third_party/devtools/node_modules/core-js/internals/composite-key.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/internals/copy-constructor-properties.js b/src/third_party/devtools/node_modules/core-js/internals/copy-constructor-properties.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/internals/copy-constructor-properties.js
rename to src/third_party/devtools/node_modules/core-js/internals/copy-constructor-properties.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/internals/correct-is-regexp-logic.js b/src/third_party/devtools/node_modules/core-js/internals/correct-is-regexp-logic.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/internals/correct-is-regexp-logic.js
rename to src/third_party/devtools/node_modules/core-js/internals/correct-is-regexp-logic.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/internals/correct-prototype-getter.js b/src/third_party/devtools/node_modules/core-js/internals/correct-prototype-getter.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/internals/correct-prototype-getter.js
rename to src/third_party/devtools/node_modules/core-js/internals/correct-prototype-getter.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/internals/create-async-iterator-proxy.js b/src/third_party/devtools/node_modules/core-js/internals/create-async-iterator-proxy.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/internals/create-async-iterator-proxy.js
rename to src/third_party/devtools/node_modules/core-js/internals/create-async-iterator-proxy.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/internals/create-html.js b/src/third_party/devtools/node_modules/core-js/internals/create-html.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/internals/create-html.js
rename to src/third_party/devtools/node_modules/core-js/internals/create-html.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/internals/create-iterator-constructor.js b/src/third_party/devtools/node_modules/core-js/internals/create-iterator-constructor.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/internals/create-iterator-constructor.js
rename to src/third_party/devtools/node_modules/core-js/internals/create-iterator-constructor.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/internals/create-iterator-proxy.js b/src/third_party/devtools/node_modules/core-js/internals/create-iterator-proxy.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/internals/create-iterator-proxy.js
rename to src/third_party/devtools/node_modules/core-js/internals/create-iterator-proxy.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/internals/create-non-enumerable-property.js b/src/third_party/devtools/node_modules/core-js/internals/create-non-enumerable-property.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/internals/create-non-enumerable-property.js
rename to src/third_party/devtools/node_modules/core-js/internals/create-non-enumerable-property.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/internals/create-property-descriptor.js b/src/third_party/devtools/node_modules/core-js/internals/create-property-descriptor.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/internals/create-property-descriptor.js
rename to src/third_party/devtools/node_modules/core-js/internals/create-property-descriptor.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/internals/create-property.js b/src/third_party/devtools/node_modules/core-js/internals/create-property.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/internals/create-property.js
rename to src/third_party/devtools/node_modules/core-js/internals/create-property.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/internals/date-to-iso-string.js b/src/third_party/devtools/node_modules/core-js/internals/date-to-iso-string.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/internals/date-to-iso-string.js
rename to src/third_party/devtools/node_modules/core-js/internals/date-to-iso-string.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/internals/date-to-primitive.js b/src/third_party/devtools/node_modules/core-js/internals/date-to-primitive.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/internals/date-to-primitive.js
rename to src/third_party/devtools/node_modules/core-js/internals/date-to-primitive.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/internals/define-iterator.js b/src/third_party/devtools/node_modules/core-js/internals/define-iterator.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/internals/define-iterator.js
rename to src/third_party/devtools/node_modules/core-js/internals/define-iterator.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/internals/define-well-known-symbol.js b/src/third_party/devtools/node_modules/core-js/internals/define-well-known-symbol.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/internals/define-well-known-symbol.js
rename to src/third_party/devtools/node_modules/core-js/internals/define-well-known-symbol.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/internals/descriptors.js b/src/third_party/devtools/node_modules/core-js/internals/descriptors.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/internals/descriptors.js
rename to src/third_party/devtools/node_modules/core-js/internals/descriptors.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/internals/document-create-element.js b/src/third_party/devtools/node_modules/core-js/internals/document-create-element.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/internals/document-create-element.js
rename to src/third_party/devtools/node_modules/core-js/internals/document-create-element.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/internals/dom-iterables.js b/src/third_party/devtools/node_modules/core-js/internals/dom-iterables.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/internals/dom-iterables.js
rename to src/third_party/devtools/node_modules/core-js/internals/dom-iterables.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/internals/entry-unbind.js b/src/third_party/devtools/node_modules/core-js/internals/entry-unbind.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/internals/entry-unbind.js
rename to src/third_party/devtools/node_modules/core-js/internals/entry-unbind.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/internals/entry-virtual.js b/src/third_party/devtools/node_modules/core-js/internals/entry-virtual.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/internals/entry-virtual.js
rename to src/third_party/devtools/node_modules/core-js/internals/entry-virtual.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/internals/enum-bug-keys.js b/src/third_party/devtools/node_modules/core-js/internals/enum-bug-keys.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/internals/enum-bug-keys.js
rename to src/third_party/devtools/node_modules/core-js/internals/enum-bug-keys.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/internals/export.js b/src/third_party/devtools/node_modules/core-js/internals/export.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/internals/export.js
rename to src/third_party/devtools/node_modules/core-js/internals/export.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/internals/fails.js b/src/third_party/devtools/node_modules/core-js/internals/fails.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/internals/fails.js
rename to src/third_party/devtools/node_modules/core-js/internals/fails.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/internals/fix-regexp-well-known-symbol-logic.js b/src/third_party/devtools/node_modules/core-js/internals/fix-regexp-well-known-symbol-logic.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/internals/fix-regexp-well-known-symbol-logic.js
rename to src/third_party/devtools/node_modules/core-js/internals/fix-regexp-well-known-symbol-logic.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/internals/flatten-into-array.js b/src/third_party/devtools/node_modules/core-js/internals/flatten-into-array.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/internals/flatten-into-array.js
rename to src/third_party/devtools/node_modules/core-js/internals/flatten-into-array.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/internals/forced-object-prototype-accessors-methods.js b/src/third_party/devtools/node_modules/core-js/internals/forced-object-prototype-accessors-methods.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/internals/forced-object-prototype-accessors-methods.js
rename to src/third_party/devtools/node_modules/core-js/internals/forced-object-prototype-accessors-methods.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/internals/forced-string-html-method.js b/src/third_party/devtools/node_modules/core-js/internals/forced-string-html-method.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/internals/forced-string-html-method.js
rename to src/third_party/devtools/node_modules/core-js/internals/forced-string-html-method.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/internals/forced-string-trim-method.js b/src/third_party/devtools/node_modules/core-js/internals/forced-string-trim-method.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/internals/forced-string-trim-method.js
rename to src/third_party/devtools/node_modules/core-js/internals/forced-string-trim-method.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/internals/freezing.js b/src/third_party/devtools/node_modules/core-js/internals/freezing.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/internals/freezing.js
rename to src/third_party/devtools/node_modules/core-js/internals/freezing.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/internals/function-bind.js b/src/third_party/devtools/node_modules/core-js/internals/function-bind.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/internals/function-bind.js
rename to src/third_party/devtools/node_modules/core-js/internals/function-bind.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/internals/function-to-string.js b/src/third_party/devtools/node_modules/core-js/internals/function-to-string.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/internals/function-to-string.js
rename to src/third_party/devtools/node_modules/core-js/internals/function-to-string.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/internals/get-async-iterator-method.js b/src/third_party/devtools/node_modules/core-js/internals/get-async-iterator-method.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/internals/get-async-iterator-method.js
rename to src/third_party/devtools/node_modules/core-js/internals/get-async-iterator-method.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/internals/get-built-in.js b/src/third_party/devtools/node_modules/core-js/internals/get-built-in.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/internals/get-built-in.js
rename to src/third_party/devtools/node_modules/core-js/internals/get-built-in.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/internals/get-iterator-method.js b/src/third_party/devtools/node_modules/core-js/internals/get-iterator-method.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/internals/get-iterator-method.js
rename to src/third_party/devtools/node_modules/core-js/internals/get-iterator-method.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/internals/get-iterator.js b/src/third_party/devtools/node_modules/core-js/internals/get-iterator.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/internals/get-iterator.js
rename to src/third_party/devtools/node_modules/core-js/internals/get-iterator.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/internals/get-map-iterator.js b/src/third_party/devtools/node_modules/core-js/internals/get-map-iterator.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/internals/get-map-iterator.js
rename to src/third_party/devtools/node_modules/core-js/internals/get-map-iterator.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/internals/get-set-iterator.js b/src/third_party/devtools/node_modules/core-js/internals/get-set-iterator.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/internals/get-set-iterator.js
rename to src/third_party/devtools/node_modules/core-js/internals/get-set-iterator.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/internals/global.js b/src/third_party/devtools/node_modules/core-js/internals/global.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/internals/global.js
rename to src/third_party/devtools/node_modules/core-js/internals/global.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/internals/has.js b/src/third_party/devtools/node_modules/core-js/internals/has.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/internals/has.js
rename to src/third_party/devtools/node_modules/core-js/internals/has.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/internals/hidden-keys.js b/src/third_party/devtools/node_modules/core-js/internals/hidden-keys.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/internals/hidden-keys.js
rename to src/third_party/devtools/node_modules/core-js/internals/hidden-keys.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/internals/host-report-errors.js b/src/third_party/devtools/node_modules/core-js/internals/host-report-errors.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/internals/host-report-errors.js
rename to src/third_party/devtools/node_modules/core-js/internals/host-report-errors.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/internals/html.js b/src/third_party/devtools/node_modules/core-js/internals/html.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/internals/html.js
rename to src/third_party/devtools/node_modules/core-js/internals/html.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/internals/ie8-dom-define.js b/src/third_party/devtools/node_modules/core-js/internals/ie8-dom-define.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/internals/ie8-dom-define.js
rename to src/third_party/devtools/node_modules/core-js/internals/ie8-dom-define.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/internals/indexed-object.js b/src/third_party/devtools/node_modules/core-js/internals/indexed-object.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/internals/indexed-object.js
rename to src/third_party/devtools/node_modules/core-js/internals/indexed-object.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/internals/inherit-if-required.js b/src/third_party/devtools/node_modules/core-js/internals/inherit-if-required.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/internals/inherit-if-required.js
rename to src/third_party/devtools/node_modules/core-js/internals/inherit-if-required.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/internals/internal-metadata.js b/src/third_party/devtools/node_modules/core-js/internals/internal-metadata.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/internals/internal-metadata.js
rename to src/third_party/devtools/node_modules/core-js/internals/internal-metadata.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/internals/internal-state.js b/src/third_party/devtools/node_modules/core-js/internals/internal-state.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/internals/internal-state.js
rename to src/third_party/devtools/node_modules/core-js/internals/internal-state.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/internals/is-array-iterator-method.js b/src/third_party/devtools/node_modules/core-js/internals/is-array-iterator-method.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/internals/is-array-iterator-method.js
rename to src/third_party/devtools/node_modules/core-js/internals/is-array-iterator-method.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/internals/is-array.js b/src/third_party/devtools/node_modules/core-js/internals/is-array.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/internals/is-array.js
rename to src/third_party/devtools/node_modules/core-js/internals/is-array.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/internals/is-forced.js b/src/third_party/devtools/node_modules/core-js/internals/is-forced.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/internals/is-forced.js
rename to src/third_party/devtools/node_modules/core-js/internals/is-forced.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/internals/is-integer.js b/src/third_party/devtools/node_modules/core-js/internals/is-integer.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/internals/is-integer.js
rename to src/third_party/devtools/node_modules/core-js/internals/is-integer.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/internals/is-iterable.js b/src/third_party/devtools/node_modules/core-js/internals/is-iterable.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/internals/is-iterable.js
rename to src/third_party/devtools/node_modules/core-js/internals/is-iterable.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/internals/is-object.js b/src/third_party/devtools/node_modules/core-js/internals/is-object.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/internals/is-object.js
rename to src/third_party/devtools/node_modules/core-js/internals/is-object.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/internals/is-pure.js b/src/third_party/devtools/node_modules/core-js/internals/is-pure.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/internals/is-pure.js
rename to src/third_party/devtools/node_modules/core-js/internals/is-pure.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/internals/is-regexp.js b/src/third_party/devtools/node_modules/core-js/internals/is-regexp.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/internals/is-regexp.js
rename to src/third_party/devtools/node_modules/core-js/internals/is-regexp.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/internals/iterate.js b/src/third_party/devtools/node_modules/core-js/internals/iterate.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/internals/iterate.js
rename to src/third_party/devtools/node_modules/core-js/internals/iterate.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/internals/iterators-core.js b/src/third_party/devtools/node_modules/core-js/internals/iterators-core.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/internals/iterators-core.js
rename to src/third_party/devtools/node_modules/core-js/internals/iterators-core.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/internals/iterators.js b/src/third_party/devtools/node_modules/core-js/internals/iterators.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/internals/iterators.js
rename to src/third_party/devtools/node_modules/core-js/internals/iterators.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/internals/map-upsert.js b/src/third_party/devtools/node_modules/core-js/internals/map-upsert.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/internals/map-upsert.js
rename to src/third_party/devtools/node_modules/core-js/internals/map-upsert.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/internals/math-expm1.js b/src/third_party/devtools/node_modules/core-js/internals/math-expm1.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/internals/math-expm1.js
rename to src/third_party/devtools/node_modules/core-js/internals/math-expm1.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/internals/math-fround.js b/src/third_party/devtools/node_modules/core-js/internals/math-fround.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/internals/math-fround.js
rename to src/third_party/devtools/node_modules/core-js/internals/math-fround.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/internals/math-log1p.js b/src/third_party/devtools/node_modules/core-js/internals/math-log1p.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/internals/math-log1p.js
rename to src/third_party/devtools/node_modules/core-js/internals/math-log1p.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/internals/math-scale.js b/src/third_party/devtools/node_modules/core-js/internals/math-scale.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/internals/math-scale.js
rename to src/third_party/devtools/node_modules/core-js/internals/math-scale.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/internals/math-sign.js b/src/third_party/devtools/node_modules/core-js/internals/math-sign.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/internals/math-sign.js
rename to src/third_party/devtools/node_modules/core-js/internals/math-sign.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/internals/microtask.js b/src/third_party/devtools/node_modules/core-js/internals/microtask.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/internals/microtask.js
rename to src/third_party/devtools/node_modules/core-js/internals/microtask.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/internals/native-promise-constructor.js b/src/third_party/devtools/node_modules/core-js/internals/native-promise-constructor.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/internals/native-promise-constructor.js
rename to src/third_party/devtools/node_modules/core-js/internals/native-promise-constructor.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/internals/native-symbol.js b/src/third_party/devtools/node_modules/core-js/internals/native-symbol.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/internals/native-symbol.js
rename to src/third_party/devtools/node_modules/core-js/internals/native-symbol.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/internals/native-url.js b/src/third_party/devtools/node_modules/core-js/internals/native-url.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/internals/native-url.js
rename to src/third_party/devtools/node_modules/core-js/internals/native-url.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/internals/native-weak-map.js b/src/third_party/devtools/node_modules/core-js/internals/native-weak-map.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/internals/native-weak-map.js
rename to src/third_party/devtools/node_modules/core-js/internals/native-weak-map.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/internals/new-promise-capability.js b/src/third_party/devtools/node_modules/core-js/internals/new-promise-capability.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/internals/new-promise-capability.js
rename to src/third_party/devtools/node_modules/core-js/internals/new-promise-capability.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/internals/not-a-regexp.js b/src/third_party/devtools/node_modules/core-js/internals/not-a-regexp.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/internals/not-a-regexp.js
rename to src/third_party/devtools/node_modules/core-js/internals/not-a-regexp.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/internals/number-is-finite.js b/src/third_party/devtools/node_modules/core-js/internals/number-is-finite.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/internals/number-is-finite.js
rename to src/third_party/devtools/node_modules/core-js/internals/number-is-finite.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/internals/object-assign.js b/src/third_party/devtools/node_modules/core-js/internals/object-assign.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/internals/object-assign.js
rename to src/third_party/devtools/node_modules/core-js/internals/object-assign.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/internals/object-create.js b/src/third_party/devtools/node_modules/core-js/internals/object-create.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/internals/object-create.js
rename to src/third_party/devtools/node_modules/core-js/internals/object-create.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/internals/object-define-properties.js b/src/third_party/devtools/node_modules/core-js/internals/object-define-properties.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/internals/object-define-properties.js
rename to src/third_party/devtools/node_modules/core-js/internals/object-define-properties.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/internals/object-define-property.js b/src/third_party/devtools/node_modules/core-js/internals/object-define-property.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/internals/object-define-property.js
rename to src/third_party/devtools/node_modules/core-js/internals/object-define-property.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/internals/object-get-own-property-descriptor.js b/src/third_party/devtools/node_modules/core-js/internals/object-get-own-property-descriptor.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/internals/object-get-own-property-descriptor.js
rename to src/third_party/devtools/node_modules/core-js/internals/object-get-own-property-descriptor.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/internals/object-get-own-property-names-external.js b/src/third_party/devtools/node_modules/core-js/internals/object-get-own-property-names-external.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/internals/object-get-own-property-names-external.js
rename to src/third_party/devtools/node_modules/core-js/internals/object-get-own-property-names-external.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/internals/object-get-own-property-names.js b/src/third_party/devtools/node_modules/core-js/internals/object-get-own-property-names.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/internals/object-get-own-property-names.js
rename to src/third_party/devtools/node_modules/core-js/internals/object-get-own-property-names.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/internals/object-get-own-property-symbols.js b/src/third_party/devtools/node_modules/core-js/internals/object-get-own-property-symbols.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/internals/object-get-own-property-symbols.js
rename to src/third_party/devtools/node_modules/core-js/internals/object-get-own-property-symbols.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/internals/object-get-prototype-of.js b/src/third_party/devtools/node_modules/core-js/internals/object-get-prototype-of.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/internals/object-get-prototype-of.js
rename to src/third_party/devtools/node_modules/core-js/internals/object-get-prototype-of.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/internals/object-keys-internal.js b/src/third_party/devtools/node_modules/core-js/internals/object-keys-internal.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/internals/object-keys-internal.js
rename to src/third_party/devtools/node_modules/core-js/internals/object-keys-internal.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/internals/object-keys.js b/src/third_party/devtools/node_modules/core-js/internals/object-keys.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/internals/object-keys.js
rename to src/third_party/devtools/node_modules/core-js/internals/object-keys.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/internals/object-property-is-enumerable.js b/src/third_party/devtools/node_modules/core-js/internals/object-property-is-enumerable.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/internals/object-property-is-enumerable.js
rename to src/third_party/devtools/node_modules/core-js/internals/object-property-is-enumerable.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/internals/object-set-prototype-of.js b/src/third_party/devtools/node_modules/core-js/internals/object-set-prototype-of.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/internals/object-set-prototype-of.js
rename to src/third_party/devtools/node_modules/core-js/internals/object-set-prototype-of.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/internals/object-to-array.js b/src/third_party/devtools/node_modules/core-js/internals/object-to-array.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/internals/object-to-array.js
rename to src/third_party/devtools/node_modules/core-js/internals/object-to-array.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/internals/object-to-string.js b/src/third_party/devtools/node_modules/core-js/internals/object-to-string.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/internals/object-to-string.js
rename to src/third_party/devtools/node_modules/core-js/internals/object-to-string.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/internals/own-keys.js b/src/third_party/devtools/node_modules/core-js/internals/own-keys.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/internals/own-keys.js
rename to src/third_party/devtools/node_modules/core-js/internals/own-keys.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/internals/parse-float.js b/src/third_party/devtools/node_modules/core-js/internals/parse-float.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/internals/parse-float.js
rename to src/third_party/devtools/node_modules/core-js/internals/parse-float.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/internals/parse-int.js b/src/third_party/devtools/node_modules/core-js/internals/parse-int.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/internals/parse-int.js
rename to src/third_party/devtools/node_modules/core-js/internals/parse-int.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/internals/path.js b/src/third_party/devtools/node_modules/core-js/internals/path.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/internals/path.js
rename to src/third_party/devtools/node_modules/core-js/internals/path.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/internals/perform.js b/src/third_party/devtools/node_modules/core-js/internals/perform.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/internals/perform.js
rename to src/third_party/devtools/node_modules/core-js/internals/perform.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/internals/promise-resolve.js b/src/third_party/devtools/node_modules/core-js/internals/promise-resolve.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/internals/promise-resolve.js
rename to src/third_party/devtools/node_modules/core-js/internals/promise-resolve.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/internals/punycode-to-ascii.js b/src/third_party/devtools/node_modules/core-js/internals/punycode-to-ascii.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/internals/punycode-to-ascii.js
rename to src/third_party/devtools/node_modules/core-js/internals/punycode-to-ascii.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/internals/redefine-all.js b/src/third_party/devtools/node_modules/core-js/internals/redefine-all.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/internals/redefine-all.js
rename to src/third_party/devtools/node_modules/core-js/internals/redefine-all.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/internals/redefine.js b/src/third_party/devtools/node_modules/core-js/internals/redefine.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/internals/redefine.js
rename to src/third_party/devtools/node_modules/core-js/internals/redefine.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/internals/reflect-metadata.js b/src/third_party/devtools/node_modules/core-js/internals/reflect-metadata.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/internals/reflect-metadata.js
rename to src/third_party/devtools/node_modules/core-js/internals/reflect-metadata.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/internals/regexp-exec-abstract.js b/src/third_party/devtools/node_modules/core-js/internals/regexp-exec-abstract.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/internals/regexp-exec-abstract.js
rename to src/third_party/devtools/node_modules/core-js/internals/regexp-exec-abstract.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/internals/regexp-exec.js b/src/third_party/devtools/node_modules/core-js/internals/regexp-exec.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/internals/regexp-exec.js
rename to src/third_party/devtools/node_modules/core-js/internals/regexp-exec.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/internals/regexp-flags.js b/src/third_party/devtools/node_modules/core-js/internals/regexp-flags.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/internals/regexp-flags.js
rename to src/third_party/devtools/node_modules/core-js/internals/regexp-flags.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/internals/require-object-coercible.js b/src/third_party/devtools/node_modules/core-js/internals/require-object-coercible.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/internals/require-object-coercible.js
rename to src/third_party/devtools/node_modules/core-js/internals/require-object-coercible.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/internals/same-value-zero.js b/src/third_party/devtools/node_modules/core-js/internals/same-value-zero.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/internals/same-value-zero.js
rename to src/third_party/devtools/node_modules/core-js/internals/same-value-zero.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/internals/same-value.js b/src/third_party/devtools/node_modules/core-js/internals/same-value.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/internals/same-value.js
rename to src/third_party/devtools/node_modules/core-js/internals/same-value.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/internals/set-global.js b/src/third_party/devtools/node_modules/core-js/internals/set-global.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/internals/set-global.js
rename to src/third_party/devtools/node_modules/core-js/internals/set-global.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/internals/set-species.js b/src/third_party/devtools/node_modules/core-js/internals/set-species.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/internals/set-species.js
rename to src/third_party/devtools/node_modules/core-js/internals/set-species.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/internals/set-to-string-tag.js b/src/third_party/devtools/node_modules/core-js/internals/set-to-string-tag.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/internals/set-to-string-tag.js
rename to src/third_party/devtools/node_modules/core-js/internals/set-to-string-tag.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/internals/shared-key.js b/src/third_party/devtools/node_modules/core-js/internals/shared-key.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/internals/shared-key.js
rename to src/third_party/devtools/node_modules/core-js/internals/shared-key.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/internals/shared-store.js b/src/third_party/devtools/node_modules/core-js/internals/shared-store.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/internals/shared-store.js
rename to src/third_party/devtools/node_modules/core-js/internals/shared-store.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/internals/shared.js b/src/third_party/devtools/node_modules/core-js/internals/shared.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/internals/shared.js
rename to src/third_party/devtools/node_modules/core-js/internals/shared.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/internals/sloppy-array-method.js b/src/third_party/devtools/node_modules/core-js/internals/sloppy-array-method.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/internals/sloppy-array-method.js
rename to src/third_party/devtools/node_modules/core-js/internals/sloppy-array-method.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/internals/species-constructor.js b/src/third_party/devtools/node_modules/core-js/internals/species-constructor.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/internals/species-constructor.js
rename to src/third_party/devtools/node_modules/core-js/internals/species-constructor.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/internals/string-multibyte.js b/src/third_party/devtools/node_modules/core-js/internals/string-multibyte.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/internals/string-multibyte.js
rename to src/third_party/devtools/node_modules/core-js/internals/string-multibyte.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/internals/string-pad.js b/src/third_party/devtools/node_modules/core-js/internals/string-pad.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/internals/string-pad.js
rename to src/third_party/devtools/node_modules/core-js/internals/string-pad.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/internals/string-repeat.js b/src/third_party/devtools/node_modules/core-js/internals/string-repeat.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/internals/string-repeat.js
rename to src/third_party/devtools/node_modules/core-js/internals/string-repeat.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/internals/string-trim.js b/src/third_party/devtools/node_modules/core-js/internals/string-trim.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/internals/string-trim.js
rename to src/third_party/devtools/node_modules/core-js/internals/string-trim.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/internals/task.js b/src/third_party/devtools/node_modules/core-js/internals/task.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/internals/task.js
rename to src/third_party/devtools/node_modules/core-js/internals/task.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/internals/this-number-value.js b/src/third_party/devtools/node_modules/core-js/internals/this-number-value.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/internals/this-number-value.js
rename to src/third_party/devtools/node_modules/core-js/internals/this-number-value.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/internals/to-absolute-index.js b/src/third_party/devtools/node_modules/core-js/internals/to-absolute-index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/internals/to-absolute-index.js
rename to src/third_party/devtools/node_modules/core-js/internals/to-absolute-index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/internals/to-index.js b/src/third_party/devtools/node_modules/core-js/internals/to-index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/internals/to-index.js
rename to src/third_party/devtools/node_modules/core-js/internals/to-index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/internals/to-indexed-object.js b/src/third_party/devtools/node_modules/core-js/internals/to-indexed-object.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/internals/to-indexed-object.js
rename to src/third_party/devtools/node_modules/core-js/internals/to-indexed-object.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/internals/to-integer.js b/src/third_party/devtools/node_modules/core-js/internals/to-integer.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/internals/to-integer.js
rename to src/third_party/devtools/node_modules/core-js/internals/to-integer.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/internals/to-length.js b/src/third_party/devtools/node_modules/core-js/internals/to-length.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/internals/to-length.js
rename to src/third_party/devtools/node_modules/core-js/internals/to-length.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/internals/to-object.js b/src/third_party/devtools/node_modules/core-js/internals/to-object.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/internals/to-object.js
rename to src/third_party/devtools/node_modules/core-js/internals/to-object.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/internals/to-offset.js b/src/third_party/devtools/node_modules/core-js/internals/to-offset.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/internals/to-offset.js
rename to src/third_party/devtools/node_modules/core-js/internals/to-offset.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/internals/to-positive-integer.js b/src/third_party/devtools/node_modules/core-js/internals/to-positive-integer.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/internals/to-positive-integer.js
rename to src/third_party/devtools/node_modules/core-js/internals/to-positive-integer.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/internals/to-primitive.js b/src/third_party/devtools/node_modules/core-js/internals/to-primitive.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/internals/to-primitive.js
rename to src/third_party/devtools/node_modules/core-js/internals/to-primitive.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/internals/typed-array-constructor.js b/src/third_party/devtools/node_modules/core-js/internals/typed-array-constructor.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/internals/typed-array-constructor.js
rename to src/third_party/devtools/node_modules/core-js/internals/typed-array-constructor.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/internals/typed-array-from.js b/src/third_party/devtools/node_modules/core-js/internals/typed-array-from.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/internals/typed-array-from.js
rename to src/third_party/devtools/node_modules/core-js/internals/typed-array-from.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/internals/typed-arrays-constructors-requires-wrappers.js b/src/third_party/devtools/node_modules/core-js/internals/typed-arrays-constructors-requires-wrappers.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/internals/typed-arrays-constructors-requires-wrappers.js
rename to src/third_party/devtools/node_modules/core-js/internals/typed-arrays-constructors-requires-wrappers.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/internals/uid.js b/src/third_party/devtools/node_modules/core-js/internals/uid.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/internals/uid.js
rename to src/third_party/devtools/node_modules/core-js/internals/uid.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/internals/user-agent.js b/src/third_party/devtools/node_modules/core-js/internals/user-agent.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/internals/user-agent.js
rename to src/third_party/devtools/node_modules/core-js/internals/user-agent.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/internals/v8-version.js b/src/third_party/devtools/node_modules/core-js/internals/v8-version.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/internals/v8-version.js
rename to src/third_party/devtools/node_modules/core-js/internals/v8-version.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/internals/webkit-string-pad-bug.js b/src/third_party/devtools/node_modules/core-js/internals/webkit-string-pad-bug.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/internals/webkit-string-pad-bug.js
rename to src/third_party/devtools/node_modules/core-js/internals/webkit-string-pad-bug.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/internals/well-known-symbol.js b/src/third_party/devtools/node_modules/core-js/internals/well-known-symbol.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/internals/well-known-symbol.js
rename to src/third_party/devtools/node_modules/core-js/internals/well-known-symbol.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/internals/whitespaces.js b/src/third_party/devtools/node_modules/core-js/internals/whitespaces.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/internals/whitespaces.js
rename to src/third_party/devtools/node_modules/core-js/internals/whitespaces.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/internals/wrapped-well-known-symbol.js b/src/third_party/devtools/node_modules/core-js/internals/wrapped-well-known-symbol.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/internals/wrapped-well-known-symbol.js
rename to src/third_party/devtools/node_modules/core-js/internals/wrapped-well-known-symbol.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/README.md b/src/third_party/devtools/node_modules/core-js/modules/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/README.md
rename to src/third_party/devtools/node_modules/core-js/modules/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.array-buffer.constructor.js b/src/third_party/devtools/node_modules/core-js/modules/es.array-buffer.constructor.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.array-buffer.constructor.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.array-buffer.constructor.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.array-buffer.is-view.js b/src/third_party/devtools/node_modules/core-js/modules/es.array-buffer.is-view.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.array-buffer.is-view.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.array-buffer.is-view.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.array-buffer.slice.js b/src/third_party/devtools/node_modules/core-js/modules/es.array-buffer.slice.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.array-buffer.slice.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.array-buffer.slice.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.array.concat.js b/src/third_party/devtools/node_modules/core-js/modules/es.array.concat.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.array.concat.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.array.concat.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.array.copy-within.js b/src/third_party/devtools/node_modules/core-js/modules/es.array.copy-within.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.array.copy-within.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.array.copy-within.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.array.every.js b/src/third_party/devtools/node_modules/core-js/modules/es.array.every.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.array.every.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.array.every.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.array.fill.js b/src/third_party/devtools/node_modules/core-js/modules/es.array.fill.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.array.fill.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.array.fill.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.array.filter.js b/src/third_party/devtools/node_modules/core-js/modules/es.array.filter.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.array.filter.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.array.filter.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.array.find-index.js b/src/third_party/devtools/node_modules/core-js/modules/es.array.find-index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.array.find-index.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.array.find-index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.array.find.js b/src/third_party/devtools/node_modules/core-js/modules/es.array.find.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.array.find.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.array.find.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.array.flat-map.js b/src/third_party/devtools/node_modules/core-js/modules/es.array.flat-map.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.array.flat-map.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.array.flat-map.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.array.flat.js b/src/third_party/devtools/node_modules/core-js/modules/es.array.flat.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.array.flat.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.array.flat.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.array.for-each.js b/src/third_party/devtools/node_modules/core-js/modules/es.array.for-each.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.array.for-each.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.array.for-each.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.array.from.js b/src/third_party/devtools/node_modules/core-js/modules/es.array.from.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.array.from.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.array.from.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.array.includes.js b/src/third_party/devtools/node_modules/core-js/modules/es.array.includes.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.array.includes.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.array.includes.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.array.index-of.js b/src/third_party/devtools/node_modules/core-js/modules/es.array.index-of.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.array.index-of.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.array.index-of.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.array.is-array.js b/src/third_party/devtools/node_modules/core-js/modules/es.array.is-array.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.array.is-array.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.array.is-array.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.array.iterator.js b/src/third_party/devtools/node_modules/core-js/modules/es.array.iterator.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.array.iterator.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.array.iterator.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.array.join.js b/src/third_party/devtools/node_modules/core-js/modules/es.array.join.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.array.join.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.array.join.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.array.last-index-of.js b/src/third_party/devtools/node_modules/core-js/modules/es.array.last-index-of.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.array.last-index-of.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.array.last-index-of.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.array.map.js b/src/third_party/devtools/node_modules/core-js/modules/es.array.map.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.array.map.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.array.map.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.array.of.js b/src/third_party/devtools/node_modules/core-js/modules/es.array.of.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.array.of.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.array.of.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.array.reduce-right.js b/src/third_party/devtools/node_modules/core-js/modules/es.array.reduce-right.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.array.reduce-right.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.array.reduce-right.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.array.reduce.js b/src/third_party/devtools/node_modules/core-js/modules/es.array.reduce.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.array.reduce.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.array.reduce.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.array.reverse.js b/src/third_party/devtools/node_modules/core-js/modules/es.array.reverse.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.array.reverse.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.array.reverse.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.array.slice.js b/src/third_party/devtools/node_modules/core-js/modules/es.array.slice.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.array.slice.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.array.slice.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.array.some.js b/src/third_party/devtools/node_modules/core-js/modules/es.array.some.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.array.some.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.array.some.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.array.sort.js b/src/third_party/devtools/node_modules/core-js/modules/es.array.sort.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.array.sort.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.array.sort.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.array.species.js b/src/third_party/devtools/node_modules/core-js/modules/es.array.species.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.array.species.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.array.species.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.array.splice.js b/src/third_party/devtools/node_modules/core-js/modules/es.array.splice.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.array.splice.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.array.splice.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.array.unscopables.flat-map.js b/src/third_party/devtools/node_modules/core-js/modules/es.array.unscopables.flat-map.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.array.unscopables.flat-map.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.array.unscopables.flat-map.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.array.unscopables.flat.js b/src/third_party/devtools/node_modules/core-js/modules/es.array.unscopables.flat.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.array.unscopables.flat.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.array.unscopables.flat.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.data-view.js b/src/third_party/devtools/node_modules/core-js/modules/es.data-view.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.data-view.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.data-view.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.date.now.js b/src/third_party/devtools/node_modules/core-js/modules/es.date.now.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.date.now.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.date.now.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.date.to-iso-string.js b/src/third_party/devtools/node_modules/core-js/modules/es.date.to-iso-string.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.date.to-iso-string.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.date.to-iso-string.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.date.to-json.js b/src/third_party/devtools/node_modules/core-js/modules/es.date.to-json.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.date.to-json.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.date.to-json.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.date.to-primitive.js b/src/third_party/devtools/node_modules/core-js/modules/es.date.to-primitive.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.date.to-primitive.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.date.to-primitive.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.date.to-string.js b/src/third_party/devtools/node_modules/core-js/modules/es.date.to-string.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.date.to-string.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.date.to-string.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.function.bind.js b/src/third_party/devtools/node_modules/core-js/modules/es.function.bind.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.function.bind.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.function.bind.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.function.has-instance.js b/src/third_party/devtools/node_modules/core-js/modules/es.function.has-instance.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.function.has-instance.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.function.has-instance.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.function.name.js b/src/third_party/devtools/node_modules/core-js/modules/es.function.name.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.function.name.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.function.name.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.global-this.js b/src/third_party/devtools/node_modules/core-js/modules/es.global-this.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.global-this.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.global-this.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.json.to-string-tag.js b/src/third_party/devtools/node_modules/core-js/modules/es.json.to-string-tag.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.json.to-string-tag.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.json.to-string-tag.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.map.js b/src/third_party/devtools/node_modules/core-js/modules/es.map.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.map.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.map.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.math.acosh.js b/src/third_party/devtools/node_modules/core-js/modules/es.math.acosh.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.math.acosh.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.math.acosh.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.math.asinh.js b/src/third_party/devtools/node_modules/core-js/modules/es.math.asinh.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.math.asinh.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.math.asinh.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.math.atanh.js b/src/third_party/devtools/node_modules/core-js/modules/es.math.atanh.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.math.atanh.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.math.atanh.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.math.cbrt.js b/src/third_party/devtools/node_modules/core-js/modules/es.math.cbrt.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.math.cbrt.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.math.cbrt.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.math.clz32.js b/src/third_party/devtools/node_modules/core-js/modules/es.math.clz32.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.math.clz32.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.math.clz32.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.math.cosh.js b/src/third_party/devtools/node_modules/core-js/modules/es.math.cosh.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.math.cosh.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.math.cosh.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.math.expm1.js b/src/third_party/devtools/node_modules/core-js/modules/es.math.expm1.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.math.expm1.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.math.expm1.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.math.fround.js b/src/third_party/devtools/node_modules/core-js/modules/es.math.fround.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.math.fround.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.math.fround.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.math.hypot.js b/src/third_party/devtools/node_modules/core-js/modules/es.math.hypot.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.math.hypot.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.math.hypot.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.math.imul.js b/src/third_party/devtools/node_modules/core-js/modules/es.math.imul.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.math.imul.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.math.imul.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.math.log10.js b/src/third_party/devtools/node_modules/core-js/modules/es.math.log10.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.math.log10.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.math.log10.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.math.log1p.js b/src/third_party/devtools/node_modules/core-js/modules/es.math.log1p.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.math.log1p.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.math.log1p.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.math.log2.js b/src/third_party/devtools/node_modules/core-js/modules/es.math.log2.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.math.log2.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.math.log2.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.math.sign.js b/src/third_party/devtools/node_modules/core-js/modules/es.math.sign.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.math.sign.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.math.sign.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.math.sinh.js b/src/third_party/devtools/node_modules/core-js/modules/es.math.sinh.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.math.sinh.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.math.sinh.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.math.tanh.js b/src/third_party/devtools/node_modules/core-js/modules/es.math.tanh.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.math.tanh.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.math.tanh.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.math.to-string-tag.js b/src/third_party/devtools/node_modules/core-js/modules/es.math.to-string-tag.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.math.to-string-tag.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.math.to-string-tag.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.math.trunc.js b/src/third_party/devtools/node_modules/core-js/modules/es.math.trunc.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.math.trunc.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.math.trunc.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.number.constructor.js b/src/third_party/devtools/node_modules/core-js/modules/es.number.constructor.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.number.constructor.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.number.constructor.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.number.epsilon.js b/src/third_party/devtools/node_modules/core-js/modules/es.number.epsilon.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.number.epsilon.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.number.epsilon.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.number.is-finite.js b/src/third_party/devtools/node_modules/core-js/modules/es.number.is-finite.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.number.is-finite.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.number.is-finite.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.number.is-integer.js b/src/third_party/devtools/node_modules/core-js/modules/es.number.is-integer.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.number.is-integer.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.number.is-integer.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.number.is-nan.js b/src/third_party/devtools/node_modules/core-js/modules/es.number.is-nan.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.number.is-nan.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.number.is-nan.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.number.is-safe-integer.js b/src/third_party/devtools/node_modules/core-js/modules/es.number.is-safe-integer.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.number.is-safe-integer.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.number.is-safe-integer.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.number.max-safe-integer.js b/src/third_party/devtools/node_modules/core-js/modules/es.number.max-safe-integer.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.number.max-safe-integer.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.number.max-safe-integer.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.number.min-safe-integer.js b/src/third_party/devtools/node_modules/core-js/modules/es.number.min-safe-integer.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.number.min-safe-integer.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.number.min-safe-integer.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.number.parse-float.js b/src/third_party/devtools/node_modules/core-js/modules/es.number.parse-float.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.number.parse-float.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.number.parse-float.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.number.parse-int.js b/src/third_party/devtools/node_modules/core-js/modules/es.number.parse-int.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.number.parse-int.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.number.parse-int.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.number.to-fixed.js b/src/third_party/devtools/node_modules/core-js/modules/es.number.to-fixed.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.number.to-fixed.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.number.to-fixed.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.number.to-precision.js b/src/third_party/devtools/node_modules/core-js/modules/es.number.to-precision.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.number.to-precision.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.number.to-precision.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.object.assign.js b/src/third_party/devtools/node_modules/core-js/modules/es.object.assign.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.object.assign.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.object.assign.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.object.create.js b/src/third_party/devtools/node_modules/core-js/modules/es.object.create.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.object.create.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.object.create.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.object.define-getter.js b/src/third_party/devtools/node_modules/core-js/modules/es.object.define-getter.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.object.define-getter.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.object.define-getter.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.object.define-properties.js b/src/third_party/devtools/node_modules/core-js/modules/es.object.define-properties.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.object.define-properties.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.object.define-properties.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.object.define-property.js b/src/third_party/devtools/node_modules/core-js/modules/es.object.define-property.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.object.define-property.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.object.define-property.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.object.define-setter.js b/src/third_party/devtools/node_modules/core-js/modules/es.object.define-setter.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.object.define-setter.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.object.define-setter.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.object.entries.js b/src/third_party/devtools/node_modules/core-js/modules/es.object.entries.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.object.entries.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.object.entries.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.object.freeze.js b/src/third_party/devtools/node_modules/core-js/modules/es.object.freeze.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.object.freeze.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.object.freeze.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.object.from-entries.js b/src/third_party/devtools/node_modules/core-js/modules/es.object.from-entries.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.object.from-entries.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.object.from-entries.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.object.get-own-property-descriptor.js b/src/third_party/devtools/node_modules/core-js/modules/es.object.get-own-property-descriptor.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.object.get-own-property-descriptor.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.object.get-own-property-descriptor.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.object.get-own-property-descriptors.js b/src/third_party/devtools/node_modules/core-js/modules/es.object.get-own-property-descriptors.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.object.get-own-property-descriptors.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.object.get-own-property-descriptors.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.object.get-own-property-names.js b/src/third_party/devtools/node_modules/core-js/modules/es.object.get-own-property-names.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.object.get-own-property-names.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.object.get-own-property-names.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.object.get-prototype-of.js b/src/third_party/devtools/node_modules/core-js/modules/es.object.get-prototype-of.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.object.get-prototype-of.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.object.get-prototype-of.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.object.is-extensible.js b/src/third_party/devtools/node_modules/core-js/modules/es.object.is-extensible.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.object.is-extensible.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.object.is-extensible.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.object.is-frozen.js b/src/third_party/devtools/node_modules/core-js/modules/es.object.is-frozen.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.object.is-frozen.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.object.is-frozen.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.object.is-sealed.js b/src/third_party/devtools/node_modules/core-js/modules/es.object.is-sealed.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.object.is-sealed.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.object.is-sealed.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.object.is.js b/src/third_party/devtools/node_modules/core-js/modules/es.object.is.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.object.is.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.object.is.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.object.keys.js b/src/third_party/devtools/node_modules/core-js/modules/es.object.keys.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.object.keys.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.object.keys.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.object.lookup-getter.js b/src/third_party/devtools/node_modules/core-js/modules/es.object.lookup-getter.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.object.lookup-getter.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.object.lookup-getter.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.object.lookup-setter.js b/src/third_party/devtools/node_modules/core-js/modules/es.object.lookup-setter.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.object.lookup-setter.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.object.lookup-setter.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.object.prevent-extensions.js b/src/third_party/devtools/node_modules/core-js/modules/es.object.prevent-extensions.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.object.prevent-extensions.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.object.prevent-extensions.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.object.seal.js b/src/third_party/devtools/node_modules/core-js/modules/es.object.seal.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.object.seal.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.object.seal.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.object.set-prototype-of.js b/src/third_party/devtools/node_modules/core-js/modules/es.object.set-prototype-of.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.object.set-prototype-of.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.object.set-prototype-of.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.object.to-string.js b/src/third_party/devtools/node_modules/core-js/modules/es.object.to-string.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.object.to-string.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.object.to-string.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.object.values.js b/src/third_party/devtools/node_modules/core-js/modules/es.object.values.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.object.values.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.object.values.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.parse-float.js b/src/third_party/devtools/node_modules/core-js/modules/es.parse-float.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.parse-float.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.parse-float.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.parse-int.js b/src/third_party/devtools/node_modules/core-js/modules/es.parse-int.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.parse-int.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.parse-int.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.promise.all-settled.js b/src/third_party/devtools/node_modules/core-js/modules/es.promise.all-settled.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.promise.all-settled.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.promise.all-settled.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.promise.finally.js b/src/third_party/devtools/node_modules/core-js/modules/es.promise.finally.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.promise.finally.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.promise.finally.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.promise.js b/src/third_party/devtools/node_modules/core-js/modules/es.promise.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.promise.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.promise.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.reflect.apply.js b/src/third_party/devtools/node_modules/core-js/modules/es.reflect.apply.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.reflect.apply.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.reflect.apply.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.reflect.construct.js b/src/third_party/devtools/node_modules/core-js/modules/es.reflect.construct.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.reflect.construct.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.reflect.construct.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.reflect.define-property.js b/src/third_party/devtools/node_modules/core-js/modules/es.reflect.define-property.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.reflect.define-property.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.reflect.define-property.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.reflect.delete-property.js b/src/third_party/devtools/node_modules/core-js/modules/es.reflect.delete-property.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.reflect.delete-property.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.reflect.delete-property.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.reflect.get-own-property-descriptor.js b/src/third_party/devtools/node_modules/core-js/modules/es.reflect.get-own-property-descriptor.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.reflect.get-own-property-descriptor.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.reflect.get-own-property-descriptor.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.reflect.get-prototype-of.js b/src/third_party/devtools/node_modules/core-js/modules/es.reflect.get-prototype-of.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.reflect.get-prototype-of.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.reflect.get-prototype-of.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.reflect.get.js b/src/third_party/devtools/node_modules/core-js/modules/es.reflect.get.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.reflect.get.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.reflect.get.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.reflect.has.js b/src/third_party/devtools/node_modules/core-js/modules/es.reflect.has.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.reflect.has.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.reflect.has.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.reflect.is-extensible.js b/src/third_party/devtools/node_modules/core-js/modules/es.reflect.is-extensible.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.reflect.is-extensible.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.reflect.is-extensible.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.reflect.own-keys.js b/src/third_party/devtools/node_modules/core-js/modules/es.reflect.own-keys.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.reflect.own-keys.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.reflect.own-keys.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.reflect.prevent-extensions.js b/src/third_party/devtools/node_modules/core-js/modules/es.reflect.prevent-extensions.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.reflect.prevent-extensions.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.reflect.prevent-extensions.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.reflect.set-prototype-of.js b/src/third_party/devtools/node_modules/core-js/modules/es.reflect.set-prototype-of.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.reflect.set-prototype-of.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.reflect.set-prototype-of.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.reflect.set.js b/src/third_party/devtools/node_modules/core-js/modules/es.reflect.set.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.reflect.set.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.reflect.set.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.regexp.constructor.js b/src/third_party/devtools/node_modules/core-js/modules/es.regexp.constructor.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.regexp.constructor.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.regexp.constructor.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.regexp.exec.js b/src/third_party/devtools/node_modules/core-js/modules/es.regexp.exec.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.regexp.exec.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.regexp.exec.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.regexp.flags.js b/src/third_party/devtools/node_modules/core-js/modules/es.regexp.flags.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.regexp.flags.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.regexp.flags.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.regexp.to-string.js b/src/third_party/devtools/node_modules/core-js/modules/es.regexp.to-string.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.regexp.to-string.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.regexp.to-string.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.set.js b/src/third_party/devtools/node_modules/core-js/modules/es.set.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.set.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.set.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.string.anchor.js b/src/third_party/devtools/node_modules/core-js/modules/es.string.anchor.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.string.anchor.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.string.anchor.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.string.big.js b/src/third_party/devtools/node_modules/core-js/modules/es.string.big.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.string.big.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.string.big.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.string.blink.js b/src/third_party/devtools/node_modules/core-js/modules/es.string.blink.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.string.blink.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.string.blink.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.string.bold.js b/src/third_party/devtools/node_modules/core-js/modules/es.string.bold.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.string.bold.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.string.bold.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.string.code-point-at.js b/src/third_party/devtools/node_modules/core-js/modules/es.string.code-point-at.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.string.code-point-at.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.string.code-point-at.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.string.ends-with.js b/src/third_party/devtools/node_modules/core-js/modules/es.string.ends-with.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.string.ends-with.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.string.ends-with.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.string.fixed.js b/src/third_party/devtools/node_modules/core-js/modules/es.string.fixed.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.string.fixed.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.string.fixed.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.string.fontcolor.js b/src/third_party/devtools/node_modules/core-js/modules/es.string.fontcolor.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.string.fontcolor.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.string.fontcolor.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.string.fontsize.js b/src/third_party/devtools/node_modules/core-js/modules/es.string.fontsize.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.string.fontsize.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.string.fontsize.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.string.from-code-point.js b/src/third_party/devtools/node_modules/core-js/modules/es.string.from-code-point.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.string.from-code-point.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.string.from-code-point.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.string.includes.js b/src/third_party/devtools/node_modules/core-js/modules/es.string.includes.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.string.includes.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.string.includes.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.string.italics.js b/src/third_party/devtools/node_modules/core-js/modules/es.string.italics.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.string.italics.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.string.italics.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.string.iterator.js b/src/third_party/devtools/node_modules/core-js/modules/es.string.iterator.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.string.iterator.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.string.iterator.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.string.link.js b/src/third_party/devtools/node_modules/core-js/modules/es.string.link.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.string.link.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.string.link.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.string.match-all.js b/src/third_party/devtools/node_modules/core-js/modules/es.string.match-all.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.string.match-all.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.string.match-all.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.string.match.js b/src/third_party/devtools/node_modules/core-js/modules/es.string.match.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.string.match.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.string.match.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.string.pad-end.js b/src/third_party/devtools/node_modules/core-js/modules/es.string.pad-end.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.string.pad-end.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.string.pad-end.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.string.pad-start.js b/src/third_party/devtools/node_modules/core-js/modules/es.string.pad-start.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.string.pad-start.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.string.pad-start.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.string.raw.js b/src/third_party/devtools/node_modules/core-js/modules/es.string.raw.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.string.raw.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.string.raw.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.string.repeat.js b/src/third_party/devtools/node_modules/core-js/modules/es.string.repeat.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.string.repeat.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.string.repeat.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.string.replace.js b/src/third_party/devtools/node_modules/core-js/modules/es.string.replace.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.string.replace.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.string.replace.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.string.search.js b/src/third_party/devtools/node_modules/core-js/modules/es.string.search.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.string.search.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.string.search.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.string.small.js b/src/third_party/devtools/node_modules/core-js/modules/es.string.small.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.string.small.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.string.small.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.string.split.js b/src/third_party/devtools/node_modules/core-js/modules/es.string.split.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.string.split.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.string.split.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.string.starts-with.js b/src/third_party/devtools/node_modules/core-js/modules/es.string.starts-with.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.string.starts-with.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.string.starts-with.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.string.strike.js b/src/third_party/devtools/node_modules/core-js/modules/es.string.strike.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.string.strike.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.string.strike.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.string.sub.js b/src/third_party/devtools/node_modules/core-js/modules/es.string.sub.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.string.sub.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.string.sub.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.string.sup.js b/src/third_party/devtools/node_modules/core-js/modules/es.string.sup.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.string.sup.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.string.sup.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.string.trim-end.js b/src/third_party/devtools/node_modules/core-js/modules/es.string.trim-end.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.string.trim-end.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.string.trim-end.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.string.trim-start.js b/src/third_party/devtools/node_modules/core-js/modules/es.string.trim-start.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.string.trim-start.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.string.trim-start.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.string.trim.js b/src/third_party/devtools/node_modules/core-js/modules/es.string.trim.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.string.trim.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.string.trim.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.symbol.async-iterator.js b/src/third_party/devtools/node_modules/core-js/modules/es.symbol.async-iterator.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.symbol.async-iterator.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.symbol.async-iterator.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.symbol.description.js b/src/third_party/devtools/node_modules/core-js/modules/es.symbol.description.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.symbol.description.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.symbol.description.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.symbol.has-instance.js b/src/third_party/devtools/node_modules/core-js/modules/es.symbol.has-instance.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.symbol.has-instance.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.symbol.has-instance.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.symbol.is-concat-spreadable.js b/src/third_party/devtools/node_modules/core-js/modules/es.symbol.is-concat-spreadable.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.symbol.is-concat-spreadable.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.symbol.is-concat-spreadable.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.symbol.iterator.js b/src/third_party/devtools/node_modules/core-js/modules/es.symbol.iterator.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.symbol.iterator.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.symbol.iterator.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.symbol.js b/src/third_party/devtools/node_modules/core-js/modules/es.symbol.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.symbol.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.symbol.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.symbol.match-all.js b/src/third_party/devtools/node_modules/core-js/modules/es.symbol.match-all.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.symbol.match-all.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.symbol.match-all.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.symbol.match.js b/src/third_party/devtools/node_modules/core-js/modules/es.symbol.match.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.symbol.match.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.symbol.match.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.symbol.replace.js b/src/third_party/devtools/node_modules/core-js/modules/es.symbol.replace.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.symbol.replace.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.symbol.replace.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.symbol.search.js b/src/third_party/devtools/node_modules/core-js/modules/es.symbol.search.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.symbol.search.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.symbol.search.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.symbol.species.js b/src/third_party/devtools/node_modules/core-js/modules/es.symbol.species.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.symbol.species.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.symbol.species.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.symbol.split.js b/src/third_party/devtools/node_modules/core-js/modules/es.symbol.split.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.symbol.split.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.symbol.split.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.symbol.to-primitive.js b/src/third_party/devtools/node_modules/core-js/modules/es.symbol.to-primitive.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.symbol.to-primitive.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.symbol.to-primitive.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.symbol.to-string-tag.js b/src/third_party/devtools/node_modules/core-js/modules/es.symbol.to-string-tag.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.symbol.to-string-tag.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.symbol.to-string-tag.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.symbol.unscopables.js b/src/third_party/devtools/node_modules/core-js/modules/es.symbol.unscopables.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.symbol.unscopables.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.symbol.unscopables.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.typed-array.copy-within.js b/src/third_party/devtools/node_modules/core-js/modules/es.typed-array.copy-within.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.typed-array.copy-within.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.typed-array.copy-within.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.typed-array.every.js b/src/third_party/devtools/node_modules/core-js/modules/es.typed-array.every.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.typed-array.every.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.typed-array.every.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.typed-array.fill.js b/src/third_party/devtools/node_modules/core-js/modules/es.typed-array.fill.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.typed-array.fill.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.typed-array.fill.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.typed-array.filter.js b/src/third_party/devtools/node_modules/core-js/modules/es.typed-array.filter.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.typed-array.filter.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.typed-array.filter.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.typed-array.find-index.js b/src/third_party/devtools/node_modules/core-js/modules/es.typed-array.find-index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.typed-array.find-index.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.typed-array.find-index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.typed-array.find.js b/src/third_party/devtools/node_modules/core-js/modules/es.typed-array.find.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.typed-array.find.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.typed-array.find.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.typed-array.float32-array.js b/src/third_party/devtools/node_modules/core-js/modules/es.typed-array.float32-array.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.typed-array.float32-array.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.typed-array.float32-array.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.typed-array.float64-array.js b/src/third_party/devtools/node_modules/core-js/modules/es.typed-array.float64-array.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.typed-array.float64-array.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.typed-array.float64-array.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.typed-array.for-each.js b/src/third_party/devtools/node_modules/core-js/modules/es.typed-array.for-each.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.typed-array.for-each.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.typed-array.for-each.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.typed-array.from.js b/src/third_party/devtools/node_modules/core-js/modules/es.typed-array.from.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.typed-array.from.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.typed-array.from.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.typed-array.includes.js b/src/third_party/devtools/node_modules/core-js/modules/es.typed-array.includes.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.typed-array.includes.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.typed-array.includes.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.typed-array.index-of.js b/src/third_party/devtools/node_modules/core-js/modules/es.typed-array.index-of.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.typed-array.index-of.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.typed-array.index-of.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.typed-array.int16-array.js b/src/third_party/devtools/node_modules/core-js/modules/es.typed-array.int16-array.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.typed-array.int16-array.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.typed-array.int16-array.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.typed-array.int32-array.js b/src/third_party/devtools/node_modules/core-js/modules/es.typed-array.int32-array.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.typed-array.int32-array.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.typed-array.int32-array.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.typed-array.int8-array.js b/src/third_party/devtools/node_modules/core-js/modules/es.typed-array.int8-array.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.typed-array.int8-array.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.typed-array.int8-array.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.typed-array.iterator.js b/src/third_party/devtools/node_modules/core-js/modules/es.typed-array.iterator.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.typed-array.iterator.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.typed-array.iterator.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.typed-array.join.js b/src/third_party/devtools/node_modules/core-js/modules/es.typed-array.join.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.typed-array.join.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.typed-array.join.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.typed-array.last-index-of.js b/src/third_party/devtools/node_modules/core-js/modules/es.typed-array.last-index-of.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.typed-array.last-index-of.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.typed-array.last-index-of.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.typed-array.map.js b/src/third_party/devtools/node_modules/core-js/modules/es.typed-array.map.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.typed-array.map.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.typed-array.map.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.typed-array.of.js b/src/third_party/devtools/node_modules/core-js/modules/es.typed-array.of.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.typed-array.of.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.typed-array.of.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.typed-array.reduce-right.js b/src/third_party/devtools/node_modules/core-js/modules/es.typed-array.reduce-right.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.typed-array.reduce-right.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.typed-array.reduce-right.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.typed-array.reduce.js b/src/third_party/devtools/node_modules/core-js/modules/es.typed-array.reduce.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.typed-array.reduce.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.typed-array.reduce.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.typed-array.reverse.js b/src/third_party/devtools/node_modules/core-js/modules/es.typed-array.reverse.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.typed-array.reverse.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.typed-array.reverse.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.typed-array.set.js b/src/third_party/devtools/node_modules/core-js/modules/es.typed-array.set.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.typed-array.set.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.typed-array.set.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.typed-array.slice.js b/src/third_party/devtools/node_modules/core-js/modules/es.typed-array.slice.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.typed-array.slice.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.typed-array.slice.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.typed-array.some.js b/src/third_party/devtools/node_modules/core-js/modules/es.typed-array.some.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.typed-array.some.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.typed-array.some.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.typed-array.sort.js b/src/third_party/devtools/node_modules/core-js/modules/es.typed-array.sort.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.typed-array.sort.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.typed-array.sort.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.typed-array.subarray.js b/src/third_party/devtools/node_modules/core-js/modules/es.typed-array.subarray.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.typed-array.subarray.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.typed-array.subarray.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.typed-array.to-locale-string.js b/src/third_party/devtools/node_modules/core-js/modules/es.typed-array.to-locale-string.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.typed-array.to-locale-string.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.typed-array.to-locale-string.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.typed-array.to-string.js b/src/third_party/devtools/node_modules/core-js/modules/es.typed-array.to-string.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.typed-array.to-string.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.typed-array.to-string.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.typed-array.uint16-array.js b/src/third_party/devtools/node_modules/core-js/modules/es.typed-array.uint16-array.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.typed-array.uint16-array.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.typed-array.uint16-array.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.typed-array.uint32-array.js b/src/third_party/devtools/node_modules/core-js/modules/es.typed-array.uint32-array.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.typed-array.uint32-array.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.typed-array.uint32-array.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.typed-array.uint8-array.js b/src/third_party/devtools/node_modules/core-js/modules/es.typed-array.uint8-array.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.typed-array.uint8-array.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.typed-array.uint8-array.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.typed-array.uint8-clamped-array.js b/src/third_party/devtools/node_modules/core-js/modules/es.typed-array.uint8-clamped-array.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.typed-array.uint8-clamped-array.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.typed-array.uint8-clamped-array.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.weak-map.js b/src/third_party/devtools/node_modules/core-js/modules/es.weak-map.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.weak-map.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.weak-map.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.weak-set.js b/src/third_party/devtools/node_modules/core-js/modules/es.weak-set.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/es.weak-set.js
rename to src/third_party/devtools/node_modules/core-js/modules/es.weak-set.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.aggregate-error.js b/src/third_party/devtools/node_modules/core-js/modules/esnext.aggregate-error.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.aggregate-error.js
rename to src/third_party/devtools/node_modules/core-js/modules/esnext.aggregate-error.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.array.is-template-object.js b/src/third_party/devtools/node_modules/core-js/modules/esnext.array.is-template-object.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.array.is-template-object.js
rename to src/third_party/devtools/node_modules/core-js/modules/esnext.array.is-template-object.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.array.last-index.js b/src/third_party/devtools/node_modules/core-js/modules/esnext.array.last-index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.array.last-index.js
rename to src/third_party/devtools/node_modules/core-js/modules/esnext.array.last-index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.array.last-item.js b/src/third_party/devtools/node_modules/core-js/modules/esnext.array.last-item.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.array.last-item.js
rename to src/third_party/devtools/node_modules/core-js/modules/esnext.array.last-item.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.async-iterator.as-indexed-pairs.js b/src/third_party/devtools/node_modules/core-js/modules/esnext.async-iterator.as-indexed-pairs.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.async-iterator.as-indexed-pairs.js
rename to src/third_party/devtools/node_modules/core-js/modules/esnext.async-iterator.as-indexed-pairs.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.async-iterator.constructor.js b/src/third_party/devtools/node_modules/core-js/modules/esnext.async-iterator.constructor.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.async-iterator.constructor.js
rename to src/third_party/devtools/node_modules/core-js/modules/esnext.async-iterator.constructor.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.async-iterator.drop.js b/src/third_party/devtools/node_modules/core-js/modules/esnext.async-iterator.drop.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.async-iterator.drop.js
rename to src/third_party/devtools/node_modules/core-js/modules/esnext.async-iterator.drop.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.async-iterator.every.js b/src/third_party/devtools/node_modules/core-js/modules/esnext.async-iterator.every.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.async-iterator.every.js
rename to src/third_party/devtools/node_modules/core-js/modules/esnext.async-iterator.every.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.async-iterator.filter.js b/src/third_party/devtools/node_modules/core-js/modules/esnext.async-iterator.filter.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.async-iterator.filter.js
rename to src/third_party/devtools/node_modules/core-js/modules/esnext.async-iterator.filter.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.async-iterator.find.js b/src/third_party/devtools/node_modules/core-js/modules/esnext.async-iterator.find.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.async-iterator.find.js
rename to src/third_party/devtools/node_modules/core-js/modules/esnext.async-iterator.find.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.async-iterator.flat-map.js b/src/third_party/devtools/node_modules/core-js/modules/esnext.async-iterator.flat-map.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.async-iterator.flat-map.js
rename to src/third_party/devtools/node_modules/core-js/modules/esnext.async-iterator.flat-map.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.async-iterator.for-each.js b/src/third_party/devtools/node_modules/core-js/modules/esnext.async-iterator.for-each.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.async-iterator.for-each.js
rename to src/third_party/devtools/node_modules/core-js/modules/esnext.async-iterator.for-each.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.async-iterator.from.js b/src/third_party/devtools/node_modules/core-js/modules/esnext.async-iterator.from.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.async-iterator.from.js
rename to src/third_party/devtools/node_modules/core-js/modules/esnext.async-iterator.from.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.async-iterator.map.js b/src/third_party/devtools/node_modules/core-js/modules/esnext.async-iterator.map.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.async-iterator.map.js
rename to src/third_party/devtools/node_modules/core-js/modules/esnext.async-iterator.map.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.async-iterator.reduce.js b/src/third_party/devtools/node_modules/core-js/modules/esnext.async-iterator.reduce.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.async-iterator.reduce.js
rename to src/third_party/devtools/node_modules/core-js/modules/esnext.async-iterator.reduce.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.async-iterator.some.js b/src/third_party/devtools/node_modules/core-js/modules/esnext.async-iterator.some.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.async-iterator.some.js
rename to src/third_party/devtools/node_modules/core-js/modules/esnext.async-iterator.some.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.async-iterator.take.js b/src/third_party/devtools/node_modules/core-js/modules/esnext.async-iterator.take.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.async-iterator.take.js
rename to src/third_party/devtools/node_modules/core-js/modules/esnext.async-iterator.take.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.async-iterator.to-array.js b/src/third_party/devtools/node_modules/core-js/modules/esnext.async-iterator.to-array.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.async-iterator.to-array.js
rename to src/third_party/devtools/node_modules/core-js/modules/esnext.async-iterator.to-array.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.composite-key.js b/src/third_party/devtools/node_modules/core-js/modules/esnext.composite-key.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.composite-key.js
rename to src/third_party/devtools/node_modules/core-js/modules/esnext.composite-key.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.composite-symbol.js b/src/third_party/devtools/node_modules/core-js/modules/esnext.composite-symbol.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.composite-symbol.js
rename to src/third_party/devtools/node_modules/core-js/modules/esnext.composite-symbol.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.global-this.js b/src/third_party/devtools/node_modules/core-js/modules/esnext.global-this.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.global-this.js
rename to src/third_party/devtools/node_modules/core-js/modules/esnext.global-this.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.iterator.as-indexed-pairs.js b/src/third_party/devtools/node_modules/core-js/modules/esnext.iterator.as-indexed-pairs.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.iterator.as-indexed-pairs.js
rename to src/third_party/devtools/node_modules/core-js/modules/esnext.iterator.as-indexed-pairs.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.iterator.constructor.js b/src/third_party/devtools/node_modules/core-js/modules/esnext.iterator.constructor.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.iterator.constructor.js
rename to src/third_party/devtools/node_modules/core-js/modules/esnext.iterator.constructor.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.iterator.drop.js b/src/third_party/devtools/node_modules/core-js/modules/esnext.iterator.drop.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.iterator.drop.js
rename to src/third_party/devtools/node_modules/core-js/modules/esnext.iterator.drop.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.iterator.every.js b/src/third_party/devtools/node_modules/core-js/modules/esnext.iterator.every.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.iterator.every.js
rename to src/third_party/devtools/node_modules/core-js/modules/esnext.iterator.every.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.iterator.filter.js b/src/third_party/devtools/node_modules/core-js/modules/esnext.iterator.filter.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.iterator.filter.js
rename to src/third_party/devtools/node_modules/core-js/modules/esnext.iterator.filter.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.iterator.find.js b/src/third_party/devtools/node_modules/core-js/modules/esnext.iterator.find.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.iterator.find.js
rename to src/third_party/devtools/node_modules/core-js/modules/esnext.iterator.find.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.iterator.flat-map.js b/src/third_party/devtools/node_modules/core-js/modules/esnext.iterator.flat-map.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.iterator.flat-map.js
rename to src/third_party/devtools/node_modules/core-js/modules/esnext.iterator.flat-map.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.iterator.for-each.js b/src/third_party/devtools/node_modules/core-js/modules/esnext.iterator.for-each.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.iterator.for-each.js
rename to src/third_party/devtools/node_modules/core-js/modules/esnext.iterator.for-each.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.iterator.from.js b/src/third_party/devtools/node_modules/core-js/modules/esnext.iterator.from.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.iterator.from.js
rename to src/third_party/devtools/node_modules/core-js/modules/esnext.iterator.from.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.iterator.map.js b/src/third_party/devtools/node_modules/core-js/modules/esnext.iterator.map.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.iterator.map.js
rename to src/third_party/devtools/node_modules/core-js/modules/esnext.iterator.map.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.iterator.reduce.js b/src/third_party/devtools/node_modules/core-js/modules/esnext.iterator.reduce.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.iterator.reduce.js
rename to src/third_party/devtools/node_modules/core-js/modules/esnext.iterator.reduce.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.iterator.some.js b/src/third_party/devtools/node_modules/core-js/modules/esnext.iterator.some.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.iterator.some.js
rename to src/third_party/devtools/node_modules/core-js/modules/esnext.iterator.some.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.iterator.take.js b/src/third_party/devtools/node_modules/core-js/modules/esnext.iterator.take.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.iterator.take.js
rename to src/third_party/devtools/node_modules/core-js/modules/esnext.iterator.take.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.iterator.to-array.js b/src/third_party/devtools/node_modules/core-js/modules/esnext.iterator.to-array.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.iterator.to-array.js
rename to src/third_party/devtools/node_modules/core-js/modules/esnext.iterator.to-array.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.map.delete-all.js b/src/third_party/devtools/node_modules/core-js/modules/esnext.map.delete-all.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.map.delete-all.js
rename to src/third_party/devtools/node_modules/core-js/modules/esnext.map.delete-all.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.map.every.js b/src/third_party/devtools/node_modules/core-js/modules/esnext.map.every.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.map.every.js
rename to src/third_party/devtools/node_modules/core-js/modules/esnext.map.every.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.map.filter.js b/src/third_party/devtools/node_modules/core-js/modules/esnext.map.filter.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.map.filter.js
rename to src/third_party/devtools/node_modules/core-js/modules/esnext.map.filter.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.map.find-key.js b/src/third_party/devtools/node_modules/core-js/modules/esnext.map.find-key.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.map.find-key.js
rename to src/third_party/devtools/node_modules/core-js/modules/esnext.map.find-key.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.map.find.js b/src/third_party/devtools/node_modules/core-js/modules/esnext.map.find.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.map.find.js
rename to src/third_party/devtools/node_modules/core-js/modules/esnext.map.find.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.map.from.js b/src/third_party/devtools/node_modules/core-js/modules/esnext.map.from.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.map.from.js
rename to src/third_party/devtools/node_modules/core-js/modules/esnext.map.from.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.map.group-by.js b/src/third_party/devtools/node_modules/core-js/modules/esnext.map.group-by.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.map.group-by.js
rename to src/third_party/devtools/node_modules/core-js/modules/esnext.map.group-by.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.map.includes.js b/src/third_party/devtools/node_modules/core-js/modules/esnext.map.includes.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.map.includes.js
rename to src/third_party/devtools/node_modules/core-js/modules/esnext.map.includes.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.map.key-by.js b/src/third_party/devtools/node_modules/core-js/modules/esnext.map.key-by.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.map.key-by.js
rename to src/third_party/devtools/node_modules/core-js/modules/esnext.map.key-by.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.map.key-of.js b/src/third_party/devtools/node_modules/core-js/modules/esnext.map.key-of.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.map.key-of.js
rename to src/third_party/devtools/node_modules/core-js/modules/esnext.map.key-of.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.map.map-keys.js b/src/third_party/devtools/node_modules/core-js/modules/esnext.map.map-keys.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.map.map-keys.js
rename to src/third_party/devtools/node_modules/core-js/modules/esnext.map.map-keys.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.map.map-values.js b/src/third_party/devtools/node_modules/core-js/modules/esnext.map.map-values.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.map.map-values.js
rename to src/third_party/devtools/node_modules/core-js/modules/esnext.map.map-values.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.map.merge.js b/src/third_party/devtools/node_modules/core-js/modules/esnext.map.merge.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.map.merge.js
rename to src/third_party/devtools/node_modules/core-js/modules/esnext.map.merge.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.map.of.js b/src/third_party/devtools/node_modules/core-js/modules/esnext.map.of.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.map.of.js
rename to src/third_party/devtools/node_modules/core-js/modules/esnext.map.of.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.map.reduce.js b/src/third_party/devtools/node_modules/core-js/modules/esnext.map.reduce.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.map.reduce.js
rename to src/third_party/devtools/node_modules/core-js/modules/esnext.map.reduce.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.map.some.js b/src/third_party/devtools/node_modules/core-js/modules/esnext.map.some.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.map.some.js
rename to src/third_party/devtools/node_modules/core-js/modules/esnext.map.some.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.map.update-or-insert.js b/src/third_party/devtools/node_modules/core-js/modules/esnext.map.update-or-insert.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.map.update-or-insert.js
rename to src/third_party/devtools/node_modules/core-js/modules/esnext.map.update-or-insert.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.map.update.js b/src/third_party/devtools/node_modules/core-js/modules/esnext.map.update.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.map.update.js
rename to src/third_party/devtools/node_modules/core-js/modules/esnext.map.update.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.map.upsert.js b/src/third_party/devtools/node_modules/core-js/modules/esnext.map.upsert.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.map.upsert.js
rename to src/third_party/devtools/node_modules/core-js/modules/esnext.map.upsert.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.math.clamp.js b/src/third_party/devtools/node_modules/core-js/modules/esnext.math.clamp.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.math.clamp.js
rename to src/third_party/devtools/node_modules/core-js/modules/esnext.math.clamp.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.math.deg-per-rad.js b/src/third_party/devtools/node_modules/core-js/modules/esnext.math.deg-per-rad.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.math.deg-per-rad.js
rename to src/third_party/devtools/node_modules/core-js/modules/esnext.math.deg-per-rad.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.math.degrees.js b/src/third_party/devtools/node_modules/core-js/modules/esnext.math.degrees.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.math.degrees.js
rename to src/third_party/devtools/node_modules/core-js/modules/esnext.math.degrees.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.math.fscale.js b/src/third_party/devtools/node_modules/core-js/modules/esnext.math.fscale.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.math.fscale.js
rename to src/third_party/devtools/node_modules/core-js/modules/esnext.math.fscale.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.math.iaddh.js b/src/third_party/devtools/node_modules/core-js/modules/esnext.math.iaddh.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.math.iaddh.js
rename to src/third_party/devtools/node_modules/core-js/modules/esnext.math.iaddh.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.math.imulh.js b/src/third_party/devtools/node_modules/core-js/modules/esnext.math.imulh.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.math.imulh.js
rename to src/third_party/devtools/node_modules/core-js/modules/esnext.math.imulh.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.math.isubh.js b/src/third_party/devtools/node_modules/core-js/modules/esnext.math.isubh.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.math.isubh.js
rename to src/third_party/devtools/node_modules/core-js/modules/esnext.math.isubh.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.math.rad-per-deg.js b/src/third_party/devtools/node_modules/core-js/modules/esnext.math.rad-per-deg.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.math.rad-per-deg.js
rename to src/third_party/devtools/node_modules/core-js/modules/esnext.math.rad-per-deg.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.math.radians.js b/src/third_party/devtools/node_modules/core-js/modules/esnext.math.radians.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.math.radians.js
rename to src/third_party/devtools/node_modules/core-js/modules/esnext.math.radians.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.math.scale.js b/src/third_party/devtools/node_modules/core-js/modules/esnext.math.scale.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.math.scale.js
rename to src/third_party/devtools/node_modules/core-js/modules/esnext.math.scale.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.math.seeded-prng.js b/src/third_party/devtools/node_modules/core-js/modules/esnext.math.seeded-prng.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.math.seeded-prng.js
rename to src/third_party/devtools/node_modules/core-js/modules/esnext.math.seeded-prng.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.math.signbit.js b/src/third_party/devtools/node_modules/core-js/modules/esnext.math.signbit.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.math.signbit.js
rename to src/third_party/devtools/node_modules/core-js/modules/esnext.math.signbit.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.math.umulh.js b/src/third_party/devtools/node_modules/core-js/modules/esnext.math.umulh.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.math.umulh.js
rename to src/third_party/devtools/node_modules/core-js/modules/esnext.math.umulh.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.number.from-string.js b/src/third_party/devtools/node_modules/core-js/modules/esnext.number.from-string.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.number.from-string.js
rename to src/third_party/devtools/node_modules/core-js/modules/esnext.number.from-string.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.observable.js b/src/third_party/devtools/node_modules/core-js/modules/esnext.observable.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.observable.js
rename to src/third_party/devtools/node_modules/core-js/modules/esnext.observable.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.promise.all-settled.js b/src/third_party/devtools/node_modules/core-js/modules/esnext.promise.all-settled.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.promise.all-settled.js
rename to src/third_party/devtools/node_modules/core-js/modules/esnext.promise.all-settled.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.promise.any.js b/src/third_party/devtools/node_modules/core-js/modules/esnext.promise.any.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.promise.any.js
rename to src/third_party/devtools/node_modules/core-js/modules/esnext.promise.any.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.promise.try.js b/src/third_party/devtools/node_modules/core-js/modules/esnext.promise.try.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.promise.try.js
rename to src/third_party/devtools/node_modules/core-js/modules/esnext.promise.try.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.reflect.define-metadata.js b/src/third_party/devtools/node_modules/core-js/modules/esnext.reflect.define-metadata.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.reflect.define-metadata.js
rename to src/third_party/devtools/node_modules/core-js/modules/esnext.reflect.define-metadata.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.reflect.delete-metadata.js b/src/third_party/devtools/node_modules/core-js/modules/esnext.reflect.delete-metadata.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.reflect.delete-metadata.js
rename to src/third_party/devtools/node_modules/core-js/modules/esnext.reflect.delete-metadata.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.reflect.get-metadata-keys.js b/src/third_party/devtools/node_modules/core-js/modules/esnext.reflect.get-metadata-keys.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.reflect.get-metadata-keys.js
rename to src/third_party/devtools/node_modules/core-js/modules/esnext.reflect.get-metadata-keys.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.reflect.get-metadata.js b/src/third_party/devtools/node_modules/core-js/modules/esnext.reflect.get-metadata.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.reflect.get-metadata.js
rename to src/third_party/devtools/node_modules/core-js/modules/esnext.reflect.get-metadata.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.reflect.get-own-metadata-keys.js b/src/third_party/devtools/node_modules/core-js/modules/esnext.reflect.get-own-metadata-keys.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.reflect.get-own-metadata-keys.js
rename to src/third_party/devtools/node_modules/core-js/modules/esnext.reflect.get-own-metadata-keys.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.reflect.get-own-metadata.js b/src/third_party/devtools/node_modules/core-js/modules/esnext.reflect.get-own-metadata.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.reflect.get-own-metadata.js
rename to src/third_party/devtools/node_modules/core-js/modules/esnext.reflect.get-own-metadata.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.reflect.has-metadata.js b/src/third_party/devtools/node_modules/core-js/modules/esnext.reflect.has-metadata.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.reflect.has-metadata.js
rename to src/third_party/devtools/node_modules/core-js/modules/esnext.reflect.has-metadata.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.reflect.has-own-metadata.js b/src/third_party/devtools/node_modules/core-js/modules/esnext.reflect.has-own-metadata.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.reflect.has-own-metadata.js
rename to src/third_party/devtools/node_modules/core-js/modules/esnext.reflect.has-own-metadata.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.reflect.metadata.js b/src/third_party/devtools/node_modules/core-js/modules/esnext.reflect.metadata.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.reflect.metadata.js
rename to src/third_party/devtools/node_modules/core-js/modules/esnext.reflect.metadata.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.set.add-all.js b/src/third_party/devtools/node_modules/core-js/modules/esnext.set.add-all.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.set.add-all.js
rename to src/third_party/devtools/node_modules/core-js/modules/esnext.set.add-all.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.set.delete-all.js b/src/third_party/devtools/node_modules/core-js/modules/esnext.set.delete-all.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.set.delete-all.js
rename to src/third_party/devtools/node_modules/core-js/modules/esnext.set.delete-all.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.set.difference.js b/src/third_party/devtools/node_modules/core-js/modules/esnext.set.difference.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.set.difference.js
rename to src/third_party/devtools/node_modules/core-js/modules/esnext.set.difference.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.set.every.js b/src/third_party/devtools/node_modules/core-js/modules/esnext.set.every.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.set.every.js
rename to src/third_party/devtools/node_modules/core-js/modules/esnext.set.every.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.set.filter.js b/src/third_party/devtools/node_modules/core-js/modules/esnext.set.filter.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.set.filter.js
rename to src/third_party/devtools/node_modules/core-js/modules/esnext.set.filter.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.set.find.js b/src/third_party/devtools/node_modules/core-js/modules/esnext.set.find.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.set.find.js
rename to src/third_party/devtools/node_modules/core-js/modules/esnext.set.find.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.set.from.js b/src/third_party/devtools/node_modules/core-js/modules/esnext.set.from.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.set.from.js
rename to src/third_party/devtools/node_modules/core-js/modules/esnext.set.from.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.set.intersection.js b/src/third_party/devtools/node_modules/core-js/modules/esnext.set.intersection.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.set.intersection.js
rename to src/third_party/devtools/node_modules/core-js/modules/esnext.set.intersection.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.set.is-disjoint-from.js b/src/third_party/devtools/node_modules/core-js/modules/esnext.set.is-disjoint-from.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.set.is-disjoint-from.js
rename to src/third_party/devtools/node_modules/core-js/modules/esnext.set.is-disjoint-from.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.set.is-subset-of.js b/src/third_party/devtools/node_modules/core-js/modules/esnext.set.is-subset-of.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.set.is-subset-of.js
rename to src/third_party/devtools/node_modules/core-js/modules/esnext.set.is-subset-of.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.set.is-superset-of.js b/src/third_party/devtools/node_modules/core-js/modules/esnext.set.is-superset-of.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.set.is-superset-of.js
rename to src/third_party/devtools/node_modules/core-js/modules/esnext.set.is-superset-of.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.set.join.js b/src/third_party/devtools/node_modules/core-js/modules/esnext.set.join.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.set.join.js
rename to src/third_party/devtools/node_modules/core-js/modules/esnext.set.join.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.set.map.js b/src/third_party/devtools/node_modules/core-js/modules/esnext.set.map.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.set.map.js
rename to src/third_party/devtools/node_modules/core-js/modules/esnext.set.map.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.set.of.js b/src/third_party/devtools/node_modules/core-js/modules/esnext.set.of.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.set.of.js
rename to src/third_party/devtools/node_modules/core-js/modules/esnext.set.of.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.set.reduce.js b/src/third_party/devtools/node_modules/core-js/modules/esnext.set.reduce.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.set.reduce.js
rename to src/third_party/devtools/node_modules/core-js/modules/esnext.set.reduce.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.set.some.js b/src/third_party/devtools/node_modules/core-js/modules/esnext.set.some.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.set.some.js
rename to src/third_party/devtools/node_modules/core-js/modules/esnext.set.some.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.set.symmetric-difference.js b/src/third_party/devtools/node_modules/core-js/modules/esnext.set.symmetric-difference.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.set.symmetric-difference.js
rename to src/third_party/devtools/node_modules/core-js/modules/esnext.set.symmetric-difference.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.set.union.js b/src/third_party/devtools/node_modules/core-js/modules/esnext.set.union.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.set.union.js
rename to src/third_party/devtools/node_modules/core-js/modules/esnext.set.union.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.string.at.js b/src/third_party/devtools/node_modules/core-js/modules/esnext.string.at.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.string.at.js
rename to src/third_party/devtools/node_modules/core-js/modules/esnext.string.at.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.string.code-points.js b/src/third_party/devtools/node_modules/core-js/modules/esnext.string.code-points.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.string.code-points.js
rename to src/third_party/devtools/node_modules/core-js/modules/esnext.string.code-points.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.string.match-all.js b/src/third_party/devtools/node_modules/core-js/modules/esnext.string.match-all.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.string.match-all.js
rename to src/third_party/devtools/node_modules/core-js/modules/esnext.string.match-all.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.string.replace-all.js b/src/third_party/devtools/node_modules/core-js/modules/esnext.string.replace-all.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.string.replace-all.js
rename to src/third_party/devtools/node_modules/core-js/modules/esnext.string.replace-all.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.symbol.async-dispose.js b/src/third_party/devtools/node_modules/core-js/modules/esnext.symbol.async-dispose.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.symbol.async-dispose.js
rename to src/third_party/devtools/node_modules/core-js/modules/esnext.symbol.async-dispose.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.symbol.dispose.js b/src/third_party/devtools/node_modules/core-js/modules/esnext.symbol.dispose.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.symbol.dispose.js
rename to src/third_party/devtools/node_modules/core-js/modules/esnext.symbol.dispose.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.symbol.observable.js b/src/third_party/devtools/node_modules/core-js/modules/esnext.symbol.observable.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.symbol.observable.js
rename to src/third_party/devtools/node_modules/core-js/modules/esnext.symbol.observable.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.symbol.pattern-match.js b/src/third_party/devtools/node_modules/core-js/modules/esnext.symbol.pattern-match.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.symbol.pattern-match.js
rename to src/third_party/devtools/node_modules/core-js/modules/esnext.symbol.pattern-match.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.symbol.replace-all.js b/src/third_party/devtools/node_modules/core-js/modules/esnext.symbol.replace-all.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.symbol.replace-all.js
rename to src/third_party/devtools/node_modules/core-js/modules/esnext.symbol.replace-all.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.weak-map.delete-all.js b/src/third_party/devtools/node_modules/core-js/modules/esnext.weak-map.delete-all.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.weak-map.delete-all.js
rename to src/third_party/devtools/node_modules/core-js/modules/esnext.weak-map.delete-all.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.weak-map.from.js b/src/third_party/devtools/node_modules/core-js/modules/esnext.weak-map.from.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.weak-map.from.js
rename to src/third_party/devtools/node_modules/core-js/modules/esnext.weak-map.from.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.weak-map.of.js b/src/third_party/devtools/node_modules/core-js/modules/esnext.weak-map.of.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.weak-map.of.js
rename to src/third_party/devtools/node_modules/core-js/modules/esnext.weak-map.of.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.weak-map.upsert.js b/src/third_party/devtools/node_modules/core-js/modules/esnext.weak-map.upsert.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.weak-map.upsert.js
rename to src/third_party/devtools/node_modules/core-js/modules/esnext.weak-map.upsert.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.weak-set.add-all.js b/src/third_party/devtools/node_modules/core-js/modules/esnext.weak-set.add-all.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.weak-set.add-all.js
rename to src/third_party/devtools/node_modules/core-js/modules/esnext.weak-set.add-all.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.weak-set.delete-all.js b/src/third_party/devtools/node_modules/core-js/modules/esnext.weak-set.delete-all.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.weak-set.delete-all.js
rename to src/third_party/devtools/node_modules/core-js/modules/esnext.weak-set.delete-all.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.weak-set.from.js b/src/third_party/devtools/node_modules/core-js/modules/esnext.weak-set.from.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.weak-set.from.js
rename to src/third_party/devtools/node_modules/core-js/modules/esnext.weak-set.from.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.weak-set.of.js b/src/third_party/devtools/node_modules/core-js/modules/esnext.weak-set.of.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/esnext.weak-set.of.js
rename to src/third_party/devtools/node_modules/core-js/modules/esnext.weak-set.of.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/web.dom-collections.for-each.js b/src/third_party/devtools/node_modules/core-js/modules/web.dom-collections.for-each.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/web.dom-collections.for-each.js
rename to src/third_party/devtools/node_modules/core-js/modules/web.dom-collections.for-each.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/web.dom-collections.iterator.js b/src/third_party/devtools/node_modules/core-js/modules/web.dom-collections.iterator.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/web.dom-collections.iterator.js
rename to src/third_party/devtools/node_modules/core-js/modules/web.dom-collections.iterator.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/web.immediate.js b/src/third_party/devtools/node_modules/core-js/modules/web.immediate.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/web.immediate.js
rename to src/third_party/devtools/node_modules/core-js/modules/web.immediate.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/web.queue-microtask.js b/src/third_party/devtools/node_modules/core-js/modules/web.queue-microtask.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/web.queue-microtask.js
rename to src/third_party/devtools/node_modules/core-js/modules/web.queue-microtask.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/web.timers.js b/src/third_party/devtools/node_modules/core-js/modules/web.timers.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/web.timers.js
rename to src/third_party/devtools/node_modules/core-js/modules/web.timers.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/web.url-search-params.js b/src/third_party/devtools/node_modules/core-js/modules/web.url-search-params.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/web.url-search-params.js
rename to src/third_party/devtools/node_modules/core-js/modules/web.url-search-params.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/web.url.js b/src/third_party/devtools/node_modules/core-js/modules/web.url.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/web.url.js
rename to src/third_party/devtools/node_modules/core-js/modules/web.url.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/modules/web.url.to-json.js b/src/third_party/devtools/node_modules/core-js/modules/web.url.to-json.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/modules/web.url.to-json.js
rename to src/third_party/devtools/node_modules/core-js/modules/web.url.to-json.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/package.json b/src/third_party/devtools/node_modules/core-js/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/package.json
rename to src/third_party/devtools/node_modules/core-js/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/postinstall.js b/src/third_party/devtools/node_modules/core-js/postinstall.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/postinstall.js
rename to src/third_party/devtools/node_modules/core-js/postinstall.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/proposals/array-is-template-object.js b/src/third_party/devtools/node_modules/core-js/proposals/array-is-template-object.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/proposals/array-is-template-object.js
rename to src/third_party/devtools/node_modules/core-js/proposals/array-is-template-object.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/proposals/array-last.js b/src/third_party/devtools/node_modules/core-js/proposals/array-last.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/proposals/array-last.js
rename to src/third_party/devtools/node_modules/core-js/proposals/array-last.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/proposals/collection-methods.js b/src/third_party/devtools/node_modules/core-js/proposals/collection-methods.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/proposals/collection-methods.js
rename to src/third_party/devtools/node_modules/core-js/proposals/collection-methods.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/proposals/collection-of-from.js b/src/third_party/devtools/node_modules/core-js/proposals/collection-of-from.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/proposals/collection-of-from.js
rename to src/third_party/devtools/node_modules/core-js/proposals/collection-of-from.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/proposals/efficient-64-bit-arithmetic.js b/src/third_party/devtools/node_modules/core-js/proposals/efficient-64-bit-arithmetic.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/proposals/efficient-64-bit-arithmetic.js
rename to src/third_party/devtools/node_modules/core-js/proposals/efficient-64-bit-arithmetic.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/proposals/global-this.js b/src/third_party/devtools/node_modules/core-js/proposals/global-this.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/proposals/global-this.js
rename to src/third_party/devtools/node_modules/core-js/proposals/global-this.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/proposals/index.js b/src/third_party/devtools/node_modules/core-js/proposals/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/proposals/index.js
rename to src/third_party/devtools/node_modules/core-js/proposals/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/proposals/iterator-helpers.js b/src/third_party/devtools/node_modules/core-js/proposals/iterator-helpers.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/proposals/iterator-helpers.js
rename to src/third_party/devtools/node_modules/core-js/proposals/iterator-helpers.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/proposals/keys-composition.js b/src/third_party/devtools/node_modules/core-js/proposals/keys-composition.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/proposals/keys-composition.js
rename to src/third_party/devtools/node_modules/core-js/proposals/keys-composition.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/proposals/map-update-or-insert.js b/src/third_party/devtools/node_modules/core-js/proposals/map-update-or-insert.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/proposals/map-update-or-insert.js
rename to src/third_party/devtools/node_modules/core-js/proposals/map-update-or-insert.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/proposals/map-upsert.js b/src/third_party/devtools/node_modules/core-js/proposals/map-upsert.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/proposals/map-upsert.js
rename to src/third_party/devtools/node_modules/core-js/proposals/map-upsert.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/proposals/math-extensions.js b/src/third_party/devtools/node_modules/core-js/proposals/math-extensions.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/proposals/math-extensions.js
rename to src/third_party/devtools/node_modules/core-js/proposals/math-extensions.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/proposals/math-signbit.js b/src/third_party/devtools/node_modules/core-js/proposals/math-signbit.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/proposals/math-signbit.js
rename to src/third_party/devtools/node_modules/core-js/proposals/math-signbit.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/proposals/number-from-string.js b/src/third_party/devtools/node_modules/core-js/proposals/number-from-string.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/proposals/number-from-string.js
rename to src/third_party/devtools/node_modules/core-js/proposals/number-from-string.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/proposals/observable.js b/src/third_party/devtools/node_modules/core-js/proposals/observable.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/proposals/observable.js
rename to src/third_party/devtools/node_modules/core-js/proposals/observable.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/proposals/pattern-matching.js b/src/third_party/devtools/node_modules/core-js/proposals/pattern-matching.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/proposals/pattern-matching.js
rename to src/third_party/devtools/node_modules/core-js/proposals/pattern-matching.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/proposals/promise-all-settled.js b/src/third_party/devtools/node_modules/core-js/proposals/promise-all-settled.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/proposals/promise-all-settled.js
rename to src/third_party/devtools/node_modules/core-js/proposals/promise-all-settled.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/proposals/promise-any.js b/src/third_party/devtools/node_modules/core-js/proposals/promise-any.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/proposals/promise-any.js
rename to src/third_party/devtools/node_modules/core-js/proposals/promise-any.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/proposals/promise-try.js b/src/third_party/devtools/node_modules/core-js/proposals/promise-try.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/proposals/promise-try.js
rename to src/third_party/devtools/node_modules/core-js/proposals/promise-try.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/proposals/reflect-metadata.js b/src/third_party/devtools/node_modules/core-js/proposals/reflect-metadata.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/proposals/reflect-metadata.js
rename to src/third_party/devtools/node_modules/core-js/proposals/reflect-metadata.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/proposals/seeded-random.js b/src/third_party/devtools/node_modules/core-js/proposals/seeded-random.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/proposals/seeded-random.js
rename to src/third_party/devtools/node_modules/core-js/proposals/seeded-random.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/proposals/set-methods.js b/src/third_party/devtools/node_modules/core-js/proposals/set-methods.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/proposals/set-methods.js
rename to src/third_party/devtools/node_modules/core-js/proposals/set-methods.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/proposals/string-at.js b/src/third_party/devtools/node_modules/core-js/proposals/string-at.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/proposals/string-at.js
rename to src/third_party/devtools/node_modules/core-js/proposals/string-at.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/proposals/string-code-points.js b/src/third_party/devtools/node_modules/core-js/proposals/string-code-points.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/proposals/string-code-points.js
rename to src/third_party/devtools/node_modules/core-js/proposals/string-code-points.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/proposals/string-match-all.js b/src/third_party/devtools/node_modules/core-js/proposals/string-match-all.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/proposals/string-match-all.js
rename to src/third_party/devtools/node_modules/core-js/proposals/string-match-all.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/proposals/string-replace-all.js b/src/third_party/devtools/node_modules/core-js/proposals/string-replace-all.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/proposals/string-replace-all.js
rename to src/third_party/devtools/node_modules/core-js/proposals/string-replace-all.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/proposals/url.js b/src/third_party/devtools/node_modules/core-js/proposals/url.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/proposals/url.js
rename to src/third_party/devtools/node_modules/core-js/proposals/url.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/proposals/using-statement.js b/src/third_party/devtools/node_modules/core-js/proposals/using-statement.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/proposals/using-statement.js
rename to src/third_party/devtools/node_modules/core-js/proposals/using-statement.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/README.md b/src/third_party/devtools/node_modules/core-js/stable/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/README.md
rename to src/third_party/devtools/node_modules/core-js/stable/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/array-buffer/constructor.js b/src/third_party/devtools/node_modules/core-js/stable/array-buffer/constructor.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/array-buffer/constructor.js
rename to src/third_party/devtools/node_modules/core-js/stable/array-buffer/constructor.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/array-buffer/index.js b/src/third_party/devtools/node_modules/core-js/stable/array-buffer/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/array-buffer/index.js
rename to src/third_party/devtools/node_modules/core-js/stable/array-buffer/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/array-buffer/is-view.js b/src/third_party/devtools/node_modules/core-js/stable/array-buffer/is-view.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/array-buffer/is-view.js
rename to src/third_party/devtools/node_modules/core-js/stable/array-buffer/is-view.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/array-buffer/slice.js b/src/third_party/devtools/node_modules/core-js/stable/array-buffer/slice.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/array-buffer/slice.js
rename to src/third_party/devtools/node_modules/core-js/stable/array-buffer/slice.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/array/concat.js b/src/third_party/devtools/node_modules/core-js/stable/array/concat.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/array/concat.js
rename to src/third_party/devtools/node_modules/core-js/stable/array/concat.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/array/copy-within.js b/src/third_party/devtools/node_modules/core-js/stable/array/copy-within.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/array/copy-within.js
rename to src/third_party/devtools/node_modules/core-js/stable/array/copy-within.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/array/entries.js b/src/third_party/devtools/node_modules/core-js/stable/array/entries.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/array/entries.js
rename to src/third_party/devtools/node_modules/core-js/stable/array/entries.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/array/every.js b/src/third_party/devtools/node_modules/core-js/stable/array/every.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/array/every.js
rename to src/third_party/devtools/node_modules/core-js/stable/array/every.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/array/fill.js b/src/third_party/devtools/node_modules/core-js/stable/array/fill.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/array/fill.js
rename to src/third_party/devtools/node_modules/core-js/stable/array/fill.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/array/filter.js b/src/third_party/devtools/node_modules/core-js/stable/array/filter.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/array/filter.js
rename to src/third_party/devtools/node_modules/core-js/stable/array/filter.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/array/find-index.js b/src/third_party/devtools/node_modules/core-js/stable/array/find-index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/array/find-index.js
rename to src/third_party/devtools/node_modules/core-js/stable/array/find-index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/array/find.js b/src/third_party/devtools/node_modules/core-js/stable/array/find.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/array/find.js
rename to src/third_party/devtools/node_modules/core-js/stable/array/find.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/array/flat-map.js b/src/third_party/devtools/node_modules/core-js/stable/array/flat-map.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/array/flat-map.js
rename to src/third_party/devtools/node_modules/core-js/stable/array/flat-map.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/array/flat.js b/src/third_party/devtools/node_modules/core-js/stable/array/flat.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/array/flat.js
rename to src/third_party/devtools/node_modules/core-js/stable/array/flat.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/array/for-each.js b/src/third_party/devtools/node_modules/core-js/stable/array/for-each.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/array/for-each.js
rename to src/third_party/devtools/node_modules/core-js/stable/array/for-each.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/array/from.js b/src/third_party/devtools/node_modules/core-js/stable/array/from.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/array/from.js
rename to src/third_party/devtools/node_modules/core-js/stable/array/from.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/array/includes.js b/src/third_party/devtools/node_modules/core-js/stable/array/includes.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/array/includes.js
rename to src/third_party/devtools/node_modules/core-js/stable/array/includes.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/array/index-of.js b/src/third_party/devtools/node_modules/core-js/stable/array/index-of.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/array/index-of.js
rename to src/third_party/devtools/node_modules/core-js/stable/array/index-of.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/array/index.js b/src/third_party/devtools/node_modules/core-js/stable/array/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/array/index.js
rename to src/third_party/devtools/node_modules/core-js/stable/array/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/array/is-array.js b/src/third_party/devtools/node_modules/core-js/stable/array/is-array.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/array/is-array.js
rename to src/third_party/devtools/node_modules/core-js/stable/array/is-array.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/array/iterator.js b/src/third_party/devtools/node_modules/core-js/stable/array/iterator.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/array/iterator.js
rename to src/third_party/devtools/node_modules/core-js/stable/array/iterator.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/array/join.js b/src/third_party/devtools/node_modules/core-js/stable/array/join.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/array/join.js
rename to src/third_party/devtools/node_modules/core-js/stable/array/join.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/array/keys.js b/src/third_party/devtools/node_modules/core-js/stable/array/keys.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/array/keys.js
rename to src/third_party/devtools/node_modules/core-js/stable/array/keys.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/array/last-index-of.js b/src/third_party/devtools/node_modules/core-js/stable/array/last-index-of.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/array/last-index-of.js
rename to src/third_party/devtools/node_modules/core-js/stable/array/last-index-of.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/array/map.js b/src/third_party/devtools/node_modules/core-js/stable/array/map.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/array/map.js
rename to src/third_party/devtools/node_modules/core-js/stable/array/map.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/array/of.js b/src/third_party/devtools/node_modules/core-js/stable/array/of.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/array/of.js
rename to src/third_party/devtools/node_modules/core-js/stable/array/of.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/array/reduce-right.js b/src/third_party/devtools/node_modules/core-js/stable/array/reduce-right.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/array/reduce-right.js
rename to src/third_party/devtools/node_modules/core-js/stable/array/reduce-right.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/array/reduce.js b/src/third_party/devtools/node_modules/core-js/stable/array/reduce.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/array/reduce.js
rename to src/third_party/devtools/node_modules/core-js/stable/array/reduce.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/array/reverse.js b/src/third_party/devtools/node_modules/core-js/stable/array/reverse.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/array/reverse.js
rename to src/third_party/devtools/node_modules/core-js/stable/array/reverse.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/array/slice.js b/src/third_party/devtools/node_modules/core-js/stable/array/slice.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/array/slice.js
rename to src/third_party/devtools/node_modules/core-js/stable/array/slice.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/array/some.js b/src/third_party/devtools/node_modules/core-js/stable/array/some.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/array/some.js
rename to src/third_party/devtools/node_modules/core-js/stable/array/some.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/array/sort.js b/src/third_party/devtools/node_modules/core-js/stable/array/sort.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/array/sort.js
rename to src/third_party/devtools/node_modules/core-js/stable/array/sort.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/array/splice.js b/src/third_party/devtools/node_modules/core-js/stable/array/splice.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/array/splice.js
rename to src/third_party/devtools/node_modules/core-js/stable/array/splice.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/array/values.js b/src/third_party/devtools/node_modules/core-js/stable/array/values.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/array/values.js
rename to src/third_party/devtools/node_modules/core-js/stable/array/values.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/array/virtual/concat.js b/src/third_party/devtools/node_modules/core-js/stable/array/virtual/concat.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/array/virtual/concat.js
rename to src/third_party/devtools/node_modules/core-js/stable/array/virtual/concat.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/array/virtual/copy-within.js b/src/third_party/devtools/node_modules/core-js/stable/array/virtual/copy-within.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/array/virtual/copy-within.js
rename to src/third_party/devtools/node_modules/core-js/stable/array/virtual/copy-within.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/array/virtual/entries.js b/src/third_party/devtools/node_modules/core-js/stable/array/virtual/entries.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/array/virtual/entries.js
rename to src/third_party/devtools/node_modules/core-js/stable/array/virtual/entries.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/array/virtual/every.js b/src/third_party/devtools/node_modules/core-js/stable/array/virtual/every.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/array/virtual/every.js
rename to src/third_party/devtools/node_modules/core-js/stable/array/virtual/every.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/array/virtual/fill.js b/src/third_party/devtools/node_modules/core-js/stable/array/virtual/fill.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/array/virtual/fill.js
rename to src/third_party/devtools/node_modules/core-js/stable/array/virtual/fill.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/array/virtual/filter.js b/src/third_party/devtools/node_modules/core-js/stable/array/virtual/filter.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/array/virtual/filter.js
rename to src/third_party/devtools/node_modules/core-js/stable/array/virtual/filter.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/array/virtual/find-index.js b/src/third_party/devtools/node_modules/core-js/stable/array/virtual/find-index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/array/virtual/find-index.js
rename to src/third_party/devtools/node_modules/core-js/stable/array/virtual/find-index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/array/virtual/find.js b/src/third_party/devtools/node_modules/core-js/stable/array/virtual/find.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/array/virtual/find.js
rename to src/third_party/devtools/node_modules/core-js/stable/array/virtual/find.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/array/virtual/flat-map.js b/src/third_party/devtools/node_modules/core-js/stable/array/virtual/flat-map.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/array/virtual/flat-map.js
rename to src/third_party/devtools/node_modules/core-js/stable/array/virtual/flat-map.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/array/virtual/flat.js b/src/third_party/devtools/node_modules/core-js/stable/array/virtual/flat.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/array/virtual/flat.js
rename to src/third_party/devtools/node_modules/core-js/stable/array/virtual/flat.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/array/virtual/for-each.js b/src/third_party/devtools/node_modules/core-js/stable/array/virtual/for-each.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/array/virtual/for-each.js
rename to src/third_party/devtools/node_modules/core-js/stable/array/virtual/for-each.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/array/virtual/includes.js b/src/third_party/devtools/node_modules/core-js/stable/array/virtual/includes.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/array/virtual/includes.js
rename to src/third_party/devtools/node_modules/core-js/stable/array/virtual/includes.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/array/virtual/index-of.js b/src/third_party/devtools/node_modules/core-js/stable/array/virtual/index-of.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/array/virtual/index-of.js
rename to src/third_party/devtools/node_modules/core-js/stable/array/virtual/index-of.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/array/virtual/index.js b/src/third_party/devtools/node_modules/core-js/stable/array/virtual/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/array/virtual/index.js
rename to src/third_party/devtools/node_modules/core-js/stable/array/virtual/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/array/virtual/iterator.js b/src/third_party/devtools/node_modules/core-js/stable/array/virtual/iterator.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/array/virtual/iterator.js
rename to src/third_party/devtools/node_modules/core-js/stable/array/virtual/iterator.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/array/virtual/join.js b/src/third_party/devtools/node_modules/core-js/stable/array/virtual/join.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/array/virtual/join.js
rename to src/third_party/devtools/node_modules/core-js/stable/array/virtual/join.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/array/virtual/keys.js b/src/third_party/devtools/node_modules/core-js/stable/array/virtual/keys.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/array/virtual/keys.js
rename to src/third_party/devtools/node_modules/core-js/stable/array/virtual/keys.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/array/virtual/last-index-of.js b/src/third_party/devtools/node_modules/core-js/stable/array/virtual/last-index-of.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/array/virtual/last-index-of.js
rename to src/third_party/devtools/node_modules/core-js/stable/array/virtual/last-index-of.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/array/virtual/map.js b/src/third_party/devtools/node_modules/core-js/stable/array/virtual/map.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/array/virtual/map.js
rename to src/third_party/devtools/node_modules/core-js/stable/array/virtual/map.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/array/virtual/reduce-right.js b/src/third_party/devtools/node_modules/core-js/stable/array/virtual/reduce-right.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/array/virtual/reduce-right.js
rename to src/third_party/devtools/node_modules/core-js/stable/array/virtual/reduce-right.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/array/virtual/reduce.js b/src/third_party/devtools/node_modules/core-js/stable/array/virtual/reduce.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/array/virtual/reduce.js
rename to src/third_party/devtools/node_modules/core-js/stable/array/virtual/reduce.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/array/virtual/reverse.js b/src/third_party/devtools/node_modules/core-js/stable/array/virtual/reverse.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/array/virtual/reverse.js
rename to src/third_party/devtools/node_modules/core-js/stable/array/virtual/reverse.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/array/virtual/slice.js b/src/third_party/devtools/node_modules/core-js/stable/array/virtual/slice.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/array/virtual/slice.js
rename to src/third_party/devtools/node_modules/core-js/stable/array/virtual/slice.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/array/virtual/some.js b/src/third_party/devtools/node_modules/core-js/stable/array/virtual/some.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/array/virtual/some.js
rename to src/third_party/devtools/node_modules/core-js/stable/array/virtual/some.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/array/virtual/sort.js b/src/third_party/devtools/node_modules/core-js/stable/array/virtual/sort.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/array/virtual/sort.js
rename to src/third_party/devtools/node_modules/core-js/stable/array/virtual/sort.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/array/virtual/splice.js b/src/third_party/devtools/node_modules/core-js/stable/array/virtual/splice.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/array/virtual/splice.js
rename to src/third_party/devtools/node_modules/core-js/stable/array/virtual/splice.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/array/virtual/values.js b/src/third_party/devtools/node_modules/core-js/stable/array/virtual/values.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/array/virtual/values.js
rename to src/third_party/devtools/node_modules/core-js/stable/array/virtual/values.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/clear-immediate.js b/src/third_party/devtools/node_modules/core-js/stable/clear-immediate.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/clear-immediate.js
rename to src/third_party/devtools/node_modules/core-js/stable/clear-immediate.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/data-view/index.js b/src/third_party/devtools/node_modules/core-js/stable/data-view/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/data-view/index.js
rename to src/third_party/devtools/node_modules/core-js/stable/data-view/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/date/index.js b/src/third_party/devtools/node_modules/core-js/stable/date/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/date/index.js
rename to src/third_party/devtools/node_modules/core-js/stable/date/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/date/now.js b/src/third_party/devtools/node_modules/core-js/stable/date/now.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/date/now.js
rename to src/third_party/devtools/node_modules/core-js/stable/date/now.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/date/to-iso-string.js b/src/third_party/devtools/node_modules/core-js/stable/date/to-iso-string.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/date/to-iso-string.js
rename to src/third_party/devtools/node_modules/core-js/stable/date/to-iso-string.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/date/to-json.js b/src/third_party/devtools/node_modules/core-js/stable/date/to-json.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/date/to-json.js
rename to src/third_party/devtools/node_modules/core-js/stable/date/to-json.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/date/to-primitive.js b/src/third_party/devtools/node_modules/core-js/stable/date/to-primitive.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/date/to-primitive.js
rename to src/third_party/devtools/node_modules/core-js/stable/date/to-primitive.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/date/to-string.js b/src/third_party/devtools/node_modules/core-js/stable/date/to-string.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/date/to-string.js
rename to src/third_party/devtools/node_modules/core-js/stable/date/to-string.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/dom-collections/for-each.js b/src/third_party/devtools/node_modules/core-js/stable/dom-collections/for-each.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/dom-collections/for-each.js
rename to src/third_party/devtools/node_modules/core-js/stable/dom-collections/for-each.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/dom-collections/index.js b/src/third_party/devtools/node_modules/core-js/stable/dom-collections/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/dom-collections/index.js
rename to src/third_party/devtools/node_modules/core-js/stable/dom-collections/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/dom-collections/iterator.js b/src/third_party/devtools/node_modules/core-js/stable/dom-collections/iterator.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/dom-collections/iterator.js
rename to src/third_party/devtools/node_modules/core-js/stable/dom-collections/iterator.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/function/bind.js b/src/third_party/devtools/node_modules/core-js/stable/function/bind.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/function/bind.js
rename to src/third_party/devtools/node_modules/core-js/stable/function/bind.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/function/has-instance.js b/src/third_party/devtools/node_modules/core-js/stable/function/has-instance.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/function/has-instance.js
rename to src/third_party/devtools/node_modules/core-js/stable/function/has-instance.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/function/index.js b/src/third_party/devtools/node_modules/core-js/stable/function/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/function/index.js
rename to src/third_party/devtools/node_modules/core-js/stable/function/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/function/name.js b/src/third_party/devtools/node_modules/core-js/stable/function/name.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/function/name.js
rename to src/third_party/devtools/node_modules/core-js/stable/function/name.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/function/virtual/bind.js b/src/third_party/devtools/node_modules/core-js/stable/function/virtual/bind.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/function/virtual/bind.js
rename to src/third_party/devtools/node_modules/core-js/stable/function/virtual/bind.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/function/virtual/index.js b/src/third_party/devtools/node_modules/core-js/stable/function/virtual/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/function/virtual/index.js
rename to src/third_party/devtools/node_modules/core-js/stable/function/virtual/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/global-this.js b/src/third_party/devtools/node_modules/core-js/stable/global-this.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/global-this.js
rename to src/third_party/devtools/node_modules/core-js/stable/global-this.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/index.js b/src/third_party/devtools/node_modules/core-js/stable/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/index.js
rename to src/third_party/devtools/node_modules/core-js/stable/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/instance/bind.js b/src/third_party/devtools/node_modules/core-js/stable/instance/bind.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/instance/bind.js
rename to src/third_party/devtools/node_modules/core-js/stable/instance/bind.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/instance/code-point-at.js b/src/third_party/devtools/node_modules/core-js/stable/instance/code-point-at.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/instance/code-point-at.js
rename to src/third_party/devtools/node_modules/core-js/stable/instance/code-point-at.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/instance/concat.js b/src/third_party/devtools/node_modules/core-js/stable/instance/concat.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/instance/concat.js
rename to src/third_party/devtools/node_modules/core-js/stable/instance/concat.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/instance/copy-within.js b/src/third_party/devtools/node_modules/core-js/stable/instance/copy-within.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/instance/copy-within.js
rename to src/third_party/devtools/node_modules/core-js/stable/instance/copy-within.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/instance/ends-with.js b/src/third_party/devtools/node_modules/core-js/stable/instance/ends-with.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/instance/ends-with.js
rename to src/third_party/devtools/node_modules/core-js/stable/instance/ends-with.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/instance/entries.js b/src/third_party/devtools/node_modules/core-js/stable/instance/entries.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/instance/entries.js
rename to src/third_party/devtools/node_modules/core-js/stable/instance/entries.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/instance/every.js b/src/third_party/devtools/node_modules/core-js/stable/instance/every.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/instance/every.js
rename to src/third_party/devtools/node_modules/core-js/stable/instance/every.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/instance/fill.js b/src/third_party/devtools/node_modules/core-js/stable/instance/fill.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/instance/fill.js
rename to src/third_party/devtools/node_modules/core-js/stable/instance/fill.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/instance/filter.js b/src/third_party/devtools/node_modules/core-js/stable/instance/filter.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/instance/filter.js
rename to src/third_party/devtools/node_modules/core-js/stable/instance/filter.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/instance/find-index.js b/src/third_party/devtools/node_modules/core-js/stable/instance/find-index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/instance/find-index.js
rename to src/third_party/devtools/node_modules/core-js/stable/instance/find-index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/instance/find.js b/src/third_party/devtools/node_modules/core-js/stable/instance/find.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/instance/find.js
rename to src/third_party/devtools/node_modules/core-js/stable/instance/find.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/instance/flags.js b/src/third_party/devtools/node_modules/core-js/stable/instance/flags.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/instance/flags.js
rename to src/third_party/devtools/node_modules/core-js/stable/instance/flags.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/instance/flat-map.js b/src/third_party/devtools/node_modules/core-js/stable/instance/flat-map.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/instance/flat-map.js
rename to src/third_party/devtools/node_modules/core-js/stable/instance/flat-map.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/instance/flat.js b/src/third_party/devtools/node_modules/core-js/stable/instance/flat.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/instance/flat.js
rename to src/third_party/devtools/node_modules/core-js/stable/instance/flat.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/instance/for-each.js b/src/third_party/devtools/node_modules/core-js/stable/instance/for-each.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/instance/for-each.js
rename to src/third_party/devtools/node_modules/core-js/stable/instance/for-each.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/instance/includes.js b/src/third_party/devtools/node_modules/core-js/stable/instance/includes.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/instance/includes.js
rename to src/third_party/devtools/node_modules/core-js/stable/instance/includes.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/instance/index-of.js b/src/third_party/devtools/node_modules/core-js/stable/instance/index-of.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/instance/index-of.js
rename to src/third_party/devtools/node_modules/core-js/stable/instance/index-of.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/instance/keys.js b/src/third_party/devtools/node_modules/core-js/stable/instance/keys.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/instance/keys.js
rename to src/third_party/devtools/node_modules/core-js/stable/instance/keys.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/instance/last-index-of.js b/src/third_party/devtools/node_modules/core-js/stable/instance/last-index-of.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/instance/last-index-of.js
rename to src/third_party/devtools/node_modules/core-js/stable/instance/last-index-of.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/instance/map.js b/src/third_party/devtools/node_modules/core-js/stable/instance/map.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/instance/map.js
rename to src/third_party/devtools/node_modules/core-js/stable/instance/map.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/instance/match-all.js b/src/third_party/devtools/node_modules/core-js/stable/instance/match-all.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/instance/match-all.js
rename to src/third_party/devtools/node_modules/core-js/stable/instance/match-all.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/instance/pad-end.js b/src/third_party/devtools/node_modules/core-js/stable/instance/pad-end.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/instance/pad-end.js
rename to src/third_party/devtools/node_modules/core-js/stable/instance/pad-end.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/instance/pad-start.js b/src/third_party/devtools/node_modules/core-js/stable/instance/pad-start.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/instance/pad-start.js
rename to src/third_party/devtools/node_modules/core-js/stable/instance/pad-start.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/instance/reduce-right.js b/src/third_party/devtools/node_modules/core-js/stable/instance/reduce-right.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/instance/reduce-right.js
rename to src/third_party/devtools/node_modules/core-js/stable/instance/reduce-right.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/instance/reduce.js b/src/third_party/devtools/node_modules/core-js/stable/instance/reduce.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/instance/reduce.js
rename to src/third_party/devtools/node_modules/core-js/stable/instance/reduce.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/instance/repeat.js b/src/third_party/devtools/node_modules/core-js/stable/instance/repeat.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/instance/repeat.js
rename to src/third_party/devtools/node_modules/core-js/stable/instance/repeat.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/instance/reverse.js b/src/third_party/devtools/node_modules/core-js/stable/instance/reverse.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/instance/reverse.js
rename to src/third_party/devtools/node_modules/core-js/stable/instance/reverse.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/instance/slice.js b/src/third_party/devtools/node_modules/core-js/stable/instance/slice.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/instance/slice.js
rename to src/third_party/devtools/node_modules/core-js/stable/instance/slice.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/instance/some.js b/src/third_party/devtools/node_modules/core-js/stable/instance/some.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/instance/some.js
rename to src/third_party/devtools/node_modules/core-js/stable/instance/some.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/instance/sort.js b/src/third_party/devtools/node_modules/core-js/stable/instance/sort.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/instance/sort.js
rename to src/third_party/devtools/node_modules/core-js/stable/instance/sort.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/instance/splice.js b/src/third_party/devtools/node_modules/core-js/stable/instance/splice.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/instance/splice.js
rename to src/third_party/devtools/node_modules/core-js/stable/instance/splice.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/instance/starts-with.js b/src/third_party/devtools/node_modules/core-js/stable/instance/starts-with.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/instance/starts-with.js
rename to src/third_party/devtools/node_modules/core-js/stable/instance/starts-with.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/instance/trim-end.js b/src/third_party/devtools/node_modules/core-js/stable/instance/trim-end.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/instance/trim-end.js
rename to src/third_party/devtools/node_modules/core-js/stable/instance/trim-end.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/instance/trim-left.js b/src/third_party/devtools/node_modules/core-js/stable/instance/trim-left.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/instance/trim-left.js
rename to src/third_party/devtools/node_modules/core-js/stable/instance/trim-left.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/instance/trim-right.js b/src/third_party/devtools/node_modules/core-js/stable/instance/trim-right.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/instance/trim-right.js
rename to src/third_party/devtools/node_modules/core-js/stable/instance/trim-right.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/instance/trim-start.js b/src/third_party/devtools/node_modules/core-js/stable/instance/trim-start.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/instance/trim-start.js
rename to src/third_party/devtools/node_modules/core-js/stable/instance/trim-start.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/instance/trim.js b/src/third_party/devtools/node_modules/core-js/stable/instance/trim.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/instance/trim.js
rename to src/third_party/devtools/node_modules/core-js/stable/instance/trim.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/instance/values.js b/src/third_party/devtools/node_modules/core-js/stable/instance/values.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/instance/values.js
rename to src/third_party/devtools/node_modules/core-js/stable/instance/values.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/json/index.js b/src/third_party/devtools/node_modules/core-js/stable/json/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/json/index.js
rename to src/third_party/devtools/node_modules/core-js/stable/json/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/json/stringify.js b/src/third_party/devtools/node_modules/core-js/stable/json/stringify.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/json/stringify.js
rename to src/third_party/devtools/node_modules/core-js/stable/json/stringify.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/json/to-string-tag.js b/src/third_party/devtools/node_modules/core-js/stable/json/to-string-tag.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/json/to-string-tag.js
rename to src/third_party/devtools/node_modules/core-js/stable/json/to-string-tag.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/map/index.js b/src/third_party/devtools/node_modules/core-js/stable/map/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/map/index.js
rename to src/third_party/devtools/node_modules/core-js/stable/map/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/math/acosh.js b/src/third_party/devtools/node_modules/core-js/stable/math/acosh.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/math/acosh.js
rename to src/third_party/devtools/node_modules/core-js/stable/math/acosh.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/math/asinh.js b/src/third_party/devtools/node_modules/core-js/stable/math/asinh.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/math/asinh.js
rename to src/third_party/devtools/node_modules/core-js/stable/math/asinh.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/math/atanh.js b/src/third_party/devtools/node_modules/core-js/stable/math/atanh.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/math/atanh.js
rename to src/third_party/devtools/node_modules/core-js/stable/math/atanh.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/math/cbrt.js b/src/third_party/devtools/node_modules/core-js/stable/math/cbrt.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/math/cbrt.js
rename to src/third_party/devtools/node_modules/core-js/stable/math/cbrt.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/math/clz32.js b/src/third_party/devtools/node_modules/core-js/stable/math/clz32.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/math/clz32.js
rename to src/third_party/devtools/node_modules/core-js/stable/math/clz32.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/math/cosh.js b/src/third_party/devtools/node_modules/core-js/stable/math/cosh.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/math/cosh.js
rename to src/third_party/devtools/node_modules/core-js/stable/math/cosh.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/math/expm1.js b/src/third_party/devtools/node_modules/core-js/stable/math/expm1.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/math/expm1.js
rename to src/third_party/devtools/node_modules/core-js/stable/math/expm1.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/math/fround.js b/src/third_party/devtools/node_modules/core-js/stable/math/fround.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/math/fround.js
rename to src/third_party/devtools/node_modules/core-js/stable/math/fround.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/math/hypot.js b/src/third_party/devtools/node_modules/core-js/stable/math/hypot.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/math/hypot.js
rename to src/third_party/devtools/node_modules/core-js/stable/math/hypot.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/math/imul.js b/src/third_party/devtools/node_modules/core-js/stable/math/imul.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/math/imul.js
rename to src/third_party/devtools/node_modules/core-js/stable/math/imul.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/math/index.js b/src/third_party/devtools/node_modules/core-js/stable/math/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/math/index.js
rename to src/third_party/devtools/node_modules/core-js/stable/math/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/math/log10.js b/src/third_party/devtools/node_modules/core-js/stable/math/log10.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/math/log10.js
rename to src/third_party/devtools/node_modules/core-js/stable/math/log10.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/math/log1p.js b/src/third_party/devtools/node_modules/core-js/stable/math/log1p.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/math/log1p.js
rename to src/third_party/devtools/node_modules/core-js/stable/math/log1p.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/math/log2.js b/src/third_party/devtools/node_modules/core-js/stable/math/log2.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/math/log2.js
rename to src/third_party/devtools/node_modules/core-js/stable/math/log2.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/math/sign.js b/src/third_party/devtools/node_modules/core-js/stable/math/sign.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/math/sign.js
rename to src/third_party/devtools/node_modules/core-js/stable/math/sign.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/math/sinh.js b/src/third_party/devtools/node_modules/core-js/stable/math/sinh.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/math/sinh.js
rename to src/third_party/devtools/node_modules/core-js/stable/math/sinh.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/math/tanh.js b/src/third_party/devtools/node_modules/core-js/stable/math/tanh.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/math/tanh.js
rename to src/third_party/devtools/node_modules/core-js/stable/math/tanh.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/math/to-string-tag.js b/src/third_party/devtools/node_modules/core-js/stable/math/to-string-tag.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/math/to-string-tag.js
rename to src/third_party/devtools/node_modules/core-js/stable/math/to-string-tag.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/math/trunc.js b/src/third_party/devtools/node_modules/core-js/stable/math/trunc.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/math/trunc.js
rename to src/third_party/devtools/node_modules/core-js/stable/math/trunc.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/number/constructor.js b/src/third_party/devtools/node_modules/core-js/stable/number/constructor.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/number/constructor.js
rename to src/third_party/devtools/node_modules/core-js/stable/number/constructor.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/number/epsilon.js b/src/third_party/devtools/node_modules/core-js/stable/number/epsilon.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/number/epsilon.js
rename to src/third_party/devtools/node_modules/core-js/stable/number/epsilon.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/number/index.js b/src/third_party/devtools/node_modules/core-js/stable/number/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/number/index.js
rename to src/third_party/devtools/node_modules/core-js/stable/number/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/number/is-finite.js b/src/third_party/devtools/node_modules/core-js/stable/number/is-finite.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/number/is-finite.js
rename to src/third_party/devtools/node_modules/core-js/stable/number/is-finite.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/number/is-integer.js b/src/third_party/devtools/node_modules/core-js/stable/number/is-integer.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/number/is-integer.js
rename to src/third_party/devtools/node_modules/core-js/stable/number/is-integer.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/number/is-nan.js b/src/third_party/devtools/node_modules/core-js/stable/number/is-nan.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/number/is-nan.js
rename to src/third_party/devtools/node_modules/core-js/stable/number/is-nan.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/number/is-safe-integer.js b/src/third_party/devtools/node_modules/core-js/stable/number/is-safe-integer.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/number/is-safe-integer.js
rename to src/third_party/devtools/node_modules/core-js/stable/number/is-safe-integer.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/number/max-safe-integer.js b/src/third_party/devtools/node_modules/core-js/stable/number/max-safe-integer.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/number/max-safe-integer.js
rename to src/third_party/devtools/node_modules/core-js/stable/number/max-safe-integer.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/number/min-safe-integer.js b/src/third_party/devtools/node_modules/core-js/stable/number/min-safe-integer.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/number/min-safe-integer.js
rename to src/third_party/devtools/node_modules/core-js/stable/number/min-safe-integer.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/number/parse-float.js b/src/third_party/devtools/node_modules/core-js/stable/number/parse-float.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/number/parse-float.js
rename to src/third_party/devtools/node_modules/core-js/stable/number/parse-float.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/number/parse-int.js b/src/third_party/devtools/node_modules/core-js/stable/number/parse-int.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/number/parse-int.js
rename to src/third_party/devtools/node_modules/core-js/stable/number/parse-int.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/number/to-fixed.js b/src/third_party/devtools/node_modules/core-js/stable/number/to-fixed.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/number/to-fixed.js
rename to src/third_party/devtools/node_modules/core-js/stable/number/to-fixed.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/number/to-precision.js b/src/third_party/devtools/node_modules/core-js/stable/number/to-precision.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/number/to-precision.js
rename to src/third_party/devtools/node_modules/core-js/stable/number/to-precision.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/number/virtual/index.js b/src/third_party/devtools/node_modules/core-js/stable/number/virtual/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/number/virtual/index.js
rename to src/third_party/devtools/node_modules/core-js/stable/number/virtual/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/number/virtual/to-fixed.js b/src/third_party/devtools/node_modules/core-js/stable/number/virtual/to-fixed.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/number/virtual/to-fixed.js
rename to src/third_party/devtools/node_modules/core-js/stable/number/virtual/to-fixed.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/number/virtual/to-precision.js b/src/third_party/devtools/node_modules/core-js/stable/number/virtual/to-precision.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/number/virtual/to-precision.js
rename to src/third_party/devtools/node_modules/core-js/stable/number/virtual/to-precision.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/object/assign.js b/src/third_party/devtools/node_modules/core-js/stable/object/assign.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/object/assign.js
rename to src/third_party/devtools/node_modules/core-js/stable/object/assign.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/object/create.js b/src/third_party/devtools/node_modules/core-js/stable/object/create.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/object/create.js
rename to src/third_party/devtools/node_modules/core-js/stable/object/create.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/object/define-getter.js b/src/third_party/devtools/node_modules/core-js/stable/object/define-getter.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/object/define-getter.js
rename to src/third_party/devtools/node_modules/core-js/stable/object/define-getter.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/object/define-properties.js b/src/third_party/devtools/node_modules/core-js/stable/object/define-properties.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/object/define-properties.js
rename to src/third_party/devtools/node_modules/core-js/stable/object/define-properties.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/object/define-property.js b/src/third_party/devtools/node_modules/core-js/stable/object/define-property.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/object/define-property.js
rename to src/third_party/devtools/node_modules/core-js/stable/object/define-property.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/object/define-setter.js b/src/third_party/devtools/node_modules/core-js/stable/object/define-setter.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/object/define-setter.js
rename to src/third_party/devtools/node_modules/core-js/stable/object/define-setter.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/object/entries.js b/src/third_party/devtools/node_modules/core-js/stable/object/entries.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/object/entries.js
rename to src/third_party/devtools/node_modules/core-js/stable/object/entries.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/object/freeze.js b/src/third_party/devtools/node_modules/core-js/stable/object/freeze.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/object/freeze.js
rename to src/third_party/devtools/node_modules/core-js/stable/object/freeze.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/object/from-entries.js b/src/third_party/devtools/node_modules/core-js/stable/object/from-entries.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/object/from-entries.js
rename to src/third_party/devtools/node_modules/core-js/stable/object/from-entries.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/object/get-own-property-descriptor.js b/src/third_party/devtools/node_modules/core-js/stable/object/get-own-property-descriptor.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/object/get-own-property-descriptor.js
rename to src/third_party/devtools/node_modules/core-js/stable/object/get-own-property-descriptor.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/object/get-own-property-descriptors.js b/src/third_party/devtools/node_modules/core-js/stable/object/get-own-property-descriptors.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/object/get-own-property-descriptors.js
rename to src/third_party/devtools/node_modules/core-js/stable/object/get-own-property-descriptors.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/object/get-own-property-names.js b/src/third_party/devtools/node_modules/core-js/stable/object/get-own-property-names.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/object/get-own-property-names.js
rename to src/third_party/devtools/node_modules/core-js/stable/object/get-own-property-names.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/object/get-own-property-symbols.js b/src/third_party/devtools/node_modules/core-js/stable/object/get-own-property-symbols.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/object/get-own-property-symbols.js
rename to src/third_party/devtools/node_modules/core-js/stable/object/get-own-property-symbols.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/object/get-prototype-of.js b/src/third_party/devtools/node_modules/core-js/stable/object/get-prototype-of.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/object/get-prototype-of.js
rename to src/third_party/devtools/node_modules/core-js/stable/object/get-prototype-of.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/object/index.js b/src/third_party/devtools/node_modules/core-js/stable/object/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/object/index.js
rename to src/third_party/devtools/node_modules/core-js/stable/object/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/object/is-extensible.js b/src/third_party/devtools/node_modules/core-js/stable/object/is-extensible.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/object/is-extensible.js
rename to src/third_party/devtools/node_modules/core-js/stable/object/is-extensible.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/object/is-frozen.js b/src/third_party/devtools/node_modules/core-js/stable/object/is-frozen.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/object/is-frozen.js
rename to src/third_party/devtools/node_modules/core-js/stable/object/is-frozen.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/object/is-sealed.js b/src/third_party/devtools/node_modules/core-js/stable/object/is-sealed.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/object/is-sealed.js
rename to src/third_party/devtools/node_modules/core-js/stable/object/is-sealed.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/object/is.js b/src/third_party/devtools/node_modules/core-js/stable/object/is.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/object/is.js
rename to src/third_party/devtools/node_modules/core-js/stable/object/is.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/object/keys.js b/src/third_party/devtools/node_modules/core-js/stable/object/keys.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/object/keys.js
rename to src/third_party/devtools/node_modules/core-js/stable/object/keys.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/object/lookup-getter.js b/src/third_party/devtools/node_modules/core-js/stable/object/lookup-getter.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/object/lookup-getter.js
rename to src/third_party/devtools/node_modules/core-js/stable/object/lookup-getter.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/object/lookup-setter.js b/src/third_party/devtools/node_modules/core-js/stable/object/lookup-setter.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/object/lookup-setter.js
rename to src/third_party/devtools/node_modules/core-js/stable/object/lookup-setter.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/object/prevent-extensions.js b/src/third_party/devtools/node_modules/core-js/stable/object/prevent-extensions.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/object/prevent-extensions.js
rename to src/third_party/devtools/node_modules/core-js/stable/object/prevent-extensions.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/object/seal.js b/src/third_party/devtools/node_modules/core-js/stable/object/seal.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/object/seal.js
rename to src/third_party/devtools/node_modules/core-js/stable/object/seal.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/object/set-prototype-of.js b/src/third_party/devtools/node_modules/core-js/stable/object/set-prototype-of.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/object/set-prototype-of.js
rename to src/third_party/devtools/node_modules/core-js/stable/object/set-prototype-of.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/object/to-string.js b/src/third_party/devtools/node_modules/core-js/stable/object/to-string.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/object/to-string.js
rename to src/third_party/devtools/node_modules/core-js/stable/object/to-string.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/object/values.js b/src/third_party/devtools/node_modules/core-js/stable/object/values.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/object/values.js
rename to src/third_party/devtools/node_modules/core-js/stable/object/values.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/parse-float.js b/src/third_party/devtools/node_modules/core-js/stable/parse-float.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/parse-float.js
rename to src/third_party/devtools/node_modules/core-js/stable/parse-float.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/parse-int.js b/src/third_party/devtools/node_modules/core-js/stable/parse-int.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/parse-int.js
rename to src/third_party/devtools/node_modules/core-js/stable/parse-int.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/promise/all-settled.js b/src/third_party/devtools/node_modules/core-js/stable/promise/all-settled.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/promise/all-settled.js
rename to src/third_party/devtools/node_modules/core-js/stable/promise/all-settled.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/promise/finally.js b/src/third_party/devtools/node_modules/core-js/stable/promise/finally.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/promise/finally.js
rename to src/third_party/devtools/node_modules/core-js/stable/promise/finally.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/promise/index.js b/src/third_party/devtools/node_modules/core-js/stable/promise/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/promise/index.js
rename to src/third_party/devtools/node_modules/core-js/stable/promise/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/queue-microtask.js b/src/third_party/devtools/node_modules/core-js/stable/queue-microtask.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/queue-microtask.js
rename to src/third_party/devtools/node_modules/core-js/stable/queue-microtask.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/reflect/apply.js b/src/third_party/devtools/node_modules/core-js/stable/reflect/apply.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/reflect/apply.js
rename to src/third_party/devtools/node_modules/core-js/stable/reflect/apply.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/reflect/construct.js b/src/third_party/devtools/node_modules/core-js/stable/reflect/construct.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/reflect/construct.js
rename to src/third_party/devtools/node_modules/core-js/stable/reflect/construct.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/reflect/define-property.js b/src/third_party/devtools/node_modules/core-js/stable/reflect/define-property.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/reflect/define-property.js
rename to src/third_party/devtools/node_modules/core-js/stable/reflect/define-property.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/reflect/delete-property.js b/src/third_party/devtools/node_modules/core-js/stable/reflect/delete-property.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/reflect/delete-property.js
rename to src/third_party/devtools/node_modules/core-js/stable/reflect/delete-property.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/reflect/get-own-property-descriptor.js b/src/third_party/devtools/node_modules/core-js/stable/reflect/get-own-property-descriptor.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/reflect/get-own-property-descriptor.js
rename to src/third_party/devtools/node_modules/core-js/stable/reflect/get-own-property-descriptor.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/reflect/get-prototype-of.js b/src/third_party/devtools/node_modules/core-js/stable/reflect/get-prototype-of.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/reflect/get-prototype-of.js
rename to src/third_party/devtools/node_modules/core-js/stable/reflect/get-prototype-of.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/reflect/get.js b/src/third_party/devtools/node_modules/core-js/stable/reflect/get.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/reflect/get.js
rename to src/third_party/devtools/node_modules/core-js/stable/reflect/get.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/reflect/has.js b/src/third_party/devtools/node_modules/core-js/stable/reflect/has.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/reflect/has.js
rename to src/third_party/devtools/node_modules/core-js/stable/reflect/has.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/reflect/index.js b/src/third_party/devtools/node_modules/core-js/stable/reflect/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/reflect/index.js
rename to src/third_party/devtools/node_modules/core-js/stable/reflect/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/reflect/is-extensible.js b/src/third_party/devtools/node_modules/core-js/stable/reflect/is-extensible.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/reflect/is-extensible.js
rename to src/third_party/devtools/node_modules/core-js/stable/reflect/is-extensible.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/reflect/own-keys.js b/src/third_party/devtools/node_modules/core-js/stable/reflect/own-keys.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/reflect/own-keys.js
rename to src/third_party/devtools/node_modules/core-js/stable/reflect/own-keys.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/reflect/prevent-extensions.js b/src/third_party/devtools/node_modules/core-js/stable/reflect/prevent-extensions.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/reflect/prevent-extensions.js
rename to src/third_party/devtools/node_modules/core-js/stable/reflect/prevent-extensions.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/reflect/set-prototype-of.js b/src/third_party/devtools/node_modules/core-js/stable/reflect/set-prototype-of.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/reflect/set-prototype-of.js
rename to src/third_party/devtools/node_modules/core-js/stable/reflect/set-prototype-of.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/reflect/set.js b/src/third_party/devtools/node_modules/core-js/stable/reflect/set.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/reflect/set.js
rename to src/third_party/devtools/node_modules/core-js/stable/reflect/set.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/regexp/constructor.js b/src/third_party/devtools/node_modules/core-js/stable/regexp/constructor.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/regexp/constructor.js
rename to src/third_party/devtools/node_modules/core-js/stable/regexp/constructor.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/regexp/flags.js b/src/third_party/devtools/node_modules/core-js/stable/regexp/flags.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/regexp/flags.js
rename to src/third_party/devtools/node_modules/core-js/stable/regexp/flags.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/regexp/index.js b/src/third_party/devtools/node_modules/core-js/stable/regexp/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/regexp/index.js
rename to src/third_party/devtools/node_modules/core-js/stable/regexp/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/regexp/match.js b/src/third_party/devtools/node_modules/core-js/stable/regexp/match.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/regexp/match.js
rename to src/third_party/devtools/node_modules/core-js/stable/regexp/match.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/regexp/replace.js b/src/third_party/devtools/node_modules/core-js/stable/regexp/replace.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/regexp/replace.js
rename to src/third_party/devtools/node_modules/core-js/stable/regexp/replace.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/regexp/search.js b/src/third_party/devtools/node_modules/core-js/stable/regexp/search.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/regexp/search.js
rename to src/third_party/devtools/node_modules/core-js/stable/regexp/search.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/regexp/split.js b/src/third_party/devtools/node_modules/core-js/stable/regexp/split.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/regexp/split.js
rename to src/third_party/devtools/node_modules/core-js/stable/regexp/split.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/regexp/to-string.js b/src/third_party/devtools/node_modules/core-js/stable/regexp/to-string.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/regexp/to-string.js
rename to src/third_party/devtools/node_modules/core-js/stable/regexp/to-string.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/set-immediate.js b/src/third_party/devtools/node_modules/core-js/stable/set-immediate.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/set-immediate.js
rename to src/third_party/devtools/node_modules/core-js/stable/set-immediate.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/set-interval.js b/src/third_party/devtools/node_modules/core-js/stable/set-interval.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/set-interval.js
rename to src/third_party/devtools/node_modules/core-js/stable/set-interval.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/set-timeout.js b/src/third_party/devtools/node_modules/core-js/stable/set-timeout.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/set-timeout.js
rename to src/third_party/devtools/node_modules/core-js/stable/set-timeout.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/set/index.js b/src/third_party/devtools/node_modules/core-js/stable/set/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/set/index.js
rename to src/third_party/devtools/node_modules/core-js/stable/set/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/string/anchor.js b/src/third_party/devtools/node_modules/core-js/stable/string/anchor.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/string/anchor.js
rename to src/third_party/devtools/node_modules/core-js/stable/string/anchor.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/string/big.js b/src/third_party/devtools/node_modules/core-js/stable/string/big.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/string/big.js
rename to src/third_party/devtools/node_modules/core-js/stable/string/big.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/string/blink.js b/src/third_party/devtools/node_modules/core-js/stable/string/blink.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/string/blink.js
rename to src/third_party/devtools/node_modules/core-js/stable/string/blink.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/string/bold.js b/src/third_party/devtools/node_modules/core-js/stable/string/bold.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/string/bold.js
rename to src/third_party/devtools/node_modules/core-js/stable/string/bold.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/string/code-point-at.js b/src/third_party/devtools/node_modules/core-js/stable/string/code-point-at.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/string/code-point-at.js
rename to src/third_party/devtools/node_modules/core-js/stable/string/code-point-at.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/string/ends-with.js b/src/third_party/devtools/node_modules/core-js/stable/string/ends-with.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/string/ends-with.js
rename to src/third_party/devtools/node_modules/core-js/stable/string/ends-with.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/string/fixed.js b/src/third_party/devtools/node_modules/core-js/stable/string/fixed.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/string/fixed.js
rename to src/third_party/devtools/node_modules/core-js/stable/string/fixed.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/string/fontcolor.js b/src/third_party/devtools/node_modules/core-js/stable/string/fontcolor.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/string/fontcolor.js
rename to src/third_party/devtools/node_modules/core-js/stable/string/fontcolor.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/string/fontsize.js b/src/third_party/devtools/node_modules/core-js/stable/string/fontsize.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/string/fontsize.js
rename to src/third_party/devtools/node_modules/core-js/stable/string/fontsize.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/string/from-code-point.js b/src/third_party/devtools/node_modules/core-js/stable/string/from-code-point.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/string/from-code-point.js
rename to src/third_party/devtools/node_modules/core-js/stable/string/from-code-point.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/string/includes.js b/src/third_party/devtools/node_modules/core-js/stable/string/includes.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/string/includes.js
rename to src/third_party/devtools/node_modules/core-js/stable/string/includes.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/string/index.js b/src/third_party/devtools/node_modules/core-js/stable/string/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/string/index.js
rename to src/third_party/devtools/node_modules/core-js/stable/string/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/string/italics.js b/src/third_party/devtools/node_modules/core-js/stable/string/italics.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/string/italics.js
rename to src/third_party/devtools/node_modules/core-js/stable/string/italics.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/string/iterator.js b/src/third_party/devtools/node_modules/core-js/stable/string/iterator.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/string/iterator.js
rename to src/third_party/devtools/node_modules/core-js/stable/string/iterator.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/string/link.js b/src/third_party/devtools/node_modules/core-js/stable/string/link.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/string/link.js
rename to src/third_party/devtools/node_modules/core-js/stable/string/link.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/string/match-all.js b/src/third_party/devtools/node_modules/core-js/stable/string/match-all.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/string/match-all.js
rename to src/third_party/devtools/node_modules/core-js/stable/string/match-all.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/string/match.js b/src/third_party/devtools/node_modules/core-js/stable/string/match.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/string/match.js
rename to src/third_party/devtools/node_modules/core-js/stable/string/match.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/string/pad-end.js b/src/third_party/devtools/node_modules/core-js/stable/string/pad-end.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/string/pad-end.js
rename to src/third_party/devtools/node_modules/core-js/stable/string/pad-end.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/string/pad-start.js b/src/third_party/devtools/node_modules/core-js/stable/string/pad-start.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/string/pad-start.js
rename to src/third_party/devtools/node_modules/core-js/stable/string/pad-start.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/string/raw.js b/src/third_party/devtools/node_modules/core-js/stable/string/raw.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/string/raw.js
rename to src/third_party/devtools/node_modules/core-js/stable/string/raw.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/string/repeat.js b/src/third_party/devtools/node_modules/core-js/stable/string/repeat.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/string/repeat.js
rename to src/third_party/devtools/node_modules/core-js/stable/string/repeat.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/string/replace.js b/src/third_party/devtools/node_modules/core-js/stable/string/replace.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/string/replace.js
rename to src/third_party/devtools/node_modules/core-js/stable/string/replace.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/string/search.js b/src/third_party/devtools/node_modules/core-js/stable/string/search.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/string/search.js
rename to src/third_party/devtools/node_modules/core-js/stable/string/search.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/string/small.js b/src/third_party/devtools/node_modules/core-js/stable/string/small.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/string/small.js
rename to src/third_party/devtools/node_modules/core-js/stable/string/small.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/string/split.js b/src/third_party/devtools/node_modules/core-js/stable/string/split.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/string/split.js
rename to src/third_party/devtools/node_modules/core-js/stable/string/split.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/string/starts-with.js b/src/third_party/devtools/node_modules/core-js/stable/string/starts-with.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/string/starts-with.js
rename to src/third_party/devtools/node_modules/core-js/stable/string/starts-with.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/string/strike.js b/src/third_party/devtools/node_modules/core-js/stable/string/strike.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/string/strike.js
rename to src/third_party/devtools/node_modules/core-js/stable/string/strike.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/string/sub.js b/src/third_party/devtools/node_modules/core-js/stable/string/sub.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/string/sub.js
rename to src/third_party/devtools/node_modules/core-js/stable/string/sub.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/string/sup.js b/src/third_party/devtools/node_modules/core-js/stable/string/sup.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/string/sup.js
rename to src/third_party/devtools/node_modules/core-js/stable/string/sup.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/string/trim-end.js b/src/third_party/devtools/node_modules/core-js/stable/string/trim-end.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/string/trim-end.js
rename to src/third_party/devtools/node_modules/core-js/stable/string/trim-end.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/string/trim-left.js b/src/third_party/devtools/node_modules/core-js/stable/string/trim-left.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/string/trim-left.js
rename to src/third_party/devtools/node_modules/core-js/stable/string/trim-left.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/string/trim-right.js b/src/third_party/devtools/node_modules/core-js/stable/string/trim-right.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/string/trim-right.js
rename to src/third_party/devtools/node_modules/core-js/stable/string/trim-right.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/string/trim-start.js b/src/third_party/devtools/node_modules/core-js/stable/string/trim-start.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/string/trim-start.js
rename to src/third_party/devtools/node_modules/core-js/stable/string/trim-start.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/string/trim.js b/src/third_party/devtools/node_modules/core-js/stable/string/trim.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/string/trim.js
rename to src/third_party/devtools/node_modules/core-js/stable/string/trim.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/string/virtual/anchor.js b/src/third_party/devtools/node_modules/core-js/stable/string/virtual/anchor.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/string/virtual/anchor.js
rename to src/third_party/devtools/node_modules/core-js/stable/string/virtual/anchor.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/string/virtual/big.js b/src/third_party/devtools/node_modules/core-js/stable/string/virtual/big.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/string/virtual/big.js
rename to src/third_party/devtools/node_modules/core-js/stable/string/virtual/big.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/string/virtual/blink.js b/src/third_party/devtools/node_modules/core-js/stable/string/virtual/blink.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/string/virtual/blink.js
rename to src/third_party/devtools/node_modules/core-js/stable/string/virtual/blink.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/string/virtual/bold.js b/src/third_party/devtools/node_modules/core-js/stable/string/virtual/bold.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/string/virtual/bold.js
rename to src/third_party/devtools/node_modules/core-js/stable/string/virtual/bold.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/string/virtual/code-point-at.js b/src/third_party/devtools/node_modules/core-js/stable/string/virtual/code-point-at.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/string/virtual/code-point-at.js
rename to src/third_party/devtools/node_modules/core-js/stable/string/virtual/code-point-at.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/string/virtual/ends-with.js b/src/third_party/devtools/node_modules/core-js/stable/string/virtual/ends-with.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/string/virtual/ends-with.js
rename to src/third_party/devtools/node_modules/core-js/stable/string/virtual/ends-with.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/string/virtual/fixed.js b/src/third_party/devtools/node_modules/core-js/stable/string/virtual/fixed.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/string/virtual/fixed.js
rename to src/third_party/devtools/node_modules/core-js/stable/string/virtual/fixed.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/string/virtual/fontcolor.js b/src/third_party/devtools/node_modules/core-js/stable/string/virtual/fontcolor.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/string/virtual/fontcolor.js
rename to src/third_party/devtools/node_modules/core-js/stable/string/virtual/fontcolor.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/string/virtual/fontsize.js b/src/third_party/devtools/node_modules/core-js/stable/string/virtual/fontsize.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/string/virtual/fontsize.js
rename to src/third_party/devtools/node_modules/core-js/stable/string/virtual/fontsize.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/string/virtual/includes.js b/src/third_party/devtools/node_modules/core-js/stable/string/virtual/includes.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/string/virtual/includes.js
rename to src/third_party/devtools/node_modules/core-js/stable/string/virtual/includes.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/string/virtual/index.js b/src/third_party/devtools/node_modules/core-js/stable/string/virtual/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/string/virtual/index.js
rename to src/third_party/devtools/node_modules/core-js/stable/string/virtual/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/string/virtual/italics.js b/src/third_party/devtools/node_modules/core-js/stable/string/virtual/italics.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/string/virtual/italics.js
rename to src/third_party/devtools/node_modules/core-js/stable/string/virtual/italics.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/string/virtual/iterator.js b/src/third_party/devtools/node_modules/core-js/stable/string/virtual/iterator.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/string/virtual/iterator.js
rename to src/third_party/devtools/node_modules/core-js/stable/string/virtual/iterator.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/string/virtual/link.js b/src/third_party/devtools/node_modules/core-js/stable/string/virtual/link.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/string/virtual/link.js
rename to src/third_party/devtools/node_modules/core-js/stable/string/virtual/link.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/string/virtual/match-all.js b/src/third_party/devtools/node_modules/core-js/stable/string/virtual/match-all.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/string/virtual/match-all.js
rename to src/third_party/devtools/node_modules/core-js/stable/string/virtual/match-all.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/string/virtual/pad-end.js b/src/third_party/devtools/node_modules/core-js/stable/string/virtual/pad-end.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/string/virtual/pad-end.js
rename to src/third_party/devtools/node_modules/core-js/stable/string/virtual/pad-end.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/string/virtual/pad-start.js b/src/third_party/devtools/node_modules/core-js/stable/string/virtual/pad-start.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/string/virtual/pad-start.js
rename to src/third_party/devtools/node_modules/core-js/stable/string/virtual/pad-start.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/string/virtual/repeat.js b/src/third_party/devtools/node_modules/core-js/stable/string/virtual/repeat.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/string/virtual/repeat.js
rename to src/third_party/devtools/node_modules/core-js/stable/string/virtual/repeat.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/string/virtual/small.js b/src/third_party/devtools/node_modules/core-js/stable/string/virtual/small.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/string/virtual/small.js
rename to src/third_party/devtools/node_modules/core-js/stable/string/virtual/small.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/string/virtual/starts-with.js b/src/third_party/devtools/node_modules/core-js/stable/string/virtual/starts-with.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/string/virtual/starts-with.js
rename to src/third_party/devtools/node_modules/core-js/stable/string/virtual/starts-with.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/string/virtual/strike.js b/src/third_party/devtools/node_modules/core-js/stable/string/virtual/strike.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/string/virtual/strike.js
rename to src/third_party/devtools/node_modules/core-js/stable/string/virtual/strike.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/string/virtual/sub.js b/src/third_party/devtools/node_modules/core-js/stable/string/virtual/sub.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/string/virtual/sub.js
rename to src/third_party/devtools/node_modules/core-js/stable/string/virtual/sub.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/string/virtual/sup.js b/src/third_party/devtools/node_modules/core-js/stable/string/virtual/sup.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/string/virtual/sup.js
rename to src/third_party/devtools/node_modules/core-js/stable/string/virtual/sup.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/string/virtual/trim-end.js b/src/third_party/devtools/node_modules/core-js/stable/string/virtual/trim-end.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/string/virtual/trim-end.js
rename to src/third_party/devtools/node_modules/core-js/stable/string/virtual/trim-end.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/string/virtual/trim-left.js b/src/third_party/devtools/node_modules/core-js/stable/string/virtual/trim-left.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/string/virtual/trim-left.js
rename to src/third_party/devtools/node_modules/core-js/stable/string/virtual/trim-left.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/string/virtual/trim-right.js b/src/third_party/devtools/node_modules/core-js/stable/string/virtual/trim-right.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/string/virtual/trim-right.js
rename to src/third_party/devtools/node_modules/core-js/stable/string/virtual/trim-right.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/string/virtual/trim-start.js b/src/third_party/devtools/node_modules/core-js/stable/string/virtual/trim-start.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/string/virtual/trim-start.js
rename to src/third_party/devtools/node_modules/core-js/stable/string/virtual/trim-start.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/string/virtual/trim.js b/src/third_party/devtools/node_modules/core-js/stable/string/virtual/trim.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/string/virtual/trim.js
rename to src/third_party/devtools/node_modules/core-js/stable/string/virtual/trim.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/symbol/async-iterator.js b/src/third_party/devtools/node_modules/core-js/stable/symbol/async-iterator.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/symbol/async-iterator.js
rename to src/third_party/devtools/node_modules/core-js/stable/symbol/async-iterator.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/symbol/description.js b/src/third_party/devtools/node_modules/core-js/stable/symbol/description.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/symbol/description.js
rename to src/third_party/devtools/node_modules/core-js/stable/symbol/description.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/symbol/for.js b/src/third_party/devtools/node_modules/core-js/stable/symbol/for.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/symbol/for.js
rename to src/third_party/devtools/node_modules/core-js/stable/symbol/for.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/symbol/has-instance.js b/src/third_party/devtools/node_modules/core-js/stable/symbol/has-instance.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/symbol/has-instance.js
rename to src/third_party/devtools/node_modules/core-js/stable/symbol/has-instance.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/symbol/index.js b/src/third_party/devtools/node_modules/core-js/stable/symbol/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/symbol/index.js
rename to src/third_party/devtools/node_modules/core-js/stable/symbol/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/symbol/is-concat-spreadable.js b/src/third_party/devtools/node_modules/core-js/stable/symbol/is-concat-spreadable.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/symbol/is-concat-spreadable.js
rename to src/third_party/devtools/node_modules/core-js/stable/symbol/is-concat-spreadable.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/symbol/iterator.js b/src/third_party/devtools/node_modules/core-js/stable/symbol/iterator.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/symbol/iterator.js
rename to src/third_party/devtools/node_modules/core-js/stable/symbol/iterator.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/symbol/key-for.js b/src/third_party/devtools/node_modules/core-js/stable/symbol/key-for.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/symbol/key-for.js
rename to src/third_party/devtools/node_modules/core-js/stable/symbol/key-for.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/symbol/match-all.js b/src/third_party/devtools/node_modules/core-js/stable/symbol/match-all.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/symbol/match-all.js
rename to src/third_party/devtools/node_modules/core-js/stable/symbol/match-all.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/symbol/match.js b/src/third_party/devtools/node_modules/core-js/stable/symbol/match.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/symbol/match.js
rename to src/third_party/devtools/node_modules/core-js/stable/symbol/match.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/symbol/replace.js b/src/third_party/devtools/node_modules/core-js/stable/symbol/replace.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/symbol/replace.js
rename to src/third_party/devtools/node_modules/core-js/stable/symbol/replace.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/symbol/search.js b/src/third_party/devtools/node_modules/core-js/stable/symbol/search.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/symbol/search.js
rename to src/third_party/devtools/node_modules/core-js/stable/symbol/search.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/symbol/species.js b/src/third_party/devtools/node_modules/core-js/stable/symbol/species.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/symbol/species.js
rename to src/third_party/devtools/node_modules/core-js/stable/symbol/species.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/symbol/split.js b/src/third_party/devtools/node_modules/core-js/stable/symbol/split.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/symbol/split.js
rename to src/third_party/devtools/node_modules/core-js/stable/symbol/split.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/symbol/to-primitive.js b/src/third_party/devtools/node_modules/core-js/stable/symbol/to-primitive.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/symbol/to-primitive.js
rename to src/third_party/devtools/node_modules/core-js/stable/symbol/to-primitive.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/symbol/to-string-tag.js b/src/third_party/devtools/node_modules/core-js/stable/symbol/to-string-tag.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/symbol/to-string-tag.js
rename to src/third_party/devtools/node_modules/core-js/stable/symbol/to-string-tag.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/symbol/unscopables.js b/src/third_party/devtools/node_modules/core-js/stable/symbol/unscopables.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/symbol/unscopables.js
rename to src/third_party/devtools/node_modules/core-js/stable/symbol/unscopables.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/typed-array/copy-within.js b/src/third_party/devtools/node_modules/core-js/stable/typed-array/copy-within.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/typed-array/copy-within.js
rename to src/third_party/devtools/node_modules/core-js/stable/typed-array/copy-within.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/typed-array/entries.js b/src/third_party/devtools/node_modules/core-js/stable/typed-array/entries.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/typed-array/entries.js
rename to src/third_party/devtools/node_modules/core-js/stable/typed-array/entries.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/typed-array/every.js b/src/third_party/devtools/node_modules/core-js/stable/typed-array/every.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/typed-array/every.js
rename to src/third_party/devtools/node_modules/core-js/stable/typed-array/every.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/typed-array/fill.js b/src/third_party/devtools/node_modules/core-js/stable/typed-array/fill.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/typed-array/fill.js
rename to src/third_party/devtools/node_modules/core-js/stable/typed-array/fill.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/typed-array/filter.js b/src/third_party/devtools/node_modules/core-js/stable/typed-array/filter.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/typed-array/filter.js
rename to src/third_party/devtools/node_modules/core-js/stable/typed-array/filter.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/typed-array/find-index.js b/src/third_party/devtools/node_modules/core-js/stable/typed-array/find-index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/typed-array/find-index.js
rename to src/third_party/devtools/node_modules/core-js/stable/typed-array/find-index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/typed-array/find.js b/src/third_party/devtools/node_modules/core-js/stable/typed-array/find.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/typed-array/find.js
rename to src/third_party/devtools/node_modules/core-js/stable/typed-array/find.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/typed-array/float32-array.js b/src/third_party/devtools/node_modules/core-js/stable/typed-array/float32-array.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/typed-array/float32-array.js
rename to src/third_party/devtools/node_modules/core-js/stable/typed-array/float32-array.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/typed-array/float64-array.js b/src/third_party/devtools/node_modules/core-js/stable/typed-array/float64-array.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/typed-array/float64-array.js
rename to src/third_party/devtools/node_modules/core-js/stable/typed-array/float64-array.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/typed-array/for-each.js b/src/third_party/devtools/node_modules/core-js/stable/typed-array/for-each.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/typed-array/for-each.js
rename to src/third_party/devtools/node_modules/core-js/stable/typed-array/for-each.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/typed-array/from.js b/src/third_party/devtools/node_modules/core-js/stable/typed-array/from.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/typed-array/from.js
rename to src/third_party/devtools/node_modules/core-js/stable/typed-array/from.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/typed-array/includes.js b/src/third_party/devtools/node_modules/core-js/stable/typed-array/includes.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/typed-array/includes.js
rename to src/third_party/devtools/node_modules/core-js/stable/typed-array/includes.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/typed-array/index-of.js b/src/third_party/devtools/node_modules/core-js/stable/typed-array/index-of.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/typed-array/index-of.js
rename to src/third_party/devtools/node_modules/core-js/stable/typed-array/index-of.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/typed-array/index.js b/src/third_party/devtools/node_modules/core-js/stable/typed-array/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/typed-array/index.js
rename to src/third_party/devtools/node_modules/core-js/stable/typed-array/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/typed-array/int16-array.js b/src/third_party/devtools/node_modules/core-js/stable/typed-array/int16-array.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/typed-array/int16-array.js
rename to src/third_party/devtools/node_modules/core-js/stable/typed-array/int16-array.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/typed-array/int32-array.js b/src/third_party/devtools/node_modules/core-js/stable/typed-array/int32-array.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/typed-array/int32-array.js
rename to src/third_party/devtools/node_modules/core-js/stable/typed-array/int32-array.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/typed-array/int8-array.js b/src/third_party/devtools/node_modules/core-js/stable/typed-array/int8-array.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/typed-array/int8-array.js
rename to src/third_party/devtools/node_modules/core-js/stable/typed-array/int8-array.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/typed-array/iterator.js b/src/third_party/devtools/node_modules/core-js/stable/typed-array/iterator.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/typed-array/iterator.js
rename to src/third_party/devtools/node_modules/core-js/stable/typed-array/iterator.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/typed-array/join.js b/src/third_party/devtools/node_modules/core-js/stable/typed-array/join.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/typed-array/join.js
rename to src/third_party/devtools/node_modules/core-js/stable/typed-array/join.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/typed-array/keys.js b/src/third_party/devtools/node_modules/core-js/stable/typed-array/keys.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/typed-array/keys.js
rename to src/third_party/devtools/node_modules/core-js/stable/typed-array/keys.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/typed-array/last-index-of.js b/src/third_party/devtools/node_modules/core-js/stable/typed-array/last-index-of.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/typed-array/last-index-of.js
rename to src/third_party/devtools/node_modules/core-js/stable/typed-array/last-index-of.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/typed-array/map.js b/src/third_party/devtools/node_modules/core-js/stable/typed-array/map.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/typed-array/map.js
rename to src/third_party/devtools/node_modules/core-js/stable/typed-array/map.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/typed-array/of.js b/src/third_party/devtools/node_modules/core-js/stable/typed-array/of.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/typed-array/of.js
rename to src/third_party/devtools/node_modules/core-js/stable/typed-array/of.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/typed-array/reduce-right.js b/src/third_party/devtools/node_modules/core-js/stable/typed-array/reduce-right.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/typed-array/reduce-right.js
rename to src/third_party/devtools/node_modules/core-js/stable/typed-array/reduce-right.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/typed-array/reduce.js b/src/third_party/devtools/node_modules/core-js/stable/typed-array/reduce.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/typed-array/reduce.js
rename to src/third_party/devtools/node_modules/core-js/stable/typed-array/reduce.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/typed-array/reverse.js b/src/third_party/devtools/node_modules/core-js/stable/typed-array/reverse.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/typed-array/reverse.js
rename to src/third_party/devtools/node_modules/core-js/stable/typed-array/reverse.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/typed-array/set.js b/src/third_party/devtools/node_modules/core-js/stable/typed-array/set.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/typed-array/set.js
rename to src/third_party/devtools/node_modules/core-js/stable/typed-array/set.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/typed-array/slice.js b/src/third_party/devtools/node_modules/core-js/stable/typed-array/slice.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/typed-array/slice.js
rename to src/third_party/devtools/node_modules/core-js/stable/typed-array/slice.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/typed-array/some.js b/src/third_party/devtools/node_modules/core-js/stable/typed-array/some.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/typed-array/some.js
rename to src/third_party/devtools/node_modules/core-js/stable/typed-array/some.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/typed-array/sort.js b/src/third_party/devtools/node_modules/core-js/stable/typed-array/sort.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/typed-array/sort.js
rename to src/third_party/devtools/node_modules/core-js/stable/typed-array/sort.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/typed-array/subarray.js b/src/third_party/devtools/node_modules/core-js/stable/typed-array/subarray.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/typed-array/subarray.js
rename to src/third_party/devtools/node_modules/core-js/stable/typed-array/subarray.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/typed-array/to-locale-string.js b/src/third_party/devtools/node_modules/core-js/stable/typed-array/to-locale-string.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/typed-array/to-locale-string.js
rename to src/third_party/devtools/node_modules/core-js/stable/typed-array/to-locale-string.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/typed-array/to-string.js b/src/third_party/devtools/node_modules/core-js/stable/typed-array/to-string.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/typed-array/to-string.js
rename to src/third_party/devtools/node_modules/core-js/stable/typed-array/to-string.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/typed-array/uint16-array.js b/src/third_party/devtools/node_modules/core-js/stable/typed-array/uint16-array.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/typed-array/uint16-array.js
rename to src/third_party/devtools/node_modules/core-js/stable/typed-array/uint16-array.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/typed-array/uint32-array.js b/src/third_party/devtools/node_modules/core-js/stable/typed-array/uint32-array.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/typed-array/uint32-array.js
rename to src/third_party/devtools/node_modules/core-js/stable/typed-array/uint32-array.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/typed-array/uint8-array.js b/src/third_party/devtools/node_modules/core-js/stable/typed-array/uint8-array.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/typed-array/uint8-array.js
rename to src/third_party/devtools/node_modules/core-js/stable/typed-array/uint8-array.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/typed-array/uint8-clamped-array.js b/src/third_party/devtools/node_modules/core-js/stable/typed-array/uint8-clamped-array.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/typed-array/uint8-clamped-array.js
rename to src/third_party/devtools/node_modules/core-js/stable/typed-array/uint8-clamped-array.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/typed-array/values.js b/src/third_party/devtools/node_modules/core-js/stable/typed-array/values.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/typed-array/values.js
rename to src/third_party/devtools/node_modules/core-js/stable/typed-array/values.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/url-search-params/index.js b/src/third_party/devtools/node_modules/core-js/stable/url-search-params/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/url-search-params/index.js
rename to src/third_party/devtools/node_modules/core-js/stable/url-search-params/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/url/index.js b/src/third_party/devtools/node_modules/core-js/stable/url/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/url/index.js
rename to src/third_party/devtools/node_modules/core-js/stable/url/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/url/to-json.js b/src/third_party/devtools/node_modules/core-js/stable/url/to-json.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/url/to-json.js
rename to src/third_party/devtools/node_modules/core-js/stable/url/to-json.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/weak-map/index.js b/src/third_party/devtools/node_modules/core-js/stable/weak-map/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/weak-map/index.js
rename to src/third_party/devtools/node_modules/core-js/stable/weak-map/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stable/weak-set/index.js b/src/third_party/devtools/node_modules/core-js/stable/weak-set/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stable/weak-set/index.js
rename to src/third_party/devtools/node_modules/core-js/stable/weak-set/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stage/0.js b/src/third_party/devtools/node_modules/core-js/stage/0.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stage/0.js
rename to src/third_party/devtools/node_modules/core-js/stage/0.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stage/1.js b/src/third_party/devtools/node_modules/core-js/stage/1.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stage/1.js
rename to src/third_party/devtools/node_modules/core-js/stage/1.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stage/2.js b/src/third_party/devtools/node_modules/core-js/stage/2.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stage/2.js
rename to src/third_party/devtools/node_modules/core-js/stage/2.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stage/3.js b/src/third_party/devtools/node_modules/core-js/stage/3.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stage/3.js
rename to src/third_party/devtools/node_modules/core-js/stage/3.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stage/4.js b/src/third_party/devtools/node_modules/core-js/stage/4.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stage/4.js
rename to src/third_party/devtools/node_modules/core-js/stage/4.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stage/README.md b/src/third_party/devtools/node_modules/core-js/stage/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stage/README.md
rename to src/third_party/devtools/node_modules/core-js/stage/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stage/index.js b/src/third_party/devtools/node_modules/core-js/stage/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stage/index.js
rename to src/third_party/devtools/node_modules/core-js/stage/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/stage/pre.js b/src/third_party/devtools/node_modules/core-js/stage/pre.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/stage/pre.js
rename to src/third_party/devtools/node_modules/core-js/stage/pre.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/web/README.md b/src/third_party/devtools/node_modules/core-js/web/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/web/README.md
rename to src/third_party/devtools/node_modules/core-js/web/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/web/dom-collections.js b/src/third_party/devtools/node_modules/core-js/web/dom-collections.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/web/dom-collections.js
rename to src/third_party/devtools/node_modules/core-js/web/dom-collections.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/web/immediate.js b/src/third_party/devtools/node_modules/core-js/web/immediate.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/web/immediate.js
rename to src/third_party/devtools/node_modules/core-js/web/immediate.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/web/index.js b/src/third_party/devtools/node_modules/core-js/web/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/web/index.js
rename to src/third_party/devtools/node_modules/core-js/web/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/web/queue-microtask.js b/src/third_party/devtools/node_modules/core-js/web/queue-microtask.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/web/queue-microtask.js
rename to src/third_party/devtools/node_modules/core-js/web/queue-microtask.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/web/timers.js b/src/third_party/devtools/node_modules/core-js/web/timers.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/web/timers.js
rename to src/third_party/devtools/node_modules/core-js/web/timers.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/web/url-search-params.js b/src/third_party/devtools/node_modules/core-js/web/url-search-params.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/web/url-search-params.js
rename to src/third_party/devtools/node_modules/core-js/web/url-search-params.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-js/web/url.js b/src/third_party/devtools/node_modules/core-js/web/url.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-js/web/url.js
rename to src/third_party/devtools/node_modules/core-js/web/url.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-util-is/LICENSE b/src/third_party/devtools/node_modules/core-util-is/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-util-is/LICENSE
rename to src/third_party/devtools/node_modules/core-util-is/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-util-is/README.md b/src/third_party/devtools/node_modules/core-util-is/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-util-is/README.md
rename to src/third_party/devtools/node_modules/core-util-is/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-util-is/float.patch b/src/third_party/devtools/node_modules/core-util-is/float.patch
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-util-is/float.patch
rename to src/third_party/devtools/node_modules/core-util-is/float.patch
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-util-is/lib/util.js b/src/third_party/devtools/node_modules/core-util-is/lib/util.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-util-is/lib/util.js
rename to src/third_party/devtools/node_modules/core-util-is/lib/util.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-util-is/package.json b/src/third_party/devtools/node_modules/core-util-is/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-util-is/package.json
rename to src/third_party/devtools/node_modules/core-util-is/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/core-util-is/test.js b/src/third_party/devtools/node_modules/core-util-is/test.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/core-util-is/test.js
rename to src/third_party/devtools/node_modules/core-util-is/test.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/create-ecdh/.travis.yml b/src/third_party/devtools/node_modules/create-ecdh/.travis.yml
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/create-ecdh/.travis.yml
rename to src/third_party/devtools/node_modules/create-ecdh/.travis.yml
diff --git a/src/cobalt/debug/remote/devtools/node_modules/create-ecdh/LICENSE b/src/third_party/devtools/node_modules/create-ecdh/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/create-ecdh/LICENSE
rename to src/third_party/devtools/node_modules/create-ecdh/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/create-ecdh/browser.js b/src/third_party/devtools/node_modules/create-ecdh/browser.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/create-ecdh/browser.js
rename to src/third_party/devtools/node_modules/create-ecdh/browser.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/create-ecdh/index.js b/src/third_party/devtools/node_modules/create-ecdh/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/create-ecdh/index.js
rename to src/third_party/devtools/node_modules/create-ecdh/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/create-ecdh/package.json b/src/third_party/devtools/node_modules/create-ecdh/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/create-ecdh/package.json
rename to src/third_party/devtools/node_modules/create-ecdh/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/create-ecdh/readme.md b/src/third_party/devtools/node_modules/create-ecdh/readme.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/create-ecdh/readme.md
rename to src/third_party/devtools/node_modules/create-ecdh/readme.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/create-hash/.travis.yml b/src/third_party/devtools/node_modules/create-hash/.travis.yml
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/create-hash/.travis.yml
rename to src/third_party/devtools/node_modules/create-hash/.travis.yml
diff --git a/src/cobalt/debug/remote/devtools/node_modules/create-hash/LICENSE b/src/third_party/devtools/node_modules/create-hash/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/create-hash/LICENSE
rename to src/third_party/devtools/node_modules/create-hash/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/create-hash/README.md b/src/third_party/devtools/node_modules/create-hash/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/create-hash/README.md
rename to src/third_party/devtools/node_modules/create-hash/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/create-hash/browser.js b/src/third_party/devtools/node_modules/create-hash/browser.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/create-hash/browser.js
rename to src/third_party/devtools/node_modules/create-hash/browser.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/create-hash/index.js b/src/third_party/devtools/node_modules/create-hash/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/create-hash/index.js
rename to src/third_party/devtools/node_modules/create-hash/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/create-hash/md5.js b/src/third_party/devtools/node_modules/create-hash/md5.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/create-hash/md5.js
rename to src/third_party/devtools/node_modules/create-hash/md5.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/create-hash/package.json b/src/third_party/devtools/node_modules/create-hash/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/create-hash/package.json
rename to src/third_party/devtools/node_modules/create-hash/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/create-hash/test.js b/src/third_party/devtools/node_modules/create-hash/test.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/create-hash/test.js
rename to src/third_party/devtools/node_modules/create-hash/test.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/create-hmac/LICENSE b/src/third_party/devtools/node_modules/create-hmac/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/create-hmac/LICENSE
rename to src/third_party/devtools/node_modules/create-hmac/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/create-hmac/README.md b/src/third_party/devtools/node_modules/create-hmac/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/create-hmac/README.md
rename to src/third_party/devtools/node_modules/create-hmac/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/create-hmac/browser.js b/src/third_party/devtools/node_modules/create-hmac/browser.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/create-hmac/browser.js
rename to src/third_party/devtools/node_modules/create-hmac/browser.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/create-hmac/index.js b/src/third_party/devtools/node_modules/create-hmac/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/create-hmac/index.js
rename to src/third_party/devtools/node_modules/create-hmac/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/create-hmac/legacy.js b/src/third_party/devtools/node_modules/create-hmac/legacy.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/create-hmac/legacy.js
rename to src/third_party/devtools/node_modules/create-hmac/legacy.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/create-hmac/package.json b/src/third_party/devtools/node_modules/create-hmac/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/create-hmac/package.json
rename to src/third_party/devtools/node_modules/create-hmac/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/cross-spawn/CHANGELOG.md b/src/third_party/devtools/node_modules/cross-spawn/CHANGELOG.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/cross-spawn/CHANGELOG.md
rename to src/third_party/devtools/node_modules/cross-spawn/CHANGELOG.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/cross-spawn/LICENSE b/src/third_party/devtools/node_modules/cross-spawn/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/cross-spawn/LICENSE
rename to src/third_party/devtools/node_modules/cross-spawn/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/cross-spawn/README.md b/src/third_party/devtools/node_modules/cross-spawn/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/cross-spawn/README.md
rename to src/third_party/devtools/node_modules/cross-spawn/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/cross-spawn/index.js b/src/third_party/devtools/node_modules/cross-spawn/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/cross-spawn/index.js
rename to src/third_party/devtools/node_modules/cross-spawn/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/cross-spawn/lib/enoent.js b/src/third_party/devtools/node_modules/cross-spawn/lib/enoent.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/cross-spawn/lib/enoent.js
rename to src/third_party/devtools/node_modules/cross-spawn/lib/enoent.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/cross-spawn/lib/parse.js b/src/third_party/devtools/node_modules/cross-spawn/lib/parse.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/cross-spawn/lib/parse.js
rename to src/third_party/devtools/node_modules/cross-spawn/lib/parse.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/cross-spawn/lib/util/escape.js b/src/third_party/devtools/node_modules/cross-spawn/lib/util/escape.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/cross-spawn/lib/util/escape.js
rename to src/third_party/devtools/node_modules/cross-spawn/lib/util/escape.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/cross-spawn/lib/util/readShebang.js b/src/third_party/devtools/node_modules/cross-spawn/lib/util/readShebang.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/cross-spawn/lib/util/readShebang.js
rename to src/third_party/devtools/node_modules/cross-spawn/lib/util/readShebang.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/cross-spawn/lib/util/resolveCommand.js b/src/third_party/devtools/node_modules/cross-spawn/lib/util/resolveCommand.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/cross-spawn/lib/util/resolveCommand.js
rename to src/third_party/devtools/node_modules/cross-spawn/lib/util/resolveCommand.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/cross-spawn/package.json b/src/third_party/devtools/node_modules/cross-spawn/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/cross-spawn/package.json
rename to src/third_party/devtools/node_modules/cross-spawn/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/crypto-browserify/.travis.yml b/src/third_party/devtools/node_modules/crypto-browserify/.travis.yml
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/crypto-browserify/.travis.yml
rename to src/third_party/devtools/node_modules/crypto-browserify/.travis.yml
diff --git a/src/cobalt/debug/remote/devtools/node_modules/crypto-browserify/.zuul.yml b/src/third_party/devtools/node_modules/crypto-browserify/.zuul.yml
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/crypto-browserify/.zuul.yml
rename to src/third_party/devtools/node_modules/crypto-browserify/.zuul.yml
diff --git a/src/cobalt/debug/remote/devtools/node_modules/crypto-browserify/LICENSE b/src/third_party/devtools/node_modules/crypto-browserify/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/crypto-browserify/LICENSE
rename to src/third_party/devtools/node_modules/crypto-browserify/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/crypto-browserify/README.md b/src/third_party/devtools/node_modules/crypto-browserify/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/crypto-browserify/README.md
rename to src/third_party/devtools/node_modules/crypto-browserify/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/crypto-browserify/example/bundle.js b/src/third_party/devtools/node_modules/crypto-browserify/example/bundle.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/crypto-browserify/example/bundle.js
rename to src/third_party/devtools/node_modules/crypto-browserify/example/bundle.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/crypto-browserify/example/index.html b/src/third_party/devtools/node_modules/crypto-browserify/example/index.html
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/crypto-browserify/example/index.html
rename to src/third_party/devtools/node_modules/crypto-browserify/example/index.html
diff --git a/src/cobalt/debug/remote/devtools/node_modules/crypto-browserify/example/test.js b/src/third_party/devtools/node_modules/crypto-browserify/example/test.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/crypto-browserify/example/test.js
rename to src/third_party/devtools/node_modules/crypto-browserify/example/test.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/crypto-browserify/index.js b/src/third_party/devtools/node_modules/crypto-browserify/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/crypto-browserify/index.js
rename to src/third_party/devtools/node_modules/crypto-browserify/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/crypto-browserify/package.json b/src/third_party/devtools/node_modules/crypto-browserify/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/crypto-browserify/package.json
rename to src/third_party/devtools/node_modules/crypto-browserify/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/crypto-browserify/test/aes.js b/src/third_party/devtools/node_modules/crypto-browserify/test/aes.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/crypto-browserify/test/aes.js
rename to src/third_party/devtools/node_modules/crypto-browserify/test/aes.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/crypto-browserify/test/create-hash.js b/src/third_party/devtools/node_modules/crypto-browserify/test/create-hash.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/crypto-browserify/test/create-hash.js
rename to src/third_party/devtools/node_modules/crypto-browserify/test/create-hash.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/crypto-browserify/test/create-hmac.js b/src/third_party/devtools/node_modules/crypto-browserify/test/create-hmac.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/crypto-browserify/test/create-hmac.js
rename to src/third_party/devtools/node_modules/crypto-browserify/test/create-hmac.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/crypto-browserify/test/dh.js b/src/third_party/devtools/node_modules/crypto-browserify/test/dh.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/crypto-browserify/test/dh.js
rename to src/third_party/devtools/node_modules/crypto-browserify/test/dh.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/crypto-browserify/test/ecdh.js b/src/third_party/devtools/node_modules/crypto-browserify/test/ecdh.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/crypto-browserify/test/ecdh.js
rename to src/third_party/devtools/node_modules/crypto-browserify/test/ecdh.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/crypto-browserify/test/index.js b/src/third_party/devtools/node_modules/crypto-browserify/test/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/crypto-browserify/test/index.js
rename to src/third_party/devtools/node_modules/crypto-browserify/test/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/crypto-browserify/test/node/dh.js b/src/third_party/devtools/node_modules/crypto-browserify/test/node/dh.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/crypto-browserify/test/node/dh.js
rename to src/third_party/devtools/node_modules/crypto-browserify/test/node/dh.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/crypto-browserify/test/pbkdf2.js b/src/third_party/devtools/node_modules/crypto-browserify/test/pbkdf2.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/crypto-browserify/test/pbkdf2.js
rename to src/third_party/devtools/node_modules/crypto-browserify/test/pbkdf2.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/crypto-browserify/test/public-encrypt.js b/src/third_party/devtools/node_modules/crypto-browserify/test/public-encrypt.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/crypto-browserify/test/public-encrypt.js
rename to src/third_party/devtools/node_modules/crypto-browserify/test/public-encrypt.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/crypto-browserify/test/random-bytes.js b/src/third_party/devtools/node_modules/crypto-browserify/test/random-bytes.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/crypto-browserify/test/random-bytes.js
rename to src/third_party/devtools/node_modules/crypto-browserify/test/random-bytes.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/crypto-browserify/test/random-fill.js b/src/third_party/devtools/node_modules/crypto-browserify/test/random-fill.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/crypto-browserify/test/random-fill.js
rename to src/third_party/devtools/node_modules/crypto-browserify/test/random-fill.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/crypto-browserify/test/sign.js b/src/third_party/devtools/node_modules/crypto-browserify/test/sign.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/crypto-browserify/test/sign.js
rename to src/third_party/devtools/node_modules/crypto-browserify/test/sign.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/currently-unhandled/browser.js b/src/third_party/devtools/node_modules/currently-unhandled/browser.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/currently-unhandled/browser.js
rename to src/third_party/devtools/node_modules/currently-unhandled/browser.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/currently-unhandled/core.js b/src/third_party/devtools/node_modules/currently-unhandled/core.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/currently-unhandled/core.js
rename to src/third_party/devtools/node_modules/currently-unhandled/core.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/currently-unhandled/index.js b/src/third_party/devtools/node_modules/currently-unhandled/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/currently-unhandled/index.js
rename to src/third_party/devtools/node_modules/currently-unhandled/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/currently-unhandled/license b/src/third_party/devtools/node_modules/currently-unhandled/license
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/currently-unhandled/license
rename to src/third_party/devtools/node_modules/currently-unhandled/license
diff --git a/src/cobalt/debug/remote/devtools/node_modules/currently-unhandled/package.json b/src/third_party/devtools/node_modules/currently-unhandled/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/currently-unhandled/package.json
rename to src/third_party/devtools/node_modules/currently-unhandled/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/currently-unhandled/readme.md b/src/third_party/devtools/node_modules/currently-unhandled/readme.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/currently-unhandled/readme.md
rename to src/third_party/devtools/node_modules/currently-unhandled/readme.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/custom-event/.npmignore b/src/third_party/devtools/node_modules/custom-event/.npmignore
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/custom-event/.npmignore
rename to src/third_party/devtools/node_modules/custom-event/.npmignore
diff --git a/src/cobalt/debug/remote/devtools/node_modules/custom-event/.travis.yml b/src/third_party/devtools/node_modules/custom-event/.travis.yml
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/custom-event/.travis.yml
rename to src/third_party/devtools/node_modules/custom-event/.travis.yml
diff --git a/src/cobalt/debug/remote/devtools/node_modules/custom-event/History.md b/src/third_party/devtools/node_modules/custom-event/History.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/custom-event/History.md
rename to src/third_party/devtools/node_modules/custom-event/History.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/custom-event/LICENSE b/src/third_party/devtools/node_modules/custom-event/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/custom-event/LICENSE
rename to src/third_party/devtools/node_modules/custom-event/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/custom-event/Makefile b/src/third_party/devtools/node_modules/custom-event/Makefile
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/custom-event/Makefile
rename to src/third_party/devtools/node_modules/custom-event/Makefile
diff --git a/src/cobalt/debug/remote/devtools/node_modules/custom-event/README.md b/src/third_party/devtools/node_modules/custom-event/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/custom-event/README.md
rename to src/third_party/devtools/node_modules/custom-event/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/custom-event/index.js b/src/third_party/devtools/node_modules/custom-event/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/custom-event/index.js
rename to src/third_party/devtools/node_modules/custom-event/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/custom-event/package.json b/src/third_party/devtools/node_modules/custom-event/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/custom-event/package.json
rename to src/third_party/devtools/node_modules/custom-event/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/custom-event/test/test.js b/src/third_party/devtools/node_modules/custom-event/test/test.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/custom-event/test/test.js
rename to src/third_party/devtools/node_modules/custom-event/test/test.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/date-format/.eslintrc b/src/third_party/devtools/node_modules/date-format/.eslintrc
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/date-format/.eslintrc
rename to src/third_party/devtools/node_modules/date-format/.eslintrc
diff --git a/src/cobalt/debug/remote/devtools/node_modules/date-format/.travis.yml b/src/third_party/devtools/node_modules/date-format/.travis.yml
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/date-format/.travis.yml
rename to src/third_party/devtools/node_modules/date-format/.travis.yml
diff --git a/src/cobalt/debug/remote/devtools/node_modules/date-format/LICENSE b/src/third_party/devtools/node_modules/date-format/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/date-format/LICENSE
rename to src/third_party/devtools/node_modules/date-format/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/date-format/README.md b/src/third_party/devtools/node_modules/date-format/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/date-format/README.md
rename to src/third_party/devtools/node_modules/date-format/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/date-format/lib/index.js b/src/third_party/devtools/node_modules/date-format/lib/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/date-format/lib/index.js
rename to src/third_party/devtools/node_modules/date-format/lib/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/date-format/package.json b/src/third_party/devtools/node_modules/date-format/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/date-format/package.json
rename to src/third_party/devtools/node_modules/date-format/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/date-format/test/date_format-test.js b/src/third_party/devtools/node_modules/date-format/test/date_format-test.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/date-format/test/date_format-test.js
rename to src/third_party/devtools/node_modules/date-format/test/date_format-test.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/date-format/test/parse-test.js b/src/third_party/devtools/node_modules/date-format/test/parse-test.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/date-format/test/parse-test.js
rename to src/third_party/devtools/node_modules/date-format/test/parse-test.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/date-now/.npmignore b/src/third_party/devtools/node_modules/date-now/.npmignore
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/date-now/.npmignore
rename to src/third_party/devtools/node_modules/date-now/.npmignore
diff --git a/src/cobalt/debug/remote/devtools/node_modules/date-now/.testem.json b/src/third_party/devtools/node_modules/date-now/.testem.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/date-now/.testem.json
rename to src/third_party/devtools/node_modules/date-now/.testem.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/date-now/.travis.yml b/src/third_party/devtools/node_modules/date-now/.travis.yml
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/date-now/.travis.yml
rename to src/third_party/devtools/node_modules/date-now/.travis.yml
diff --git a/src/cobalt/debug/remote/devtools/node_modules/date-now/LICENCE b/src/third_party/devtools/node_modules/date-now/LICENCE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/date-now/LICENCE
rename to src/third_party/devtools/node_modules/date-now/LICENCE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/date-now/README.md b/src/third_party/devtools/node_modules/date-now/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/date-now/README.md
rename to src/third_party/devtools/node_modules/date-now/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/date-now/index.js b/src/third_party/devtools/node_modules/date-now/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/date-now/index.js
rename to src/third_party/devtools/node_modules/date-now/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/date-now/package.json b/src/third_party/devtools/node_modules/date-now/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/date-now/package.json
rename to src/third_party/devtools/node_modules/date-now/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/date-now/seed.js b/src/third_party/devtools/node_modules/date-now/seed.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/date-now/seed.js
rename to src/third_party/devtools/node_modules/date-now/seed.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/date-now/test/index.js b/src/third_party/devtools/node_modules/date-now/test/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/date-now/test/index.js
rename to src/third_party/devtools/node_modules/date-now/test/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/date-now/test/static/index.html b/src/third_party/devtools/node_modules/date-now/test/static/index.html
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/date-now/test/static/index.html
rename to src/third_party/devtools/node_modules/date-now/test/static/index.html
diff --git a/src/cobalt/debug/remote/devtools/node_modules/dateformat/.npmignore b/src/third_party/devtools/node_modules/dateformat/.npmignore
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/dateformat/.npmignore
rename to src/third_party/devtools/node_modules/dateformat/.npmignore
diff --git a/src/cobalt/debug/remote/devtools/node_modules/dateformat/.travis.yml b/src/third_party/devtools/node_modules/dateformat/.travis.yml
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/dateformat/.travis.yml
rename to src/third_party/devtools/node_modules/dateformat/.travis.yml
diff --git a/src/cobalt/debug/remote/devtools/node_modules/dateformat/LICENSE b/src/third_party/devtools/node_modules/dateformat/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/dateformat/LICENSE
rename to src/third_party/devtools/node_modules/dateformat/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/dateformat/Readme.md b/src/third_party/devtools/node_modules/dateformat/Readme.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/dateformat/Readme.md
rename to src/third_party/devtools/node_modules/dateformat/Readme.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/dateformat/bin/cli.js b/src/third_party/devtools/node_modules/dateformat/bin/cli.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/dateformat/bin/cli.js
rename to src/third_party/devtools/node_modules/dateformat/bin/cli.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/dateformat/lib/dateformat.js b/src/third_party/devtools/node_modules/dateformat/lib/dateformat.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/dateformat/lib/dateformat.js
rename to src/third_party/devtools/node_modules/dateformat/lib/dateformat.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/dateformat/package.json b/src/third_party/devtools/node_modules/dateformat/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/dateformat/package.json
rename to src/third_party/devtools/node_modules/dateformat/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/dateformat/test/test_dayofweek.js b/src/third_party/devtools/node_modules/dateformat/test/test_dayofweek.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/dateformat/test/test_dayofweek.js
rename to src/third_party/devtools/node_modules/dateformat/test/test_dayofweek.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/dateformat/test/test_formats.js b/src/third_party/devtools/node_modules/dateformat/test/test_formats.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/dateformat/test/test_formats.js
rename to src/third_party/devtools/node_modules/dateformat/test/test_formats.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/dateformat/test/test_isoutcdatetime.js b/src/third_party/devtools/node_modules/dateformat/test/test_isoutcdatetime.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/dateformat/test/test_isoutcdatetime.js
rename to src/third_party/devtools/node_modules/dateformat/test/test_isoutcdatetime.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/dateformat/test/weekofyear/test_weekofyear.js b/src/third_party/devtools/node_modules/dateformat/test/weekofyear/test_weekofyear.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/dateformat/test/weekofyear/test_weekofyear.js
rename to src/third_party/devtools/node_modules/dateformat/test/weekofyear/test_weekofyear.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/dateformat/test/weekofyear/test_weekofyear.sh b/src/third_party/devtools/node_modules/dateformat/test/weekofyear/test_weekofyear.sh
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/dateformat/test/weekofyear/test_weekofyear.sh
rename to src/third_party/devtools/node_modules/dateformat/test/weekofyear/test_weekofyear.sh
diff --git a/src/cobalt/debug/remote/devtools/node_modules/debug/CHANGELOG.md b/src/third_party/devtools/node_modules/debug/CHANGELOG.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/debug/CHANGELOG.md
rename to src/third_party/devtools/node_modules/debug/CHANGELOG.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/debug/LICENSE b/src/third_party/devtools/node_modules/debug/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/debug/LICENSE
rename to src/third_party/devtools/node_modules/debug/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/debug/README.md b/src/third_party/devtools/node_modules/debug/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/debug/README.md
rename to src/third_party/devtools/node_modules/debug/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/debug/dist/debug.js b/src/third_party/devtools/node_modules/debug/dist/debug.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/debug/dist/debug.js
rename to src/third_party/devtools/node_modules/debug/dist/debug.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/debug/package.json b/src/third_party/devtools/node_modules/debug/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/debug/package.json
rename to src/third_party/devtools/node_modules/debug/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/debug/src/browser.js b/src/third_party/devtools/node_modules/debug/src/browser.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/debug/src/browser.js
rename to src/third_party/devtools/node_modules/debug/src/browser.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/debug/src/common.js b/src/third_party/devtools/node_modules/debug/src/common.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/debug/src/common.js
rename to src/third_party/devtools/node_modules/debug/src/common.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/debug/src/index.js b/src/third_party/devtools/node_modules/debug/src/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/debug/src/index.js
rename to src/third_party/devtools/node_modules/debug/src/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/debug/src/node.js b/src/third_party/devtools/node_modules/debug/src/node.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/debug/src/node.js
rename to src/third_party/devtools/node_modules/debug/src/node.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/debuglog/LICENSE b/src/third_party/devtools/node_modules/debuglog/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/debuglog/LICENSE
rename to src/third_party/devtools/node_modules/debuglog/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/debuglog/README.md b/src/third_party/devtools/node_modules/debuglog/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/debuglog/README.md
rename to src/third_party/devtools/node_modules/debuglog/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/debuglog/debuglog.js b/src/third_party/devtools/node_modules/debuglog/debuglog.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/debuglog/debuglog.js
rename to src/third_party/devtools/node_modules/debuglog/debuglog.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/debuglog/package.json b/src/third_party/devtools/node_modules/debuglog/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/debuglog/package.json
rename to src/third_party/devtools/node_modules/debuglog/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/decamelize/index.js b/src/third_party/devtools/node_modules/decamelize/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/decamelize/index.js
rename to src/third_party/devtools/node_modules/decamelize/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/decamelize/license b/src/third_party/devtools/node_modules/decamelize/license
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/decamelize/license
rename to src/third_party/devtools/node_modules/decamelize/license
diff --git a/src/cobalt/debug/remote/devtools/node_modules/decamelize/package.json b/src/third_party/devtools/node_modules/decamelize/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/decamelize/package.json
rename to src/third_party/devtools/node_modules/decamelize/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/decamelize/readme.md b/src/third_party/devtools/node_modules/decamelize/readme.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/decamelize/readme.md
rename to src/third_party/devtools/node_modules/decamelize/readme.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/deep-eql/LICENSE b/src/third_party/devtools/node_modules/deep-eql/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/deep-eql/LICENSE
rename to src/third_party/devtools/node_modules/deep-eql/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/deep-eql/README.md b/src/third_party/devtools/node_modules/deep-eql/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/deep-eql/README.md
rename to src/third_party/devtools/node_modules/deep-eql/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/deep-eql/deep-eql.js b/src/third_party/devtools/node_modules/deep-eql/deep-eql.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/deep-eql/deep-eql.js
rename to src/third_party/devtools/node_modules/deep-eql/deep-eql.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/deep-eql/index.js b/src/third_party/devtools/node_modules/deep-eql/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/deep-eql/index.js
rename to src/third_party/devtools/node_modules/deep-eql/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/deep-eql/package.json b/src/third_party/devtools/node_modules/deep-eql/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/deep-eql/package.json
rename to src/third_party/devtools/node_modules/deep-eql/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/deep-is/.npmignore b/src/third_party/devtools/node_modules/deep-is/.npmignore
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/deep-is/.npmignore
rename to src/third_party/devtools/node_modules/deep-is/.npmignore
diff --git a/src/cobalt/debug/remote/devtools/node_modules/deep-is/.travis.yml b/src/third_party/devtools/node_modules/deep-is/.travis.yml
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/deep-is/.travis.yml
rename to src/third_party/devtools/node_modules/deep-is/.travis.yml
diff --git a/src/cobalt/debug/remote/devtools/node_modules/deep-is/LICENSE b/src/third_party/devtools/node_modules/deep-is/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/deep-is/LICENSE
rename to src/third_party/devtools/node_modules/deep-is/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/deep-is/README.markdown b/src/third_party/devtools/node_modules/deep-is/README.markdown
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/deep-is/README.markdown
rename to src/third_party/devtools/node_modules/deep-is/README.markdown
diff --git a/src/cobalt/debug/remote/devtools/node_modules/deep-is/example/cmp.js b/src/third_party/devtools/node_modules/deep-is/example/cmp.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/deep-is/example/cmp.js
rename to src/third_party/devtools/node_modules/deep-is/example/cmp.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/deep-is/index.js b/src/third_party/devtools/node_modules/deep-is/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/deep-is/index.js
rename to src/third_party/devtools/node_modules/deep-is/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/deep-is/package.json b/src/third_party/devtools/node_modules/deep-is/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/deep-is/package.json
rename to src/third_party/devtools/node_modules/deep-is/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/deep-is/test/NaN.js b/src/third_party/devtools/node_modules/deep-is/test/NaN.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/deep-is/test/NaN.js
rename to src/third_party/devtools/node_modules/deep-is/test/NaN.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/deep-is/test/cmp.js b/src/third_party/devtools/node_modules/deep-is/test/cmp.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/deep-is/test/cmp.js
rename to src/third_party/devtools/node_modules/deep-is/test/cmp.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/deep-is/test/neg-vs-pos-0.js b/src/third_party/devtools/node_modules/deep-is/test/neg-vs-pos-0.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/deep-is/test/neg-vs-pos-0.js
rename to src/third_party/devtools/node_modules/deep-is/test/neg-vs-pos-0.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/default-require-extensions/js.js b/src/third_party/devtools/node_modules/default-require-extensions/js.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/default-require-extensions/js.js
rename to src/third_party/devtools/node_modules/default-require-extensions/js.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/default-require-extensions/json.js b/src/third_party/devtools/node_modules/default-require-extensions/json.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/default-require-extensions/json.js
rename to src/third_party/devtools/node_modules/default-require-extensions/json.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/default-require-extensions/license b/src/third_party/devtools/node_modules/default-require-extensions/license
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/default-require-extensions/license
rename to src/third_party/devtools/node_modules/default-require-extensions/license
diff --git a/src/cobalt/debug/remote/devtools/node_modules/default-require-extensions/package.json b/src/third_party/devtools/node_modules/default-require-extensions/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/default-require-extensions/package.json
rename to src/third_party/devtools/node_modules/default-require-extensions/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/default-require-extensions/readme.md b/src/third_party/devtools/node_modules/default-require-extensions/readme.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/default-require-extensions/readme.md
rename to src/third_party/devtools/node_modules/default-require-extensions/readme.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/defaults/.npmignore b/src/third_party/devtools/node_modules/defaults/.npmignore
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/defaults/.npmignore
rename to src/third_party/devtools/node_modules/defaults/.npmignore
diff --git a/src/cobalt/debug/remote/devtools/node_modules/defaults/LICENSE b/src/third_party/devtools/node_modules/defaults/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/defaults/LICENSE
rename to src/third_party/devtools/node_modules/defaults/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/defaults/README.md b/src/third_party/devtools/node_modules/defaults/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/defaults/README.md
rename to src/third_party/devtools/node_modules/defaults/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/defaults/index.js b/src/third_party/devtools/node_modules/defaults/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/defaults/index.js
rename to src/third_party/devtools/node_modules/defaults/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/defaults/package.json b/src/third_party/devtools/node_modules/defaults/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/defaults/package.json
rename to src/third_party/devtools/node_modules/defaults/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/defaults/test.js b/src/third_party/devtools/node_modules/defaults/test.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/defaults/test.js
rename to src/third_party/devtools/node_modules/defaults/test.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/define-properties/.editorconfig b/src/third_party/devtools/node_modules/define-properties/.editorconfig
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/define-properties/.editorconfig
rename to src/third_party/devtools/node_modules/define-properties/.editorconfig
diff --git a/src/cobalt/debug/remote/devtools/node_modules/define-properties/.eslintrc b/src/third_party/devtools/node_modules/define-properties/.eslintrc
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/define-properties/.eslintrc
rename to src/third_party/devtools/node_modules/define-properties/.eslintrc
diff --git a/src/cobalt/debug/remote/devtools/node_modules/define-properties/.jscs.json b/src/third_party/devtools/node_modules/define-properties/.jscs.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/define-properties/.jscs.json
rename to src/third_party/devtools/node_modules/define-properties/.jscs.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/define-properties/.travis.yml b/src/third_party/devtools/node_modules/define-properties/.travis.yml
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/define-properties/.travis.yml
rename to src/third_party/devtools/node_modules/define-properties/.travis.yml
diff --git a/src/cobalt/debug/remote/devtools/node_modules/define-properties/CHANGELOG.md b/src/third_party/devtools/node_modules/define-properties/CHANGELOG.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/define-properties/CHANGELOG.md
rename to src/third_party/devtools/node_modules/define-properties/CHANGELOG.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/define-properties/LICENSE b/src/third_party/devtools/node_modules/define-properties/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/define-properties/LICENSE
rename to src/third_party/devtools/node_modules/define-properties/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/define-properties/README.md b/src/third_party/devtools/node_modules/define-properties/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/define-properties/README.md
rename to src/third_party/devtools/node_modules/define-properties/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/define-properties/index.js b/src/third_party/devtools/node_modules/define-properties/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/define-properties/index.js
rename to src/third_party/devtools/node_modules/define-properties/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/define-properties/package.json b/src/third_party/devtools/node_modules/define-properties/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/define-properties/package.json
rename to src/third_party/devtools/node_modules/define-properties/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/define-properties/test/index.js b/src/third_party/devtools/node_modules/define-properties/test/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/define-properties/test/index.js
rename to src/third_party/devtools/node_modules/define-properties/test/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/depd/History.md b/src/third_party/devtools/node_modules/depd/History.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/depd/History.md
rename to src/third_party/devtools/node_modules/depd/History.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/depd/LICENSE b/src/third_party/devtools/node_modules/depd/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/depd/LICENSE
rename to src/third_party/devtools/node_modules/depd/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/depd/Readme.md b/src/third_party/devtools/node_modules/depd/Readme.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/depd/Readme.md
rename to src/third_party/devtools/node_modules/depd/Readme.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/depd/index.js b/src/third_party/devtools/node_modules/depd/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/depd/index.js
rename to src/third_party/devtools/node_modules/depd/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/depd/lib/browser/index.js b/src/third_party/devtools/node_modules/depd/lib/browser/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/depd/lib/browser/index.js
rename to src/third_party/devtools/node_modules/depd/lib/browser/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/depd/lib/compat/callsite-tostring.js b/src/third_party/devtools/node_modules/depd/lib/compat/callsite-tostring.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/depd/lib/compat/callsite-tostring.js
rename to src/third_party/devtools/node_modules/depd/lib/compat/callsite-tostring.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/depd/lib/compat/event-listener-count.js b/src/third_party/devtools/node_modules/depd/lib/compat/event-listener-count.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/depd/lib/compat/event-listener-count.js
rename to src/third_party/devtools/node_modules/depd/lib/compat/event-listener-count.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/depd/lib/compat/index.js b/src/third_party/devtools/node_modules/depd/lib/compat/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/depd/lib/compat/index.js
rename to src/third_party/devtools/node_modules/depd/lib/compat/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/depd/package.json b/src/third_party/devtools/node_modules/depd/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/depd/package.json
rename to src/third_party/devtools/node_modules/depd/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/des.js/.jscsrc b/src/third_party/devtools/node_modules/des.js/.jscsrc
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/des.js/.jscsrc
rename to src/third_party/devtools/node_modules/des.js/.jscsrc
diff --git a/src/cobalt/debug/remote/devtools/node_modules/des.js/.jshintrc b/src/third_party/devtools/node_modules/des.js/.jshintrc
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/des.js/.jshintrc
rename to src/third_party/devtools/node_modules/des.js/.jshintrc
diff --git a/src/cobalt/debug/remote/devtools/node_modules/des.js/.npmignore b/src/third_party/devtools/node_modules/des.js/.npmignore
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/des.js/.npmignore
rename to src/third_party/devtools/node_modules/des.js/.npmignore
diff --git a/src/cobalt/debug/remote/devtools/node_modules/des.js/README.md b/src/third_party/devtools/node_modules/des.js/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/des.js/README.md
rename to src/third_party/devtools/node_modules/des.js/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/des.js/lib/des.js b/src/third_party/devtools/node_modules/des.js/lib/des.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/des.js/lib/des.js
rename to src/third_party/devtools/node_modules/des.js/lib/des.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/des.js/lib/des/cbc.js b/src/third_party/devtools/node_modules/des.js/lib/des/cbc.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/des.js/lib/des/cbc.js
rename to src/third_party/devtools/node_modules/des.js/lib/des/cbc.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/des.js/lib/des/cipher.js b/src/third_party/devtools/node_modules/des.js/lib/des/cipher.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/des.js/lib/des/cipher.js
rename to src/third_party/devtools/node_modules/des.js/lib/des/cipher.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/des.js/lib/des/des.js b/src/third_party/devtools/node_modules/des.js/lib/des/des.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/des.js/lib/des/des.js
rename to src/third_party/devtools/node_modules/des.js/lib/des/des.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/des.js/lib/des/ede.js b/src/third_party/devtools/node_modules/des.js/lib/des/ede.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/des.js/lib/des/ede.js
rename to src/third_party/devtools/node_modules/des.js/lib/des/ede.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/des.js/lib/des/utils.js b/src/third_party/devtools/node_modules/des.js/lib/des/utils.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/des.js/lib/des/utils.js
rename to src/third_party/devtools/node_modules/des.js/lib/des/utils.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/des.js/package.json b/src/third_party/devtools/node_modules/des.js/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/des.js/package.json
rename to src/third_party/devtools/node_modules/des.js/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/des.js/test/cbc-test.js b/src/third_party/devtools/node_modules/des.js/test/cbc-test.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/des.js/test/cbc-test.js
rename to src/third_party/devtools/node_modules/des.js/test/cbc-test.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/des.js/test/des-test.js b/src/third_party/devtools/node_modules/des.js/test/des-test.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/des.js/test/des-test.js
rename to src/third_party/devtools/node_modules/des.js/test/des-test.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/des.js/test/ede-test.js b/src/third_party/devtools/node_modules/des.js/test/ede-test.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/des.js/test/ede-test.js
rename to src/third_party/devtools/node_modules/des.js/test/ede-test.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/des.js/test/fixtures.js b/src/third_party/devtools/node_modules/des.js/test/fixtures.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/des.js/test/fixtures.js
rename to src/third_party/devtools/node_modules/des.js/test/fixtures.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/des.js/test/utils-test.js b/src/third_party/devtools/node_modules/des.js/test/utils-test.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/des.js/test/utils-test.js
rename to src/third_party/devtools/node_modules/des.js/test/utils-test.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/dezalgo/.travis.yml b/src/third_party/devtools/node_modules/dezalgo/.travis.yml
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/dezalgo/.travis.yml
rename to src/third_party/devtools/node_modules/dezalgo/.travis.yml
diff --git a/src/cobalt/debug/remote/devtools/node_modules/dezalgo/LICENSE b/src/third_party/devtools/node_modules/dezalgo/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/dezalgo/LICENSE
rename to src/third_party/devtools/node_modules/dezalgo/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/dezalgo/README.md b/src/third_party/devtools/node_modules/dezalgo/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/dezalgo/README.md
rename to src/third_party/devtools/node_modules/dezalgo/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/dezalgo/dezalgo.js b/src/third_party/devtools/node_modules/dezalgo/dezalgo.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/dezalgo/dezalgo.js
rename to src/third_party/devtools/node_modules/dezalgo/dezalgo.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/dezalgo/package.json b/src/third_party/devtools/node_modules/dezalgo/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/dezalgo/package.json
rename to src/third_party/devtools/node_modules/dezalgo/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/dezalgo/test/basic.js b/src/third_party/devtools/node_modules/dezalgo/test/basic.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/dezalgo/test/basic.js
rename to src/third_party/devtools/node_modules/dezalgo/test/basic.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/di/LICENSE b/src/third_party/devtools/node_modules/di/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/di/LICENSE
rename to src/third_party/devtools/node_modules/di/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/di/README.md b/src/third_party/devtools/node_modules/di/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/di/README.md
rename to src/third_party/devtools/node_modules/di/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/di/lib/annotation.js b/src/third_party/devtools/node_modules/di/lib/annotation.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/di/lib/annotation.js
rename to src/third_party/devtools/node_modules/di/lib/annotation.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/di/lib/index.js b/src/third_party/devtools/node_modules/di/lib/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/di/lib/index.js
rename to src/third_party/devtools/node_modules/di/lib/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/di/lib/injector.js b/src/third_party/devtools/node_modules/di/lib/injector.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/di/lib/injector.js
rename to src/third_party/devtools/node_modules/di/lib/injector.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/di/lib/module.js b/src/third_party/devtools/node_modules/di/lib/module.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/di/lib/module.js
rename to src/third_party/devtools/node_modules/di/lib/module.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/di/package.json b/src/third_party/devtools/node_modules/di/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/di/package.json
rename to src/third_party/devtools/node_modules/di/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/diff/CONTRIBUTING.md b/src/third_party/devtools/node_modules/diff/CONTRIBUTING.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/diff/CONTRIBUTING.md
rename to src/third_party/devtools/node_modules/diff/CONTRIBUTING.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/diff/LICENSE b/src/third_party/devtools/node_modules/diff/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/diff/LICENSE
rename to src/third_party/devtools/node_modules/diff/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/diff/README.md b/src/third_party/devtools/node_modules/diff/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/diff/README.md
rename to src/third_party/devtools/node_modules/diff/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/diff/dist/diff.js b/src/third_party/devtools/node_modules/diff/dist/diff.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/diff/dist/diff.js
rename to src/third_party/devtools/node_modules/diff/dist/diff.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/diff/dist/diff.min.js b/src/third_party/devtools/node_modules/diff/dist/diff.min.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/diff/dist/diff.min.js
rename to src/third_party/devtools/node_modules/diff/dist/diff.min.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/diff/lib/convert/dmp.js b/src/third_party/devtools/node_modules/diff/lib/convert/dmp.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/diff/lib/convert/dmp.js
rename to src/third_party/devtools/node_modules/diff/lib/convert/dmp.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/diff/lib/convert/xml.js b/src/third_party/devtools/node_modules/diff/lib/convert/xml.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/diff/lib/convert/xml.js
rename to src/third_party/devtools/node_modules/diff/lib/convert/xml.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/diff/lib/diff/array.js b/src/third_party/devtools/node_modules/diff/lib/diff/array.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/diff/lib/diff/array.js
rename to src/third_party/devtools/node_modules/diff/lib/diff/array.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/diff/lib/diff/base.js b/src/third_party/devtools/node_modules/diff/lib/diff/base.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/diff/lib/diff/base.js
rename to src/third_party/devtools/node_modules/diff/lib/diff/base.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/diff/lib/diff/character.js b/src/third_party/devtools/node_modules/diff/lib/diff/character.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/diff/lib/diff/character.js
rename to src/third_party/devtools/node_modules/diff/lib/diff/character.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/diff/lib/diff/css.js b/src/third_party/devtools/node_modules/diff/lib/diff/css.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/diff/lib/diff/css.js
rename to src/third_party/devtools/node_modules/diff/lib/diff/css.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/diff/lib/diff/json.js b/src/third_party/devtools/node_modules/diff/lib/diff/json.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/diff/lib/diff/json.js
rename to src/third_party/devtools/node_modules/diff/lib/diff/json.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/diff/lib/diff/line.js b/src/third_party/devtools/node_modules/diff/lib/diff/line.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/diff/lib/diff/line.js
rename to src/third_party/devtools/node_modules/diff/lib/diff/line.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/diff/lib/diff/sentence.js b/src/third_party/devtools/node_modules/diff/lib/diff/sentence.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/diff/lib/diff/sentence.js
rename to src/third_party/devtools/node_modules/diff/lib/diff/sentence.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/diff/lib/diff/word.js b/src/third_party/devtools/node_modules/diff/lib/diff/word.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/diff/lib/diff/word.js
rename to src/third_party/devtools/node_modules/diff/lib/diff/word.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/diff/lib/index.es6.js b/src/third_party/devtools/node_modules/diff/lib/index.es6.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/diff/lib/index.es6.js
rename to src/third_party/devtools/node_modules/diff/lib/index.es6.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/diff/lib/index.js b/src/third_party/devtools/node_modules/diff/lib/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/diff/lib/index.js
rename to src/third_party/devtools/node_modules/diff/lib/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/diff/lib/patch/apply.js b/src/third_party/devtools/node_modules/diff/lib/patch/apply.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/diff/lib/patch/apply.js
rename to src/third_party/devtools/node_modules/diff/lib/patch/apply.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/diff/lib/patch/create.js b/src/third_party/devtools/node_modules/diff/lib/patch/create.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/diff/lib/patch/create.js
rename to src/third_party/devtools/node_modules/diff/lib/patch/create.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/diff/lib/patch/merge.js b/src/third_party/devtools/node_modules/diff/lib/patch/merge.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/diff/lib/patch/merge.js
rename to src/third_party/devtools/node_modules/diff/lib/patch/merge.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/diff/lib/patch/parse.js b/src/third_party/devtools/node_modules/diff/lib/patch/parse.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/diff/lib/patch/parse.js
rename to src/third_party/devtools/node_modules/diff/lib/patch/parse.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/diff/lib/util/array.js b/src/third_party/devtools/node_modules/diff/lib/util/array.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/diff/lib/util/array.js
rename to src/third_party/devtools/node_modules/diff/lib/util/array.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/diff/lib/util/distance-iterator.js b/src/third_party/devtools/node_modules/diff/lib/util/distance-iterator.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/diff/lib/util/distance-iterator.js
rename to src/third_party/devtools/node_modules/diff/lib/util/distance-iterator.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/diff/lib/util/params.js b/src/third_party/devtools/node_modules/diff/lib/util/params.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/diff/lib/util/params.js
rename to src/third_party/devtools/node_modules/diff/lib/util/params.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/diff/package.json b/src/third_party/devtools/node_modules/diff/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/diff/package.json
rename to src/third_party/devtools/node_modules/diff/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/diff/release-notes.md b/src/third_party/devtools/node_modules/diff/release-notes.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/diff/release-notes.md
rename to src/third_party/devtools/node_modules/diff/release-notes.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/diff/rollup.config.js b/src/third_party/devtools/node_modules/diff/rollup.config.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/diff/rollup.config.js
rename to src/third_party/devtools/node_modules/diff/rollup.config.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/diff/runtime.js b/src/third_party/devtools/node_modules/diff/runtime.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/diff/runtime.js
rename to src/third_party/devtools/node_modules/diff/runtime.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/diff/yarn-error.log b/src/third_party/devtools/node_modules/diff/yarn-error.log
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/diff/yarn-error.log
rename to src/third_party/devtools/node_modules/diff/yarn-error.log
diff --git a/src/cobalt/debug/remote/devtools/node_modules/diffie-hellman/.travis.yml b/src/third_party/devtools/node_modules/diffie-hellman/.travis.yml
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/diffie-hellman/.travis.yml
rename to src/third_party/devtools/node_modules/diffie-hellman/.travis.yml
diff --git a/src/cobalt/debug/remote/devtools/node_modules/diffie-hellman/LICENSE b/src/third_party/devtools/node_modules/diffie-hellman/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/diffie-hellman/LICENSE
rename to src/third_party/devtools/node_modules/diffie-hellman/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/diffie-hellman/browser.js b/src/third_party/devtools/node_modules/diffie-hellman/browser.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/diffie-hellman/browser.js
rename to src/third_party/devtools/node_modules/diffie-hellman/browser.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/diffie-hellman/index.js b/src/third_party/devtools/node_modules/diffie-hellman/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/diffie-hellman/index.js
rename to src/third_party/devtools/node_modules/diffie-hellman/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/diffie-hellman/lib/dh.js b/src/third_party/devtools/node_modules/diffie-hellman/lib/dh.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/diffie-hellman/lib/dh.js
rename to src/third_party/devtools/node_modules/diffie-hellman/lib/dh.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/diffie-hellman/lib/generatePrime.js b/src/third_party/devtools/node_modules/diffie-hellman/lib/generatePrime.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/diffie-hellman/lib/generatePrime.js
rename to src/third_party/devtools/node_modules/diffie-hellman/lib/generatePrime.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/diffie-hellman/lib/primes.json b/src/third_party/devtools/node_modules/diffie-hellman/lib/primes.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/diffie-hellman/lib/primes.json
rename to src/third_party/devtools/node_modules/diffie-hellman/lib/primes.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/diffie-hellman/package.json b/src/third_party/devtools/node_modules/diffie-hellman/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/diffie-hellman/package.json
rename to src/third_party/devtools/node_modules/diffie-hellman/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/diffie-hellman/readme.md b/src/third_party/devtools/node_modules/diffie-hellman/readme.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/diffie-hellman/readme.md
rename to src/third_party/devtools/node_modules/diffie-hellman/readme.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/doctrine/CHANGELOG.md b/src/third_party/devtools/node_modules/doctrine/CHANGELOG.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/doctrine/CHANGELOG.md
rename to src/third_party/devtools/node_modules/doctrine/CHANGELOG.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/doctrine/LICENSE b/src/third_party/devtools/node_modules/doctrine/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/doctrine/LICENSE
rename to src/third_party/devtools/node_modules/doctrine/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/doctrine/LICENSE.closure-compiler b/src/third_party/devtools/node_modules/doctrine/LICENSE.closure-compiler
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/doctrine/LICENSE.closure-compiler
rename to src/third_party/devtools/node_modules/doctrine/LICENSE.closure-compiler
diff --git a/src/cobalt/debug/remote/devtools/node_modules/doctrine/LICENSE.esprima b/src/third_party/devtools/node_modules/doctrine/LICENSE.esprima
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/doctrine/LICENSE.esprima
rename to src/third_party/devtools/node_modules/doctrine/LICENSE.esprima
diff --git a/src/cobalt/debug/remote/devtools/node_modules/doctrine/README.md b/src/third_party/devtools/node_modules/doctrine/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/doctrine/README.md
rename to src/third_party/devtools/node_modules/doctrine/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/doctrine/lib/doctrine.js b/src/third_party/devtools/node_modules/doctrine/lib/doctrine.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/doctrine/lib/doctrine.js
rename to src/third_party/devtools/node_modules/doctrine/lib/doctrine.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/doctrine/lib/typed.js b/src/third_party/devtools/node_modules/doctrine/lib/typed.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/doctrine/lib/typed.js
rename to src/third_party/devtools/node_modules/doctrine/lib/typed.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/doctrine/lib/utility.js b/src/third_party/devtools/node_modules/doctrine/lib/utility.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/doctrine/lib/utility.js
rename to src/third_party/devtools/node_modules/doctrine/lib/utility.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/doctrine/package.json b/src/third_party/devtools/node_modules/doctrine/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/doctrine/package.json
rename to src/third_party/devtools/node_modules/doctrine/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/dom-serialize/.npmignore b/src/third_party/devtools/node_modules/dom-serialize/.npmignore
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/dom-serialize/.npmignore
rename to src/third_party/devtools/node_modules/dom-serialize/.npmignore
diff --git a/src/cobalt/debug/remote/devtools/node_modules/dom-serialize/.travis.yml b/src/third_party/devtools/node_modules/dom-serialize/.travis.yml
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/dom-serialize/.travis.yml
rename to src/third_party/devtools/node_modules/dom-serialize/.travis.yml
diff --git a/src/cobalt/debug/remote/devtools/node_modules/dom-serialize/History.md b/src/third_party/devtools/node_modules/dom-serialize/History.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/dom-serialize/History.md
rename to src/third_party/devtools/node_modules/dom-serialize/History.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/dom-serialize/Makefile b/src/third_party/devtools/node_modules/dom-serialize/Makefile
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/dom-serialize/Makefile
rename to src/third_party/devtools/node_modules/dom-serialize/Makefile
diff --git a/src/cobalt/debug/remote/devtools/node_modules/dom-serialize/README.md b/src/third_party/devtools/node_modules/dom-serialize/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/dom-serialize/README.md
rename to src/third_party/devtools/node_modules/dom-serialize/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/dom-serialize/index.js b/src/third_party/devtools/node_modules/dom-serialize/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/dom-serialize/index.js
rename to src/third_party/devtools/node_modules/dom-serialize/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/dom-serialize/package.json b/src/third_party/devtools/node_modules/dom-serialize/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/dom-serialize/package.json
rename to src/third_party/devtools/node_modules/dom-serialize/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/dom-serialize/test/test.js b/src/third_party/devtools/node_modules/dom-serialize/test/test.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/dom-serialize/test/test.js
rename to src/third_party/devtools/node_modules/dom-serialize/test/test.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/domain-browser/HISTORY.md b/src/third_party/devtools/node_modules/domain-browser/HISTORY.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/domain-browser/HISTORY.md
rename to src/third_party/devtools/node_modules/domain-browser/HISTORY.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/domain-browser/LICENSE.md b/src/third_party/devtools/node_modules/domain-browser/LICENSE.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/domain-browser/LICENSE.md
rename to src/third_party/devtools/node_modules/domain-browser/LICENSE.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/domain-browser/README.md b/src/third_party/devtools/node_modules/domain-browser/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/domain-browser/README.md
rename to src/third_party/devtools/node_modules/domain-browser/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/domain-browser/package.json b/src/third_party/devtools/node_modules/domain-browser/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/domain-browser/package.json
rename to src/third_party/devtools/node_modules/domain-browser/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/domain-browser/source/index.js b/src/third_party/devtools/node_modules/domain-browser/source/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/domain-browser/source/index.js
rename to src/third_party/devtools/node_modules/domain-browser/source/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/ee-first/LICENSE b/src/third_party/devtools/node_modules/ee-first/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/ee-first/LICENSE
rename to src/third_party/devtools/node_modules/ee-first/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/ee-first/README.md b/src/third_party/devtools/node_modules/ee-first/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/ee-first/README.md
rename to src/third_party/devtools/node_modules/ee-first/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/ee-first/index.js b/src/third_party/devtools/node_modules/ee-first/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/ee-first/index.js
rename to src/third_party/devtools/node_modules/ee-first/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/ee-first/package.json b/src/third_party/devtools/node_modules/ee-first/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/ee-first/package.json
rename to src/third_party/devtools/node_modules/ee-first/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/elliptic/README.md b/src/third_party/devtools/node_modules/elliptic/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/elliptic/README.md
rename to src/third_party/devtools/node_modules/elliptic/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/elliptic/lib/elliptic.js b/src/third_party/devtools/node_modules/elliptic/lib/elliptic.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/elliptic/lib/elliptic.js
rename to src/third_party/devtools/node_modules/elliptic/lib/elliptic.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/elliptic/lib/elliptic/curve/base.js b/src/third_party/devtools/node_modules/elliptic/lib/elliptic/curve/base.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/elliptic/lib/elliptic/curve/base.js
rename to src/third_party/devtools/node_modules/elliptic/lib/elliptic/curve/base.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/elliptic/lib/elliptic/curve/edwards.js b/src/third_party/devtools/node_modules/elliptic/lib/elliptic/curve/edwards.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/elliptic/lib/elliptic/curve/edwards.js
rename to src/third_party/devtools/node_modules/elliptic/lib/elliptic/curve/edwards.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/elliptic/lib/elliptic/curve/index.js b/src/third_party/devtools/node_modules/elliptic/lib/elliptic/curve/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/elliptic/lib/elliptic/curve/index.js
rename to src/third_party/devtools/node_modules/elliptic/lib/elliptic/curve/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/elliptic/lib/elliptic/curve/mont.js b/src/third_party/devtools/node_modules/elliptic/lib/elliptic/curve/mont.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/elliptic/lib/elliptic/curve/mont.js
rename to src/third_party/devtools/node_modules/elliptic/lib/elliptic/curve/mont.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/elliptic/lib/elliptic/curve/short.js b/src/third_party/devtools/node_modules/elliptic/lib/elliptic/curve/short.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/elliptic/lib/elliptic/curve/short.js
rename to src/third_party/devtools/node_modules/elliptic/lib/elliptic/curve/short.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/elliptic/lib/elliptic/curves.js b/src/third_party/devtools/node_modules/elliptic/lib/elliptic/curves.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/elliptic/lib/elliptic/curves.js
rename to src/third_party/devtools/node_modules/elliptic/lib/elliptic/curves.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/elliptic/lib/elliptic/ec/index.js b/src/third_party/devtools/node_modules/elliptic/lib/elliptic/ec/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/elliptic/lib/elliptic/ec/index.js
rename to src/third_party/devtools/node_modules/elliptic/lib/elliptic/ec/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/elliptic/lib/elliptic/ec/key.js b/src/third_party/devtools/node_modules/elliptic/lib/elliptic/ec/key.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/elliptic/lib/elliptic/ec/key.js
rename to src/third_party/devtools/node_modules/elliptic/lib/elliptic/ec/key.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/elliptic/lib/elliptic/ec/signature.js b/src/third_party/devtools/node_modules/elliptic/lib/elliptic/ec/signature.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/elliptic/lib/elliptic/ec/signature.js
rename to src/third_party/devtools/node_modules/elliptic/lib/elliptic/ec/signature.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/elliptic/lib/elliptic/eddsa/index.js b/src/third_party/devtools/node_modules/elliptic/lib/elliptic/eddsa/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/elliptic/lib/elliptic/eddsa/index.js
rename to src/third_party/devtools/node_modules/elliptic/lib/elliptic/eddsa/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/elliptic/lib/elliptic/eddsa/key.js b/src/third_party/devtools/node_modules/elliptic/lib/elliptic/eddsa/key.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/elliptic/lib/elliptic/eddsa/key.js
rename to src/third_party/devtools/node_modules/elliptic/lib/elliptic/eddsa/key.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/elliptic/lib/elliptic/eddsa/signature.js b/src/third_party/devtools/node_modules/elliptic/lib/elliptic/eddsa/signature.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/elliptic/lib/elliptic/eddsa/signature.js
rename to src/third_party/devtools/node_modules/elliptic/lib/elliptic/eddsa/signature.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/elliptic/lib/elliptic/precomputed/secp256k1.js b/src/third_party/devtools/node_modules/elliptic/lib/elliptic/precomputed/secp256k1.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/elliptic/lib/elliptic/precomputed/secp256k1.js
rename to src/third_party/devtools/node_modules/elliptic/lib/elliptic/precomputed/secp256k1.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/elliptic/lib/elliptic/utils.js b/src/third_party/devtools/node_modules/elliptic/lib/elliptic/utils.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/elliptic/lib/elliptic/utils.js
rename to src/third_party/devtools/node_modules/elliptic/lib/elliptic/utils.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/elliptic/package.json b/src/third_party/devtools/node_modules/elliptic/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/elliptic/package.json
rename to src/third_party/devtools/node_modules/elliptic/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/emoji-regex/LICENSE-MIT.txt b/src/third_party/devtools/node_modules/emoji-regex/LICENSE-MIT.txt
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/emoji-regex/LICENSE-MIT.txt
rename to src/third_party/devtools/node_modules/emoji-regex/LICENSE-MIT.txt
diff --git a/src/cobalt/debug/remote/devtools/node_modules/emoji-regex/README.md b/src/third_party/devtools/node_modules/emoji-regex/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/emoji-regex/README.md
rename to src/third_party/devtools/node_modules/emoji-regex/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/emoji-regex/es2015/index.js b/src/third_party/devtools/node_modules/emoji-regex/es2015/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/emoji-regex/es2015/index.js
rename to src/third_party/devtools/node_modules/emoji-regex/es2015/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/emoji-regex/es2015/text.js b/src/third_party/devtools/node_modules/emoji-regex/es2015/text.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/emoji-regex/es2015/text.js
rename to src/third_party/devtools/node_modules/emoji-regex/es2015/text.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/emoji-regex/index.d.ts b/src/third_party/devtools/node_modules/emoji-regex/index.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/emoji-regex/index.d.ts
rename to src/third_party/devtools/node_modules/emoji-regex/index.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/emoji-regex/index.js b/src/third_party/devtools/node_modules/emoji-regex/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/emoji-regex/index.js
rename to src/third_party/devtools/node_modules/emoji-regex/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/emoji-regex/package.json b/src/third_party/devtools/node_modules/emoji-regex/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/emoji-regex/package.json
rename to src/third_party/devtools/node_modules/emoji-regex/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/emoji-regex/text.js b/src/third_party/devtools/node_modules/emoji-regex/text.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/emoji-regex/text.js
rename to src/third_party/devtools/node_modules/emoji-regex/text.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/encodeurl/HISTORY.md b/src/third_party/devtools/node_modules/encodeurl/HISTORY.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/encodeurl/HISTORY.md
rename to src/third_party/devtools/node_modules/encodeurl/HISTORY.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/encodeurl/LICENSE b/src/third_party/devtools/node_modules/encodeurl/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/encodeurl/LICENSE
rename to src/third_party/devtools/node_modules/encodeurl/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/encodeurl/README.md b/src/third_party/devtools/node_modules/encodeurl/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/encodeurl/README.md
rename to src/third_party/devtools/node_modules/encodeurl/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/encodeurl/index.js b/src/third_party/devtools/node_modules/encodeurl/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/encodeurl/index.js
rename to src/third_party/devtools/node_modules/encodeurl/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/encodeurl/package.json b/src/third_party/devtools/node_modules/encodeurl/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/encodeurl/package.json
rename to src/third_party/devtools/node_modules/encodeurl/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/end-of-stream/LICENSE b/src/third_party/devtools/node_modules/end-of-stream/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/end-of-stream/LICENSE
rename to src/third_party/devtools/node_modules/end-of-stream/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/end-of-stream/README.md b/src/third_party/devtools/node_modules/end-of-stream/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/end-of-stream/README.md
rename to src/third_party/devtools/node_modules/end-of-stream/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/end-of-stream/index.js b/src/third_party/devtools/node_modules/end-of-stream/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/end-of-stream/index.js
rename to src/third_party/devtools/node_modules/end-of-stream/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/end-of-stream/package.json b/src/third_party/devtools/node_modules/end-of-stream/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/end-of-stream/package.json
rename to src/third_party/devtools/node_modules/end-of-stream/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/engine.io-client/LICENSE b/src/third_party/devtools/node_modules/engine.io-client/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/engine.io-client/LICENSE
rename to src/third_party/devtools/node_modules/engine.io-client/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/engine.io-client/README.md b/src/third_party/devtools/node_modules/engine.io-client/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/engine.io-client/README.md
rename to src/third_party/devtools/node_modules/engine.io-client/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/engine.io-client/engine.io.js b/src/third_party/devtools/node_modules/engine.io-client/engine.io.js
similarity index 99%
rename from src/cobalt/debug/remote/devtools/node_modules/engine.io-client/engine.io.js
rename to src/third_party/devtools/node_modules/engine.io-client/engine.io.js
index a37bbd6..312d9e0 100644
--- a/src/cobalt/debug/remote/devtools/node_modules/engine.io-client/engine.io.js
+++ b/src/third_party/devtools/node_modules/engine.io-client/engine.io.js
@@ -2822,16 +2822,16 @@
 /* 15 */
 /***/ function(module, exports) {
 
-	module.exports = function(module) {

-		if(!module.webpackPolyfill) {

-			module.deprecate = function() {};

-			module.paths = [];

-			// module.parent = undefined by default

-			module.children = [];

-			module.webpackPolyfill = 1;

-		}

-		return module;

-	}

+	module.exports = function(module) {
+		if(!module.webpackPolyfill) {
+			module.deprecate = function() {};
+			module.paths = [];
+			// module.parent = undefined by default
+			module.children = [];
+			module.webpackPolyfill = 1;
+		}
+		return module;
+	}
 
 
 /***/ },
@@ -3014,212 +3014,212 @@
 /* 18 */
 /***/ function(module, exports, __webpack_require__) {
 
-	

-	/**

-	 * Expose `Emitter`.

-	 */

-

-	if (true) {

-	  module.exports = Emitter;

-	}

-

-	/**

-	 * Initialize a new `Emitter`.

-	 *

-	 * @api public

-	 */

-

-	function Emitter(obj) {

-	  if (obj) return mixin(obj);

-	};

-

-	/**

-	 * Mixin the emitter properties.

-	 *

-	 * @param {Object} obj

-	 * @return {Object}

-	 * @api private

-	 */

-

-	function mixin(obj) {

-	  for (var key in Emitter.prototype) {

-	    obj[key] = Emitter.prototype[key];

-	  }

-	  return obj;

-	}

-

-	/**

-	 * Listen on the given `event` with `fn`.

-	 *

-	 * @param {String} event

-	 * @param {Function} fn

-	 * @return {Emitter}

-	 * @api public

-	 */

-

-	Emitter.prototype.on =

-	Emitter.prototype.addEventListener = function(event, fn){

-	  this._callbacks = this._callbacks || {};

-	  (this._callbacks['$' + event] = this._callbacks['$' + event] || [])

-	    .push(fn);

-	  return this;

-	};

-

-	/**

-	 * Adds an `event` listener that will be invoked a single

-	 * time then automatically removed.

-	 *

-	 * @param {String} event

-	 * @param {Function} fn

-	 * @return {Emitter}

-	 * @api public

-	 */

-

-	Emitter.prototype.once = function(event, fn){

-	  function on() {

-	    this.off(event, on);

-	    fn.apply(this, arguments);

-	  }

-

-	  on.fn = fn;

-	  this.on(event, on);

-	  return this;

-	};

-

-	/**

-	 * Remove the given callback for `event` or all

-	 * registered callbacks.

-	 *

-	 * @param {String} event

-	 * @param {Function} fn

-	 * @return {Emitter}

-	 * @api public

-	 */

-

-	Emitter.prototype.off =

-	Emitter.prototype.removeListener =

-	Emitter.prototype.removeAllListeners =

-	Emitter.prototype.removeEventListener = function(event, fn){

-	  this._callbacks = this._callbacks || {};

-

-	  // all

-	  if (0 == arguments.length) {

-	    this._callbacks = {};

-	    return this;

-	  }

-

-	  // specific event

-	  var callbacks = this._callbacks['$' + event];

-	  if (!callbacks) return this;

-

-	  // remove all handlers

-	  if (1 == arguments.length) {

-	    delete this._callbacks['$' + event];

-	    return this;

-	  }

-

-	  // remove specific handler

-	  var cb;

-	  for (var i = 0; i < callbacks.length; i++) {

-	    cb = callbacks[i];

-	    if (cb === fn || cb.fn === fn) {

-	      callbacks.splice(i, 1);

-	      break;

-	    }

-	  }

-	  return this;

-	};

-

-	/**

-	 * Emit `event` with the given args.

-	 *

-	 * @param {String} event

-	 * @param {Mixed} ...

-	 * @return {Emitter}

-	 */

-

-	Emitter.prototype.emit = function(event){

-	  this._callbacks = this._callbacks || {};

-	  var args = [].slice.call(arguments, 1)

-	    , callbacks = this._callbacks['$' + event];

-

-	  if (callbacks) {

-	    callbacks = callbacks.slice(0);

-	    for (var i = 0, len = callbacks.length; i < len; ++i) {

-	      callbacks[i].apply(this, args);

-	    }

-	  }

-

-	  return this;

-	};

-

-	/**

-	 * Return array of callbacks for `event`.

-	 *

-	 * @param {String} event

-	 * @return {Array}

-	 * @api public

-	 */

-

-	Emitter.prototype.listeners = function(event){

-	  this._callbacks = this._callbacks || {};

-	  return this._callbacks['$' + event] || [];

-	};

-

-	/**

-	 * Check if this emitter has `event` handlers.

-	 *

-	 * @param {String} event

-	 * @return {Boolean}

-	 * @api public

-	 */

-

-	Emitter.prototype.hasListeners = function(event){

-	  return !! this.listeners(event).length;

-	};

+	
+	/**
+	 * Expose `Emitter`.
+	 */
+
+	if (true) {
+	  module.exports = Emitter;
+	}
+
+	/**
+	 * Initialize a new `Emitter`.
+	 *
+	 * @api public
+	 */
+
+	function Emitter(obj) {
+	  if (obj) return mixin(obj);
+	};
+
+	/**
+	 * Mixin the emitter properties.
+	 *
+	 * @param {Object} obj
+	 * @return {Object}
+	 * @api private
+	 */
+
+	function mixin(obj) {
+	  for (var key in Emitter.prototype) {
+	    obj[key] = Emitter.prototype[key];
+	  }
+	  return obj;
+	}
+
+	/**
+	 * Listen on the given `event` with `fn`.
+	 *
+	 * @param {String} event
+	 * @param {Function} fn
+	 * @return {Emitter}
+	 * @api public
+	 */
+
+	Emitter.prototype.on =
+	Emitter.prototype.addEventListener = function(event, fn){
+	  this._callbacks = this._callbacks || {};
+	  (this._callbacks['$' + event] = this._callbacks['$' + event] || [])
+	    .push(fn);
+	  return this;
+	};
+
+	/**
+	 * Adds an `event` listener that will be invoked a single
+	 * time then automatically removed.
+	 *
+	 * @param {String} event
+	 * @param {Function} fn
+	 * @return {Emitter}
+	 * @api public
+	 */
+
+	Emitter.prototype.once = function(event, fn){
+	  function on() {
+	    this.off(event, on);
+	    fn.apply(this, arguments);
+	  }
+
+	  on.fn = fn;
+	  this.on(event, on);
+	  return this;
+	};
+
+	/**
+	 * Remove the given callback for `event` or all
+	 * registered callbacks.
+	 *
+	 * @param {String} event
+	 * @param {Function} fn
+	 * @return {Emitter}
+	 * @api public
+	 */
+
+	Emitter.prototype.off =
+	Emitter.prototype.removeListener =
+	Emitter.prototype.removeAllListeners =
+	Emitter.prototype.removeEventListener = function(event, fn){
+	  this._callbacks = this._callbacks || {};
+
+	  // all
+	  if (0 == arguments.length) {
+	    this._callbacks = {};
+	    return this;
+	  }
+
+	  // specific event
+	  var callbacks = this._callbacks['$' + event];
+	  if (!callbacks) return this;
+
+	  // remove all handlers
+	  if (1 == arguments.length) {
+	    delete this._callbacks['$' + event];
+	    return this;
+	  }
+
+	  // remove specific handler
+	  var cb;
+	  for (var i = 0; i < callbacks.length; i++) {
+	    cb = callbacks[i];
+	    if (cb === fn || cb.fn === fn) {
+	      callbacks.splice(i, 1);
+	      break;
+	    }
+	  }
+	  return this;
+	};
+
+	/**
+	 * Emit `event` with the given args.
+	 *
+	 * @param {String} event
+	 * @param {Mixed} ...
+	 * @return {Emitter}
+	 */
+
+	Emitter.prototype.emit = function(event){
+	  this._callbacks = this._callbacks || {};
+	  var args = [].slice.call(arguments, 1)
+	    , callbacks = this._callbacks['$' + event];
+
+	  if (callbacks) {
+	    callbacks = callbacks.slice(0);
+	    for (var i = 0, len = callbacks.length; i < len; ++i) {
+	      callbacks[i].apply(this, args);
+	    }
+	  }
+
+	  return this;
+	};
+
+	/**
+	 * Return array of callbacks for `event`.
+	 *
+	 * @param {String} event
+	 * @return {Array}
+	 * @api public
+	 */
+
+	Emitter.prototype.listeners = function(event){
+	  this._callbacks = this._callbacks || {};
+	  return this._callbacks['$' + event] || [];
+	};
+
+	/**
+	 * Check if this emitter has `event` handlers.
+	 *
+	 * @param {String} event
+	 * @return {Boolean}
+	 * @api public
+	 */
+
+	Emitter.prototype.hasListeners = function(event){
+	  return !! this.listeners(event).length;
+	};
 
 
 /***/ },
 /* 19 */
 /***/ function(module, exports) {
 
-	/**

-	 * Compiles a querystring

-	 * Returns string representation of the object

-	 *

-	 * @param {Object}

-	 * @api private

-	 */

-

-	exports.encode = function (obj) {

-	  var str = '';

-

-	  for (var i in obj) {

-	    if (obj.hasOwnProperty(i)) {

-	      if (str.length) str += '&';

-	      str += encodeURIComponent(i) + '=' + encodeURIComponent(obj[i]);

-	    }

-	  }

-

-	  return str;

-	};

-

-	/**

-	 * Parses a simple querystring into an object

-	 *

-	 * @param {String} qs

-	 * @api private

-	 */

-

-	exports.decode = function(qs){

-	  var qry = {};

-	  var pairs = qs.split('&');

-	  for (var i = 0, l = pairs.length; i < l; i++) {

-	    var pair = pairs[i].split('=');

-	    qry[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1]);

-	  }

-	  return qry;

-	};

+	/**
+	 * Compiles a querystring
+	 * Returns string representation of the object
+	 *
+	 * @param {Object}
+	 * @api private
+	 */
+
+	exports.encode = function (obj) {
+	  var str = '';
+
+	  for (var i in obj) {
+	    if (obj.hasOwnProperty(i)) {
+	      if (str.length) str += '&';
+	      str += encodeURIComponent(i) + '=' + encodeURIComponent(obj[i]);
+	    }
+	  }
+
+	  return str;
+	};
+
+	/**
+	 * Parses a simple querystring into an object
+	 *
+	 * @param {String} qs
+	 * @api private
+	 */
+
+	exports.decode = function(qs){
+	  var qry = {};
+	  var pairs = qs.split('&');
+	  for (var i = 0, l = pairs.length; i < l; i++) {
+	    var pair = pairs[i].split('=');
+	    qry[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1]);
+	  }
+	  return qry;
+	};
 
 
 /***/ },
@@ -4645,45 +4645,45 @@
 /* 30 */
 /***/ function(module, exports) {
 
-	/**

-	 * Parses an URI

-	 *

-	 * @author Steven Levithan <stevenlevithan.com> (MIT license)

-	 * @api private

-	 */

-

-	var re = /^(?:(?![^:@]+:[^:@\/]*@)(http|https|ws|wss):\/\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/;

-

-	var parts = [

-	    'source', 'protocol', 'authority', 'userInfo', 'user', 'password', 'host', 'port', 'relative', 'path', 'directory', 'file', 'query', 'anchor'

-	];

-

-	module.exports = function parseuri(str) {

-	    var src = str,

-	        b = str.indexOf('['),

-	        e = str.indexOf(']');

-

-	    if (b != -1 && e != -1) {

-	        str = str.substring(0, b) + str.substring(b, e).replace(/:/g, ';') + str.substring(e, str.length);

-	    }

-

-	    var m = re.exec(str || ''),

-	        uri = {},

-	        i = 14;

-

-	    while (i--) {

-	        uri[parts[i]] = m[i] || '';

-	    }

-

-	    if (b != -1 && e != -1) {

-	        uri.source = src;

-	        uri.host = uri.host.substring(1, uri.host.length - 1).replace(/;/g, ':');

-	        uri.authority = uri.authority.replace('[', '').replace(']', '').replace(/;/g, ':');

-	        uri.ipv6uri = true;

-	    }

-

-	    return uri;

-	};

+	/**
+	 * Parses an URI
+	 *
+	 * @author Steven Levithan <stevenlevithan.com> (MIT license)
+	 * @api private
+	 */
+
+	var re = /^(?:(?![^:@]+:[^:@\/]*@)(http|https|ws|wss):\/\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/;
+
+	var parts = [
+	    'source', 'protocol', 'authority', 'userInfo', 'user', 'password', 'host', 'port', 'relative', 'path', 'directory', 'file', 'query', 'anchor'
+	];
+
+	module.exports = function parseuri(str) {
+	    var src = str,
+	        b = str.indexOf('['),
+	        e = str.indexOf(']');
+
+	    if (b != -1 && e != -1) {
+	        str = str.substring(0, b) + str.substring(b, e).replace(/:/g, ';') + str.substring(e, str.length);
+	    }
+
+	    var m = re.exec(str || ''),
+	        uri = {},
+	        i = 14;
+
+	    while (i--) {
+	        uri[parts[i]] = m[i] || '';
+	    }
+
+	    if (b != -1 && e != -1) {
+	        uri.source = src;
+	        uri.host = uri.host.substring(1, uri.host.length - 1).replace(/;/g, ':');
+	        uri.authority = uri.authority.replace('[', '').replace(']', '').replace(/;/g, ':');
+	        uri.ipv6uri = true;
+	    }
+
+	    return uri;
+	};
 
 
 /***/ }
diff --git a/src/cobalt/debug/remote/devtools/node_modules/engine.io-client/lib/index.js b/src/third_party/devtools/node_modules/engine.io-client/lib/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/engine.io-client/lib/index.js
rename to src/third_party/devtools/node_modules/engine.io-client/lib/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/engine.io-client/lib/socket.js b/src/third_party/devtools/node_modules/engine.io-client/lib/socket.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/engine.io-client/lib/socket.js
rename to src/third_party/devtools/node_modules/engine.io-client/lib/socket.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/engine.io-client/lib/transport.js b/src/third_party/devtools/node_modules/engine.io-client/lib/transport.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/engine.io-client/lib/transport.js
rename to src/third_party/devtools/node_modules/engine.io-client/lib/transport.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/engine.io-client/lib/transports/index.js b/src/third_party/devtools/node_modules/engine.io-client/lib/transports/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/engine.io-client/lib/transports/index.js
rename to src/third_party/devtools/node_modules/engine.io-client/lib/transports/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/engine.io-client/lib/transports/polling-jsonp.js b/src/third_party/devtools/node_modules/engine.io-client/lib/transports/polling-jsonp.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/engine.io-client/lib/transports/polling-jsonp.js
rename to src/third_party/devtools/node_modules/engine.io-client/lib/transports/polling-jsonp.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/engine.io-client/lib/transports/polling-xhr.js b/src/third_party/devtools/node_modules/engine.io-client/lib/transports/polling-xhr.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/engine.io-client/lib/transports/polling-xhr.js
rename to src/third_party/devtools/node_modules/engine.io-client/lib/transports/polling-xhr.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/engine.io-client/lib/transports/polling.js b/src/third_party/devtools/node_modules/engine.io-client/lib/transports/polling.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/engine.io-client/lib/transports/polling.js
rename to src/third_party/devtools/node_modules/engine.io-client/lib/transports/polling.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/engine.io-client/lib/transports/websocket.js b/src/third_party/devtools/node_modules/engine.io-client/lib/transports/websocket.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/engine.io-client/lib/transports/websocket.js
rename to src/third_party/devtools/node_modules/engine.io-client/lib/transports/websocket.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/engine.io-client/lib/xmlhttprequest.js b/src/third_party/devtools/node_modules/engine.io-client/lib/xmlhttprequest.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/engine.io-client/lib/xmlhttprequest.js
rename to src/third_party/devtools/node_modules/engine.io-client/lib/xmlhttprequest.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/engine.io-client/node_modules/debug/.coveralls.yml b/src/third_party/devtools/node_modules/engine.io-client/node_modules/debug/.coveralls.yml
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/engine.io-client/node_modules/debug/.coveralls.yml
rename to src/third_party/devtools/node_modules/engine.io-client/node_modules/debug/.coveralls.yml
diff --git a/src/cobalt/debug/remote/devtools/node_modules/engine.io-client/node_modules/debug/.eslintrc b/src/third_party/devtools/node_modules/engine.io-client/node_modules/debug/.eslintrc
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/engine.io-client/node_modules/debug/.eslintrc
rename to src/third_party/devtools/node_modules/engine.io-client/node_modules/debug/.eslintrc
diff --git a/src/cobalt/debug/remote/devtools/node_modules/engine.io-client/node_modules/debug/.npmignore b/src/third_party/devtools/node_modules/engine.io-client/node_modules/debug/.npmignore
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/engine.io-client/node_modules/debug/.npmignore
rename to src/third_party/devtools/node_modules/engine.io-client/node_modules/debug/.npmignore
diff --git a/src/cobalt/debug/remote/devtools/node_modules/engine.io-client/node_modules/debug/.travis.yml b/src/third_party/devtools/node_modules/engine.io-client/node_modules/debug/.travis.yml
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/engine.io-client/node_modules/debug/.travis.yml
rename to src/third_party/devtools/node_modules/engine.io-client/node_modules/debug/.travis.yml
diff --git a/src/cobalt/debug/remote/devtools/node_modules/engine.io-client/node_modules/debug/CHANGELOG.md b/src/third_party/devtools/node_modules/engine.io-client/node_modules/debug/CHANGELOG.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/engine.io-client/node_modules/debug/CHANGELOG.md
rename to src/third_party/devtools/node_modules/engine.io-client/node_modules/debug/CHANGELOG.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/engine.io-client/node_modules/debug/LICENSE b/src/third_party/devtools/node_modules/engine.io-client/node_modules/debug/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/engine.io-client/node_modules/debug/LICENSE
rename to src/third_party/devtools/node_modules/engine.io-client/node_modules/debug/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/engine.io-client/node_modules/debug/Makefile b/src/third_party/devtools/node_modules/engine.io-client/node_modules/debug/Makefile
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/engine.io-client/node_modules/debug/Makefile
rename to src/third_party/devtools/node_modules/engine.io-client/node_modules/debug/Makefile
diff --git a/src/cobalt/debug/remote/devtools/node_modules/engine.io-client/node_modules/debug/README.md b/src/third_party/devtools/node_modules/engine.io-client/node_modules/debug/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/engine.io-client/node_modules/debug/README.md
rename to src/third_party/devtools/node_modules/engine.io-client/node_modules/debug/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/engine.io-client/node_modules/debug/karma.conf.js b/src/third_party/devtools/node_modules/engine.io-client/node_modules/debug/karma.conf.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/engine.io-client/node_modules/debug/karma.conf.js
rename to src/third_party/devtools/node_modules/engine.io-client/node_modules/debug/karma.conf.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/engine.io-client/node_modules/debug/node.js b/src/third_party/devtools/node_modules/engine.io-client/node_modules/debug/node.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/engine.io-client/node_modules/debug/node.js
rename to src/third_party/devtools/node_modules/engine.io-client/node_modules/debug/node.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/engine.io-client/node_modules/debug/package.json b/src/third_party/devtools/node_modules/engine.io-client/node_modules/debug/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/engine.io-client/node_modules/debug/package.json
rename to src/third_party/devtools/node_modules/engine.io-client/node_modules/debug/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/engine.io-client/node_modules/debug/src/browser.js b/src/third_party/devtools/node_modules/engine.io-client/node_modules/debug/src/browser.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/engine.io-client/node_modules/debug/src/browser.js
rename to src/third_party/devtools/node_modules/engine.io-client/node_modules/debug/src/browser.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/engine.io-client/node_modules/debug/src/debug.js b/src/third_party/devtools/node_modules/engine.io-client/node_modules/debug/src/debug.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/engine.io-client/node_modules/debug/src/debug.js
rename to src/third_party/devtools/node_modules/engine.io-client/node_modules/debug/src/debug.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/engine.io-client/node_modules/debug/src/index.js b/src/third_party/devtools/node_modules/engine.io-client/node_modules/debug/src/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/engine.io-client/node_modules/debug/src/index.js
rename to src/third_party/devtools/node_modules/engine.io-client/node_modules/debug/src/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/engine.io-client/node_modules/debug/src/node.js b/src/third_party/devtools/node_modules/engine.io-client/node_modules/debug/src/node.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/engine.io-client/node_modules/debug/src/node.js
rename to src/third_party/devtools/node_modules/engine.io-client/node_modules/debug/src/node.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/engine.io-client/node_modules/ms/index.js b/src/third_party/devtools/node_modules/engine.io-client/node_modules/ms/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/engine.io-client/node_modules/ms/index.js
rename to src/third_party/devtools/node_modules/engine.io-client/node_modules/ms/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/engine.io-client/node_modules/ms/license.md b/src/third_party/devtools/node_modules/engine.io-client/node_modules/ms/license.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/engine.io-client/node_modules/ms/license.md
rename to src/third_party/devtools/node_modules/engine.io-client/node_modules/ms/license.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/engine.io-client/node_modules/ms/package.json b/src/third_party/devtools/node_modules/engine.io-client/node_modules/ms/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/engine.io-client/node_modules/ms/package.json
rename to src/third_party/devtools/node_modules/engine.io-client/node_modules/ms/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/engine.io-client/node_modules/ms/readme.md b/src/third_party/devtools/node_modules/engine.io-client/node_modules/ms/readme.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/engine.io-client/node_modules/ms/readme.md
rename to src/third_party/devtools/node_modules/engine.io-client/node_modules/ms/readme.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/engine.io-client/package.json b/src/third_party/devtools/node_modules/engine.io-client/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/engine.io-client/package.json
rename to src/third_party/devtools/node_modules/engine.io-client/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/engine.io-parser/LICENSE b/src/third_party/devtools/node_modules/engine.io-parser/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/engine.io-parser/LICENSE
rename to src/third_party/devtools/node_modules/engine.io-parser/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/engine.io-parser/Readme.md b/src/third_party/devtools/node_modules/engine.io-parser/Readme.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/engine.io-parser/Readme.md
rename to src/third_party/devtools/node_modules/engine.io-parser/Readme.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/engine.io-parser/lib/browser.js b/src/third_party/devtools/node_modules/engine.io-parser/lib/browser.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/engine.io-parser/lib/browser.js
rename to src/third_party/devtools/node_modules/engine.io-parser/lib/browser.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/engine.io-parser/lib/index.js b/src/third_party/devtools/node_modules/engine.io-parser/lib/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/engine.io-parser/lib/index.js
rename to src/third_party/devtools/node_modules/engine.io-parser/lib/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/engine.io-parser/lib/keys.js b/src/third_party/devtools/node_modules/engine.io-parser/lib/keys.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/engine.io-parser/lib/keys.js
rename to src/third_party/devtools/node_modules/engine.io-parser/lib/keys.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/engine.io-parser/lib/utf8.js b/src/third_party/devtools/node_modules/engine.io-parser/lib/utf8.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/engine.io-parser/lib/utf8.js
rename to src/third_party/devtools/node_modules/engine.io-parser/lib/utf8.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/engine.io-parser/package.json b/src/third_party/devtools/node_modules/engine.io-parser/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/engine.io-parser/package.json
rename to src/third_party/devtools/node_modules/engine.io-parser/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/engine.io/LICENSE b/src/third_party/devtools/node_modules/engine.io/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/engine.io/LICENSE
rename to src/third_party/devtools/node_modules/engine.io/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/engine.io/README.md b/src/third_party/devtools/node_modules/engine.io/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/engine.io/README.md
rename to src/third_party/devtools/node_modules/engine.io/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/engine.io/lib/engine.io.js b/src/third_party/devtools/node_modules/engine.io/lib/engine.io.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/engine.io/lib/engine.io.js
rename to src/third_party/devtools/node_modules/engine.io/lib/engine.io.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/engine.io/lib/server.js b/src/third_party/devtools/node_modules/engine.io/lib/server.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/engine.io/lib/server.js
rename to src/third_party/devtools/node_modules/engine.io/lib/server.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/engine.io/lib/socket.js b/src/third_party/devtools/node_modules/engine.io/lib/socket.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/engine.io/lib/socket.js
rename to src/third_party/devtools/node_modules/engine.io/lib/socket.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/engine.io/lib/transport.js b/src/third_party/devtools/node_modules/engine.io/lib/transport.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/engine.io/lib/transport.js
rename to src/third_party/devtools/node_modules/engine.io/lib/transport.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/engine.io/lib/transports/index.js b/src/third_party/devtools/node_modules/engine.io/lib/transports/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/engine.io/lib/transports/index.js
rename to src/third_party/devtools/node_modules/engine.io/lib/transports/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/engine.io/lib/transports/polling-jsonp.js b/src/third_party/devtools/node_modules/engine.io/lib/transports/polling-jsonp.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/engine.io/lib/transports/polling-jsonp.js
rename to src/third_party/devtools/node_modules/engine.io/lib/transports/polling-jsonp.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/engine.io/lib/transports/polling-xhr.js b/src/third_party/devtools/node_modules/engine.io/lib/transports/polling-xhr.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/engine.io/lib/transports/polling-xhr.js
rename to src/third_party/devtools/node_modules/engine.io/lib/transports/polling-xhr.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/engine.io/lib/transports/polling.js b/src/third_party/devtools/node_modules/engine.io/lib/transports/polling.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/engine.io/lib/transports/polling.js
rename to src/third_party/devtools/node_modules/engine.io/lib/transports/polling.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/engine.io/lib/transports/websocket.js b/src/third_party/devtools/node_modules/engine.io/lib/transports/websocket.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/engine.io/lib/transports/websocket.js
rename to src/third_party/devtools/node_modules/engine.io/lib/transports/websocket.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/engine.io/node_modules/debug/.coveralls.yml b/src/third_party/devtools/node_modules/engine.io/node_modules/debug/.coveralls.yml
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/engine.io/node_modules/debug/.coveralls.yml
rename to src/third_party/devtools/node_modules/engine.io/node_modules/debug/.coveralls.yml
diff --git a/src/cobalt/debug/remote/devtools/node_modules/engine.io/node_modules/debug/.eslintrc b/src/third_party/devtools/node_modules/engine.io/node_modules/debug/.eslintrc
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/engine.io/node_modules/debug/.eslintrc
rename to src/third_party/devtools/node_modules/engine.io/node_modules/debug/.eslintrc
diff --git a/src/cobalt/debug/remote/devtools/node_modules/engine.io/node_modules/debug/.npmignore b/src/third_party/devtools/node_modules/engine.io/node_modules/debug/.npmignore
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/engine.io/node_modules/debug/.npmignore
rename to src/third_party/devtools/node_modules/engine.io/node_modules/debug/.npmignore
diff --git a/src/cobalt/debug/remote/devtools/node_modules/engine.io/node_modules/debug/.travis.yml b/src/third_party/devtools/node_modules/engine.io/node_modules/debug/.travis.yml
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/engine.io/node_modules/debug/.travis.yml
rename to src/third_party/devtools/node_modules/engine.io/node_modules/debug/.travis.yml
diff --git a/src/cobalt/debug/remote/devtools/node_modules/engine.io/node_modules/debug/CHANGELOG.md b/src/third_party/devtools/node_modules/engine.io/node_modules/debug/CHANGELOG.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/engine.io/node_modules/debug/CHANGELOG.md
rename to src/third_party/devtools/node_modules/engine.io/node_modules/debug/CHANGELOG.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/engine.io/node_modules/debug/LICENSE b/src/third_party/devtools/node_modules/engine.io/node_modules/debug/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/engine.io/node_modules/debug/LICENSE
rename to src/third_party/devtools/node_modules/engine.io/node_modules/debug/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/engine.io/node_modules/debug/Makefile b/src/third_party/devtools/node_modules/engine.io/node_modules/debug/Makefile
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/engine.io/node_modules/debug/Makefile
rename to src/third_party/devtools/node_modules/engine.io/node_modules/debug/Makefile
diff --git a/src/cobalt/debug/remote/devtools/node_modules/engine.io/node_modules/debug/README.md b/src/third_party/devtools/node_modules/engine.io/node_modules/debug/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/engine.io/node_modules/debug/README.md
rename to src/third_party/devtools/node_modules/engine.io/node_modules/debug/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/engine.io/node_modules/debug/karma.conf.js b/src/third_party/devtools/node_modules/engine.io/node_modules/debug/karma.conf.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/engine.io/node_modules/debug/karma.conf.js
rename to src/third_party/devtools/node_modules/engine.io/node_modules/debug/karma.conf.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/engine.io/node_modules/debug/node.js b/src/third_party/devtools/node_modules/engine.io/node_modules/debug/node.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/engine.io/node_modules/debug/node.js
rename to src/third_party/devtools/node_modules/engine.io/node_modules/debug/node.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/engine.io/node_modules/debug/package.json b/src/third_party/devtools/node_modules/engine.io/node_modules/debug/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/engine.io/node_modules/debug/package.json
rename to src/third_party/devtools/node_modules/engine.io/node_modules/debug/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/engine.io/node_modules/debug/src/browser.js b/src/third_party/devtools/node_modules/engine.io/node_modules/debug/src/browser.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/engine.io/node_modules/debug/src/browser.js
rename to src/third_party/devtools/node_modules/engine.io/node_modules/debug/src/browser.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/engine.io/node_modules/debug/src/debug.js b/src/third_party/devtools/node_modules/engine.io/node_modules/debug/src/debug.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/engine.io/node_modules/debug/src/debug.js
rename to src/third_party/devtools/node_modules/engine.io/node_modules/debug/src/debug.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/engine.io/node_modules/debug/src/index.js b/src/third_party/devtools/node_modules/engine.io/node_modules/debug/src/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/engine.io/node_modules/debug/src/index.js
rename to src/third_party/devtools/node_modules/engine.io/node_modules/debug/src/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/engine.io/node_modules/debug/src/node.js b/src/third_party/devtools/node_modules/engine.io/node_modules/debug/src/node.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/engine.io/node_modules/debug/src/node.js
rename to src/third_party/devtools/node_modules/engine.io/node_modules/debug/src/node.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/engine.io/node_modules/ms/index.js b/src/third_party/devtools/node_modules/engine.io/node_modules/ms/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/engine.io/node_modules/ms/index.js
rename to src/third_party/devtools/node_modules/engine.io/node_modules/ms/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/engine.io/node_modules/ms/license.md b/src/third_party/devtools/node_modules/engine.io/node_modules/ms/license.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/engine.io/node_modules/ms/license.md
rename to src/third_party/devtools/node_modules/engine.io/node_modules/ms/license.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/engine.io/node_modules/ms/package.json b/src/third_party/devtools/node_modules/engine.io/node_modules/ms/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/engine.io/node_modules/ms/package.json
rename to src/third_party/devtools/node_modules/engine.io/node_modules/ms/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/engine.io/node_modules/ms/readme.md b/src/third_party/devtools/node_modules/engine.io/node_modules/ms/readme.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/engine.io/node_modules/ms/readme.md
rename to src/third_party/devtools/node_modules/engine.io/node_modules/ms/readme.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/engine.io/package.json b/src/third_party/devtools/node_modules/engine.io/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/engine.io/package.json
rename to src/third_party/devtools/node_modules/engine.io/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/ent/.npmignore b/src/third_party/devtools/node_modules/ent/.npmignore
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/ent/.npmignore
rename to src/third_party/devtools/node_modules/ent/.npmignore
diff --git a/src/cobalt/debug/remote/devtools/node_modules/ent/.travis.yml b/src/third_party/devtools/node_modules/ent/.travis.yml
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/ent/.travis.yml
rename to src/third_party/devtools/node_modules/ent/.travis.yml
diff --git a/src/cobalt/debug/remote/devtools/node_modules/ent/LICENSE b/src/third_party/devtools/node_modules/ent/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/ent/LICENSE
rename to src/third_party/devtools/node_modules/ent/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/ent/decode.js b/src/third_party/devtools/node_modules/ent/decode.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/ent/decode.js
rename to src/third_party/devtools/node_modules/ent/decode.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/ent/encode.js b/src/third_party/devtools/node_modules/ent/encode.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/ent/encode.js
rename to src/third_party/devtools/node_modules/ent/encode.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/ent/entities.json b/src/third_party/devtools/node_modules/ent/entities.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/ent/entities.json
rename to src/third_party/devtools/node_modules/ent/entities.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/ent/examples/simple.js b/src/third_party/devtools/node_modules/ent/examples/simple.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/ent/examples/simple.js
rename to src/third_party/devtools/node_modules/ent/examples/simple.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/ent/index.js b/src/third_party/devtools/node_modules/ent/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/ent/index.js
rename to src/third_party/devtools/node_modules/ent/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/ent/package.json b/src/third_party/devtools/node_modules/ent/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/ent/package.json
rename to src/third_party/devtools/node_modules/ent/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/ent/readme.markdown b/src/third_party/devtools/node_modules/ent/readme.markdown
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/ent/readme.markdown
rename to src/third_party/devtools/node_modules/ent/readme.markdown
diff --git a/src/cobalt/debug/remote/devtools/node_modules/ent/reversed.json b/src/third_party/devtools/node_modules/ent/reversed.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/ent/reversed.json
rename to src/third_party/devtools/node_modules/ent/reversed.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/ent/test/codes.js b/src/third_party/devtools/node_modules/ent/test/codes.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/ent/test/codes.js
rename to src/third_party/devtools/node_modules/ent/test/codes.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/ent/test/hex.js b/src/third_party/devtools/node_modules/ent/test/hex.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/ent/test/hex.js
rename to src/third_party/devtools/node_modules/ent/test/hex.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/ent/test/num.js b/src/third_party/devtools/node_modules/ent/test/num.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/ent/test/num.js
rename to src/third_party/devtools/node_modules/ent/test/num.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/error-ex/LICENSE b/src/third_party/devtools/node_modules/error-ex/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/error-ex/LICENSE
rename to src/third_party/devtools/node_modules/error-ex/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/error-ex/README.md b/src/third_party/devtools/node_modules/error-ex/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/error-ex/README.md
rename to src/third_party/devtools/node_modules/error-ex/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/error-ex/index.js b/src/third_party/devtools/node_modules/error-ex/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/error-ex/index.js
rename to src/third_party/devtools/node_modules/error-ex/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/error-ex/package.json b/src/third_party/devtools/node_modules/error-ex/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/error-ex/package.json
rename to src/third_party/devtools/node_modules/error-ex/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/es-abstract/.editorconfig b/src/third_party/devtools/node_modules/es-abstract/.editorconfig
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/es-abstract/.editorconfig
rename to src/third_party/devtools/node_modules/es-abstract/.editorconfig
diff --git a/src/cobalt/debug/remote/devtools/node_modules/es-abstract/.eslintrc b/src/third_party/devtools/node_modules/es-abstract/.eslintrc
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/es-abstract/.eslintrc
rename to src/third_party/devtools/node_modules/es-abstract/.eslintrc
diff --git a/src/cobalt/debug/remote/devtools/node_modules/es-abstract/.github/FUNDING.yml b/src/third_party/devtools/node_modules/es-abstract/.github/FUNDING.yml
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/es-abstract/.github/FUNDING.yml
rename to src/third_party/devtools/node_modules/es-abstract/.github/FUNDING.yml
diff --git a/src/cobalt/debug/remote/devtools/node_modules/es-abstract/.nycrc b/src/third_party/devtools/node_modules/es-abstract/.nycrc
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/es-abstract/.nycrc
rename to src/third_party/devtools/node_modules/es-abstract/.nycrc
diff --git a/src/cobalt/debug/remote/devtools/node_modules/es-abstract/.travis.yml b/src/third_party/devtools/node_modules/es-abstract/.travis.yml
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/es-abstract/.travis.yml
rename to src/third_party/devtools/node_modules/es-abstract/.travis.yml
diff --git a/src/cobalt/debug/remote/devtools/node_modules/es-abstract/CHANGELOG.md b/src/third_party/devtools/node_modules/es-abstract/CHANGELOG.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/es-abstract/CHANGELOG.md
rename to src/third_party/devtools/node_modules/es-abstract/CHANGELOG.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/es-abstract/GetIntrinsic.js b/src/third_party/devtools/node_modules/es-abstract/GetIntrinsic.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/es-abstract/GetIntrinsic.js
rename to src/third_party/devtools/node_modules/es-abstract/GetIntrinsic.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/es-abstract/LICENSE b/src/third_party/devtools/node_modules/es-abstract/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/es-abstract/LICENSE
rename to src/third_party/devtools/node_modules/es-abstract/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/es-abstract/Makefile b/src/third_party/devtools/node_modules/es-abstract/Makefile
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/es-abstract/Makefile
rename to src/third_party/devtools/node_modules/es-abstract/Makefile
diff --git a/src/cobalt/debug/remote/devtools/node_modules/es-abstract/README.md b/src/third_party/devtools/node_modules/es-abstract/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/es-abstract/README.md
rename to src/third_party/devtools/node_modules/es-abstract/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/es-abstract/es2015.js b/src/third_party/devtools/node_modules/es-abstract/es2015.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/es-abstract/es2015.js
rename to src/third_party/devtools/node_modules/es-abstract/es2015.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/es-abstract/es2016.js b/src/third_party/devtools/node_modules/es-abstract/es2016.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/es-abstract/es2016.js
rename to src/third_party/devtools/node_modules/es-abstract/es2016.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/es-abstract/es2017.js b/src/third_party/devtools/node_modules/es-abstract/es2017.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/es-abstract/es2017.js
rename to src/third_party/devtools/node_modules/es-abstract/es2017.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/es-abstract/es2018.js b/src/third_party/devtools/node_modules/es-abstract/es2018.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/es-abstract/es2018.js
rename to src/third_party/devtools/node_modules/es-abstract/es2018.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/es-abstract/es2019.js b/src/third_party/devtools/node_modules/es-abstract/es2019.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/es-abstract/es2019.js
rename to src/third_party/devtools/node_modules/es-abstract/es2019.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/es-abstract/es5.js b/src/third_party/devtools/node_modules/es-abstract/es5.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/es-abstract/es5.js
rename to src/third_party/devtools/node_modules/es-abstract/es5.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/es-abstract/es6.js b/src/third_party/devtools/node_modules/es-abstract/es6.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/es-abstract/es6.js
rename to src/third_party/devtools/node_modules/es-abstract/es6.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/es-abstract/es7.js b/src/third_party/devtools/node_modules/es-abstract/es7.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/es-abstract/es7.js
rename to src/third_party/devtools/node_modules/es-abstract/es7.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/es-abstract/helpers/assertRecord.js b/src/third_party/devtools/node_modules/es-abstract/helpers/assertRecord.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/es-abstract/helpers/assertRecord.js
rename to src/third_party/devtools/node_modules/es-abstract/helpers/assertRecord.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/es-abstract/helpers/assign.js b/src/third_party/devtools/node_modules/es-abstract/helpers/assign.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/es-abstract/helpers/assign.js
rename to src/third_party/devtools/node_modules/es-abstract/helpers/assign.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/es-abstract/helpers/callBind.js b/src/third_party/devtools/node_modules/es-abstract/helpers/callBind.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/es-abstract/helpers/callBind.js
rename to src/third_party/devtools/node_modules/es-abstract/helpers/callBind.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/es-abstract/helpers/callBound.js b/src/third_party/devtools/node_modules/es-abstract/helpers/callBound.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/es-abstract/helpers/callBound.js
rename to src/third_party/devtools/node_modules/es-abstract/helpers/callBound.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/es-abstract/helpers/every.js b/src/third_party/devtools/node_modules/es-abstract/helpers/every.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/es-abstract/helpers/every.js
rename to src/third_party/devtools/node_modules/es-abstract/helpers/every.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/es-abstract/helpers/forEach.js b/src/third_party/devtools/node_modules/es-abstract/helpers/forEach.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/es-abstract/helpers/forEach.js
rename to src/third_party/devtools/node_modules/es-abstract/helpers/forEach.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/es-abstract/helpers/getInferredName.js b/src/third_party/devtools/node_modules/es-abstract/helpers/getInferredName.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/es-abstract/helpers/getInferredName.js
rename to src/third_party/devtools/node_modules/es-abstract/helpers/getInferredName.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/es-abstract/helpers/getIteratorMethod.js b/src/third_party/devtools/node_modules/es-abstract/helpers/getIteratorMethod.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/es-abstract/helpers/getIteratorMethod.js
rename to src/third_party/devtools/node_modules/es-abstract/helpers/getIteratorMethod.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/es-abstract/helpers/getProto.js b/src/third_party/devtools/node_modules/es-abstract/helpers/getProto.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/es-abstract/helpers/getProto.js
rename to src/third_party/devtools/node_modules/es-abstract/helpers/getProto.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/es-abstract/helpers/getSymbolDescription.js b/src/third_party/devtools/node_modules/es-abstract/helpers/getSymbolDescription.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/es-abstract/helpers/getSymbolDescription.js
rename to src/third_party/devtools/node_modules/es-abstract/helpers/getSymbolDescription.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/es-abstract/helpers/isFinite.js b/src/third_party/devtools/node_modules/es-abstract/helpers/isFinite.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/es-abstract/helpers/isFinite.js
rename to src/third_party/devtools/node_modules/es-abstract/helpers/isFinite.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/es-abstract/helpers/isNaN.js b/src/third_party/devtools/node_modules/es-abstract/helpers/isNaN.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/es-abstract/helpers/isNaN.js
rename to src/third_party/devtools/node_modules/es-abstract/helpers/isNaN.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/es-abstract/helpers/isPrefixOf.js b/src/third_party/devtools/node_modules/es-abstract/helpers/isPrefixOf.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/es-abstract/helpers/isPrefixOf.js
rename to src/third_party/devtools/node_modules/es-abstract/helpers/isPrefixOf.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/es-abstract/helpers/isPrimitive.js b/src/third_party/devtools/node_modules/es-abstract/helpers/isPrimitive.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/es-abstract/helpers/isPrimitive.js
rename to src/third_party/devtools/node_modules/es-abstract/helpers/isPrimitive.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/es-abstract/helpers/isPropertyDescriptor.js b/src/third_party/devtools/node_modules/es-abstract/helpers/isPropertyDescriptor.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/es-abstract/helpers/isPropertyDescriptor.js
rename to src/third_party/devtools/node_modules/es-abstract/helpers/isPropertyDescriptor.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/es-abstract/helpers/isSamePropertyDescriptor.js b/src/third_party/devtools/node_modules/es-abstract/helpers/isSamePropertyDescriptor.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/es-abstract/helpers/isSamePropertyDescriptor.js
rename to src/third_party/devtools/node_modules/es-abstract/helpers/isSamePropertyDescriptor.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/es-abstract/helpers/maxSafeInteger.js b/src/third_party/devtools/node_modules/es-abstract/helpers/maxSafeInteger.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/es-abstract/helpers/maxSafeInteger.js
rename to src/third_party/devtools/node_modules/es-abstract/helpers/maxSafeInteger.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/es-abstract/helpers/mod.js b/src/third_party/devtools/node_modules/es-abstract/helpers/mod.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/es-abstract/helpers/mod.js
rename to src/third_party/devtools/node_modules/es-abstract/helpers/mod.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/es-abstract/helpers/regexTester.js b/src/third_party/devtools/node_modules/es-abstract/helpers/regexTester.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/es-abstract/helpers/regexTester.js
rename to src/third_party/devtools/node_modules/es-abstract/helpers/regexTester.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/es-abstract/helpers/setProto.js b/src/third_party/devtools/node_modules/es-abstract/helpers/setProto.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/es-abstract/helpers/setProto.js
rename to src/third_party/devtools/node_modules/es-abstract/helpers/setProto.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/es-abstract/helpers/sign.js b/src/third_party/devtools/node_modules/es-abstract/helpers/sign.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/es-abstract/helpers/sign.js
rename to src/third_party/devtools/node_modules/es-abstract/helpers/sign.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/es-abstract/index.js b/src/third_party/devtools/node_modules/es-abstract/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/es-abstract/index.js
rename to src/third_party/devtools/node_modules/es-abstract/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/es-abstract/operations/.eslintrc b/src/third_party/devtools/node_modules/es-abstract/operations/.eslintrc
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/es-abstract/operations/.eslintrc
rename to src/third_party/devtools/node_modules/es-abstract/operations/.eslintrc
diff --git a/src/cobalt/debug/remote/devtools/node_modules/es-abstract/package.json b/src/third_party/devtools/node_modules/es-abstract/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/es-abstract/package.json
rename to src/third_party/devtools/node_modules/es-abstract/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/es-abstract/test/.eslintrc b/src/third_party/devtools/node_modules/es-abstract/test/.eslintrc
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/es-abstract/test/.eslintrc
rename to src/third_party/devtools/node_modules/es-abstract/test/.eslintrc
diff --git a/src/cobalt/debug/remote/devtools/node_modules/es-abstract/test/GetIntrinsic.js b/src/third_party/devtools/node_modules/es-abstract/test/GetIntrinsic.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/es-abstract/test/GetIntrinsic.js
rename to src/third_party/devtools/node_modules/es-abstract/test/GetIntrinsic.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/es-abstract/test/diffOps.js b/src/third_party/devtools/node_modules/es-abstract/test/diffOps.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/es-abstract/test/diffOps.js
rename to src/third_party/devtools/node_modules/es-abstract/test/diffOps.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/es-abstract/test/es2015.js b/src/third_party/devtools/node_modules/es-abstract/test/es2015.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/es-abstract/test/es2015.js
rename to src/third_party/devtools/node_modules/es-abstract/test/es2015.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/es-abstract/test/es2016.js b/src/third_party/devtools/node_modules/es-abstract/test/es2016.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/es-abstract/test/es2016.js
rename to src/third_party/devtools/node_modules/es-abstract/test/es2016.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/es-abstract/test/es2017.js b/src/third_party/devtools/node_modules/es-abstract/test/es2017.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/es-abstract/test/es2017.js
rename to src/third_party/devtools/node_modules/es-abstract/test/es2017.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/es-abstract/test/es2018.js b/src/third_party/devtools/node_modules/es-abstract/test/es2018.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/es-abstract/test/es2018.js
rename to src/third_party/devtools/node_modules/es-abstract/test/es2018.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/es-abstract/test/es2019.js b/src/third_party/devtools/node_modules/es-abstract/test/es2019.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/es-abstract/test/es2019.js
rename to src/third_party/devtools/node_modules/es-abstract/test/es2019.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/es-abstract/test/es5.js b/src/third_party/devtools/node_modules/es-abstract/test/es5.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/es-abstract/test/es5.js
rename to src/third_party/devtools/node_modules/es-abstract/test/es5.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/es-abstract/test/es6.js b/src/third_party/devtools/node_modules/es-abstract/test/es6.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/es-abstract/test/es6.js
rename to src/third_party/devtools/node_modules/es-abstract/test/es6.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/es-abstract/test/es7.js b/src/third_party/devtools/node_modules/es-abstract/test/es7.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/es-abstract/test/es7.js
rename to src/third_party/devtools/node_modules/es-abstract/test/es7.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/es-abstract/test/helpers/assertRecord.js b/src/third_party/devtools/node_modules/es-abstract/test/helpers/assertRecord.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/es-abstract/test/helpers/assertRecord.js
rename to src/third_party/devtools/node_modules/es-abstract/test/helpers/assertRecord.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/es-abstract/test/helpers/getSymbolDescription.js b/src/third_party/devtools/node_modules/es-abstract/test/helpers/getSymbolDescription.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/es-abstract/test/helpers/getSymbolDescription.js
rename to src/third_party/devtools/node_modules/es-abstract/test/helpers/getSymbolDescription.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/es-abstract/test/helpers/values.js b/src/third_party/devtools/node_modules/es-abstract/test/helpers/values.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/es-abstract/test/helpers/values.js
rename to src/third_party/devtools/node_modules/es-abstract/test/helpers/values.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/es-abstract/test/index.js b/src/third_party/devtools/node_modules/es-abstract/test/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/es-abstract/test/index.js
rename to src/third_party/devtools/node_modules/es-abstract/test/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/es-abstract/test/tests.js b/src/third_party/devtools/node_modules/es-abstract/test/tests.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/es-abstract/test/tests.js
rename to src/third_party/devtools/node_modules/es-abstract/test/tests.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/es-to-primitive/.editorconfig b/src/third_party/devtools/node_modules/es-to-primitive/.editorconfig
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/es-to-primitive/.editorconfig
rename to src/third_party/devtools/node_modules/es-to-primitive/.editorconfig
diff --git a/src/cobalt/debug/remote/devtools/node_modules/es-to-primitive/.eslintrc b/src/third_party/devtools/node_modules/es-to-primitive/.eslintrc
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/es-to-primitive/.eslintrc
rename to src/third_party/devtools/node_modules/es-to-primitive/.eslintrc
diff --git a/src/cobalt/debug/remote/devtools/node_modules/es-to-primitive/.jscs.json b/src/third_party/devtools/node_modules/es-to-primitive/.jscs.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/es-to-primitive/.jscs.json
rename to src/third_party/devtools/node_modules/es-to-primitive/.jscs.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/es-to-primitive/.travis.yml b/src/third_party/devtools/node_modules/es-to-primitive/.travis.yml
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/es-to-primitive/.travis.yml
rename to src/third_party/devtools/node_modules/es-to-primitive/.travis.yml
diff --git a/src/cobalt/debug/remote/devtools/node_modules/es-to-primitive/CHANGELOG.md b/src/third_party/devtools/node_modules/es-to-primitive/CHANGELOG.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/es-to-primitive/CHANGELOG.md
rename to src/third_party/devtools/node_modules/es-to-primitive/CHANGELOG.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/es-to-primitive/LICENSE b/src/third_party/devtools/node_modules/es-to-primitive/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/es-to-primitive/LICENSE
rename to src/third_party/devtools/node_modules/es-to-primitive/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/es-to-primitive/Makefile b/src/third_party/devtools/node_modules/es-to-primitive/Makefile
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/es-to-primitive/Makefile
rename to src/third_party/devtools/node_modules/es-to-primitive/Makefile
diff --git a/src/cobalt/debug/remote/devtools/node_modules/es-to-primitive/README.md b/src/third_party/devtools/node_modules/es-to-primitive/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/es-to-primitive/README.md
rename to src/third_party/devtools/node_modules/es-to-primitive/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/es-to-primitive/es2015.js b/src/third_party/devtools/node_modules/es-to-primitive/es2015.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/es-to-primitive/es2015.js
rename to src/third_party/devtools/node_modules/es-to-primitive/es2015.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/es-to-primitive/es5.js b/src/third_party/devtools/node_modules/es-to-primitive/es5.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/es-to-primitive/es5.js
rename to src/third_party/devtools/node_modules/es-to-primitive/es5.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/es-to-primitive/es6.js b/src/third_party/devtools/node_modules/es-to-primitive/es6.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/es-to-primitive/es6.js
rename to src/third_party/devtools/node_modules/es-to-primitive/es6.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/es-to-primitive/helpers/isPrimitive.js b/src/third_party/devtools/node_modules/es-to-primitive/helpers/isPrimitive.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/es-to-primitive/helpers/isPrimitive.js
rename to src/third_party/devtools/node_modules/es-to-primitive/helpers/isPrimitive.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/es-to-primitive/index.js b/src/third_party/devtools/node_modules/es-to-primitive/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/es-to-primitive/index.js
rename to src/third_party/devtools/node_modules/es-to-primitive/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/es-to-primitive/package.json b/src/third_party/devtools/node_modules/es-to-primitive/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/es-to-primitive/package.json
rename to src/third_party/devtools/node_modules/es-to-primitive/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/es-to-primitive/test/.eslintrc b/src/third_party/devtools/node_modules/es-to-primitive/test/.eslintrc
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/es-to-primitive/test/.eslintrc
rename to src/third_party/devtools/node_modules/es-to-primitive/test/.eslintrc
diff --git a/src/cobalt/debug/remote/devtools/node_modules/es-to-primitive/test/es2015.js b/src/third_party/devtools/node_modules/es-to-primitive/test/es2015.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/es-to-primitive/test/es2015.js
rename to src/third_party/devtools/node_modules/es-to-primitive/test/es2015.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/es-to-primitive/test/es5.js b/src/third_party/devtools/node_modules/es-to-primitive/test/es5.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/es-to-primitive/test/es5.js
rename to src/third_party/devtools/node_modules/es-to-primitive/test/es5.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/es-to-primitive/test/es6.js b/src/third_party/devtools/node_modules/es-to-primitive/test/es6.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/es-to-primitive/test/es6.js
rename to src/third_party/devtools/node_modules/es-to-primitive/test/es6.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/es-to-primitive/test/index.js b/src/third_party/devtools/node_modules/es-to-primitive/test/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/es-to-primitive/test/index.js
rename to src/third_party/devtools/node_modules/es-to-primitive/test/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/es6-object-assign/LICENSE b/src/third_party/devtools/node_modules/es6-object-assign/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/es6-object-assign/LICENSE
rename to src/third_party/devtools/node_modules/es6-object-assign/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/es6-object-assign/README.md b/src/third_party/devtools/node_modules/es6-object-assign/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/es6-object-assign/README.md
rename to src/third_party/devtools/node_modules/es6-object-assign/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/es6-object-assign/auto.js b/src/third_party/devtools/node_modules/es6-object-assign/auto.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/es6-object-assign/auto.js
rename to src/third_party/devtools/node_modules/es6-object-assign/auto.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/es6-object-assign/dist/object-assign-auto.js b/src/third_party/devtools/node_modules/es6-object-assign/dist/object-assign-auto.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/es6-object-assign/dist/object-assign-auto.js
rename to src/third_party/devtools/node_modules/es6-object-assign/dist/object-assign-auto.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/es6-object-assign/dist/object-assign-auto.min.js b/src/third_party/devtools/node_modules/es6-object-assign/dist/object-assign-auto.min.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/es6-object-assign/dist/object-assign-auto.min.js
rename to src/third_party/devtools/node_modules/es6-object-assign/dist/object-assign-auto.min.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/es6-object-assign/dist/object-assign.js b/src/third_party/devtools/node_modules/es6-object-assign/dist/object-assign.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/es6-object-assign/dist/object-assign.js
rename to src/third_party/devtools/node_modules/es6-object-assign/dist/object-assign.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/es6-object-assign/dist/object-assign.min.js b/src/third_party/devtools/node_modules/es6-object-assign/dist/object-assign.min.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/es6-object-assign/dist/object-assign.min.js
rename to src/third_party/devtools/node_modules/es6-object-assign/dist/object-assign.min.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/es6-object-assign/index.js b/src/third_party/devtools/node_modules/es6-object-assign/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/es6-object-assign/index.js
rename to src/third_party/devtools/node_modules/es6-object-assign/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/es6-object-assign/package.json b/src/third_party/devtools/node_modules/es6-object-assign/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/es6-object-assign/package.json
rename to src/third_party/devtools/node_modules/es6-object-assign/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/es6-promise/CHANGELOG.md b/src/third_party/devtools/node_modules/es6-promise/CHANGELOG.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/es6-promise/CHANGELOG.md
rename to src/third_party/devtools/node_modules/es6-promise/CHANGELOG.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/es6-promise/LICENSE b/src/third_party/devtools/node_modules/es6-promise/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/es6-promise/LICENSE
rename to src/third_party/devtools/node_modules/es6-promise/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/es6-promise/README.md b/src/third_party/devtools/node_modules/es6-promise/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/es6-promise/README.md
rename to src/third_party/devtools/node_modules/es6-promise/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/es6-promise/auto.js b/src/third_party/devtools/node_modules/es6-promise/auto.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/es6-promise/auto.js
rename to src/third_party/devtools/node_modules/es6-promise/auto.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/es6-promise/dist/es6-promise.auto.js b/src/third_party/devtools/node_modules/es6-promise/dist/es6-promise.auto.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/es6-promise/dist/es6-promise.auto.js
rename to src/third_party/devtools/node_modules/es6-promise/dist/es6-promise.auto.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/es6-promise/dist/es6-promise.auto.map b/src/third_party/devtools/node_modules/es6-promise/dist/es6-promise.auto.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/es6-promise/dist/es6-promise.auto.map
rename to src/third_party/devtools/node_modules/es6-promise/dist/es6-promise.auto.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/es6-promise/dist/es6-promise.auto.min.js b/src/third_party/devtools/node_modules/es6-promise/dist/es6-promise.auto.min.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/es6-promise/dist/es6-promise.auto.min.js
rename to src/third_party/devtools/node_modules/es6-promise/dist/es6-promise.auto.min.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/es6-promise/dist/es6-promise.auto.min.map b/src/third_party/devtools/node_modules/es6-promise/dist/es6-promise.auto.min.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/es6-promise/dist/es6-promise.auto.min.map
rename to src/third_party/devtools/node_modules/es6-promise/dist/es6-promise.auto.min.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/es6-promise/dist/es6-promise.js b/src/third_party/devtools/node_modules/es6-promise/dist/es6-promise.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/es6-promise/dist/es6-promise.js
rename to src/third_party/devtools/node_modules/es6-promise/dist/es6-promise.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/es6-promise/dist/es6-promise.map b/src/third_party/devtools/node_modules/es6-promise/dist/es6-promise.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/es6-promise/dist/es6-promise.map
rename to src/third_party/devtools/node_modules/es6-promise/dist/es6-promise.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/es6-promise/dist/es6-promise.min.js b/src/third_party/devtools/node_modules/es6-promise/dist/es6-promise.min.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/es6-promise/dist/es6-promise.min.js
rename to src/third_party/devtools/node_modules/es6-promise/dist/es6-promise.min.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/es6-promise/dist/es6-promise.min.map b/src/third_party/devtools/node_modules/es6-promise/dist/es6-promise.min.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/es6-promise/dist/es6-promise.min.map
rename to src/third_party/devtools/node_modules/es6-promise/dist/es6-promise.min.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/es6-promise/es6-promise.d.ts b/src/third_party/devtools/node_modules/es6-promise/es6-promise.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/es6-promise/es6-promise.d.ts
rename to src/third_party/devtools/node_modules/es6-promise/es6-promise.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/es6-promise/lib/es6-promise.auto.js b/src/third_party/devtools/node_modules/es6-promise/lib/es6-promise.auto.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/es6-promise/lib/es6-promise.auto.js
rename to src/third_party/devtools/node_modules/es6-promise/lib/es6-promise.auto.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/es6-promise/lib/es6-promise.js b/src/third_party/devtools/node_modules/es6-promise/lib/es6-promise.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/es6-promise/lib/es6-promise.js
rename to src/third_party/devtools/node_modules/es6-promise/lib/es6-promise.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/es6-promise/lib/es6-promise/-internal.js b/src/third_party/devtools/node_modules/es6-promise/lib/es6-promise/-internal.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/es6-promise/lib/es6-promise/-internal.js
rename to src/third_party/devtools/node_modules/es6-promise/lib/es6-promise/-internal.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/es6-promise/lib/es6-promise/asap.js b/src/third_party/devtools/node_modules/es6-promise/lib/es6-promise/asap.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/es6-promise/lib/es6-promise/asap.js
rename to src/third_party/devtools/node_modules/es6-promise/lib/es6-promise/asap.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/es6-promise/lib/es6-promise/enumerator.js b/src/third_party/devtools/node_modules/es6-promise/lib/es6-promise/enumerator.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/es6-promise/lib/es6-promise/enumerator.js
rename to src/third_party/devtools/node_modules/es6-promise/lib/es6-promise/enumerator.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/es6-promise/lib/es6-promise/polyfill.js b/src/third_party/devtools/node_modules/es6-promise/lib/es6-promise/polyfill.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/es6-promise/lib/es6-promise/polyfill.js
rename to src/third_party/devtools/node_modules/es6-promise/lib/es6-promise/polyfill.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/es6-promise/lib/es6-promise/promise.js b/src/third_party/devtools/node_modules/es6-promise/lib/es6-promise/promise.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/es6-promise/lib/es6-promise/promise.js
rename to src/third_party/devtools/node_modules/es6-promise/lib/es6-promise/promise.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/es6-promise/lib/es6-promise/promise/all.js b/src/third_party/devtools/node_modules/es6-promise/lib/es6-promise/promise/all.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/es6-promise/lib/es6-promise/promise/all.js
rename to src/third_party/devtools/node_modules/es6-promise/lib/es6-promise/promise/all.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/es6-promise/lib/es6-promise/promise/race.js b/src/third_party/devtools/node_modules/es6-promise/lib/es6-promise/promise/race.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/es6-promise/lib/es6-promise/promise/race.js
rename to src/third_party/devtools/node_modules/es6-promise/lib/es6-promise/promise/race.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/es6-promise/lib/es6-promise/promise/reject.js b/src/third_party/devtools/node_modules/es6-promise/lib/es6-promise/promise/reject.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/es6-promise/lib/es6-promise/promise/reject.js
rename to src/third_party/devtools/node_modules/es6-promise/lib/es6-promise/promise/reject.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/es6-promise/lib/es6-promise/promise/resolve.js b/src/third_party/devtools/node_modules/es6-promise/lib/es6-promise/promise/resolve.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/es6-promise/lib/es6-promise/promise/resolve.js
rename to src/third_party/devtools/node_modules/es6-promise/lib/es6-promise/promise/resolve.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/es6-promise/lib/es6-promise/then.js b/src/third_party/devtools/node_modules/es6-promise/lib/es6-promise/then.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/es6-promise/lib/es6-promise/then.js
rename to src/third_party/devtools/node_modules/es6-promise/lib/es6-promise/then.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/es6-promise/lib/es6-promise/utils.js b/src/third_party/devtools/node_modules/es6-promise/lib/es6-promise/utils.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/es6-promise/lib/es6-promise/utils.js
rename to src/third_party/devtools/node_modules/es6-promise/lib/es6-promise/utils.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/es6-promise/package.json b/src/third_party/devtools/node_modules/es6-promise/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/es6-promise/package.json
rename to src/third_party/devtools/node_modules/es6-promise/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/es6-promisify/README.md b/src/third_party/devtools/node_modules/es6-promisify/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/es6-promisify/README.md
rename to src/third_party/devtools/node_modules/es6-promisify/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/es6-promisify/dist/promise.js b/src/third_party/devtools/node_modules/es6-promisify/dist/promise.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/es6-promisify/dist/promise.js
rename to src/third_party/devtools/node_modules/es6-promisify/dist/promise.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/es6-promisify/dist/promisify.js b/src/third_party/devtools/node_modules/es6-promisify/dist/promisify.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/es6-promisify/dist/promisify.js
rename to src/third_party/devtools/node_modules/es6-promisify/dist/promisify.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/es6-promisify/package.json b/src/third_party/devtools/node_modules/es6-promisify/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/es6-promisify/package.json
rename to src/third_party/devtools/node_modules/es6-promisify/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/escape-html/LICENSE b/src/third_party/devtools/node_modules/escape-html/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/escape-html/LICENSE
rename to src/third_party/devtools/node_modules/escape-html/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/escape-html/Readme.md b/src/third_party/devtools/node_modules/escape-html/Readme.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/escape-html/Readme.md
rename to src/third_party/devtools/node_modules/escape-html/Readme.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/escape-html/index.js b/src/third_party/devtools/node_modules/escape-html/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/escape-html/index.js
rename to src/third_party/devtools/node_modules/escape-html/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/escape-html/package.json b/src/third_party/devtools/node_modules/escape-html/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/escape-html/package.json
rename to src/third_party/devtools/node_modules/escape-html/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/escape-string-regexp/LICENSE b/src/third_party/devtools/node_modules/escape-string-regexp/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/escape-string-regexp/LICENSE
rename to src/third_party/devtools/node_modules/escape-string-regexp/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/escape-string-regexp/index.js b/src/third_party/devtools/node_modules/escape-string-regexp/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/escape-string-regexp/index.js
rename to src/third_party/devtools/node_modules/escape-string-regexp/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/escape-string-regexp/package.json b/src/third_party/devtools/node_modules/escape-string-regexp/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/escape-string-regexp/package.json
rename to src/third_party/devtools/node_modules/escape-string-regexp/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/escape-string-regexp/readme.md b/src/third_party/devtools/node_modules/escape-string-regexp/readme.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/escape-string-regexp/readme.md
rename to src/third_party/devtools/node_modules/escape-string-regexp/readme.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/escodegen/LICENSE.BSD b/src/third_party/devtools/node_modules/escodegen/LICENSE.BSD
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/escodegen/LICENSE.BSD
rename to src/third_party/devtools/node_modules/escodegen/LICENSE.BSD
diff --git a/src/cobalt/debug/remote/devtools/node_modules/escodegen/README.md b/src/third_party/devtools/node_modules/escodegen/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/escodegen/README.md
rename to src/third_party/devtools/node_modules/escodegen/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/escodegen/bin/escodegen.js b/src/third_party/devtools/node_modules/escodegen/bin/escodegen.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/escodegen/bin/escodegen.js
rename to src/third_party/devtools/node_modules/escodegen/bin/escodegen.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/escodegen/bin/esgenerate.js b/src/third_party/devtools/node_modules/escodegen/bin/esgenerate.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/escodegen/bin/esgenerate.js
rename to src/third_party/devtools/node_modules/escodegen/bin/esgenerate.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/escodegen/escodegen.js b/src/third_party/devtools/node_modules/escodegen/escodegen.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/escodegen/escodegen.js
rename to src/third_party/devtools/node_modules/escodegen/escodegen.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/escodegen/node_modules/.bin/esparse b/src/third_party/devtools/node_modules/escodegen/node_modules/.bin/esparse
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/escodegen/node_modules/.bin/esparse
rename to src/third_party/devtools/node_modules/escodegen/node_modules/.bin/esparse
diff --git a/src/cobalt/debug/remote/devtools/node_modules/escodegen/node_modules/.bin/esvalidate b/src/third_party/devtools/node_modules/escodegen/node_modules/.bin/esvalidate
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/escodegen/node_modules/.bin/esvalidate
rename to src/third_party/devtools/node_modules/escodegen/node_modules/.bin/esvalidate
diff --git a/src/cobalt/debug/remote/devtools/node_modules/escodegen/node_modules/esprima/ChangeLog b/src/third_party/devtools/node_modules/escodegen/node_modules/esprima/ChangeLog
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/escodegen/node_modules/esprima/ChangeLog
rename to src/third_party/devtools/node_modules/escodegen/node_modules/esprima/ChangeLog
diff --git a/src/cobalt/debug/remote/devtools/node_modules/escodegen/node_modules/esprima/LICENSE.BSD b/src/third_party/devtools/node_modules/escodegen/node_modules/esprima/LICENSE.BSD
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/escodegen/node_modules/esprima/LICENSE.BSD
rename to src/third_party/devtools/node_modules/escodegen/node_modules/esprima/LICENSE.BSD
diff --git a/src/cobalt/debug/remote/devtools/node_modules/escodegen/node_modules/esprima/README.md b/src/third_party/devtools/node_modules/escodegen/node_modules/esprima/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/escodegen/node_modules/esprima/README.md
rename to src/third_party/devtools/node_modules/escodegen/node_modules/esprima/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/escodegen/node_modules/esprima/bin/esparse.js b/src/third_party/devtools/node_modules/escodegen/node_modules/esprima/bin/esparse.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/escodegen/node_modules/esprima/bin/esparse.js
rename to src/third_party/devtools/node_modules/escodegen/node_modules/esprima/bin/esparse.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/escodegen/node_modules/esprima/bin/esvalidate.js b/src/third_party/devtools/node_modules/escodegen/node_modules/esprima/bin/esvalidate.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/escodegen/node_modules/esprima/bin/esvalidate.js
rename to src/third_party/devtools/node_modules/escodegen/node_modules/esprima/bin/esvalidate.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/escodegen/node_modules/esprima/dist/esprima.js b/src/third_party/devtools/node_modules/escodegen/node_modules/esprima/dist/esprima.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/escodegen/node_modules/esprima/dist/esprima.js
rename to src/third_party/devtools/node_modules/escodegen/node_modules/esprima/dist/esprima.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/escodegen/node_modules/esprima/package.json b/src/third_party/devtools/node_modules/escodegen/node_modules/esprima/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/escodegen/node_modules/esprima/package.json
rename to src/third_party/devtools/node_modules/escodegen/node_modules/esprima/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/escodegen/package.json b/src/third_party/devtools/node_modules/escodegen/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/escodegen/package.json
rename to src/third_party/devtools/node_modules/escodegen/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint-scope/CHANGELOG.md b/src/third_party/devtools/node_modules/eslint-scope/CHANGELOG.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint-scope/CHANGELOG.md
rename to src/third_party/devtools/node_modules/eslint-scope/CHANGELOG.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint-scope/LICENSE b/src/third_party/devtools/node_modules/eslint-scope/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint-scope/LICENSE
rename to src/third_party/devtools/node_modules/eslint-scope/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint-scope/README.md b/src/third_party/devtools/node_modules/eslint-scope/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint-scope/README.md
rename to src/third_party/devtools/node_modules/eslint-scope/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint-scope/lib/definition.js b/src/third_party/devtools/node_modules/eslint-scope/lib/definition.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint-scope/lib/definition.js
rename to src/third_party/devtools/node_modules/eslint-scope/lib/definition.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint-scope/lib/index.js b/src/third_party/devtools/node_modules/eslint-scope/lib/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint-scope/lib/index.js
rename to src/third_party/devtools/node_modules/eslint-scope/lib/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint-scope/lib/pattern-visitor.js b/src/third_party/devtools/node_modules/eslint-scope/lib/pattern-visitor.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint-scope/lib/pattern-visitor.js
rename to src/third_party/devtools/node_modules/eslint-scope/lib/pattern-visitor.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint-scope/lib/reference.js b/src/third_party/devtools/node_modules/eslint-scope/lib/reference.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint-scope/lib/reference.js
rename to src/third_party/devtools/node_modules/eslint-scope/lib/reference.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint-scope/lib/referencer.js b/src/third_party/devtools/node_modules/eslint-scope/lib/referencer.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint-scope/lib/referencer.js
rename to src/third_party/devtools/node_modules/eslint-scope/lib/referencer.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint-scope/lib/scope-manager.js b/src/third_party/devtools/node_modules/eslint-scope/lib/scope-manager.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint-scope/lib/scope-manager.js
rename to src/third_party/devtools/node_modules/eslint-scope/lib/scope-manager.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint-scope/lib/scope.js b/src/third_party/devtools/node_modules/eslint-scope/lib/scope.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint-scope/lib/scope.js
rename to src/third_party/devtools/node_modules/eslint-scope/lib/scope.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint-scope/lib/variable.js b/src/third_party/devtools/node_modules/eslint-scope/lib/variable.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint-scope/lib/variable.js
rename to src/third_party/devtools/node_modules/eslint-scope/lib/variable.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint-scope/package.json b/src/third_party/devtools/node_modules/eslint-scope/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint-scope/package.json
rename to src/third_party/devtools/node_modules/eslint-scope/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint-utils/LICENSE b/src/third_party/devtools/node_modules/eslint-utils/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint-utils/LICENSE
rename to src/third_party/devtools/node_modules/eslint-utils/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint-utils/README.md b/src/third_party/devtools/node_modules/eslint-utils/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint-utils/README.md
rename to src/third_party/devtools/node_modules/eslint-utils/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint-utils/index.js b/src/third_party/devtools/node_modules/eslint-utils/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint-utils/index.js
rename to src/third_party/devtools/node_modules/eslint-utils/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint-utils/index.js.map b/src/third_party/devtools/node_modules/eslint-utils/index.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint-utils/index.js.map
rename to src/third_party/devtools/node_modules/eslint-utils/index.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint-utils/index.mjs b/src/third_party/devtools/node_modules/eslint-utils/index.mjs
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint-utils/index.mjs
rename to src/third_party/devtools/node_modules/eslint-utils/index.mjs
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint-utils/index.mjs.map b/src/third_party/devtools/node_modules/eslint-utils/index.mjs.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint-utils/index.mjs.map
rename to src/third_party/devtools/node_modules/eslint-utils/index.mjs.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint-utils/package.json b/src/third_party/devtools/node_modules/eslint-utils/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint-utils/package.json
rename to src/third_party/devtools/node_modules/eslint-utils/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint-visitor-keys/CHANGELOG.md b/src/third_party/devtools/node_modules/eslint-visitor-keys/CHANGELOG.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint-visitor-keys/CHANGELOG.md
rename to src/third_party/devtools/node_modules/eslint-visitor-keys/CHANGELOG.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint-visitor-keys/LICENSE b/src/third_party/devtools/node_modules/eslint-visitor-keys/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint-visitor-keys/LICENSE
rename to src/third_party/devtools/node_modules/eslint-visitor-keys/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint-visitor-keys/README.md b/src/third_party/devtools/node_modules/eslint-visitor-keys/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint-visitor-keys/README.md
rename to src/third_party/devtools/node_modules/eslint-visitor-keys/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint-visitor-keys/lib/index.js b/src/third_party/devtools/node_modules/eslint-visitor-keys/lib/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint-visitor-keys/lib/index.js
rename to src/third_party/devtools/node_modules/eslint-visitor-keys/lib/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint-visitor-keys/lib/visitor-keys.json b/src/third_party/devtools/node_modules/eslint-visitor-keys/lib/visitor-keys.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint-visitor-keys/lib/visitor-keys.json
rename to src/third_party/devtools/node_modules/eslint-visitor-keys/lib/visitor-keys.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint-visitor-keys/package.json b/src/third_party/devtools/node_modules/eslint-visitor-keys/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint-visitor-keys/package.json
rename to src/third_party/devtools/node_modules/eslint-visitor-keys/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/CHANGELOG.md b/src/third_party/devtools/node_modules/eslint/CHANGELOG.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/CHANGELOG.md
rename to src/third_party/devtools/node_modules/eslint/CHANGELOG.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/LICENSE b/src/third_party/devtools/node_modules/eslint/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/LICENSE
rename to src/third_party/devtools/node_modules/eslint/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/README.md b/src/third_party/devtools/node_modules/eslint/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/README.md
rename to src/third_party/devtools/node_modules/eslint/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/bin/eslint.js b/src/third_party/devtools/node_modules/eslint/bin/eslint.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/bin/eslint.js
rename to src/third_party/devtools/node_modules/eslint/bin/eslint.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/conf/category-list.json b/src/third_party/devtools/node_modules/eslint/conf/category-list.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/conf/category-list.json
rename to src/third_party/devtools/node_modules/eslint/conf/category-list.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/conf/config-schema.js b/src/third_party/devtools/node_modules/eslint/conf/config-schema.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/conf/config-schema.js
rename to src/third_party/devtools/node_modules/eslint/conf/config-schema.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/conf/default-cli-options.js b/src/third_party/devtools/node_modules/eslint/conf/default-cli-options.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/conf/default-cli-options.js
rename to src/third_party/devtools/node_modules/eslint/conf/default-cli-options.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/conf/environments.js b/src/third_party/devtools/node_modules/eslint/conf/environments.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/conf/environments.js
rename to src/third_party/devtools/node_modules/eslint/conf/environments.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/conf/eslint-all.js b/src/third_party/devtools/node_modules/eslint/conf/eslint-all.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/conf/eslint-all.js
rename to src/third_party/devtools/node_modules/eslint/conf/eslint-all.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/conf/eslint-recommended.js b/src/third_party/devtools/node_modules/eslint/conf/eslint-recommended.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/conf/eslint-recommended.js
rename to src/third_party/devtools/node_modules/eslint/conf/eslint-recommended.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/conf/replacements.json b/src/third_party/devtools/node_modules/eslint/conf/replacements.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/conf/replacements.json
rename to src/third_party/devtools/node_modules/eslint/conf/replacements.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/api.js b/src/third_party/devtools/node_modules/eslint/lib/api.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/api.js
rename to src/third_party/devtools/node_modules/eslint/lib/api.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/cli-engine/cascading-config-array-factory.js b/src/third_party/devtools/node_modules/eslint/lib/cli-engine/cascading-config-array-factory.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/cli-engine/cascading-config-array-factory.js
rename to src/third_party/devtools/node_modules/eslint/lib/cli-engine/cascading-config-array-factory.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/cli-engine/cli-engine.js b/src/third_party/devtools/node_modules/eslint/lib/cli-engine/cli-engine.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/cli-engine/cli-engine.js
rename to src/third_party/devtools/node_modules/eslint/lib/cli-engine/cli-engine.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/cli-engine/config-array-factory.js b/src/third_party/devtools/node_modules/eslint/lib/cli-engine/config-array-factory.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/cli-engine/config-array-factory.js
rename to src/third_party/devtools/node_modules/eslint/lib/cli-engine/config-array-factory.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/cli-engine/config-array/config-array.js b/src/third_party/devtools/node_modules/eslint/lib/cli-engine/config-array/config-array.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/cli-engine/config-array/config-array.js
rename to src/third_party/devtools/node_modules/eslint/lib/cli-engine/config-array/config-array.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/cli-engine/config-array/config-dependency.js b/src/third_party/devtools/node_modules/eslint/lib/cli-engine/config-array/config-dependency.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/cli-engine/config-array/config-dependency.js
rename to src/third_party/devtools/node_modules/eslint/lib/cli-engine/config-array/config-dependency.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/cli-engine/config-array/extracted-config.js b/src/third_party/devtools/node_modules/eslint/lib/cli-engine/config-array/extracted-config.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/cli-engine/config-array/extracted-config.js
rename to src/third_party/devtools/node_modules/eslint/lib/cli-engine/config-array/extracted-config.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/cli-engine/config-array/index.js b/src/third_party/devtools/node_modules/eslint/lib/cli-engine/config-array/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/cli-engine/config-array/index.js
rename to src/third_party/devtools/node_modules/eslint/lib/cli-engine/config-array/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/cli-engine/config-array/override-tester.js b/src/third_party/devtools/node_modules/eslint/lib/cli-engine/config-array/override-tester.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/cli-engine/config-array/override-tester.js
rename to src/third_party/devtools/node_modules/eslint/lib/cli-engine/config-array/override-tester.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/cli-engine/file-enumerator.js b/src/third_party/devtools/node_modules/eslint/lib/cli-engine/file-enumerator.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/cli-engine/file-enumerator.js
rename to src/third_party/devtools/node_modules/eslint/lib/cli-engine/file-enumerator.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/cli-engine/formatters/checkstyle.js b/src/third_party/devtools/node_modules/eslint/lib/cli-engine/formatters/checkstyle.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/cli-engine/formatters/checkstyle.js
rename to src/third_party/devtools/node_modules/eslint/lib/cli-engine/formatters/checkstyle.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/cli-engine/formatters/codeframe.js b/src/third_party/devtools/node_modules/eslint/lib/cli-engine/formatters/codeframe.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/cli-engine/formatters/codeframe.js
rename to src/third_party/devtools/node_modules/eslint/lib/cli-engine/formatters/codeframe.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/cli-engine/formatters/compact.js b/src/third_party/devtools/node_modules/eslint/lib/cli-engine/formatters/compact.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/cli-engine/formatters/compact.js
rename to src/third_party/devtools/node_modules/eslint/lib/cli-engine/formatters/compact.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/cli-engine/formatters/html-template-message.html b/src/third_party/devtools/node_modules/eslint/lib/cli-engine/formatters/html-template-message.html
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/cli-engine/formatters/html-template-message.html
rename to src/third_party/devtools/node_modules/eslint/lib/cli-engine/formatters/html-template-message.html
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/cli-engine/formatters/html-template-page.html b/src/third_party/devtools/node_modules/eslint/lib/cli-engine/formatters/html-template-page.html
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/cli-engine/formatters/html-template-page.html
rename to src/third_party/devtools/node_modules/eslint/lib/cli-engine/formatters/html-template-page.html
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/cli-engine/formatters/html-template-result.html b/src/third_party/devtools/node_modules/eslint/lib/cli-engine/formatters/html-template-result.html
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/cli-engine/formatters/html-template-result.html
rename to src/third_party/devtools/node_modules/eslint/lib/cli-engine/formatters/html-template-result.html
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/cli-engine/formatters/html.js b/src/third_party/devtools/node_modules/eslint/lib/cli-engine/formatters/html.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/cli-engine/formatters/html.js
rename to src/third_party/devtools/node_modules/eslint/lib/cli-engine/formatters/html.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/cli-engine/formatters/jslint-xml.js b/src/third_party/devtools/node_modules/eslint/lib/cli-engine/formatters/jslint-xml.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/cli-engine/formatters/jslint-xml.js
rename to src/third_party/devtools/node_modules/eslint/lib/cli-engine/formatters/jslint-xml.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/cli-engine/formatters/json-with-metadata.js b/src/third_party/devtools/node_modules/eslint/lib/cli-engine/formatters/json-with-metadata.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/cli-engine/formatters/json-with-metadata.js
rename to src/third_party/devtools/node_modules/eslint/lib/cli-engine/formatters/json-with-metadata.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/cli-engine/formatters/json.js b/src/third_party/devtools/node_modules/eslint/lib/cli-engine/formatters/json.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/cli-engine/formatters/json.js
rename to src/third_party/devtools/node_modules/eslint/lib/cli-engine/formatters/json.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/cli-engine/formatters/junit.js b/src/third_party/devtools/node_modules/eslint/lib/cli-engine/formatters/junit.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/cli-engine/formatters/junit.js
rename to src/third_party/devtools/node_modules/eslint/lib/cli-engine/formatters/junit.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/cli-engine/formatters/stylish.js b/src/third_party/devtools/node_modules/eslint/lib/cli-engine/formatters/stylish.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/cli-engine/formatters/stylish.js
rename to src/third_party/devtools/node_modules/eslint/lib/cli-engine/formatters/stylish.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/cli-engine/formatters/table.js b/src/third_party/devtools/node_modules/eslint/lib/cli-engine/formatters/table.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/cli-engine/formatters/table.js
rename to src/third_party/devtools/node_modules/eslint/lib/cli-engine/formatters/table.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/cli-engine/formatters/tap.js b/src/third_party/devtools/node_modules/eslint/lib/cli-engine/formatters/tap.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/cli-engine/formatters/tap.js
rename to src/third_party/devtools/node_modules/eslint/lib/cli-engine/formatters/tap.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/cli-engine/formatters/unix.js b/src/third_party/devtools/node_modules/eslint/lib/cli-engine/formatters/unix.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/cli-engine/formatters/unix.js
rename to src/third_party/devtools/node_modules/eslint/lib/cli-engine/formatters/unix.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/cli-engine/formatters/visualstudio.js b/src/third_party/devtools/node_modules/eslint/lib/cli-engine/formatters/visualstudio.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/cli-engine/formatters/visualstudio.js
rename to src/third_party/devtools/node_modules/eslint/lib/cli-engine/formatters/visualstudio.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/cli-engine/hash.js b/src/third_party/devtools/node_modules/eslint/lib/cli-engine/hash.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/cli-engine/hash.js
rename to src/third_party/devtools/node_modules/eslint/lib/cli-engine/hash.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/cli-engine/ignored-paths.js b/src/third_party/devtools/node_modules/eslint/lib/cli-engine/ignored-paths.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/cli-engine/ignored-paths.js
rename to src/third_party/devtools/node_modules/eslint/lib/cli-engine/ignored-paths.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/cli-engine/index.js b/src/third_party/devtools/node_modules/eslint/lib/cli-engine/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/cli-engine/index.js
rename to src/third_party/devtools/node_modules/eslint/lib/cli-engine/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/cli-engine/lint-result-cache.js b/src/third_party/devtools/node_modules/eslint/lib/cli-engine/lint-result-cache.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/cli-engine/lint-result-cache.js
rename to src/third_party/devtools/node_modules/eslint/lib/cli-engine/lint-result-cache.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/cli-engine/load-rules.js b/src/third_party/devtools/node_modules/eslint/lib/cli-engine/load-rules.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/cli-engine/load-rules.js
rename to src/third_party/devtools/node_modules/eslint/lib/cli-engine/load-rules.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/cli-engine/naming.js b/src/third_party/devtools/node_modules/eslint/lib/cli-engine/naming.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/cli-engine/naming.js
rename to src/third_party/devtools/node_modules/eslint/lib/cli-engine/naming.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/cli-engine/xml-escape.js b/src/third_party/devtools/node_modules/eslint/lib/cli-engine/xml-escape.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/cli-engine/xml-escape.js
rename to src/third_party/devtools/node_modules/eslint/lib/cli-engine/xml-escape.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/cli.js b/src/third_party/devtools/node_modules/eslint/lib/cli.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/cli.js
rename to src/third_party/devtools/node_modules/eslint/lib/cli.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/init/autoconfig.js b/src/third_party/devtools/node_modules/eslint/lib/init/autoconfig.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/init/autoconfig.js
rename to src/third_party/devtools/node_modules/eslint/lib/init/autoconfig.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/init/config-file.js b/src/third_party/devtools/node_modules/eslint/lib/init/config-file.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/init/config-file.js
rename to src/third_party/devtools/node_modules/eslint/lib/init/config-file.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/init/config-initializer.js b/src/third_party/devtools/node_modules/eslint/lib/init/config-initializer.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/init/config-initializer.js
rename to src/third_party/devtools/node_modules/eslint/lib/init/config-initializer.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/init/config-rule.js b/src/third_party/devtools/node_modules/eslint/lib/init/config-rule.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/init/config-rule.js
rename to src/third_party/devtools/node_modules/eslint/lib/init/config-rule.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/init/npm-utils.js b/src/third_party/devtools/node_modules/eslint/lib/init/npm-utils.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/init/npm-utils.js
rename to src/third_party/devtools/node_modules/eslint/lib/init/npm-utils.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/init/source-code-utils.js b/src/third_party/devtools/node_modules/eslint/lib/init/source-code-utils.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/init/source-code-utils.js
rename to src/third_party/devtools/node_modules/eslint/lib/init/source-code-utils.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/linter/apply-disable-directives.js b/src/third_party/devtools/node_modules/eslint/lib/linter/apply-disable-directives.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/linter/apply-disable-directives.js
rename to src/third_party/devtools/node_modules/eslint/lib/linter/apply-disable-directives.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/linter/code-path-analysis/code-path-analyzer.js b/src/third_party/devtools/node_modules/eslint/lib/linter/code-path-analysis/code-path-analyzer.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/linter/code-path-analysis/code-path-analyzer.js
rename to src/third_party/devtools/node_modules/eslint/lib/linter/code-path-analysis/code-path-analyzer.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/linter/code-path-analysis/code-path-segment.js b/src/third_party/devtools/node_modules/eslint/lib/linter/code-path-analysis/code-path-segment.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/linter/code-path-analysis/code-path-segment.js
rename to src/third_party/devtools/node_modules/eslint/lib/linter/code-path-analysis/code-path-segment.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/linter/code-path-analysis/code-path-state.js b/src/third_party/devtools/node_modules/eslint/lib/linter/code-path-analysis/code-path-state.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/linter/code-path-analysis/code-path-state.js
rename to src/third_party/devtools/node_modules/eslint/lib/linter/code-path-analysis/code-path-state.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/linter/code-path-analysis/code-path.js b/src/third_party/devtools/node_modules/eslint/lib/linter/code-path-analysis/code-path.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/linter/code-path-analysis/code-path.js
rename to src/third_party/devtools/node_modules/eslint/lib/linter/code-path-analysis/code-path.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/linter/code-path-analysis/debug-helpers.js b/src/third_party/devtools/node_modules/eslint/lib/linter/code-path-analysis/debug-helpers.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/linter/code-path-analysis/debug-helpers.js
rename to src/third_party/devtools/node_modules/eslint/lib/linter/code-path-analysis/debug-helpers.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/linter/code-path-analysis/fork-context.js b/src/third_party/devtools/node_modules/eslint/lib/linter/code-path-analysis/fork-context.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/linter/code-path-analysis/fork-context.js
rename to src/third_party/devtools/node_modules/eslint/lib/linter/code-path-analysis/fork-context.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/linter/code-path-analysis/id-generator.js b/src/third_party/devtools/node_modules/eslint/lib/linter/code-path-analysis/id-generator.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/linter/code-path-analysis/id-generator.js
rename to src/third_party/devtools/node_modules/eslint/lib/linter/code-path-analysis/id-generator.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/linter/config-comment-parser.js b/src/third_party/devtools/node_modules/eslint/lib/linter/config-comment-parser.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/linter/config-comment-parser.js
rename to src/third_party/devtools/node_modules/eslint/lib/linter/config-comment-parser.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/linter/index.js b/src/third_party/devtools/node_modules/eslint/lib/linter/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/linter/index.js
rename to src/third_party/devtools/node_modules/eslint/lib/linter/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/linter/interpolate.js b/src/third_party/devtools/node_modules/eslint/lib/linter/interpolate.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/linter/interpolate.js
rename to src/third_party/devtools/node_modules/eslint/lib/linter/interpolate.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/linter/linter.js b/src/third_party/devtools/node_modules/eslint/lib/linter/linter.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/linter/linter.js
rename to src/third_party/devtools/node_modules/eslint/lib/linter/linter.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/linter/node-event-generator.js b/src/third_party/devtools/node_modules/eslint/lib/linter/node-event-generator.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/linter/node-event-generator.js
rename to src/third_party/devtools/node_modules/eslint/lib/linter/node-event-generator.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/linter/report-translator.js b/src/third_party/devtools/node_modules/eslint/lib/linter/report-translator.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/linter/report-translator.js
rename to src/third_party/devtools/node_modules/eslint/lib/linter/report-translator.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/linter/rule-fixer.js b/src/third_party/devtools/node_modules/eslint/lib/linter/rule-fixer.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/linter/rule-fixer.js
rename to src/third_party/devtools/node_modules/eslint/lib/linter/rule-fixer.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/linter/rules.js b/src/third_party/devtools/node_modules/eslint/lib/linter/rules.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/linter/rules.js
rename to src/third_party/devtools/node_modules/eslint/lib/linter/rules.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/linter/safe-emitter.js b/src/third_party/devtools/node_modules/eslint/lib/linter/safe-emitter.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/linter/safe-emitter.js
rename to src/third_party/devtools/node_modules/eslint/lib/linter/safe-emitter.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/linter/source-code-fixer.js b/src/third_party/devtools/node_modules/eslint/lib/linter/source-code-fixer.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/linter/source-code-fixer.js
rename to src/third_party/devtools/node_modules/eslint/lib/linter/source-code-fixer.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/linter/timing.js b/src/third_party/devtools/node_modules/eslint/lib/linter/timing.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/linter/timing.js
rename to src/third_party/devtools/node_modules/eslint/lib/linter/timing.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/options.js b/src/third_party/devtools/node_modules/eslint/lib/options.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/options.js
rename to src/third_party/devtools/node_modules/eslint/lib/options.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rule-tester/index.js b/src/third_party/devtools/node_modules/eslint/lib/rule-tester/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rule-tester/index.js
rename to src/third_party/devtools/node_modules/eslint/lib/rule-tester/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rule-tester/rule-tester.js b/src/third_party/devtools/node_modules/eslint/lib/rule-tester/rule-tester.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rule-tester/rule-tester.js
rename to src/third_party/devtools/node_modules/eslint/lib/rule-tester/rule-tester.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/accessor-pairs.js b/src/third_party/devtools/node_modules/eslint/lib/rules/accessor-pairs.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/accessor-pairs.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/accessor-pairs.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/array-bracket-newline.js b/src/third_party/devtools/node_modules/eslint/lib/rules/array-bracket-newline.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/array-bracket-newline.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/array-bracket-newline.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/array-bracket-spacing.js b/src/third_party/devtools/node_modules/eslint/lib/rules/array-bracket-spacing.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/array-bracket-spacing.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/array-bracket-spacing.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/array-callback-return.js b/src/third_party/devtools/node_modules/eslint/lib/rules/array-callback-return.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/array-callback-return.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/array-callback-return.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/array-element-newline.js b/src/third_party/devtools/node_modules/eslint/lib/rules/array-element-newline.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/array-element-newline.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/array-element-newline.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/arrow-body-style.js b/src/third_party/devtools/node_modules/eslint/lib/rules/arrow-body-style.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/arrow-body-style.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/arrow-body-style.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/arrow-parens.js b/src/third_party/devtools/node_modules/eslint/lib/rules/arrow-parens.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/arrow-parens.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/arrow-parens.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/arrow-spacing.js b/src/third_party/devtools/node_modules/eslint/lib/rules/arrow-spacing.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/arrow-spacing.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/arrow-spacing.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/block-scoped-var.js b/src/third_party/devtools/node_modules/eslint/lib/rules/block-scoped-var.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/block-scoped-var.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/block-scoped-var.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/block-spacing.js b/src/third_party/devtools/node_modules/eslint/lib/rules/block-spacing.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/block-spacing.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/block-spacing.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/brace-style.js b/src/third_party/devtools/node_modules/eslint/lib/rules/brace-style.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/brace-style.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/brace-style.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/callback-return.js b/src/third_party/devtools/node_modules/eslint/lib/rules/callback-return.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/callback-return.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/callback-return.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/camelcase.js b/src/third_party/devtools/node_modules/eslint/lib/rules/camelcase.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/camelcase.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/camelcase.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/capitalized-comments.js b/src/third_party/devtools/node_modules/eslint/lib/rules/capitalized-comments.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/capitalized-comments.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/capitalized-comments.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/class-methods-use-this.js b/src/third_party/devtools/node_modules/eslint/lib/rules/class-methods-use-this.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/class-methods-use-this.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/class-methods-use-this.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/comma-dangle.js b/src/third_party/devtools/node_modules/eslint/lib/rules/comma-dangle.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/comma-dangle.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/comma-dangle.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/comma-spacing.js b/src/third_party/devtools/node_modules/eslint/lib/rules/comma-spacing.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/comma-spacing.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/comma-spacing.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/comma-style.js b/src/third_party/devtools/node_modules/eslint/lib/rules/comma-style.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/comma-style.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/comma-style.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/complexity.js b/src/third_party/devtools/node_modules/eslint/lib/rules/complexity.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/complexity.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/complexity.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/computed-property-spacing.js b/src/third_party/devtools/node_modules/eslint/lib/rules/computed-property-spacing.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/computed-property-spacing.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/computed-property-spacing.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/consistent-return.js b/src/third_party/devtools/node_modules/eslint/lib/rules/consistent-return.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/consistent-return.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/consistent-return.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/consistent-this.js b/src/third_party/devtools/node_modules/eslint/lib/rules/consistent-this.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/consistent-this.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/consistent-this.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/constructor-super.js b/src/third_party/devtools/node_modules/eslint/lib/rules/constructor-super.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/constructor-super.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/constructor-super.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/curly.js b/src/third_party/devtools/node_modules/eslint/lib/rules/curly.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/curly.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/curly.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/default-case.js b/src/third_party/devtools/node_modules/eslint/lib/rules/default-case.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/default-case.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/default-case.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/dot-location.js b/src/third_party/devtools/node_modules/eslint/lib/rules/dot-location.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/dot-location.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/dot-location.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/dot-notation.js b/src/third_party/devtools/node_modules/eslint/lib/rules/dot-notation.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/dot-notation.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/dot-notation.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/eol-last.js b/src/third_party/devtools/node_modules/eslint/lib/rules/eol-last.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/eol-last.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/eol-last.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/eqeqeq.js b/src/third_party/devtools/node_modules/eslint/lib/rules/eqeqeq.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/eqeqeq.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/eqeqeq.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/for-direction.js b/src/third_party/devtools/node_modules/eslint/lib/rules/for-direction.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/for-direction.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/for-direction.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/func-call-spacing.js b/src/third_party/devtools/node_modules/eslint/lib/rules/func-call-spacing.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/func-call-spacing.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/func-call-spacing.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/func-name-matching.js b/src/third_party/devtools/node_modules/eslint/lib/rules/func-name-matching.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/func-name-matching.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/func-name-matching.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/func-names.js b/src/third_party/devtools/node_modules/eslint/lib/rules/func-names.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/func-names.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/func-names.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/func-style.js b/src/third_party/devtools/node_modules/eslint/lib/rules/func-style.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/func-style.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/func-style.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/function-paren-newline.js b/src/third_party/devtools/node_modules/eslint/lib/rules/function-paren-newline.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/function-paren-newline.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/function-paren-newline.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/generator-star-spacing.js b/src/third_party/devtools/node_modules/eslint/lib/rules/generator-star-spacing.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/generator-star-spacing.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/generator-star-spacing.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/getter-return.js b/src/third_party/devtools/node_modules/eslint/lib/rules/getter-return.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/getter-return.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/getter-return.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/global-require.js b/src/third_party/devtools/node_modules/eslint/lib/rules/global-require.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/global-require.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/global-require.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/guard-for-in.js b/src/third_party/devtools/node_modules/eslint/lib/rules/guard-for-in.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/guard-for-in.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/guard-for-in.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/handle-callback-err.js b/src/third_party/devtools/node_modules/eslint/lib/rules/handle-callback-err.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/handle-callback-err.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/handle-callback-err.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/id-blacklist.js b/src/third_party/devtools/node_modules/eslint/lib/rules/id-blacklist.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/id-blacklist.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/id-blacklist.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/id-length.js b/src/third_party/devtools/node_modules/eslint/lib/rules/id-length.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/id-length.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/id-length.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/id-match.js b/src/third_party/devtools/node_modules/eslint/lib/rules/id-match.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/id-match.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/id-match.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/implicit-arrow-linebreak.js b/src/third_party/devtools/node_modules/eslint/lib/rules/implicit-arrow-linebreak.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/implicit-arrow-linebreak.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/implicit-arrow-linebreak.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/indent-legacy.js b/src/third_party/devtools/node_modules/eslint/lib/rules/indent-legacy.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/indent-legacy.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/indent-legacy.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/indent.js b/src/third_party/devtools/node_modules/eslint/lib/rules/indent.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/indent.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/indent.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/index.js b/src/third_party/devtools/node_modules/eslint/lib/rules/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/index.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/init-declarations.js b/src/third_party/devtools/node_modules/eslint/lib/rules/init-declarations.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/init-declarations.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/init-declarations.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/jsx-quotes.js b/src/third_party/devtools/node_modules/eslint/lib/rules/jsx-quotes.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/jsx-quotes.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/jsx-quotes.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/key-spacing.js b/src/third_party/devtools/node_modules/eslint/lib/rules/key-spacing.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/key-spacing.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/key-spacing.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/keyword-spacing.js b/src/third_party/devtools/node_modules/eslint/lib/rules/keyword-spacing.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/keyword-spacing.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/keyword-spacing.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/line-comment-position.js b/src/third_party/devtools/node_modules/eslint/lib/rules/line-comment-position.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/line-comment-position.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/line-comment-position.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/linebreak-style.js b/src/third_party/devtools/node_modules/eslint/lib/rules/linebreak-style.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/linebreak-style.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/linebreak-style.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/lines-around-comment.js b/src/third_party/devtools/node_modules/eslint/lib/rules/lines-around-comment.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/lines-around-comment.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/lines-around-comment.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/lines-around-directive.js b/src/third_party/devtools/node_modules/eslint/lib/rules/lines-around-directive.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/lines-around-directive.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/lines-around-directive.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/lines-between-class-members.js b/src/third_party/devtools/node_modules/eslint/lib/rules/lines-between-class-members.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/lines-between-class-members.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/lines-between-class-members.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/max-classes-per-file.js b/src/third_party/devtools/node_modules/eslint/lib/rules/max-classes-per-file.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/max-classes-per-file.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/max-classes-per-file.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/max-depth.js b/src/third_party/devtools/node_modules/eslint/lib/rules/max-depth.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/max-depth.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/max-depth.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/max-len.js b/src/third_party/devtools/node_modules/eslint/lib/rules/max-len.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/max-len.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/max-len.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/max-lines-per-function.js b/src/third_party/devtools/node_modules/eslint/lib/rules/max-lines-per-function.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/max-lines-per-function.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/max-lines-per-function.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/max-lines.js b/src/third_party/devtools/node_modules/eslint/lib/rules/max-lines.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/max-lines.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/max-lines.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/max-nested-callbacks.js b/src/third_party/devtools/node_modules/eslint/lib/rules/max-nested-callbacks.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/max-nested-callbacks.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/max-nested-callbacks.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/max-params.js b/src/third_party/devtools/node_modules/eslint/lib/rules/max-params.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/max-params.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/max-params.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/max-statements-per-line.js b/src/third_party/devtools/node_modules/eslint/lib/rules/max-statements-per-line.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/max-statements-per-line.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/max-statements-per-line.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/max-statements.js b/src/third_party/devtools/node_modules/eslint/lib/rules/max-statements.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/max-statements.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/max-statements.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/multiline-comment-style.js b/src/third_party/devtools/node_modules/eslint/lib/rules/multiline-comment-style.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/multiline-comment-style.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/multiline-comment-style.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/multiline-ternary.js b/src/third_party/devtools/node_modules/eslint/lib/rules/multiline-ternary.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/multiline-ternary.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/multiline-ternary.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/new-cap.js b/src/third_party/devtools/node_modules/eslint/lib/rules/new-cap.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/new-cap.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/new-cap.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/new-parens.js b/src/third_party/devtools/node_modules/eslint/lib/rules/new-parens.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/new-parens.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/new-parens.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/newline-after-var.js b/src/third_party/devtools/node_modules/eslint/lib/rules/newline-after-var.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/newline-after-var.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/newline-after-var.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/newline-before-return.js b/src/third_party/devtools/node_modules/eslint/lib/rules/newline-before-return.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/newline-before-return.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/newline-before-return.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/newline-per-chained-call.js b/src/third_party/devtools/node_modules/eslint/lib/rules/newline-per-chained-call.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/newline-per-chained-call.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/newline-per-chained-call.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-alert.js b/src/third_party/devtools/node_modules/eslint/lib/rules/no-alert.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-alert.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/no-alert.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-array-constructor.js b/src/third_party/devtools/node_modules/eslint/lib/rules/no-array-constructor.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-array-constructor.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/no-array-constructor.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-async-promise-executor.js b/src/third_party/devtools/node_modules/eslint/lib/rules/no-async-promise-executor.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-async-promise-executor.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/no-async-promise-executor.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-await-in-loop.js b/src/third_party/devtools/node_modules/eslint/lib/rules/no-await-in-loop.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-await-in-loop.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/no-await-in-loop.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-bitwise.js b/src/third_party/devtools/node_modules/eslint/lib/rules/no-bitwise.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-bitwise.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/no-bitwise.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-buffer-constructor.js b/src/third_party/devtools/node_modules/eslint/lib/rules/no-buffer-constructor.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-buffer-constructor.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/no-buffer-constructor.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-caller.js b/src/third_party/devtools/node_modules/eslint/lib/rules/no-caller.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-caller.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/no-caller.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-case-declarations.js b/src/third_party/devtools/node_modules/eslint/lib/rules/no-case-declarations.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-case-declarations.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/no-case-declarations.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-catch-shadow.js b/src/third_party/devtools/node_modules/eslint/lib/rules/no-catch-shadow.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-catch-shadow.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/no-catch-shadow.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-class-assign.js b/src/third_party/devtools/node_modules/eslint/lib/rules/no-class-assign.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-class-assign.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/no-class-assign.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-compare-neg-zero.js b/src/third_party/devtools/node_modules/eslint/lib/rules/no-compare-neg-zero.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-compare-neg-zero.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/no-compare-neg-zero.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-cond-assign.js b/src/third_party/devtools/node_modules/eslint/lib/rules/no-cond-assign.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-cond-assign.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/no-cond-assign.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-confusing-arrow.js b/src/third_party/devtools/node_modules/eslint/lib/rules/no-confusing-arrow.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-confusing-arrow.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/no-confusing-arrow.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-console.js b/src/third_party/devtools/node_modules/eslint/lib/rules/no-console.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-console.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/no-console.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-const-assign.js b/src/third_party/devtools/node_modules/eslint/lib/rules/no-const-assign.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-const-assign.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/no-const-assign.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-constant-condition.js b/src/third_party/devtools/node_modules/eslint/lib/rules/no-constant-condition.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-constant-condition.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/no-constant-condition.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-continue.js b/src/third_party/devtools/node_modules/eslint/lib/rules/no-continue.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-continue.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/no-continue.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-control-regex.js b/src/third_party/devtools/node_modules/eslint/lib/rules/no-control-regex.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-control-regex.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/no-control-regex.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-debugger.js b/src/third_party/devtools/node_modules/eslint/lib/rules/no-debugger.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-debugger.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/no-debugger.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-delete-var.js b/src/third_party/devtools/node_modules/eslint/lib/rules/no-delete-var.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-delete-var.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/no-delete-var.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-div-regex.js b/src/third_party/devtools/node_modules/eslint/lib/rules/no-div-regex.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-div-regex.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/no-div-regex.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-dupe-args.js b/src/third_party/devtools/node_modules/eslint/lib/rules/no-dupe-args.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-dupe-args.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/no-dupe-args.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-dupe-class-members.js b/src/third_party/devtools/node_modules/eslint/lib/rules/no-dupe-class-members.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-dupe-class-members.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/no-dupe-class-members.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-dupe-keys.js b/src/third_party/devtools/node_modules/eslint/lib/rules/no-dupe-keys.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-dupe-keys.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/no-dupe-keys.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-duplicate-case.js b/src/third_party/devtools/node_modules/eslint/lib/rules/no-duplicate-case.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-duplicate-case.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/no-duplicate-case.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-duplicate-imports.js b/src/third_party/devtools/node_modules/eslint/lib/rules/no-duplicate-imports.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-duplicate-imports.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/no-duplicate-imports.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-else-return.js b/src/third_party/devtools/node_modules/eslint/lib/rules/no-else-return.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-else-return.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/no-else-return.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-empty-character-class.js b/src/third_party/devtools/node_modules/eslint/lib/rules/no-empty-character-class.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-empty-character-class.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/no-empty-character-class.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-empty-function.js b/src/third_party/devtools/node_modules/eslint/lib/rules/no-empty-function.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-empty-function.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/no-empty-function.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-empty-pattern.js b/src/third_party/devtools/node_modules/eslint/lib/rules/no-empty-pattern.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-empty-pattern.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/no-empty-pattern.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-empty.js b/src/third_party/devtools/node_modules/eslint/lib/rules/no-empty.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-empty.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/no-empty.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-eq-null.js b/src/third_party/devtools/node_modules/eslint/lib/rules/no-eq-null.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-eq-null.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/no-eq-null.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-eval.js b/src/third_party/devtools/node_modules/eslint/lib/rules/no-eval.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-eval.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/no-eval.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-ex-assign.js b/src/third_party/devtools/node_modules/eslint/lib/rules/no-ex-assign.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-ex-assign.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/no-ex-assign.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-extend-native.js b/src/third_party/devtools/node_modules/eslint/lib/rules/no-extend-native.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-extend-native.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/no-extend-native.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-extra-bind.js b/src/third_party/devtools/node_modules/eslint/lib/rules/no-extra-bind.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-extra-bind.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/no-extra-bind.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-extra-boolean-cast.js b/src/third_party/devtools/node_modules/eslint/lib/rules/no-extra-boolean-cast.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-extra-boolean-cast.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/no-extra-boolean-cast.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-extra-label.js b/src/third_party/devtools/node_modules/eslint/lib/rules/no-extra-label.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-extra-label.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/no-extra-label.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-extra-parens.js b/src/third_party/devtools/node_modules/eslint/lib/rules/no-extra-parens.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-extra-parens.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/no-extra-parens.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-extra-semi.js b/src/third_party/devtools/node_modules/eslint/lib/rules/no-extra-semi.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-extra-semi.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/no-extra-semi.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-fallthrough.js b/src/third_party/devtools/node_modules/eslint/lib/rules/no-fallthrough.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-fallthrough.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/no-fallthrough.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-floating-decimal.js b/src/third_party/devtools/node_modules/eslint/lib/rules/no-floating-decimal.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-floating-decimal.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/no-floating-decimal.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-func-assign.js b/src/third_party/devtools/node_modules/eslint/lib/rules/no-func-assign.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-func-assign.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/no-func-assign.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-global-assign.js b/src/third_party/devtools/node_modules/eslint/lib/rules/no-global-assign.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-global-assign.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/no-global-assign.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-implicit-coercion.js b/src/third_party/devtools/node_modules/eslint/lib/rules/no-implicit-coercion.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-implicit-coercion.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/no-implicit-coercion.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-implicit-globals.js b/src/third_party/devtools/node_modules/eslint/lib/rules/no-implicit-globals.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-implicit-globals.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/no-implicit-globals.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-implied-eval.js b/src/third_party/devtools/node_modules/eslint/lib/rules/no-implied-eval.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-implied-eval.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/no-implied-eval.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-inline-comments.js b/src/third_party/devtools/node_modules/eslint/lib/rules/no-inline-comments.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-inline-comments.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/no-inline-comments.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-inner-declarations.js b/src/third_party/devtools/node_modules/eslint/lib/rules/no-inner-declarations.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-inner-declarations.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/no-inner-declarations.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-invalid-regexp.js b/src/third_party/devtools/node_modules/eslint/lib/rules/no-invalid-regexp.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-invalid-regexp.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/no-invalid-regexp.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-invalid-this.js b/src/third_party/devtools/node_modules/eslint/lib/rules/no-invalid-this.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-invalid-this.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/no-invalid-this.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-irregular-whitespace.js b/src/third_party/devtools/node_modules/eslint/lib/rules/no-irregular-whitespace.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-irregular-whitespace.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/no-irregular-whitespace.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-iterator.js b/src/third_party/devtools/node_modules/eslint/lib/rules/no-iterator.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-iterator.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/no-iterator.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-label-var.js b/src/third_party/devtools/node_modules/eslint/lib/rules/no-label-var.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-label-var.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/no-label-var.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-labels.js b/src/third_party/devtools/node_modules/eslint/lib/rules/no-labels.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-labels.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/no-labels.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-lone-blocks.js b/src/third_party/devtools/node_modules/eslint/lib/rules/no-lone-blocks.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-lone-blocks.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/no-lone-blocks.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-lonely-if.js b/src/third_party/devtools/node_modules/eslint/lib/rules/no-lonely-if.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-lonely-if.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/no-lonely-if.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-loop-func.js b/src/third_party/devtools/node_modules/eslint/lib/rules/no-loop-func.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-loop-func.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/no-loop-func.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-magic-numbers.js b/src/third_party/devtools/node_modules/eslint/lib/rules/no-magic-numbers.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-magic-numbers.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/no-magic-numbers.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-misleading-character-class.js b/src/third_party/devtools/node_modules/eslint/lib/rules/no-misleading-character-class.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-misleading-character-class.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/no-misleading-character-class.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-mixed-operators.js b/src/third_party/devtools/node_modules/eslint/lib/rules/no-mixed-operators.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-mixed-operators.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/no-mixed-operators.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-mixed-requires.js b/src/third_party/devtools/node_modules/eslint/lib/rules/no-mixed-requires.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-mixed-requires.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/no-mixed-requires.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-mixed-spaces-and-tabs.js b/src/third_party/devtools/node_modules/eslint/lib/rules/no-mixed-spaces-and-tabs.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-mixed-spaces-and-tabs.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/no-mixed-spaces-and-tabs.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-multi-assign.js b/src/third_party/devtools/node_modules/eslint/lib/rules/no-multi-assign.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-multi-assign.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/no-multi-assign.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-multi-spaces.js b/src/third_party/devtools/node_modules/eslint/lib/rules/no-multi-spaces.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-multi-spaces.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/no-multi-spaces.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-multi-str.js b/src/third_party/devtools/node_modules/eslint/lib/rules/no-multi-str.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-multi-str.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/no-multi-str.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-multiple-empty-lines.js b/src/third_party/devtools/node_modules/eslint/lib/rules/no-multiple-empty-lines.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-multiple-empty-lines.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/no-multiple-empty-lines.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-native-reassign.js b/src/third_party/devtools/node_modules/eslint/lib/rules/no-native-reassign.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-native-reassign.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/no-native-reassign.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-negated-condition.js b/src/third_party/devtools/node_modules/eslint/lib/rules/no-negated-condition.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-negated-condition.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/no-negated-condition.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-negated-in-lhs.js b/src/third_party/devtools/node_modules/eslint/lib/rules/no-negated-in-lhs.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-negated-in-lhs.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/no-negated-in-lhs.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-nested-ternary.js b/src/third_party/devtools/node_modules/eslint/lib/rules/no-nested-ternary.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-nested-ternary.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/no-nested-ternary.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-new-func.js b/src/third_party/devtools/node_modules/eslint/lib/rules/no-new-func.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-new-func.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/no-new-func.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-new-object.js b/src/third_party/devtools/node_modules/eslint/lib/rules/no-new-object.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-new-object.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/no-new-object.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-new-require.js b/src/third_party/devtools/node_modules/eslint/lib/rules/no-new-require.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-new-require.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/no-new-require.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-new-symbol.js b/src/third_party/devtools/node_modules/eslint/lib/rules/no-new-symbol.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-new-symbol.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/no-new-symbol.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-new-wrappers.js b/src/third_party/devtools/node_modules/eslint/lib/rules/no-new-wrappers.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-new-wrappers.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/no-new-wrappers.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-new.js b/src/third_party/devtools/node_modules/eslint/lib/rules/no-new.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-new.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/no-new.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-obj-calls.js b/src/third_party/devtools/node_modules/eslint/lib/rules/no-obj-calls.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-obj-calls.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/no-obj-calls.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-octal-escape.js b/src/third_party/devtools/node_modules/eslint/lib/rules/no-octal-escape.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-octal-escape.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/no-octal-escape.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-octal.js b/src/third_party/devtools/node_modules/eslint/lib/rules/no-octal.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-octal.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/no-octal.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-param-reassign.js b/src/third_party/devtools/node_modules/eslint/lib/rules/no-param-reassign.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-param-reassign.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/no-param-reassign.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-path-concat.js b/src/third_party/devtools/node_modules/eslint/lib/rules/no-path-concat.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-path-concat.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/no-path-concat.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-plusplus.js b/src/third_party/devtools/node_modules/eslint/lib/rules/no-plusplus.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-plusplus.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/no-plusplus.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-process-env.js b/src/third_party/devtools/node_modules/eslint/lib/rules/no-process-env.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-process-env.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/no-process-env.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-process-exit.js b/src/third_party/devtools/node_modules/eslint/lib/rules/no-process-exit.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-process-exit.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/no-process-exit.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-proto.js b/src/third_party/devtools/node_modules/eslint/lib/rules/no-proto.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-proto.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/no-proto.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-prototype-builtins.js b/src/third_party/devtools/node_modules/eslint/lib/rules/no-prototype-builtins.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-prototype-builtins.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/no-prototype-builtins.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-redeclare.js b/src/third_party/devtools/node_modules/eslint/lib/rules/no-redeclare.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-redeclare.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/no-redeclare.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-regex-spaces.js b/src/third_party/devtools/node_modules/eslint/lib/rules/no-regex-spaces.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-regex-spaces.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/no-regex-spaces.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-restricted-globals.js b/src/third_party/devtools/node_modules/eslint/lib/rules/no-restricted-globals.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-restricted-globals.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/no-restricted-globals.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-restricted-imports.js b/src/third_party/devtools/node_modules/eslint/lib/rules/no-restricted-imports.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-restricted-imports.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/no-restricted-imports.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-restricted-modules.js b/src/third_party/devtools/node_modules/eslint/lib/rules/no-restricted-modules.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-restricted-modules.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/no-restricted-modules.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-restricted-properties.js b/src/third_party/devtools/node_modules/eslint/lib/rules/no-restricted-properties.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-restricted-properties.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/no-restricted-properties.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-restricted-syntax.js b/src/third_party/devtools/node_modules/eslint/lib/rules/no-restricted-syntax.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-restricted-syntax.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/no-restricted-syntax.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-return-assign.js b/src/third_party/devtools/node_modules/eslint/lib/rules/no-return-assign.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-return-assign.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/no-return-assign.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-return-await.js b/src/third_party/devtools/node_modules/eslint/lib/rules/no-return-await.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-return-await.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/no-return-await.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-script-url.js b/src/third_party/devtools/node_modules/eslint/lib/rules/no-script-url.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-script-url.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/no-script-url.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-self-assign.js b/src/third_party/devtools/node_modules/eslint/lib/rules/no-self-assign.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-self-assign.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/no-self-assign.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-self-compare.js b/src/third_party/devtools/node_modules/eslint/lib/rules/no-self-compare.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-self-compare.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/no-self-compare.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-sequences.js b/src/third_party/devtools/node_modules/eslint/lib/rules/no-sequences.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-sequences.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/no-sequences.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-shadow-restricted-names.js b/src/third_party/devtools/node_modules/eslint/lib/rules/no-shadow-restricted-names.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-shadow-restricted-names.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/no-shadow-restricted-names.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-shadow.js b/src/third_party/devtools/node_modules/eslint/lib/rules/no-shadow.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-shadow.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/no-shadow.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-spaced-func.js b/src/third_party/devtools/node_modules/eslint/lib/rules/no-spaced-func.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-spaced-func.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/no-spaced-func.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-sparse-arrays.js b/src/third_party/devtools/node_modules/eslint/lib/rules/no-sparse-arrays.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-sparse-arrays.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/no-sparse-arrays.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-sync.js b/src/third_party/devtools/node_modules/eslint/lib/rules/no-sync.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-sync.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/no-sync.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-tabs.js b/src/third_party/devtools/node_modules/eslint/lib/rules/no-tabs.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-tabs.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/no-tabs.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-template-curly-in-string.js b/src/third_party/devtools/node_modules/eslint/lib/rules/no-template-curly-in-string.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-template-curly-in-string.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/no-template-curly-in-string.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-ternary.js b/src/third_party/devtools/node_modules/eslint/lib/rules/no-ternary.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-ternary.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/no-ternary.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-this-before-super.js b/src/third_party/devtools/node_modules/eslint/lib/rules/no-this-before-super.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-this-before-super.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/no-this-before-super.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-throw-literal.js b/src/third_party/devtools/node_modules/eslint/lib/rules/no-throw-literal.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-throw-literal.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/no-throw-literal.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-trailing-spaces.js b/src/third_party/devtools/node_modules/eslint/lib/rules/no-trailing-spaces.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-trailing-spaces.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/no-trailing-spaces.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-undef-init.js b/src/third_party/devtools/node_modules/eslint/lib/rules/no-undef-init.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-undef-init.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/no-undef-init.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-undef.js b/src/third_party/devtools/node_modules/eslint/lib/rules/no-undef.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-undef.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/no-undef.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-undefined.js b/src/third_party/devtools/node_modules/eslint/lib/rules/no-undefined.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-undefined.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/no-undefined.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-underscore-dangle.js b/src/third_party/devtools/node_modules/eslint/lib/rules/no-underscore-dangle.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-underscore-dangle.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/no-underscore-dangle.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-unexpected-multiline.js b/src/third_party/devtools/node_modules/eslint/lib/rules/no-unexpected-multiline.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-unexpected-multiline.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/no-unexpected-multiline.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-unmodified-loop-condition.js b/src/third_party/devtools/node_modules/eslint/lib/rules/no-unmodified-loop-condition.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-unmodified-loop-condition.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/no-unmodified-loop-condition.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-unneeded-ternary.js b/src/third_party/devtools/node_modules/eslint/lib/rules/no-unneeded-ternary.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-unneeded-ternary.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/no-unneeded-ternary.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-unreachable.js b/src/third_party/devtools/node_modules/eslint/lib/rules/no-unreachable.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-unreachable.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/no-unreachable.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-unsafe-finally.js b/src/third_party/devtools/node_modules/eslint/lib/rules/no-unsafe-finally.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-unsafe-finally.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/no-unsafe-finally.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-unsafe-negation.js b/src/third_party/devtools/node_modules/eslint/lib/rules/no-unsafe-negation.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-unsafe-negation.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/no-unsafe-negation.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-unused-expressions.js b/src/third_party/devtools/node_modules/eslint/lib/rules/no-unused-expressions.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-unused-expressions.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/no-unused-expressions.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-unused-labels.js b/src/third_party/devtools/node_modules/eslint/lib/rules/no-unused-labels.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-unused-labels.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/no-unused-labels.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-unused-vars.js b/src/third_party/devtools/node_modules/eslint/lib/rules/no-unused-vars.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-unused-vars.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/no-unused-vars.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-use-before-define.js b/src/third_party/devtools/node_modules/eslint/lib/rules/no-use-before-define.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-use-before-define.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/no-use-before-define.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-useless-call.js b/src/third_party/devtools/node_modules/eslint/lib/rules/no-useless-call.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-useless-call.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/no-useless-call.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-useless-catch.js b/src/third_party/devtools/node_modules/eslint/lib/rules/no-useless-catch.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-useless-catch.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/no-useless-catch.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-useless-computed-key.js b/src/third_party/devtools/node_modules/eslint/lib/rules/no-useless-computed-key.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-useless-computed-key.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/no-useless-computed-key.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-useless-concat.js b/src/third_party/devtools/node_modules/eslint/lib/rules/no-useless-concat.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-useless-concat.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/no-useless-concat.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-useless-constructor.js b/src/third_party/devtools/node_modules/eslint/lib/rules/no-useless-constructor.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-useless-constructor.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/no-useless-constructor.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-useless-escape.js b/src/third_party/devtools/node_modules/eslint/lib/rules/no-useless-escape.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-useless-escape.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/no-useless-escape.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-useless-rename.js b/src/third_party/devtools/node_modules/eslint/lib/rules/no-useless-rename.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-useless-rename.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/no-useless-rename.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-useless-return.js b/src/third_party/devtools/node_modules/eslint/lib/rules/no-useless-return.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-useless-return.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/no-useless-return.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-var.js b/src/third_party/devtools/node_modules/eslint/lib/rules/no-var.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-var.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/no-var.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-void.js b/src/third_party/devtools/node_modules/eslint/lib/rules/no-void.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-void.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/no-void.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-warning-comments.js b/src/third_party/devtools/node_modules/eslint/lib/rules/no-warning-comments.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-warning-comments.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/no-warning-comments.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-whitespace-before-property.js b/src/third_party/devtools/node_modules/eslint/lib/rules/no-whitespace-before-property.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-whitespace-before-property.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/no-whitespace-before-property.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-with.js b/src/third_party/devtools/node_modules/eslint/lib/rules/no-with.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/no-with.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/no-with.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/nonblock-statement-body-position.js b/src/third_party/devtools/node_modules/eslint/lib/rules/nonblock-statement-body-position.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/nonblock-statement-body-position.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/nonblock-statement-body-position.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/object-curly-newline.js b/src/third_party/devtools/node_modules/eslint/lib/rules/object-curly-newline.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/object-curly-newline.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/object-curly-newline.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/object-curly-spacing.js b/src/third_party/devtools/node_modules/eslint/lib/rules/object-curly-spacing.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/object-curly-spacing.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/object-curly-spacing.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/object-property-newline.js b/src/third_party/devtools/node_modules/eslint/lib/rules/object-property-newline.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/object-property-newline.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/object-property-newline.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/object-shorthand.js b/src/third_party/devtools/node_modules/eslint/lib/rules/object-shorthand.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/object-shorthand.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/object-shorthand.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/one-var-declaration-per-line.js b/src/third_party/devtools/node_modules/eslint/lib/rules/one-var-declaration-per-line.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/one-var-declaration-per-line.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/one-var-declaration-per-line.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/one-var.js b/src/third_party/devtools/node_modules/eslint/lib/rules/one-var.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/one-var.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/one-var.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/operator-assignment.js b/src/third_party/devtools/node_modules/eslint/lib/rules/operator-assignment.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/operator-assignment.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/operator-assignment.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/operator-linebreak.js b/src/third_party/devtools/node_modules/eslint/lib/rules/operator-linebreak.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/operator-linebreak.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/operator-linebreak.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/padded-blocks.js b/src/third_party/devtools/node_modules/eslint/lib/rules/padded-blocks.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/padded-blocks.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/padded-blocks.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/padding-line-between-statements.js b/src/third_party/devtools/node_modules/eslint/lib/rules/padding-line-between-statements.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/padding-line-between-statements.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/padding-line-between-statements.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/prefer-arrow-callback.js b/src/third_party/devtools/node_modules/eslint/lib/rules/prefer-arrow-callback.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/prefer-arrow-callback.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/prefer-arrow-callback.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/prefer-const.js b/src/third_party/devtools/node_modules/eslint/lib/rules/prefer-const.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/prefer-const.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/prefer-const.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/prefer-destructuring.js b/src/third_party/devtools/node_modules/eslint/lib/rules/prefer-destructuring.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/prefer-destructuring.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/prefer-destructuring.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/prefer-named-capture-group.js b/src/third_party/devtools/node_modules/eslint/lib/rules/prefer-named-capture-group.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/prefer-named-capture-group.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/prefer-named-capture-group.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/prefer-numeric-literals.js b/src/third_party/devtools/node_modules/eslint/lib/rules/prefer-numeric-literals.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/prefer-numeric-literals.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/prefer-numeric-literals.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/prefer-object-spread.js b/src/third_party/devtools/node_modules/eslint/lib/rules/prefer-object-spread.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/prefer-object-spread.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/prefer-object-spread.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/prefer-promise-reject-errors.js b/src/third_party/devtools/node_modules/eslint/lib/rules/prefer-promise-reject-errors.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/prefer-promise-reject-errors.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/prefer-promise-reject-errors.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/prefer-reflect.js b/src/third_party/devtools/node_modules/eslint/lib/rules/prefer-reflect.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/prefer-reflect.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/prefer-reflect.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/prefer-rest-params.js b/src/third_party/devtools/node_modules/eslint/lib/rules/prefer-rest-params.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/prefer-rest-params.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/prefer-rest-params.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/prefer-spread.js b/src/third_party/devtools/node_modules/eslint/lib/rules/prefer-spread.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/prefer-spread.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/prefer-spread.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/prefer-template.js b/src/third_party/devtools/node_modules/eslint/lib/rules/prefer-template.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/prefer-template.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/prefer-template.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/quote-props.js b/src/third_party/devtools/node_modules/eslint/lib/rules/quote-props.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/quote-props.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/quote-props.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/quotes.js b/src/third_party/devtools/node_modules/eslint/lib/rules/quotes.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/quotes.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/quotes.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/radix.js b/src/third_party/devtools/node_modules/eslint/lib/rules/radix.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/radix.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/radix.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/require-atomic-updates.js b/src/third_party/devtools/node_modules/eslint/lib/rules/require-atomic-updates.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/require-atomic-updates.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/require-atomic-updates.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/require-await.js b/src/third_party/devtools/node_modules/eslint/lib/rules/require-await.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/require-await.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/require-await.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/require-jsdoc.js b/src/third_party/devtools/node_modules/eslint/lib/rules/require-jsdoc.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/require-jsdoc.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/require-jsdoc.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/require-unicode-regexp.js b/src/third_party/devtools/node_modules/eslint/lib/rules/require-unicode-regexp.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/require-unicode-regexp.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/require-unicode-regexp.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/require-yield.js b/src/third_party/devtools/node_modules/eslint/lib/rules/require-yield.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/require-yield.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/require-yield.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/rest-spread-spacing.js b/src/third_party/devtools/node_modules/eslint/lib/rules/rest-spread-spacing.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/rest-spread-spacing.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/rest-spread-spacing.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/semi-spacing.js b/src/third_party/devtools/node_modules/eslint/lib/rules/semi-spacing.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/semi-spacing.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/semi-spacing.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/semi-style.js b/src/third_party/devtools/node_modules/eslint/lib/rules/semi-style.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/semi-style.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/semi-style.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/semi.js b/src/third_party/devtools/node_modules/eslint/lib/rules/semi.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/semi.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/semi.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/sort-imports.js b/src/third_party/devtools/node_modules/eslint/lib/rules/sort-imports.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/sort-imports.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/sort-imports.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/sort-keys.js b/src/third_party/devtools/node_modules/eslint/lib/rules/sort-keys.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/sort-keys.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/sort-keys.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/sort-vars.js b/src/third_party/devtools/node_modules/eslint/lib/rules/sort-vars.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/sort-vars.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/sort-vars.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/space-before-blocks.js b/src/third_party/devtools/node_modules/eslint/lib/rules/space-before-blocks.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/space-before-blocks.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/space-before-blocks.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/space-before-function-paren.js b/src/third_party/devtools/node_modules/eslint/lib/rules/space-before-function-paren.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/space-before-function-paren.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/space-before-function-paren.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/space-in-parens.js b/src/third_party/devtools/node_modules/eslint/lib/rules/space-in-parens.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/space-in-parens.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/space-in-parens.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/space-infix-ops.js b/src/third_party/devtools/node_modules/eslint/lib/rules/space-infix-ops.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/space-infix-ops.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/space-infix-ops.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/space-unary-ops.js b/src/third_party/devtools/node_modules/eslint/lib/rules/space-unary-ops.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/space-unary-ops.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/space-unary-ops.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/spaced-comment.js b/src/third_party/devtools/node_modules/eslint/lib/rules/spaced-comment.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/spaced-comment.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/spaced-comment.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/strict.js b/src/third_party/devtools/node_modules/eslint/lib/rules/strict.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/strict.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/strict.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/switch-colon-spacing.js b/src/third_party/devtools/node_modules/eslint/lib/rules/switch-colon-spacing.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/switch-colon-spacing.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/switch-colon-spacing.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/symbol-description.js b/src/third_party/devtools/node_modules/eslint/lib/rules/symbol-description.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/symbol-description.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/symbol-description.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/template-curly-spacing.js b/src/third_party/devtools/node_modules/eslint/lib/rules/template-curly-spacing.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/template-curly-spacing.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/template-curly-spacing.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/template-tag-spacing.js b/src/third_party/devtools/node_modules/eslint/lib/rules/template-tag-spacing.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/template-tag-spacing.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/template-tag-spacing.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/unicode-bom.js b/src/third_party/devtools/node_modules/eslint/lib/rules/unicode-bom.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/unicode-bom.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/unicode-bom.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/use-isnan.js b/src/third_party/devtools/node_modules/eslint/lib/rules/use-isnan.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/use-isnan.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/use-isnan.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/utils/ast-utils.js b/src/third_party/devtools/node_modules/eslint/lib/rules/utils/ast-utils.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/utils/ast-utils.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/utils/ast-utils.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/utils/fix-tracker.js b/src/third_party/devtools/node_modules/eslint/lib/rules/utils/fix-tracker.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/utils/fix-tracker.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/utils/fix-tracker.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/utils/keywords.js b/src/third_party/devtools/node_modules/eslint/lib/rules/utils/keywords.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/utils/keywords.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/utils/keywords.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/utils/lazy-loading-rule-map.js b/src/third_party/devtools/node_modules/eslint/lib/rules/utils/lazy-loading-rule-map.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/utils/lazy-loading-rule-map.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/utils/lazy-loading-rule-map.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/utils/patterns/letters.js b/src/third_party/devtools/node_modules/eslint/lib/rules/utils/patterns/letters.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/utils/patterns/letters.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/utils/patterns/letters.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/utils/unicode/index.js b/src/third_party/devtools/node_modules/eslint/lib/rules/utils/unicode/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/utils/unicode/index.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/utils/unicode/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/utils/unicode/is-combining-character.js b/src/third_party/devtools/node_modules/eslint/lib/rules/utils/unicode/is-combining-character.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/utils/unicode/is-combining-character.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/utils/unicode/is-combining-character.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/utils/unicode/is-emoji-modifier.js b/src/third_party/devtools/node_modules/eslint/lib/rules/utils/unicode/is-emoji-modifier.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/utils/unicode/is-emoji-modifier.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/utils/unicode/is-emoji-modifier.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/utils/unicode/is-regional-indicator-symbol.js b/src/third_party/devtools/node_modules/eslint/lib/rules/utils/unicode/is-regional-indicator-symbol.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/utils/unicode/is-regional-indicator-symbol.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/utils/unicode/is-regional-indicator-symbol.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/utils/unicode/is-surrogate-pair.js b/src/third_party/devtools/node_modules/eslint/lib/rules/utils/unicode/is-surrogate-pair.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/utils/unicode/is-surrogate-pair.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/utils/unicode/is-surrogate-pair.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/valid-jsdoc.js b/src/third_party/devtools/node_modules/eslint/lib/rules/valid-jsdoc.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/valid-jsdoc.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/valid-jsdoc.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/valid-typeof.js b/src/third_party/devtools/node_modules/eslint/lib/rules/valid-typeof.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/valid-typeof.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/valid-typeof.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/vars-on-top.js b/src/third_party/devtools/node_modules/eslint/lib/rules/vars-on-top.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/vars-on-top.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/vars-on-top.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/wrap-iife.js b/src/third_party/devtools/node_modules/eslint/lib/rules/wrap-iife.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/wrap-iife.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/wrap-iife.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/wrap-regex.js b/src/third_party/devtools/node_modules/eslint/lib/rules/wrap-regex.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/wrap-regex.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/wrap-regex.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/yield-star-spacing.js b/src/third_party/devtools/node_modules/eslint/lib/rules/yield-star-spacing.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/yield-star-spacing.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/yield-star-spacing.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/yoda.js b/src/third_party/devtools/node_modules/eslint/lib/rules/yoda.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/rules/yoda.js
rename to src/third_party/devtools/node_modules/eslint/lib/rules/yoda.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/shared/ajv.js b/src/third_party/devtools/node_modules/eslint/lib/shared/ajv.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/shared/ajv.js
rename to src/third_party/devtools/node_modules/eslint/lib/shared/ajv.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/shared/ast-utils.js b/src/third_party/devtools/node_modules/eslint/lib/shared/ast-utils.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/shared/ast-utils.js
rename to src/third_party/devtools/node_modules/eslint/lib/shared/ast-utils.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/shared/config-ops.js b/src/third_party/devtools/node_modules/eslint/lib/shared/config-ops.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/shared/config-ops.js
rename to src/third_party/devtools/node_modules/eslint/lib/shared/config-ops.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/shared/config-validator.js b/src/third_party/devtools/node_modules/eslint/lib/shared/config-validator.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/shared/config-validator.js
rename to src/third_party/devtools/node_modules/eslint/lib/shared/config-validator.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/shared/logging.js b/src/third_party/devtools/node_modules/eslint/lib/shared/logging.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/shared/logging.js
rename to src/third_party/devtools/node_modules/eslint/lib/shared/logging.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/shared/relative-module-resolver.js b/src/third_party/devtools/node_modules/eslint/lib/shared/relative-module-resolver.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/shared/relative-module-resolver.js
rename to src/third_party/devtools/node_modules/eslint/lib/shared/relative-module-resolver.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/shared/traverser.js b/src/third_party/devtools/node_modules/eslint/lib/shared/traverser.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/shared/traverser.js
rename to src/third_party/devtools/node_modules/eslint/lib/shared/traverser.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/shared/types.js b/src/third_party/devtools/node_modules/eslint/lib/shared/types.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/shared/types.js
rename to src/third_party/devtools/node_modules/eslint/lib/shared/types.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/source-code/index.js b/src/third_party/devtools/node_modules/eslint/lib/source-code/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/source-code/index.js
rename to src/third_party/devtools/node_modules/eslint/lib/source-code/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/source-code/source-code.js b/src/third_party/devtools/node_modules/eslint/lib/source-code/source-code.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/source-code/source-code.js
rename to src/third_party/devtools/node_modules/eslint/lib/source-code/source-code.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/source-code/token-store/backward-token-comment-cursor.js b/src/third_party/devtools/node_modules/eslint/lib/source-code/token-store/backward-token-comment-cursor.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/source-code/token-store/backward-token-comment-cursor.js
rename to src/third_party/devtools/node_modules/eslint/lib/source-code/token-store/backward-token-comment-cursor.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/source-code/token-store/backward-token-cursor.js b/src/third_party/devtools/node_modules/eslint/lib/source-code/token-store/backward-token-cursor.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/source-code/token-store/backward-token-cursor.js
rename to src/third_party/devtools/node_modules/eslint/lib/source-code/token-store/backward-token-cursor.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/source-code/token-store/cursor.js b/src/third_party/devtools/node_modules/eslint/lib/source-code/token-store/cursor.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/source-code/token-store/cursor.js
rename to src/third_party/devtools/node_modules/eslint/lib/source-code/token-store/cursor.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/source-code/token-store/cursors.js b/src/third_party/devtools/node_modules/eslint/lib/source-code/token-store/cursors.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/source-code/token-store/cursors.js
rename to src/third_party/devtools/node_modules/eslint/lib/source-code/token-store/cursors.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/source-code/token-store/decorative-cursor.js b/src/third_party/devtools/node_modules/eslint/lib/source-code/token-store/decorative-cursor.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/source-code/token-store/decorative-cursor.js
rename to src/third_party/devtools/node_modules/eslint/lib/source-code/token-store/decorative-cursor.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/source-code/token-store/filter-cursor.js b/src/third_party/devtools/node_modules/eslint/lib/source-code/token-store/filter-cursor.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/source-code/token-store/filter-cursor.js
rename to src/third_party/devtools/node_modules/eslint/lib/source-code/token-store/filter-cursor.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/source-code/token-store/forward-token-comment-cursor.js b/src/third_party/devtools/node_modules/eslint/lib/source-code/token-store/forward-token-comment-cursor.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/source-code/token-store/forward-token-comment-cursor.js
rename to src/third_party/devtools/node_modules/eslint/lib/source-code/token-store/forward-token-comment-cursor.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/source-code/token-store/forward-token-cursor.js b/src/third_party/devtools/node_modules/eslint/lib/source-code/token-store/forward-token-cursor.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/source-code/token-store/forward-token-cursor.js
rename to src/third_party/devtools/node_modules/eslint/lib/source-code/token-store/forward-token-cursor.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/source-code/token-store/index.js b/src/third_party/devtools/node_modules/eslint/lib/source-code/token-store/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/source-code/token-store/index.js
rename to src/third_party/devtools/node_modules/eslint/lib/source-code/token-store/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/source-code/token-store/limit-cursor.js b/src/third_party/devtools/node_modules/eslint/lib/source-code/token-store/limit-cursor.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/source-code/token-store/limit-cursor.js
rename to src/third_party/devtools/node_modules/eslint/lib/source-code/token-store/limit-cursor.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/source-code/token-store/padded-token-cursor.js b/src/third_party/devtools/node_modules/eslint/lib/source-code/token-store/padded-token-cursor.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/source-code/token-store/padded-token-cursor.js
rename to src/third_party/devtools/node_modules/eslint/lib/source-code/token-store/padded-token-cursor.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/source-code/token-store/skip-cursor.js b/src/third_party/devtools/node_modules/eslint/lib/source-code/token-store/skip-cursor.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/source-code/token-store/skip-cursor.js
rename to src/third_party/devtools/node_modules/eslint/lib/source-code/token-store/skip-cursor.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/lib/source-code/token-store/utils.js b/src/third_party/devtools/node_modules/eslint/lib/source-code/token-store/utils.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/lib/source-code/token-store/utils.js
rename to src/third_party/devtools/node_modules/eslint/lib/source-code/token-store/utils.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/messages/all-files-ignored.txt b/src/third_party/devtools/node_modules/eslint/messages/all-files-ignored.txt
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/messages/all-files-ignored.txt
rename to src/third_party/devtools/node_modules/eslint/messages/all-files-ignored.txt
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/messages/extend-config-missing.txt b/src/third_party/devtools/node_modules/eslint/messages/extend-config-missing.txt
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/messages/extend-config-missing.txt
rename to src/third_party/devtools/node_modules/eslint/messages/extend-config-missing.txt
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/messages/failed-to-read-json.txt b/src/third_party/devtools/node_modules/eslint/messages/failed-to-read-json.txt
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/messages/failed-to-read-json.txt
rename to src/third_party/devtools/node_modules/eslint/messages/failed-to-read-json.txt
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/messages/file-not-found.txt b/src/third_party/devtools/node_modules/eslint/messages/file-not-found.txt
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/messages/file-not-found.txt
rename to src/third_party/devtools/node_modules/eslint/messages/file-not-found.txt
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/messages/no-config-found.txt b/src/third_party/devtools/node_modules/eslint/messages/no-config-found.txt
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/messages/no-config-found.txt
rename to src/third_party/devtools/node_modules/eslint/messages/no-config-found.txt
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/messages/plugin-missing.txt b/src/third_party/devtools/node_modules/eslint/messages/plugin-missing.txt
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/messages/plugin-missing.txt
rename to src/third_party/devtools/node_modules/eslint/messages/plugin-missing.txt
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/messages/print-config-with-directory-path.txt b/src/third_party/devtools/node_modules/eslint/messages/print-config-with-directory-path.txt
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/messages/print-config-with-directory-path.txt
rename to src/third_party/devtools/node_modules/eslint/messages/print-config-with-directory-path.txt
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/messages/whitespace-found.txt b/src/third_party/devtools/node_modules/eslint/messages/whitespace-found.txt
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/messages/whitespace-found.txt
rename to src/third_party/devtools/node_modules/eslint/messages/whitespace-found.txt
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eslint/package.json b/src/third_party/devtools/node_modules/eslint/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eslint/package.json
rename to src/third_party/devtools/node_modules/eslint/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/espree/CHANGELOG.md b/src/third_party/devtools/node_modules/espree/CHANGELOG.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/espree/CHANGELOG.md
rename to src/third_party/devtools/node_modules/espree/CHANGELOG.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/espree/LICENSE b/src/third_party/devtools/node_modules/espree/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/espree/LICENSE
rename to src/third_party/devtools/node_modules/espree/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/espree/README.md b/src/third_party/devtools/node_modules/espree/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/espree/README.md
rename to src/third_party/devtools/node_modules/espree/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/espree/espree.js b/src/third_party/devtools/node_modules/espree/espree.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/espree/espree.js
rename to src/third_party/devtools/node_modules/espree/espree.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/espree/lib/ast-node-types.js b/src/third_party/devtools/node_modules/espree/lib/ast-node-types.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/espree/lib/ast-node-types.js
rename to src/third_party/devtools/node_modules/espree/lib/ast-node-types.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/espree/lib/espree.js b/src/third_party/devtools/node_modules/espree/lib/espree.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/espree/lib/espree.js
rename to src/third_party/devtools/node_modules/espree/lib/espree.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/espree/lib/features.js b/src/third_party/devtools/node_modules/espree/lib/features.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/espree/lib/features.js
rename to src/third_party/devtools/node_modules/espree/lib/features.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/espree/lib/token-translator.js b/src/third_party/devtools/node_modules/espree/lib/token-translator.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/espree/lib/token-translator.js
rename to src/third_party/devtools/node_modules/espree/lib/token-translator.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/espree/lib/visitor-keys.js b/src/third_party/devtools/node_modules/espree/lib/visitor-keys.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/espree/lib/visitor-keys.js
rename to src/third_party/devtools/node_modules/espree/lib/visitor-keys.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/espree/package.json b/src/third_party/devtools/node_modules/espree/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/espree/package.json
rename to src/third_party/devtools/node_modules/espree/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/esprima/.circleci/config.yml b/src/third_party/devtools/node_modules/esprima/.circleci/config.yml
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/esprima/.circleci/config.yml
rename to src/third_party/devtools/node_modules/esprima/.circleci/config.yml
diff --git a/src/cobalt/debug/remote/devtools/node_modules/esprima/.editorconfig b/src/third_party/devtools/node_modules/esprima/.editorconfig
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/esprima/.editorconfig
rename to src/third_party/devtools/node_modules/esprima/.editorconfig
diff --git a/src/cobalt/debug/remote/devtools/node_modules/esprima/.github/ISSUE_TEMPLATE.md b/src/third_party/devtools/node_modules/esprima/.github/ISSUE_TEMPLATE.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/esprima/.github/ISSUE_TEMPLATE.md
rename to src/third_party/devtools/node_modules/esprima/.github/ISSUE_TEMPLATE.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/esprima/.gitlab-ci.yml b/src/third_party/devtools/node_modules/esprima/.gitlab-ci.yml
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/esprima/.gitlab-ci.yml
rename to src/third_party/devtools/node_modules/esprima/.gitlab-ci.yml
diff --git a/src/cobalt/debug/remote/devtools/node_modules/esprima/CONTRIBUTING.md b/src/third_party/devtools/node_modules/esprima/CONTRIBUTING.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/esprima/CONTRIBUTING.md
rename to src/third_party/devtools/node_modules/esprima/CONTRIBUTING.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/esprima/ChangeLog b/src/third_party/devtools/node_modules/esprima/ChangeLog
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/esprima/ChangeLog
rename to src/third_party/devtools/node_modules/esprima/ChangeLog
diff --git a/src/cobalt/debug/remote/devtools/node_modules/esprima/LICENSE.BSD b/src/third_party/devtools/node_modules/esprima/LICENSE.BSD
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/esprima/LICENSE.BSD
rename to src/third_party/devtools/node_modules/esprima/LICENSE.BSD
diff --git a/src/cobalt/debug/remote/devtools/node_modules/esprima/README.md b/src/third_party/devtools/node_modules/esprima/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/esprima/README.md
rename to src/third_party/devtools/node_modules/esprima/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/esprima/appveyor.yml b/src/third_party/devtools/node_modules/esprima/appveyor.yml
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/esprima/appveyor.yml
rename to src/third_party/devtools/node_modules/esprima/appveyor.yml
diff --git a/src/cobalt/debug/remote/devtools/node_modules/esprima/bin/esparse.js b/src/third_party/devtools/node_modules/esprima/bin/esparse.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/esprima/bin/esparse.js
rename to src/third_party/devtools/node_modules/esprima/bin/esparse.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/esprima/bin/esvalidate.js b/src/third_party/devtools/node_modules/esprima/bin/esvalidate.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/esprima/bin/esvalidate.js
rename to src/third_party/devtools/node_modules/esprima/bin/esvalidate.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/esprima/dist/esprima.js b/src/third_party/devtools/node_modules/esprima/dist/esprima.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/esprima/dist/esprima.js
rename to src/third_party/devtools/node_modules/esprima/dist/esprima.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/esprima/docs/Makefile b/src/third_party/devtools/node_modules/esprima/docs/Makefile
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/esprima/docs/Makefile
rename to src/third_party/devtools/node_modules/esprima/docs/Makefile
diff --git a/src/cobalt/debug/remote/devtools/node_modules/esprima/docs/README.md b/src/third_party/devtools/node_modules/esprima/docs/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/esprima/docs/README.md
rename to src/third_party/devtools/node_modules/esprima/docs/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/esprima/docs/_static/custom.css b/src/third_party/devtools/node_modules/esprima/docs/_static/custom.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/esprima/docs/_static/custom.css
rename to src/third_party/devtools/node_modules/esprima/docs/_static/custom.css
diff --git a/src/cobalt/debug/remote/devtools/node_modules/esprima/docs/_static/esprima.png b/src/third_party/devtools/node_modules/esprima/docs/_static/esprima.png
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/esprima/docs/_static/esprima.png
rename to src/third_party/devtools/node_modules/esprima/docs/_static/esprima.png
Binary files differ
diff --git a/src/cobalt/debug/remote/devtools/node_modules/esprima/docs/callexpr.png b/src/third_party/devtools/node_modules/esprima/docs/callexpr.png
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/esprima/docs/callexpr.png
rename to src/third_party/devtools/node_modules/esprima/docs/callexpr.png
Binary files differ
diff --git a/src/cobalt/debug/remote/devtools/node_modules/esprima/docs/conf.py b/src/third_party/devtools/node_modules/esprima/docs/conf.py
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/esprima/docs/conf.py
rename to src/third_party/devtools/node_modules/esprima/docs/conf.py
diff --git a/src/cobalt/debug/remote/devtools/node_modules/esprima/docs/getting-started.md b/src/third_party/devtools/node_modules/esprima/docs/getting-started.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/esprima/docs/getting-started.md
rename to src/third_party/devtools/node_modules/esprima/docs/getting-started.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/esprima/docs/highlight.png b/src/third_party/devtools/node_modules/esprima/docs/highlight.png
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/esprima/docs/highlight.png
rename to src/third_party/devtools/node_modules/esprima/docs/highlight.png
Binary files differ
diff --git a/src/cobalt/debug/remote/devtools/node_modules/esprima/docs/index.rst b/src/third_party/devtools/node_modules/esprima/docs/index.rst
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/esprima/docs/index.rst
rename to src/third_party/devtools/node_modules/esprima/docs/index.rst
diff --git a/src/cobalt/debug/remote/devtools/node_modules/esprima/docs/lexical-analysis.md b/src/third_party/devtools/node_modules/esprima/docs/lexical-analysis.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/esprima/docs/lexical-analysis.md
rename to src/third_party/devtools/node_modules/esprima/docs/lexical-analysis.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/esprima/docs/online-parser.png b/src/third_party/devtools/node_modules/esprima/docs/online-parser.png
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/esprima/docs/online-parser.png
rename to src/third_party/devtools/node_modules/esprima/docs/online-parser.png
Binary files differ
diff --git a/src/cobalt/debug/remote/devtools/node_modules/esprima/docs/requirements.txt b/src/third_party/devtools/node_modules/esprima/docs/requirements.txt
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/esprima/docs/requirements.txt
rename to src/third_party/devtools/node_modules/esprima/docs/requirements.txt
diff --git a/src/cobalt/debug/remote/devtools/node_modules/esprima/docs/runkit-parse.png b/src/third_party/devtools/node_modules/esprima/docs/runkit-parse.png
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/esprima/docs/runkit-parse.png
rename to src/third_party/devtools/node_modules/esprima/docs/runkit-parse.png
Binary files differ
diff --git a/src/cobalt/debug/remote/devtools/node_modules/esprima/docs/syntactic-analysis.md b/src/third_party/devtools/node_modules/esprima/docs/syntactic-analysis.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/esprima/docs/syntactic-analysis.md
rename to src/third_party/devtools/node_modules/esprima/docs/syntactic-analysis.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/esprima/docs/syntax-tree-format.md b/src/third_party/devtools/node_modules/esprima/docs/syntax-tree-format.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/esprima/docs/syntax-tree-format.md
rename to src/third_party/devtools/node_modules/esprima/docs/syntax-tree-format.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/esprima/docs/unconsole.png b/src/third_party/devtools/node_modules/esprima/docs/unconsole.png
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/esprima/docs/unconsole.png
rename to src/third_party/devtools/node_modules/esprima/docs/unconsole.png
Binary files differ
diff --git a/src/cobalt/debug/remote/devtools/node_modules/esprima/package.json b/src/third_party/devtools/node_modules/esprima/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/esprima/package.json
rename to src/third_party/devtools/node_modules/esprima/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/esprima/src/assert.ts b/src/third_party/devtools/node_modules/esprima/src/assert.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/esprima/src/assert.ts
rename to src/third_party/devtools/node_modules/esprima/src/assert.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/esprima/src/character.ts b/src/third_party/devtools/node_modules/esprima/src/character.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/esprima/src/character.ts
rename to src/third_party/devtools/node_modules/esprima/src/character.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/esprima/src/comment-handler.ts b/src/third_party/devtools/node_modules/esprima/src/comment-handler.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/esprima/src/comment-handler.ts
rename to src/third_party/devtools/node_modules/esprima/src/comment-handler.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/esprima/src/error-handler.ts b/src/third_party/devtools/node_modules/esprima/src/error-handler.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/esprima/src/error-handler.ts
rename to src/third_party/devtools/node_modules/esprima/src/error-handler.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/esprima/src/esprima.ts b/src/third_party/devtools/node_modules/esprima/src/esprima.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/esprima/src/esprima.ts
rename to src/third_party/devtools/node_modules/esprima/src/esprima.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/esprima/src/jsx-nodes.ts b/src/third_party/devtools/node_modules/esprima/src/jsx-nodes.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/esprima/src/jsx-nodes.ts
rename to src/third_party/devtools/node_modules/esprima/src/jsx-nodes.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/esprima/src/jsx-parser.ts b/src/third_party/devtools/node_modules/esprima/src/jsx-parser.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/esprima/src/jsx-parser.ts
rename to src/third_party/devtools/node_modules/esprima/src/jsx-parser.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/esprima/src/jsx-syntax.ts b/src/third_party/devtools/node_modules/esprima/src/jsx-syntax.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/esprima/src/jsx-syntax.ts
rename to src/third_party/devtools/node_modules/esprima/src/jsx-syntax.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/esprima/src/messages.ts b/src/third_party/devtools/node_modules/esprima/src/messages.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/esprima/src/messages.ts
rename to src/third_party/devtools/node_modules/esprima/src/messages.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/esprima/src/nodes.ts b/src/third_party/devtools/node_modules/esprima/src/nodes.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/esprima/src/nodes.ts
rename to src/third_party/devtools/node_modules/esprima/src/nodes.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/esprima/src/parser.ts b/src/third_party/devtools/node_modules/esprima/src/parser.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/esprima/src/parser.ts
rename to src/third_party/devtools/node_modules/esprima/src/parser.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/esprima/src/scanner.ts b/src/third_party/devtools/node_modules/esprima/src/scanner.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/esprima/src/scanner.ts
rename to src/third_party/devtools/node_modules/esprima/src/scanner.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/esprima/src/syntax.ts b/src/third_party/devtools/node_modules/esprima/src/syntax.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/esprima/src/syntax.ts
rename to src/third_party/devtools/node_modules/esprima/src/syntax.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/esprima/src/token.ts b/src/third_party/devtools/node_modules/esprima/src/token.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/esprima/src/token.ts
rename to src/third_party/devtools/node_modules/esprima/src/token.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/esprima/src/tokenizer.ts b/src/third_party/devtools/node_modules/esprima/src/tokenizer.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/esprima/src/tokenizer.ts
rename to src/third_party/devtools/node_modules/esprima/src/tokenizer.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/esprima/src/tsconfig.json b/src/third_party/devtools/node_modules/esprima/src/tsconfig.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/esprima/src/tsconfig.json
rename to src/third_party/devtools/node_modules/esprima/src/tsconfig.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/esprima/src/tslint.json b/src/third_party/devtools/node_modules/esprima/src/tslint.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/esprima/src/tslint.json
rename to src/third_party/devtools/node_modules/esprima/src/tslint.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/esprima/src/xhtml-entities.ts b/src/third_party/devtools/node_modules/esprima/src/xhtml-entities.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/esprima/src/xhtml-entities.ts
rename to src/third_party/devtools/node_modules/esprima/src/xhtml-entities.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/esprima/webpack.config.js b/src/third_party/devtools/node_modules/esprima/webpack.config.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/esprima/webpack.config.js
rename to src/third_party/devtools/node_modules/esprima/webpack.config.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/esquery/README.md b/src/third_party/devtools/node_modules/esquery/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/esquery/README.md
rename to src/third_party/devtools/node_modules/esquery/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/esquery/esquery.js b/src/third_party/devtools/node_modules/esquery/esquery.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/esquery/esquery.js
rename to src/third_party/devtools/node_modules/esquery/esquery.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/esquery/license.txt b/src/third_party/devtools/node_modules/esquery/license.txt
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/esquery/license.txt
rename to src/third_party/devtools/node_modules/esquery/license.txt
diff --git a/src/cobalt/debug/remote/devtools/node_modules/esquery/package.json b/src/third_party/devtools/node_modules/esquery/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/esquery/package.json
rename to src/third_party/devtools/node_modules/esquery/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/esquery/parser.js b/src/third_party/devtools/node_modules/esquery/parser.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/esquery/parser.js
rename to src/third_party/devtools/node_modules/esquery/parser.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/esrecurse/.babelrc b/src/third_party/devtools/node_modules/esrecurse/.babelrc
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/esrecurse/.babelrc
rename to src/third_party/devtools/node_modules/esrecurse/.babelrc
diff --git a/src/cobalt/debug/remote/devtools/node_modules/esrecurse/README.md b/src/third_party/devtools/node_modules/esrecurse/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/esrecurse/README.md
rename to src/third_party/devtools/node_modules/esrecurse/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/esrecurse/esrecurse.js b/src/third_party/devtools/node_modules/esrecurse/esrecurse.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/esrecurse/esrecurse.js
rename to src/third_party/devtools/node_modules/esrecurse/esrecurse.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/esrecurse/gulpfile.babel.js b/src/third_party/devtools/node_modules/esrecurse/gulpfile.babel.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/esrecurse/gulpfile.babel.js
rename to src/third_party/devtools/node_modules/esrecurse/gulpfile.babel.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/esrecurse/package.json b/src/third_party/devtools/node_modules/esrecurse/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/esrecurse/package.json
rename to src/third_party/devtools/node_modules/esrecurse/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/estraverse/.jshintrc b/src/third_party/devtools/node_modules/estraverse/.jshintrc
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/estraverse/.jshintrc
rename to src/third_party/devtools/node_modules/estraverse/.jshintrc
diff --git a/src/cobalt/debug/remote/devtools/node_modules/estraverse/LICENSE.BSD b/src/third_party/devtools/node_modules/estraverse/LICENSE.BSD
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/estraverse/LICENSE.BSD
rename to src/third_party/devtools/node_modules/estraverse/LICENSE.BSD
diff --git a/src/cobalt/debug/remote/devtools/node_modules/estraverse/README.md b/src/third_party/devtools/node_modules/estraverse/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/estraverse/README.md
rename to src/third_party/devtools/node_modules/estraverse/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/estraverse/estraverse.js b/src/third_party/devtools/node_modules/estraverse/estraverse.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/estraverse/estraverse.js
rename to src/third_party/devtools/node_modules/estraverse/estraverse.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/estraverse/gulpfile.js b/src/third_party/devtools/node_modules/estraverse/gulpfile.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/estraverse/gulpfile.js
rename to src/third_party/devtools/node_modules/estraverse/gulpfile.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/estraverse/package.json b/src/third_party/devtools/node_modules/estraverse/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/estraverse/package.json
rename to src/third_party/devtools/node_modules/estraverse/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/esutils/LICENSE.BSD b/src/third_party/devtools/node_modules/esutils/LICENSE.BSD
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/esutils/LICENSE.BSD
rename to src/third_party/devtools/node_modules/esutils/LICENSE.BSD
diff --git a/src/cobalt/debug/remote/devtools/node_modules/esutils/README.md b/src/third_party/devtools/node_modules/esutils/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/esutils/README.md
rename to src/third_party/devtools/node_modules/esutils/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/esutils/lib/ast.js b/src/third_party/devtools/node_modules/esutils/lib/ast.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/esutils/lib/ast.js
rename to src/third_party/devtools/node_modules/esutils/lib/ast.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/esutils/lib/code.js b/src/third_party/devtools/node_modules/esutils/lib/code.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/esutils/lib/code.js
rename to src/third_party/devtools/node_modules/esutils/lib/code.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/esutils/lib/keyword.js b/src/third_party/devtools/node_modules/esutils/lib/keyword.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/esutils/lib/keyword.js
rename to src/third_party/devtools/node_modules/esutils/lib/keyword.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/esutils/lib/utils.js b/src/third_party/devtools/node_modules/esutils/lib/utils.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/esutils/lib/utils.js
rename to src/third_party/devtools/node_modules/esutils/lib/utils.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/esutils/package.json b/src/third_party/devtools/node_modules/esutils/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/esutils/package.json
rename to src/third_party/devtools/node_modules/esutils/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eventemitter3/LICENSE b/src/third_party/devtools/node_modules/eventemitter3/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eventemitter3/LICENSE
rename to src/third_party/devtools/node_modules/eventemitter3/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eventemitter3/README.md b/src/third_party/devtools/node_modules/eventemitter3/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eventemitter3/README.md
rename to src/third_party/devtools/node_modules/eventemitter3/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eventemitter3/index.d.ts b/src/third_party/devtools/node_modules/eventemitter3/index.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eventemitter3/index.d.ts
rename to src/third_party/devtools/node_modules/eventemitter3/index.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eventemitter3/index.js b/src/third_party/devtools/node_modules/eventemitter3/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eventemitter3/index.js
rename to src/third_party/devtools/node_modules/eventemitter3/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eventemitter3/package.json b/src/third_party/devtools/node_modules/eventemitter3/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eventemitter3/package.json
rename to src/third_party/devtools/node_modules/eventemitter3/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eventemitter3/umd/eventemitter3.js b/src/third_party/devtools/node_modules/eventemitter3/umd/eventemitter3.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eventemitter3/umd/eventemitter3.js
rename to src/third_party/devtools/node_modules/eventemitter3/umd/eventemitter3.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eventemitter3/umd/eventemitter3.min.js b/src/third_party/devtools/node_modules/eventemitter3/umd/eventemitter3.min.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eventemitter3/umd/eventemitter3.min.js
rename to src/third_party/devtools/node_modules/eventemitter3/umd/eventemitter3.min.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/eventemitter3/umd/eventemitter3.min.js.map b/src/third_party/devtools/node_modules/eventemitter3/umd/eventemitter3.min.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/eventemitter3/umd/eventemitter3.min.js.map
rename to src/third_party/devtools/node_modules/eventemitter3/umd/eventemitter3.min.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/events/.airtap.yml b/src/third_party/devtools/node_modules/events/.airtap.yml
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/events/.airtap.yml
rename to src/third_party/devtools/node_modules/events/.airtap.yml
diff --git a/src/cobalt/debug/remote/devtools/node_modules/events/.travis.yml b/src/third_party/devtools/node_modules/events/.travis.yml
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/events/.travis.yml
rename to src/third_party/devtools/node_modules/events/.travis.yml
diff --git a/src/cobalt/debug/remote/devtools/node_modules/events/History.md b/src/third_party/devtools/node_modules/events/History.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/events/History.md
rename to src/third_party/devtools/node_modules/events/History.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/events/LICENSE b/src/third_party/devtools/node_modules/events/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/events/LICENSE
rename to src/third_party/devtools/node_modules/events/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/events/Readme.md b/src/third_party/devtools/node_modules/events/Readme.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/events/Readme.md
rename to src/third_party/devtools/node_modules/events/Readme.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/events/events.js b/src/third_party/devtools/node_modules/events/events.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/events/events.js
rename to src/third_party/devtools/node_modules/events/events.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/events/package.json b/src/third_party/devtools/node_modules/events/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/events/package.json
rename to src/third_party/devtools/node_modules/events/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/events/tests/add-listeners.js b/src/third_party/devtools/node_modules/events/tests/add-listeners.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/events/tests/add-listeners.js
rename to src/third_party/devtools/node_modules/events/tests/add-listeners.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/events/tests/check-listener-leaks.js b/src/third_party/devtools/node_modules/events/tests/check-listener-leaks.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/events/tests/check-listener-leaks.js
rename to src/third_party/devtools/node_modules/events/tests/check-listener-leaks.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/events/tests/common.js b/src/third_party/devtools/node_modules/events/tests/common.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/events/tests/common.js
rename to src/third_party/devtools/node_modules/events/tests/common.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/events/tests/errors.js b/src/third_party/devtools/node_modules/events/tests/errors.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/events/tests/errors.js
rename to src/third_party/devtools/node_modules/events/tests/errors.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/events/tests/events-list.js b/src/third_party/devtools/node_modules/events/tests/events-list.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/events/tests/events-list.js
rename to src/third_party/devtools/node_modules/events/tests/events-list.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/events/tests/index.js b/src/third_party/devtools/node_modules/events/tests/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/events/tests/index.js
rename to src/third_party/devtools/node_modules/events/tests/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/events/tests/legacy-compat.js b/src/third_party/devtools/node_modules/events/tests/legacy-compat.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/events/tests/legacy-compat.js
rename to src/third_party/devtools/node_modules/events/tests/legacy-compat.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/events/tests/listener-count.js b/src/third_party/devtools/node_modules/events/tests/listener-count.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/events/tests/listener-count.js
rename to src/third_party/devtools/node_modules/events/tests/listener-count.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/events/tests/listeners-side-effects.js b/src/third_party/devtools/node_modules/events/tests/listeners-side-effects.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/events/tests/listeners-side-effects.js
rename to src/third_party/devtools/node_modules/events/tests/listeners-side-effects.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/events/tests/listeners.js b/src/third_party/devtools/node_modules/events/tests/listeners.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/events/tests/listeners.js
rename to src/third_party/devtools/node_modules/events/tests/listeners.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/events/tests/max-listeners.js b/src/third_party/devtools/node_modules/events/tests/max-listeners.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/events/tests/max-listeners.js
rename to src/third_party/devtools/node_modules/events/tests/max-listeners.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/events/tests/method-names.js b/src/third_party/devtools/node_modules/events/tests/method-names.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/events/tests/method-names.js
rename to src/third_party/devtools/node_modules/events/tests/method-names.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/events/tests/modify-in-emit.js b/src/third_party/devtools/node_modules/events/tests/modify-in-emit.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/events/tests/modify-in-emit.js
rename to src/third_party/devtools/node_modules/events/tests/modify-in-emit.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/events/tests/num-args.js b/src/third_party/devtools/node_modules/events/tests/num-args.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/events/tests/num-args.js
rename to src/third_party/devtools/node_modules/events/tests/num-args.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/events/tests/once.js b/src/third_party/devtools/node_modules/events/tests/once.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/events/tests/once.js
rename to src/third_party/devtools/node_modules/events/tests/once.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/events/tests/prepend.js b/src/third_party/devtools/node_modules/events/tests/prepend.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/events/tests/prepend.js
rename to src/third_party/devtools/node_modules/events/tests/prepend.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/events/tests/remove-all-listeners.js b/src/third_party/devtools/node_modules/events/tests/remove-all-listeners.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/events/tests/remove-all-listeners.js
rename to src/third_party/devtools/node_modules/events/tests/remove-all-listeners.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/events/tests/remove-listeners.js b/src/third_party/devtools/node_modules/events/tests/remove-listeners.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/events/tests/remove-listeners.js
rename to src/third_party/devtools/node_modules/events/tests/remove-listeners.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/events/tests/set-max-listeners-side-effects.js b/src/third_party/devtools/node_modules/events/tests/set-max-listeners-side-effects.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/events/tests/set-max-listeners-side-effects.js
rename to src/third_party/devtools/node_modules/events/tests/set-max-listeners-side-effects.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/events/tests/special-event-names.js b/src/third_party/devtools/node_modules/events/tests/special-event-names.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/events/tests/special-event-names.js
rename to src/third_party/devtools/node_modules/events/tests/special-event-names.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/events/tests/subclass.js b/src/third_party/devtools/node_modules/events/tests/subclass.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/events/tests/subclass.js
rename to src/third_party/devtools/node_modules/events/tests/subclass.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/events/tests/symbols.js b/src/third_party/devtools/node_modules/events/tests/symbols.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/events/tests/symbols.js
rename to src/third_party/devtools/node_modules/events/tests/symbols.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/evp_bytestokey/LICENSE b/src/third_party/devtools/node_modules/evp_bytestokey/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/evp_bytestokey/LICENSE
rename to src/third_party/devtools/node_modules/evp_bytestokey/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/evp_bytestokey/README.md b/src/third_party/devtools/node_modules/evp_bytestokey/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/evp_bytestokey/README.md
rename to src/third_party/devtools/node_modules/evp_bytestokey/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/evp_bytestokey/index.js b/src/third_party/devtools/node_modules/evp_bytestokey/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/evp_bytestokey/index.js
rename to src/third_party/devtools/node_modules/evp_bytestokey/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/evp_bytestokey/package.json b/src/third_party/devtools/node_modules/evp_bytestokey/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/evp_bytestokey/package.json
rename to src/third_party/devtools/node_modules/evp_bytestokey/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/execa/index.js b/src/third_party/devtools/node_modules/execa/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/execa/index.js
rename to src/third_party/devtools/node_modules/execa/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/execa/lib/errname.js b/src/third_party/devtools/node_modules/execa/lib/errname.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/execa/lib/errname.js
rename to src/third_party/devtools/node_modules/execa/lib/errname.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/execa/lib/stdio.js b/src/third_party/devtools/node_modules/execa/lib/stdio.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/execa/lib/stdio.js
rename to src/third_party/devtools/node_modules/execa/lib/stdio.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/execa/license b/src/third_party/devtools/node_modules/execa/license
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/execa/license
rename to src/third_party/devtools/node_modules/execa/license
diff --git a/src/cobalt/debug/remote/devtools/node_modules/execa/package.json b/src/third_party/devtools/node_modules/execa/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/execa/package.json
rename to src/third_party/devtools/node_modules/execa/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/execa/readme.md b/src/third_party/devtools/node_modules/execa/readme.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/execa/readme.md
rename to src/third_party/devtools/node_modules/execa/readme.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/extend-shallow/LICENSE b/src/third_party/devtools/node_modules/extend-shallow/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/extend-shallow/LICENSE
rename to src/third_party/devtools/node_modules/extend-shallow/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/extend-shallow/README.md b/src/third_party/devtools/node_modules/extend-shallow/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/extend-shallow/README.md
rename to src/third_party/devtools/node_modules/extend-shallow/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/extend-shallow/index.js b/src/third_party/devtools/node_modules/extend-shallow/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/extend-shallow/index.js
rename to src/third_party/devtools/node_modules/extend-shallow/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/extend-shallow/package.json b/src/third_party/devtools/node_modules/extend-shallow/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/extend-shallow/package.json
rename to src/third_party/devtools/node_modules/extend-shallow/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/extend/.editorconfig b/src/third_party/devtools/node_modules/extend/.editorconfig
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/extend/.editorconfig
rename to src/third_party/devtools/node_modules/extend/.editorconfig
diff --git a/src/cobalt/debug/remote/devtools/node_modules/extend/.eslintrc b/src/third_party/devtools/node_modules/extend/.eslintrc
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/extend/.eslintrc
rename to src/third_party/devtools/node_modules/extend/.eslintrc
diff --git a/src/cobalt/debug/remote/devtools/node_modules/extend/.jscs.json b/src/third_party/devtools/node_modules/extend/.jscs.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/extend/.jscs.json
rename to src/third_party/devtools/node_modules/extend/.jscs.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/extend/.travis.yml b/src/third_party/devtools/node_modules/extend/.travis.yml
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/extend/.travis.yml
rename to src/third_party/devtools/node_modules/extend/.travis.yml
diff --git a/src/cobalt/debug/remote/devtools/node_modules/extend/CHANGELOG.md b/src/third_party/devtools/node_modules/extend/CHANGELOG.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/extend/CHANGELOG.md
rename to src/third_party/devtools/node_modules/extend/CHANGELOG.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/extend/LICENSE b/src/third_party/devtools/node_modules/extend/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/extend/LICENSE
rename to src/third_party/devtools/node_modules/extend/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/extend/README.md b/src/third_party/devtools/node_modules/extend/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/extend/README.md
rename to src/third_party/devtools/node_modules/extend/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/extend/component.json b/src/third_party/devtools/node_modules/extend/component.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/extend/component.json
rename to src/third_party/devtools/node_modules/extend/component.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/extend/index.js b/src/third_party/devtools/node_modules/extend/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/extend/index.js
rename to src/third_party/devtools/node_modules/extend/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/extend/package.json b/src/third_party/devtools/node_modules/extend/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/extend/package.json
rename to src/third_party/devtools/node_modules/extend/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/external-editor/LICENSE b/src/third_party/devtools/node_modules/external-editor/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/external-editor/LICENSE
rename to src/third_party/devtools/node_modules/external-editor/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/external-editor/README.md b/src/third_party/devtools/node_modules/external-editor/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/external-editor/README.md
rename to src/third_party/devtools/node_modules/external-editor/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/external-editor/example_async.js b/src/third_party/devtools/node_modules/external-editor/example_async.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/external-editor/example_async.js
rename to src/third_party/devtools/node_modules/external-editor/example_async.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/external-editor/example_sync.js b/src/third_party/devtools/node_modules/external-editor/example_sync.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/external-editor/example_sync.js
rename to src/third_party/devtools/node_modules/external-editor/example_sync.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/external-editor/main/errors/CreateFileError.d.ts b/src/third_party/devtools/node_modules/external-editor/main/errors/CreateFileError.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/external-editor/main/errors/CreateFileError.d.ts
rename to src/third_party/devtools/node_modules/external-editor/main/errors/CreateFileError.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/external-editor/main/errors/CreateFileError.js b/src/third_party/devtools/node_modules/external-editor/main/errors/CreateFileError.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/external-editor/main/errors/CreateFileError.js
rename to src/third_party/devtools/node_modules/external-editor/main/errors/CreateFileError.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/external-editor/main/errors/LaunchEditorError.d.ts b/src/third_party/devtools/node_modules/external-editor/main/errors/LaunchEditorError.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/external-editor/main/errors/LaunchEditorError.d.ts
rename to src/third_party/devtools/node_modules/external-editor/main/errors/LaunchEditorError.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/external-editor/main/errors/LaunchEditorError.js b/src/third_party/devtools/node_modules/external-editor/main/errors/LaunchEditorError.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/external-editor/main/errors/LaunchEditorError.js
rename to src/third_party/devtools/node_modules/external-editor/main/errors/LaunchEditorError.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/external-editor/main/errors/ReadFileError.d.ts b/src/third_party/devtools/node_modules/external-editor/main/errors/ReadFileError.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/external-editor/main/errors/ReadFileError.d.ts
rename to src/third_party/devtools/node_modules/external-editor/main/errors/ReadFileError.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/external-editor/main/errors/ReadFileError.js b/src/third_party/devtools/node_modules/external-editor/main/errors/ReadFileError.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/external-editor/main/errors/ReadFileError.js
rename to src/third_party/devtools/node_modules/external-editor/main/errors/ReadFileError.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/external-editor/main/errors/RemoveFileError.d.ts b/src/third_party/devtools/node_modules/external-editor/main/errors/RemoveFileError.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/external-editor/main/errors/RemoveFileError.d.ts
rename to src/third_party/devtools/node_modules/external-editor/main/errors/RemoveFileError.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/external-editor/main/errors/RemoveFileError.js b/src/third_party/devtools/node_modules/external-editor/main/errors/RemoveFileError.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/external-editor/main/errors/RemoveFileError.js
rename to src/third_party/devtools/node_modules/external-editor/main/errors/RemoveFileError.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/external-editor/main/index.d.ts b/src/third_party/devtools/node_modules/external-editor/main/index.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/external-editor/main/index.d.ts
rename to src/third_party/devtools/node_modules/external-editor/main/index.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/external-editor/main/index.js b/src/third_party/devtools/node_modules/external-editor/main/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/external-editor/main/index.js
rename to src/third_party/devtools/node_modules/external-editor/main/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/external-editor/package.json b/src/third_party/devtools/node_modules/external-editor/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/external-editor/package.json
rename to src/third_party/devtools/node_modules/external-editor/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/extract-zip/.npmignore b/src/third_party/devtools/node_modules/extract-zip/.npmignore
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/extract-zip/.npmignore
rename to src/third_party/devtools/node_modules/extract-zip/.npmignore
diff --git a/src/cobalt/debug/remote/devtools/node_modules/extract-zip/.travis.yml b/src/third_party/devtools/node_modules/extract-zip/.travis.yml
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/extract-zip/.travis.yml
rename to src/third_party/devtools/node_modules/extract-zip/.travis.yml
diff --git a/src/cobalt/debug/remote/devtools/node_modules/extract-zip/CONTRIBUTING.md b/src/third_party/devtools/node_modules/extract-zip/CONTRIBUTING.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/extract-zip/CONTRIBUTING.md
rename to src/third_party/devtools/node_modules/extract-zip/CONTRIBUTING.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/extract-zip/LICENSE b/src/third_party/devtools/node_modules/extract-zip/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/extract-zip/LICENSE
rename to src/third_party/devtools/node_modules/extract-zip/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/extract-zip/cli.js b/src/third_party/devtools/node_modules/extract-zip/cli.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/extract-zip/cli.js
rename to src/third_party/devtools/node_modules/extract-zip/cli.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/extract-zip/index.js b/src/third_party/devtools/node_modules/extract-zip/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/extract-zip/index.js
rename to src/third_party/devtools/node_modules/extract-zip/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/extract-zip/node_modules/debug/.coveralls.yml b/src/third_party/devtools/node_modules/extract-zip/node_modules/debug/.coveralls.yml
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/extract-zip/node_modules/debug/.coveralls.yml
rename to src/third_party/devtools/node_modules/extract-zip/node_modules/debug/.coveralls.yml
diff --git a/src/cobalt/debug/remote/devtools/node_modules/extract-zip/node_modules/debug/.eslintrc b/src/third_party/devtools/node_modules/extract-zip/node_modules/debug/.eslintrc
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/extract-zip/node_modules/debug/.eslintrc
rename to src/third_party/devtools/node_modules/extract-zip/node_modules/debug/.eslintrc
diff --git a/src/cobalt/debug/remote/devtools/node_modules/extract-zip/node_modules/debug/.npmignore b/src/third_party/devtools/node_modules/extract-zip/node_modules/debug/.npmignore
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/extract-zip/node_modules/debug/.npmignore
rename to src/third_party/devtools/node_modules/extract-zip/node_modules/debug/.npmignore
diff --git a/src/cobalt/debug/remote/devtools/node_modules/extract-zip/node_modules/debug/.travis.yml b/src/third_party/devtools/node_modules/extract-zip/node_modules/debug/.travis.yml
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/extract-zip/node_modules/debug/.travis.yml
rename to src/third_party/devtools/node_modules/extract-zip/node_modules/debug/.travis.yml
diff --git a/src/cobalt/debug/remote/devtools/node_modules/extract-zip/node_modules/debug/CHANGELOG.md b/src/third_party/devtools/node_modules/extract-zip/node_modules/debug/CHANGELOG.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/extract-zip/node_modules/debug/CHANGELOG.md
rename to src/third_party/devtools/node_modules/extract-zip/node_modules/debug/CHANGELOG.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/extract-zip/node_modules/debug/LICENSE b/src/third_party/devtools/node_modules/extract-zip/node_modules/debug/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/extract-zip/node_modules/debug/LICENSE
rename to src/third_party/devtools/node_modules/extract-zip/node_modules/debug/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/extract-zip/node_modules/debug/Makefile b/src/third_party/devtools/node_modules/extract-zip/node_modules/debug/Makefile
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/extract-zip/node_modules/debug/Makefile
rename to src/third_party/devtools/node_modules/extract-zip/node_modules/debug/Makefile
diff --git a/src/cobalt/debug/remote/devtools/node_modules/extract-zip/node_modules/debug/README.md b/src/third_party/devtools/node_modules/extract-zip/node_modules/debug/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/extract-zip/node_modules/debug/README.md
rename to src/third_party/devtools/node_modules/extract-zip/node_modules/debug/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/extract-zip/node_modules/debug/component.json b/src/third_party/devtools/node_modules/extract-zip/node_modules/debug/component.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/extract-zip/node_modules/debug/component.json
rename to src/third_party/devtools/node_modules/extract-zip/node_modules/debug/component.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/extract-zip/node_modules/debug/karma.conf.js b/src/third_party/devtools/node_modules/extract-zip/node_modules/debug/karma.conf.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/extract-zip/node_modules/debug/karma.conf.js
rename to src/third_party/devtools/node_modules/extract-zip/node_modules/debug/karma.conf.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/extract-zip/node_modules/debug/node.js b/src/third_party/devtools/node_modules/extract-zip/node_modules/debug/node.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/extract-zip/node_modules/debug/node.js
rename to src/third_party/devtools/node_modules/extract-zip/node_modules/debug/node.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/extract-zip/node_modules/debug/package.json b/src/third_party/devtools/node_modules/extract-zip/node_modules/debug/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/extract-zip/node_modules/debug/package.json
rename to src/third_party/devtools/node_modules/extract-zip/node_modules/debug/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/extract-zip/node_modules/debug/src/browser.js b/src/third_party/devtools/node_modules/extract-zip/node_modules/debug/src/browser.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/extract-zip/node_modules/debug/src/browser.js
rename to src/third_party/devtools/node_modules/extract-zip/node_modules/debug/src/browser.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/extract-zip/node_modules/debug/src/debug.js b/src/third_party/devtools/node_modules/extract-zip/node_modules/debug/src/debug.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/extract-zip/node_modules/debug/src/debug.js
rename to src/third_party/devtools/node_modules/extract-zip/node_modules/debug/src/debug.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/extract-zip/node_modules/debug/src/index.js b/src/third_party/devtools/node_modules/extract-zip/node_modules/debug/src/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/extract-zip/node_modules/debug/src/index.js
rename to src/third_party/devtools/node_modules/extract-zip/node_modules/debug/src/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/extract-zip/node_modules/debug/src/inspector-log.js b/src/third_party/devtools/node_modules/extract-zip/node_modules/debug/src/inspector-log.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/extract-zip/node_modules/debug/src/inspector-log.js
rename to src/third_party/devtools/node_modules/extract-zip/node_modules/debug/src/inspector-log.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/extract-zip/node_modules/debug/src/node.js b/src/third_party/devtools/node_modules/extract-zip/node_modules/debug/src/node.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/extract-zip/node_modules/debug/src/node.js
rename to src/third_party/devtools/node_modules/extract-zip/node_modules/debug/src/node.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/extract-zip/node_modules/ms/index.js b/src/third_party/devtools/node_modules/extract-zip/node_modules/ms/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/extract-zip/node_modules/ms/index.js
rename to src/third_party/devtools/node_modules/extract-zip/node_modules/ms/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/extract-zip/node_modules/ms/license.md b/src/third_party/devtools/node_modules/extract-zip/node_modules/ms/license.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/extract-zip/node_modules/ms/license.md
rename to src/third_party/devtools/node_modules/extract-zip/node_modules/ms/license.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/extract-zip/node_modules/ms/package.json b/src/third_party/devtools/node_modules/extract-zip/node_modules/ms/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/extract-zip/node_modules/ms/package.json
rename to src/third_party/devtools/node_modules/extract-zip/node_modules/ms/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/extract-zip/node_modules/ms/readme.md b/src/third_party/devtools/node_modules/extract-zip/node_modules/ms/readme.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/extract-zip/node_modules/ms/readme.md
rename to src/third_party/devtools/node_modules/extract-zip/node_modules/ms/readme.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/extract-zip/package.json b/src/third_party/devtools/node_modules/extract-zip/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/extract-zip/package.json
rename to src/third_party/devtools/node_modules/extract-zip/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/extract-zip/readme.md b/src/third_party/devtools/node_modules/extract-zip/readme.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/extract-zip/readme.md
rename to src/third_party/devtools/node_modules/extract-zip/readme.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/fast-deep-equal/LICENSE b/src/third_party/devtools/node_modules/fast-deep-equal/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/fast-deep-equal/LICENSE
rename to src/third_party/devtools/node_modules/fast-deep-equal/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/fast-deep-equal/README.md b/src/third_party/devtools/node_modules/fast-deep-equal/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/fast-deep-equal/README.md
rename to src/third_party/devtools/node_modules/fast-deep-equal/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/fast-deep-equal/index.d.ts b/src/third_party/devtools/node_modules/fast-deep-equal/index.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/fast-deep-equal/index.d.ts
rename to src/third_party/devtools/node_modules/fast-deep-equal/index.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/fast-deep-equal/index.js b/src/third_party/devtools/node_modules/fast-deep-equal/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/fast-deep-equal/index.js
rename to src/third_party/devtools/node_modules/fast-deep-equal/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/fast-deep-equal/package.json b/src/third_party/devtools/node_modules/fast-deep-equal/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/fast-deep-equal/package.json
rename to src/third_party/devtools/node_modules/fast-deep-equal/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/fast-json-stable-stringify/.eslintrc.yml b/src/third_party/devtools/node_modules/fast-json-stable-stringify/.eslintrc.yml
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/fast-json-stable-stringify/.eslintrc.yml
rename to src/third_party/devtools/node_modules/fast-json-stable-stringify/.eslintrc.yml
diff --git a/src/cobalt/debug/remote/devtools/node_modules/fast-json-stable-stringify/.npmignore b/src/third_party/devtools/node_modules/fast-json-stable-stringify/.npmignore
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/fast-json-stable-stringify/.npmignore
rename to src/third_party/devtools/node_modules/fast-json-stable-stringify/.npmignore
diff --git a/src/cobalt/debug/remote/devtools/node_modules/fast-json-stable-stringify/.travis.yml b/src/third_party/devtools/node_modules/fast-json-stable-stringify/.travis.yml
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/fast-json-stable-stringify/.travis.yml
rename to src/third_party/devtools/node_modules/fast-json-stable-stringify/.travis.yml
diff --git a/src/cobalt/debug/remote/devtools/node_modules/fast-json-stable-stringify/LICENSE b/src/third_party/devtools/node_modules/fast-json-stable-stringify/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/fast-json-stable-stringify/LICENSE
rename to src/third_party/devtools/node_modules/fast-json-stable-stringify/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/fast-json-stable-stringify/README.md b/src/third_party/devtools/node_modules/fast-json-stable-stringify/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/fast-json-stable-stringify/README.md
rename to src/third_party/devtools/node_modules/fast-json-stable-stringify/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/fast-json-stable-stringify/benchmark/index.js b/src/third_party/devtools/node_modules/fast-json-stable-stringify/benchmark/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/fast-json-stable-stringify/benchmark/index.js
rename to src/third_party/devtools/node_modules/fast-json-stable-stringify/benchmark/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/fast-json-stable-stringify/benchmark/test.json b/src/third_party/devtools/node_modules/fast-json-stable-stringify/benchmark/test.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/fast-json-stable-stringify/benchmark/test.json
rename to src/third_party/devtools/node_modules/fast-json-stable-stringify/benchmark/test.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/fast-json-stable-stringify/example/key_cmp.js b/src/third_party/devtools/node_modules/fast-json-stable-stringify/example/key_cmp.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/fast-json-stable-stringify/example/key_cmp.js
rename to src/third_party/devtools/node_modules/fast-json-stable-stringify/example/key_cmp.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/fast-json-stable-stringify/example/nested.js b/src/third_party/devtools/node_modules/fast-json-stable-stringify/example/nested.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/fast-json-stable-stringify/example/nested.js
rename to src/third_party/devtools/node_modules/fast-json-stable-stringify/example/nested.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/fast-json-stable-stringify/example/str.js b/src/third_party/devtools/node_modules/fast-json-stable-stringify/example/str.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/fast-json-stable-stringify/example/str.js
rename to src/third_party/devtools/node_modules/fast-json-stable-stringify/example/str.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/fast-json-stable-stringify/example/value_cmp.js b/src/third_party/devtools/node_modules/fast-json-stable-stringify/example/value_cmp.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/fast-json-stable-stringify/example/value_cmp.js
rename to src/third_party/devtools/node_modules/fast-json-stable-stringify/example/value_cmp.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/fast-json-stable-stringify/index.js b/src/third_party/devtools/node_modules/fast-json-stable-stringify/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/fast-json-stable-stringify/index.js
rename to src/third_party/devtools/node_modules/fast-json-stable-stringify/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/fast-json-stable-stringify/package.json b/src/third_party/devtools/node_modules/fast-json-stable-stringify/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/fast-json-stable-stringify/package.json
rename to src/third_party/devtools/node_modules/fast-json-stable-stringify/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/fast-json-stable-stringify/test/cmp.js b/src/third_party/devtools/node_modules/fast-json-stable-stringify/test/cmp.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/fast-json-stable-stringify/test/cmp.js
rename to src/third_party/devtools/node_modules/fast-json-stable-stringify/test/cmp.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/fast-json-stable-stringify/test/nested.js b/src/third_party/devtools/node_modules/fast-json-stable-stringify/test/nested.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/fast-json-stable-stringify/test/nested.js
rename to src/third_party/devtools/node_modules/fast-json-stable-stringify/test/nested.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/fast-json-stable-stringify/test/str.js b/src/third_party/devtools/node_modules/fast-json-stable-stringify/test/str.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/fast-json-stable-stringify/test/str.js
rename to src/third_party/devtools/node_modules/fast-json-stable-stringify/test/str.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/fast-json-stable-stringify/test/to-json.js b/src/third_party/devtools/node_modules/fast-json-stable-stringify/test/to-json.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/fast-json-stable-stringify/test/to-json.js
rename to src/third_party/devtools/node_modules/fast-json-stable-stringify/test/to-json.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/fast-levenshtein/LICENSE.md b/src/third_party/devtools/node_modules/fast-levenshtein/LICENSE.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/fast-levenshtein/LICENSE.md
rename to src/third_party/devtools/node_modules/fast-levenshtein/LICENSE.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/fast-levenshtein/README.md b/src/third_party/devtools/node_modules/fast-levenshtein/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/fast-levenshtein/README.md
rename to src/third_party/devtools/node_modules/fast-levenshtein/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/fast-levenshtein/levenshtein.js b/src/third_party/devtools/node_modules/fast-levenshtein/levenshtein.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/fast-levenshtein/levenshtein.js
rename to src/third_party/devtools/node_modules/fast-levenshtein/levenshtein.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/fast-levenshtein/package.json b/src/third_party/devtools/node_modules/fast-levenshtein/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/fast-levenshtein/package.json
rename to src/third_party/devtools/node_modules/fast-levenshtein/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/fd-slicer/.npmignore b/src/third_party/devtools/node_modules/fd-slicer/.npmignore
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/fd-slicer/.npmignore
rename to src/third_party/devtools/node_modules/fd-slicer/.npmignore
diff --git a/src/cobalt/debug/remote/devtools/node_modules/fd-slicer/.travis.yml b/src/third_party/devtools/node_modules/fd-slicer/.travis.yml
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/fd-slicer/.travis.yml
rename to src/third_party/devtools/node_modules/fd-slicer/.travis.yml
diff --git a/src/cobalt/debug/remote/devtools/node_modules/fd-slicer/CHANGELOG.md b/src/third_party/devtools/node_modules/fd-slicer/CHANGELOG.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/fd-slicer/CHANGELOG.md
rename to src/third_party/devtools/node_modules/fd-slicer/CHANGELOG.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/fd-slicer/LICENSE b/src/third_party/devtools/node_modules/fd-slicer/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/fd-slicer/LICENSE
rename to src/third_party/devtools/node_modules/fd-slicer/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/fd-slicer/README.md b/src/third_party/devtools/node_modules/fd-slicer/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/fd-slicer/README.md
rename to src/third_party/devtools/node_modules/fd-slicer/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/fd-slicer/index.js b/src/third_party/devtools/node_modules/fd-slicer/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/fd-slicer/index.js
rename to src/third_party/devtools/node_modules/fd-slicer/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/fd-slicer/package.json b/src/third_party/devtools/node_modules/fd-slicer/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/fd-slicer/package.json
rename to src/third_party/devtools/node_modules/fd-slicer/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/fd-slicer/test/test.js b/src/third_party/devtools/node_modules/fd-slicer/test/test.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/fd-slicer/test/test.js
rename to src/third_party/devtools/node_modules/fd-slicer/test/test.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/figures/LICENSE b/src/third_party/devtools/node_modules/figures/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/figures/LICENSE
rename to src/third_party/devtools/node_modules/figures/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/figures/index.js b/src/third_party/devtools/node_modules/figures/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/figures/index.js
rename to src/third_party/devtools/node_modules/figures/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/figures/package.json b/src/third_party/devtools/node_modules/figures/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/figures/package.json
rename to src/third_party/devtools/node_modules/figures/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/figures/readme.md b/src/third_party/devtools/node_modules/figures/readme.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/figures/readme.md
rename to src/third_party/devtools/node_modules/figures/readme.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/file-entry-cache/LICENSE b/src/third_party/devtools/node_modules/file-entry-cache/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/file-entry-cache/LICENSE
rename to src/third_party/devtools/node_modules/file-entry-cache/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/file-entry-cache/README.md b/src/third_party/devtools/node_modules/file-entry-cache/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/file-entry-cache/README.md
rename to src/third_party/devtools/node_modules/file-entry-cache/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/file-entry-cache/cache.js b/src/third_party/devtools/node_modules/file-entry-cache/cache.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/file-entry-cache/cache.js
rename to src/third_party/devtools/node_modules/file-entry-cache/cache.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/file-entry-cache/changelog.md b/src/third_party/devtools/node_modules/file-entry-cache/changelog.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/file-entry-cache/changelog.md
rename to src/third_party/devtools/node_modules/file-entry-cache/changelog.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/file-entry-cache/package.json b/src/third_party/devtools/node_modules/file-entry-cache/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/file-entry-cache/package.json
rename to src/third_party/devtools/node_modules/file-entry-cache/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/fileset/.babelrc b/src/third_party/devtools/node_modules/fileset/.babelrc
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/fileset/.babelrc
rename to src/third_party/devtools/node_modules/fileset/.babelrc
diff --git a/src/cobalt/debug/remote/devtools/node_modules/fileset/.eslintignore b/src/third_party/devtools/node_modules/fileset/.eslintignore
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/fileset/.eslintignore
rename to src/third_party/devtools/node_modules/fileset/.eslintignore
diff --git a/src/cobalt/debug/remote/devtools/node_modules/fileset/.eslintrc b/src/third_party/devtools/node_modules/fileset/.eslintrc
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/fileset/.eslintrc
rename to src/third_party/devtools/node_modules/fileset/.eslintrc
diff --git a/src/cobalt/debug/remote/devtools/node_modules/fileset/.npmignore b/src/third_party/devtools/node_modules/fileset/.npmignore
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/fileset/.npmignore
rename to src/third_party/devtools/node_modules/fileset/.npmignore
diff --git a/src/cobalt/debug/remote/devtools/node_modules/fileset/.travis.yml b/src/third_party/devtools/node_modules/fileset/.travis.yml
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/fileset/.travis.yml
rename to src/third_party/devtools/node_modules/fileset/.travis.yml
diff --git a/src/cobalt/debug/remote/devtools/node_modules/fileset/CHANGELOG.md b/src/third_party/devtools/node_modules/fileset/CHANGELOG.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/fileset/CHANGELOG.md
rename to src/third_party/devtools/node_modules/fileset/CHANGELOG.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/fileset/LICENSE-MIT b/src/third_party/devtools/node_modules/fileset/LICENSE-MIT
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/fileset/LICENSE-MIT
rename to src/third_party/devtools/node_modules/fileset/LICENSE-MIT
diff --git a/src/cobalt/debug/remote/devtools/node_modules/fileset/Makefile b/src/third_party/devtools/node_modules/fileset/Makefile
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/fileset/Makefile
rename to src/third_party/devtools/node_modules/fileset/Makefile
diff --git a/src/cobalt/debug/remote/devtools/node_modules/fileset/README.md b/src/third_party/devtools/node_modules/fileset/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/fileset/README.md
rename to src/third_party/devtools/node_modules/fileset/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/fileset/lib/fileset.js b/src/third_party/devtools/node_modules/fileset/lib/fileset.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/fileset/lib/fileset.js
rename to src/third_party/devtools/node_modules/fileset/lib/fileset.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/fileset/package.json b/src/third_party/devtools/node_modules/fileset/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/fileset/package.json
rename to src/third_party/devtools/node_modules/fileset/package.json
diff --git "a/src/cobalt/debug/remote/devtools/node_modules/fileset/test/fixtures/an \050odd\051 filename.js" "b/src/third_party/devtools/node_modules/fileset/test/fixtures/an \050odd\051 filename.js"
similarity index 100%
rename from "src/cobalt/debug/remote/devtools/node_modules/fileset/test/fixtures/an \050odd\051 filename.js"
rename to "src/third_party/devtools/node_modules/fileset/test/fixtures/an \050odd\051 filename.js"
diff --git a/src/cobalt/debug/remote/devtools/node_modules/fileset/test/fixtures/foo.md b/src/third_party/devtools/node_modules/fileset/test/fixtures/foo.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/fileset/test/fixtures/foo.md
rename to src/third_party/devtools/node_modules/fileset/test/fixtures/foo.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/fileset/test/mocha.js b/src/third_party/devtools/node_modules/fileset/test/mocha.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/fileset/test/mocha.js
rename to src/third_party/devtools/node_modules/fileset/test/mocha.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/fileset/yarn.lock b/src/third_party/devtools/node_modules/fileset/yarn.lock
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/fileset/yarn.lock
rename to src/third_party/devtools/node_modules/fileset/yarn.lock
diff --git a/src/cobalt/debug/remote/devtools/node_modules/fill-range/LICENSE b/src/third_party/devtools/node_modules/fill-range/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/fill-range/LICENSE
rename to src/third_party/devtools/node_modules/fill-range/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/fill-range/README.md b/src/third_party/devtools/node_modules/fill-range/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/fill-range/README.md
rename to src/third_party/devtools/node_modules/fill-range/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/fill-range/index.js b/src/third_party/devtools/node_modules/fill-range/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/fill-range/index.js
rename to src/third_party/devtools/node_modules/fill-range/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/fill-range/package.json b/src/third_party/devtools/node_modules/fill-range/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/fill-range/package.json
rename to src/third_party/devtools/node_modules/fill-range/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/finalhandler/HISTORY.md b/src/third_party/devtools/node_modules/finalhandler/HISTORY.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/finalhandler/HISTORY.md
rename to src/third_party/devtools/node_modules/finalhandler/HISTORY.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/finalhandler/LICENSE b/src/third_party/devtools/node_modules/finalhandler/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/finalhandler/LICENSE
rename to src/third_party/devtools/node_modules/finalhandler/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/finalhandler/README.md b/src/third_party/devtools/node_modules/finalhandler/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/finalhandler/README.md
rename to src/third_party/devtools/node_modules/finalhandler/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/finalhandler/index.js b/src/third_party/devtools/node_modules/finalhandler/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/finalhandler/index.js
rename to src/third_party/devtools/node_modules/finalhandler/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/finalhandler/node_modules/debug/.coveralls.yml b/src/third_party/devtools/node_modules/finalhandler/node_modules/debug/.coveralls.yml
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/finalhandler/node_modules/debug/.coveralls.yml
rename to src/third_party/devtools/node_modules/finalhandler/node_modules/debug/.coveralls.yml
diff --git a/src/cobalt/debug/remote/devtools/node_modules/finalhandler/node_modules/debug/.eslintrc b/src/third_party/devtools/node_modules/finalhandler/node_modules/debug/.eslintrc
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/finalhandler/node_modules/debug/.eslintrc
rename to src/third_party/devtools/node_modules/finalhandler/node_modules/debug/.eslintrc
diff --git a/src/cobalt/debug/remote/devtools/node_modules/finalhandler/node_modules/debug/.npmignore b/src/third_party/devtools/node_modules/finalhandler/node_modules/debug/.npmignore
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/finalhandler/node_modules/debug/.npmignore
rename to src/third_party/devtools/node_modules/finalhandler/node_modules/debug/.npmignore
diff --git a/src/cobalt/debug/remote/devtools/node_modules/finalhandler/node_modules/debug/.travis.yml b/src/third_party/devtools/node_modules/finalhandler/node_modules/debug/.travis.yml
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/finalhandler/node_modules/debug/.travis.yml
rename to src/third_party/devtools/node_modules/finalhandler/node_modules/debug/.travis.yml
diff --git a/src/cobalt/debug/remote/devtools/node_modules/finalhandler/node_modules/debug/CHANGELOG.md b/src/third_party/devtools/node_modules/finalhandler/node_modules/debug/CHANGELOG.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/finalhandler/node_modules/debug/CHANGELOG.md
rename to src/third_party/devtools/node_modules/finalhandler/node_modules/debug/CHANGELOG.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/finalhandler/node_modules/debug/LICENSE b/src/third_party/devtools/node_modules/finalhandler/node_modules/debug/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/finalhandler/node_modules/debug/LICENSE
rename to src/third_party/devtools/node_modules/finalhandler/node_modules/debug/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/finalhandler/node_modules/debug/Makefile b/src/third_party/devtools/node_modules/finalhandler/node_modules/debug/Makefile
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/finalhandler/node_modules/debug/Makefile
rename to src/third_party/devtools/node_modules/finalhandler/node_modules/debug/Makefile
diff --git a/src/cobalt/debug/remote/devtools/node_modules/finalhandler/node_modules/debug/README.md b/src/third_party/devtools/node_modules/finalhandler/node_modules/debug/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/finalhandler/node_modules/debug/README.md
rename to src/third_party/devtools/node_modules/finalhandler/node_modules/debug/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/finalhandler/node_modules/debug/component.json b/src/third_party/devtools/node_modules/finalhandler/node_modules/debug/component.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/finalhandler/node_modules/debug/component.json
rename to src/third_party/devtools/node_modules/finalhandler/node_modules/debug/component.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/finalhandler/node_modules/debug/karma.conf.js b/src/third_party/devtools/node_modules/finalhandler/node_modules/debug/karma.conf.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/finalhandler/node_modules/debug/karma.conf.js
rename to src/third_party/devtools/node_modules/finalhandler/node_modules/debug/karma.conf.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/finalhandler/node_modules/debug/node.js b/src/third_party/devtools/node_modules/finalhandler/node_modules/debug/node.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/finalhandler/node_modules/debug/node.js
rename to src/third_party/devtools/node_modules/finalhandler/node_modules/debug/node.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/finalhandler/node_modules/debug/package.json b/src/third_party/devtools/node_modules/finalhandler/node_modules/debug/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/finalhandler/node_modules/debug/package.json
rename to src/third_party/devtools/node_modules/finalhandler/node_modules/debug/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/finalhandler/node_modules/debug/src/browser.js b/src/third_party/devtools/node_modules/finalhandler/node_modules/debug/src/browser.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/finalhandler/node_modules/debug/src/browser.js
rename to src/third_party/devtools/node_modules/finalhandler/node_modules/debug/src/browser.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/finalhandler/node_modules/debug/src/debug.js b/src/third_party/devtools/node_modules/finalhandler/node_modules/debug/src/debug.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/finalhandler/node_modules/debug/src/debug.js
rename to src/third_party/devtools/node_modules/finalhandler/node_modules/debug/src/debug.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/finalhandler/node_modules/debug/src/index.js b/src/third_party/devtools/node_modules/finalhandler/node_modules/debug/src/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/finalhandler/node_modules/debug/src/index.js
rename to src/third_party/devtools/node_modules/finalhandler/node_modules/debug/src/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/finalhandler/node_modules/debug/src/inspector-log.js b/src/third_party/devtools/node_modules/finalhandler/node_modules/debug/src/inspector-log.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/finalhandler/node_modules/debug/src/inspector-log.js
rename to src/third_party/devtools/node_modules/finalhandler/node_modules/debug/src/inspector-log.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/finalhandler/node_modules/debug/src/node.js b/src/third_party/devtools/node_modules/finalhandler/node_modules/debug/src/node.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/finalhandler/node_modules/debug/src/node.js
rename to src/third_party/devtools/node_modules/finalhandler/node_modules/debug/src/node.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/finalhandler/node_modules/ms/index.js b/src/third_party/devtools/node_modules/finalhandler/node_modules/ms/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/finalhandler/node_modules/ms/index.js
rename to src/third_party/devtools/node_modules/finalhandler/node_modules/ms/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/finalhandler/node_modules/ms/license.md b/src/third_party/devtools/node_modules/finalhandler/node_modules/ms/license.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/finalhandler/node_modules/ms/license.md
rename to src/third_party/devtools/node_modules/finalhandler/node_modules/ms/license.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/finalhandler/node_modules/ms/package.json b/src/third_party/devtools/node_modules/finalhandler/node_modules/ms/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/finalhandler/node_modules/ms/package.json
rename to src/third_party/devtools/node_modules/finalhandler/node_modules/ms/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/finalhandler/node_modules/ms/readme.md b/src/third_party/devtools/node_modules/finalhandler/node_modules/ms/readme.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/finalhandler/node_modules/ms/readme.md
rename to src/third_party/devtools/node_modules/finalhandler/node_modules/ms/readme.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/finalhandler/package.json b/src/third_party/devtools/node_modules/finalhandler/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/finalhandler/package.json
rename to src/third_party/devtools/node_modules/finalhandler/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/find-up/index.js b/src/third_party/devtools/node_modules/find-up/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/find-up/index.js
rename to src/third_party/devtools/node_modules/find-up/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/find-up/license b/src/third_party/devtools/node_modules/find-up/license
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/find-up/license
rename to src/third_party/devtools/node_modules/find-up/license
diff --git a/src/cobalt/debug/remote/devtools/node_modules/find-up/package.json b/src/third_party/devtools/node_modules/find-up/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/find-up/package.json
rename to src/third_party/devtools/node_modules/find-up/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/find-up/readme.md b/src/third_party/devtools/node_modules/find-up/readme.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/find-up/readme.md
rename to src/third_party/devtools/node_modules/find-up/readme.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/flat-cache/LICENSE b/src/third_party/devtools/node_modules/flat-cache/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/flat-cache/LICENSE
rename to src/third_party/devtools/node_modules/flat-cache/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/flat-cache/README.md b/src/third_party/devtools/node_modules/flat-cache/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/flat-cache/README.md
rename to src/third_party/devtools/node_modules/flat-cache/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/flat-cache/cache.js b/src/third_party/devtools/node_modules/flat-cache/cache.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/flat-cache/cache.js
rename to src/third_party/devtools/node_modules/flat-cache/cache.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/flat-cache/changelog.md b/src/third_party/devtools/node_modules/flat-cache/changelog.md
similarity index 99%
rename from src/cobalt/debug/remote/devtools/node_modules/flat-cache/changelog.md
rename to src/third_party/devtools/node_modules/flat-cache/changelog.md
index 0bdcfd4..caaff22 100644
--- a/src/cobalt/debug/remote/devtools/node_modules/flat-cache/changelog.md
+++ b/src/third_party/devtools/node_modules/flat-cache/changelog.md
@@ -19,21 +19,21 @@
     
   - Change JSON parser from circular-json to flatted & 1 more changes ([#37](https://github.com/royriojas/flat-cache/issues/37)) - [745e65a]( https://github.com/royriojas/flat-cache/commit/745e65a ), [Andy Chen](https://github.com/Andy Chen), 08/01/2019 19:17:20
 
-    * Change JSON parser from circular-json to flatted & 1 more changes

-    

-    * Change JSON parser from circular-json

-    * Audited 2 vulnerabilities

-    

-    * Update package.json

-    

-    * Update Engine require

-    

-    * There's a bunch of dependencies in this pkg requires node >=4, so I changed it to 4

-    

-    * Remove and add node versions

-    

-    * I have seen this pkg is not available with node 0.12 so I removed it

-    * I have added a popular used LTS version of node - 10

+    * Change JSON parser from circular-json to flatted & 1 more changes
+    
+    * Change JSON parser from circular-json
+    * Audited 2 vulnerabilities
+    
+    * Update package.json
+    
+    * Update Engine require
+    
+    * There's a bunch of dependencies in this pkg requires node >=4, so I changed it to 4
+    
+    * Remove and add node versions
+    
+    * I have seen this pkg is not available with node 0.12 so I removed it
+    * I have added a popular used LTS version of node - 10
     
 ## v1.3.4
 - **Refactoring**
@@ -48,17 +48,17 @@
 - **Other changes**
   - Removed the need for del ([#33](https://github.com/royriojas/flat-cache/issues/33)) - [c429012]( https://github.com/royriojas/flat-cache/commit/c429012 ), [S. Gilroy](https://github.com/S. Gilroy), 13/11/2018 16:56:37
 
-    * Removed the need for del

-    

-    Removed the need for del as newer versions have broken backwards

-    compatibility. del mainly uses rimraf for deleting folders

-    and files, replaceing it with rimraf only is a minimal change.

-    

-    * Disable glob on rimraf calls

-    

-    * Added glob disable to wrong call

-    

-    * Wrapped rimraf to simplify solution

+    * Removed the need for del
+    
+    Removed the need for del as newer versions have broken backwards
+    compatibility. del mainly uses rimraf for deleting folders
+    and files, replaceing it with rimraf only is a minimal change.
+    
+    * Disable glob on rimraf calls
+    
+    * Added glob disable to wrong call
+    
+    * Wrapped rimraf to simplify solution
     
 ## v1.3.2
 - **Refactoring**
@@ -87,17 +87,17 @@
 - **Other changes**
   - Added #all method ([#16](https://github.com/royriojas/flat-cache/issues/16)) - [12293be]( https://github.com/royriojas/flat-cache/commit/12293be ), [Ozair Patel](https://github.com/Ozair Patel), 25/09/2017 16:46:38
 
-    * Added #all method

-    

-    * Added #all method test

-    

-    * Updated readme

-    

-    * Added yarn.lock

-    

-    * Added more keys for #all test

-    

-    * Beautified file

+    * Added #all method
+    
+    * Added #all method test
+    
+    * Updated readme
+    
+    * Added yarn.lock
+    
+    * Added more keys for #all test
+    
+    * Beautified file
     
   - fix changelog title style ([#14](https://github.com/royriojas/flat-cache/issues/14)) - [af8338a]( https://github.com/royriojas/flat-cache/commit/af8338a ), [前端小武](https://github.com/前端小武), 19/12/2016 23:34:48
 
@@ -106,13 +106,13 @@
 - **Bug Fixes**
   - Do not crash if cache file is invalid JSON. ([#13](https://github.com/royriojas/flat-cache/issues/13)) - [87beaa6]( https://github.com/royriojas/flat-cache/commit/87beaa6 ), [Roy Riojas](https://github.com/Roy Riojas), 19/12/2016 21:03:35
 
-    Fixes <a target="_blank" class="info-link" href="https://github.com/royriojas/flat-cache/issues/12"><span>#12</span></a>

-    

-    Not sure under which situations a cache file might exist that does

-    not contain a valid JSON structure, but just in case to cover

-    the possibility of this happening a try catch block has been added

-    

-    If the cache is somehow not valid the cache will be discarded an a

+    Fixes <a target="_blank" class="info-link" href="https://github.com/royriojas/flat-cache/issues/12"><span>#12</span></a>
+    
+    Not sure under which situations a cache file might exist that does
+    not contain a valid JSON structure, but just in case to cover
+    the possibility of this happening a try catch block has been added
+    
+    If the cache is somehow not valid the cache will be discarded an a
     a new cache will be stored instead
 - **Other changes**
   - Added travis ci support for modern node versions ([#11](https://github.com/royriojas/flat-cache/issues/11)) - [1c2b1f7]( https://github.com/royriojas/flat-cache/commit/1c2b1f7 ), [Amila Welihinda](https://github.com/Amila Welihinda), 11/11/2016 02:47:52
@@ -120,8 +120,8 @@
     
   - Bumping `circular-son` version ([#10](https://github.com/royriojas/flat-cache/issues/10)) - [4d5e861]( https://github.com/royriojas/flat-cache/commit/4d5e861 ), [Andrea Giammarchi](https://github.com/Andrea Giammarchi), 02/08/2016 09:13:52
 
-    As mentioned in https://github.com/WebReflection/circular-json/issues/25 `circular-json` wan't rightly implementing the license field.

-    

+    As mentioned in https://github.com/WebReflection/circular-json/issues/25 `circular-json` wan't rightly implementing the license field.
+    
     Latest version bump changed only that bit so that ESLint should now be happy.
 ## v1.2.1
 - **Bug Fixes**
diff --git a/src/cobalt/debug/remote/devtools/node_modules/flat-cache/del.js b/src/third_party/devtools/node_modules/flat-cache/del.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/flat-cache/del.js
rename to src/third_party/devtools/node_modules/flat-cache/del.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/flat-cache/package.json b/src/third_party/devtools/node_modules/flat-cache/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/flat-cache/package.json
rename to src/third_party/devtools/node_modules/flat-cache/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/flat-cache/utils.js b/src/third_party/devtools/node_modules/flat-cache/utils.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/flat-cache/utils.js
rename to src/third_party/devtools/node_modules/flat-cache/utils.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/flat/.travis.yml b/src/third_party/devtools/node_modules/flat/.travis.yml
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/flat/.travis.yml
rename to src/third_party/devtools/node_modules/flat/.travis.yml
diff --git a/src/cobalt/debug/remote/devtools/node_modules/flat/LICENSE b/src/third_party/devtools/node_modules/flat/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/flat/LICENSE
rename to src/third_party/devtools/node_modules/flat/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/flat/README.md b/src/third_party/devtools/node_modules/flat/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/flat/README.md
rename to src/third_party/devtools/node_modules/flat/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/flat/cli.js b/src/third_party/devtools/node_modules/flat/cli.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/flat/cli.js
rename to src/third_party/devtools/node_modules/flat/cli.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/flat/index.js b/src/third_party/devtools/node_modules/flat/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/flat/index.js
rename to src/third_party/devtools/node_modules/flat/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/flat/package.json b/src/third_party/devtools/node_modules/flat/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/flat/package.json
rename to src/third_party/devtools/node_modules/flat/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/flat/test/test.js b/src/third_party/devtools/node_modules/flat/test/test.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/flat/test/test.js
rename to src/third_party/devtools/node_modules/flat/test/test.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/flatted/.github/FUNDING.yml b/src/third_party/devtools/node_modules/flatted/.github/FUNDING.yml
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/flatted/.github/FUNDING.yml
rename to src/third_party/devtools/node_modules/flatted/.github/FUNDING.yml
diff --git a/src/cobalt/debug/remote/devtools/node_modules/flatted/LICENSE b/src/third_party/devtools/node_modules/flatted/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/flatted/LICENSE
rename to src/third_party/devtools/node_modules/flatted/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/flatted/README.md b/src/third_party/devtools/node_modules/flatted/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/flatted/README.md
rename to src/third_party/devtools/node_modules/flatted/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/flatted/SPECS.md b/src/third_party/devtools/node_modules/flatted/SPECS.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/flatted/SPECS.md
rename to src/third_party/devtools/node_modules/flatted/SPECS.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/flatted/cjs/index.js b/src/third_party/devtools/node_modules/flatted/cjs/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/flatted/cjs/index.js
rename to src/third_party/devtools/node_modules/flatted/cjs/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/flatted/esm/index.js b/src/third_party/devtools/node_modules/flatted/esm/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/flatted/esm/index.js
rename to src/third_party/devtools/node_modules/flatted/esm/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/flatted/index.js b/src/third_party/devtools/node_modules/flatted/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/flatted/index.js
rename to src/third_party/devtools/node_modules/flatted/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/flatted/min.js b/src/third_party/devtools/node_modules/flatted/min.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/flatted/min.js
rename to src/third_party/devtools/node_modules/flatted/min.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/flatted/package.json b/src/third_party/devtools/node_modules/flatted/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/flatted/package.json
rename to src/third_party/devtools/node_modules/flatted/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/flatted/types.d.ts b/src/third_party/devtools/node_modules/flatted/types.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/flatted/types.d.ts
rename to src/third_party/devtools/node_modules/flatted/types.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/follow-redirects/LICENSE b/src/third_party/devtools/node_modules/follow-redirects/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/follow-redirects/LICENSE
rename to src/third_party/devtools/node_modules/follow-redirects/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/follow-redirects/README.md b/src/third_party/devtools/node_modules/follow-redirects/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/follow-redirects/README.md
rename to src/third_party/devtools/node_modules/follow-redirects/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/follow-redirects/http.js b/src/third_party/devtools/node_modules/follow-redirects/http.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/follow-redirects/http.js
rename to src/third_party/devtools/node_modules/follow-redirects/http.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/follow-redirects/https.js b/src/third_party/devtools/node_modules/follow-redirects/https.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/follow-redirects/https.js
rename to src/third_party/devtools/node_modules/follow-redirects/https.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/follow-redirects/index.js b/src/third_party/devtools/node_modules/follow-redirects/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/follow-redirects/index.js
rename to src/third_party/devtools/node_modules/follow-redirects/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/follow-redirects/node_modules/debug/CHANGELOG.md b/src/third_party/devtools/node_modules/follow-redirects/node_modules/debug/CHANGELOG.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/follow-redirects/node_modules/debug/CHANGELOG.md
rename to src/third_party/devtools/node_modules/follow-redirects/node_modules/debug/CHANGELOG.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/follow-redirects/node_modules/debug/LICENSE b/src/third_party/devtools/node_modules/follow-redirects/node_modules/debug/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/follow-redirects/node_modules/debug/LICENSE
rename to src/third_party/devtools/node_modules/follow-redirects/node_modules/debug/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/follow-redirects/node_modules/debug/README.md b/src/third_party/devtools/node_modules/follow-redirects/node_modules/debug/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/follow-redirects/node_modules/debug/README.md
rename to src/third_party/devtools/node_modules/follow-redirects/node_modules/debug/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/follow-redirects/node_modules/debug/dist/debug.js b/src/third_party/devtools/node_modules/follow-redirects/node_modules/debug/dist/debug.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/follow-redirects/node_modules/debug/dist/debug.js
rename to src/third_party/devtools/node_modules/follow-redirects/node_modules/debug/dist/debug.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/follow-redirects/node_modules/debug/node.js b/src/third_party/devtools/node_modules/follow-redirects/node_modules/debug/node.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/follow-redirects/node_modules/debug/node.js
rename to src/third_party/devtools/node_modules/follow-redirects/node_modules/debug/node.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/follow-redirects/node_modules/debug/package.json b/src/third_party/devtools/node_modules/follow-redirects/node_modules/debug/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/follow-redirects/node_modules/debug/package.json
rename to src/third_party/devtools/node_modules/follow-redirects/node_modules/debug/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/follow-redirects/node_modules/debug/src/browser.js b/src/third_party/devtools/node_modules/follow-redirects/node_modules/debug/src/browser.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/follow-redirects/node_modules/debug/src/browser.js
rename to src/third_party/devtools/node_modules/follow-redirects/node_modules/debug/src/browser.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/follow-redirects/node_modules/debug/src/common.js b/src/third_party/devtools/node_modules/follow-redirects/node_modules/debug/src/common.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/follow-redirects/node_modules/debug/src/common.js
rename to src/third_party/devtools/node_modules/follow-redirects/node_modules/debug/src/common.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/follow-redirects/node_modules/debug/src/index.js b/src/third_party/devtools/node_modules/follow-redirects/node_modules/debug/src/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/follow-redirects/node_modules/debug/src/index.js
rename to src/third_party/devtools/node_modules/follow-redirects/node_modules/debug/src/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/follow-redirects/node_modules/debug/src/node.js b/src/third_party/devtools/node_modules/follow-redirects/node_modules/debug/src/node.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/follow-redirects/node_modules/debug/src/node.js
rename to src/third_party/devtools/node_modules/follow-redirects/node_modules/debug/src/node.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/follow-redirects/package.json b/src/third_party/devtools/node_modules/follow-redirects/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/follow-redirects/package.json
rename to src/third_party/devtools/node_modules/follow-redirects/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/fs-extra/CHANGELOG.md b/src/third_party/devtools/node_modules/fs-extra/CHANGELOG.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/fs-extra/CHANGELOG.md
rename to src/third_party/devtools/node_modules/fs-extra/CHANGELOG.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/fs-extra/LICENSE b/src/third_party/devtools/node_modules/fs-extra/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/fs-extra/LICENSE
rename to src/third_party/devtools/node_modules/fs-extra/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/fs-extra/README.md b/src/third_party/devtools/node_modules/fs-extra/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/fs-extra/README.md
rename to src/third_party/devtools/node_modules/fs-extra/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/fs-extra/lib/copy-sync/copy-sync.js b/src/third_party/devtools/node_modules/fs-extra/lib/copy-sync/copy-sync.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/fs-extra/lib/copy-sync/copy-sync.js
rename to src/third_party/devtools/node_modules/fs-extra/lib/copy-sync/copy-sync.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/fs-extra/lib/copy-sync/index.js b/src/third_party/devtools/node_modules/fs-extra/lib/copy-sync/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/fs-extra/lib/copy-sync/index.js
rename to src/third_party/devtools/node_modules/fs-extra/lib/copy-sync/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/fs-extra/lib/copy/copy.js b/src/third_party/devtools/node_modules/fs-extra/lib/copy/copy.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/fs-extra/lib/copy/copy.js
rename to src/third_party/devtools/node_modules/fs-extra/lib/copy/copy.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/fs-extra/lib/copy/index.js b/src/third_party/devtools/node_modules/fs-extra/lib/copy/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/fs-extra/lib/copy/index.js
rename to src/third_party/devtools/node_modules/fs-extra/lib/copy/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/fs-extra/lib/empty/index.js b/src/third_party/devtools/node_modules/fs-extra/lib/empty/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/fs-extra/lib/empty/index.js
rename to src/third_party/devtools/node_modules/fs-extra/lib/empty/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/fs-extra/lib/ensure/file.js b/src/third_party/devtools/node_modules/fs-extra/lib/ensure/file.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/fs-extra/lib/ensure/file.js
rename to src/third_party/devtools/node_modules/fs-extra/lib/ensure/file.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/fs-extra/lib/ensure/index.js b/src/third_party/devtools/node_modules/fs-extra/lib/ensure/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/fs-extra/lib/ensure/index.js
rename to src/third_party/devtools/node_modules/fs-extra/lib/ensure/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/fs-extra/lib/ensure/link.js b/src/third_party/devtools/node_modules/fs-extra/lib/ensure/link.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/fs-extra/lib/ensure/link.js
rename to src/third_party/devtools/node_modules/fs-extra/lib/ensure/link.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/fs-extra/lib/ensure/symlink-paths.js b/src/third_party/devtools/node_modules/fs-extra/lib/ensure/symlink-paths.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/fs-extra/lib/ensure/symlink-paths.js
rename to src/third_party/devtools/node_modules/fs-extra/lib/ensure/symlink-paths.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/fs-extra/lib/ensure/symlink-type.js b/src/third_party/devtools/node_modules/fs-extra/lib/ensure/symlink-type.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/fs-extra/lib/ensure/symlink-type.js
rename to src/third_party/devtools/node_modules/fs-extra/lib/ensure/symlink-type.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/fs-extra/lib/ensure/symlink.js b/src/third_party/devtools/node_modules/fs-extra/lib/ensure/symlink.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/fs-extra/lib/ensure/symlink.js
rename to src/third_party/devtools/node_modules/fs-extra/lib/ensure/symlink.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/fs-extra/lib/fs/index.js b/src/third_party/devtools/node_modules/fs-extra/lib/fs/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/fs-extra/lib/fs/index.js
rename to src/third_party/devtools/node_modules/fs-extra/lib/fs/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/fs-extra/lib/index.js b/src/third_party/devtools/node_modules/fs-extra/lib/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/fs-extra/lib/index.js
rename to src/third_party/devtools/node_modules/fs-extra/lib/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/fs-extra/lib/json/index.js b/src/third_party/devtools/node_modules/fs-extra/lib/json/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/fs-extra/lib/json/index.js
rename to src/third_party/devtools/node_modules/fs-extra/lib/json/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/fs-extra/lib/json/jsonfile.js b/src/third_party/devtools/node_modules/fs-extra/lib/json/jsonfile.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/fs-extra/lib/json/jsonfile.js
rename to src/third_party/devtools/node_modules/fs-extra/lib/json/jsonfile.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/fs-extra/lib/json/output-json-sync.js b/src/third_party/devtools/node_modules/fs-extra/lib/json/output-json-sync.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/fs-extra/lib/json/output-json-sync.js
rename to src/third_party/devtools/node_modules/fs-extra/lib/json/output-json-sync.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/fs-extra/lib/json/output-json.js b/src/third_party/devtools/node_modules/fs-extra/lib/json/output-json.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/fs-extra/lib/json/output-json.js
rename to src/third_party/devtools/node_modules/fs-extra/lib/json/output-json.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/fs-extra/lib/mkdirs/index.js b/src/third_party/devtools/node_modules/fs-extra/lib/mkdirs/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/fs-extra/lib/mkdirs/index.js
rename to src/third_party/devtools/node_modules/fs-extra/lib/mkdirs/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/fs-extra/lib/mkdirs/mkdirs-sync.js b/src/third_party/devtools/node_modules/fs-extra/lib/mkdirs/mkdirs-sync.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/fs-extra/lib/mkdirs/mkdirs-sync.js
rename to src/third_party/devtools/node_modules/fs-extra/lib/mkdirs/mkdirs-sync.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/fs-extra/lib/mkdirs/mkdirs.js b/src/third_party/devtools/node_modules/fs-extra/lib/mkdirs/mkdirs.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/fs-extra/lib/mkdirs/mkdirs.js
rename to src/third_party/devtools/node_modules/fs-extra/lib/mkdirs/mkdirs.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/fs-extra/lib/mkdirs/win32.js b/src/third_party/devtools/node_modules/fs-extra/lib/mkdirs/win32.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/fs-extra/lib/mkdirs/win32.js
rename to src/third_party/devtools/node_modules/fs-extra/lib/mkdirs/win32.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/fs-extra/lib/move-sync/index.js b/src/third_party/devtools/node_modules/fs-extra/lib/move-sync/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/fs-extra/lib/move-sync/index.js
rename to src/third_party/devtools/node_modules/fs-extra/lib/move-sync/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/fs-extra/lib/move/index.js b/src/third_party/devtools/node_modules/fs-extra/lib/move/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/fs-extra/lib/move/index.js
rename to src/third_party/devtools/node_modules/fs-extra/lib/move/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/fs-extra/lib/output/index.js b/src/third_party/devtools/node_modules/fs-extra/lib/output/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/fs-extra/lib/output/index.js
rename to src/third_party/devtools/node_modules/fs-extra/lib/output/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/fs-extra/lib/path-exists/index.js b/src/third_party/devtools/node_modules/fs-extra/lib/path-exists/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/fs-extra/lib/path-exists/index.js
rename to src/third_party/devtools/node_modules/fs-extra/lib/path-exists/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/fs-extra/lib/remove/index.js b/src/third_party/devtools/node_modules/fs-extra/lib/remove/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/fs-extra/lib/remove/index.js
rename to src/third_party/devtools/node_modules/fs-extra/lib/remove/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/fs-extra/lib/remove/rimraf.js b/src/third_party/devtools/node_modules/fs-extra/lib/remove/rimraf.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/fs-extra/lib/remove/rimraf.js
rename to src/third_party/devtools/node_modules/fs-extra/lib/remove/rimraf.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/fs-extra/lib/util/buffer.js b/src/third_party/devtools/node_modules/fs-extra/lib/util/buffer.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/fs-extra/lib/util/buffer.js
rename to src/third_party/devtools/node_modules/fs-extra/lib/util/buffer.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/fs-extra/lib/util/utimes.js b/src/third_party/devtools/node_modules/fs-extra/lib/util/utimes.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/fs-extra/lib/util/utimes.js
rename to src/third_party/devtools/node_modules/fs-extra/lib/util/utimes.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/fs-extra/package.json b/src/third_party/devtools/node_modules/fs-extra/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/fs-extra/package.json
rename to src/third_party/devtools/node_modules/fs-extra/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/fs.realpath/LICENSE b/src/third_party/devtools/node_modules/fs.realpath/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/fs.realpath/LICENSE
rename to src/third_party/devtools/node_modules/fs.realpath/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/fs.realpath/README.md b/src/third_party/devtools/node_modules/fs.realpath/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/fs.realpath/README.md
rename to src/third_party/devtools/node_modules/fs.realpath/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/fs.realpath/index.js b/src/third_party/devtools/node_modules/fs.realpath/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/fs.realpath/index.js
rename to src/third_party/devtools/node_modules/fs.realpath/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/fs.realpath/old.js b/src/third_party/devtools/node_modules/fs.realpath/old.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/fs.realpath/old.js
rename to src/third_party/devtools/node_modules/fs.realpath/old.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/fs.realpath/package.json b/src/third_party/devtools/node_modules/fs.realpath/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/fs.realpath/package.json
rename to src/third_party/devtools/node_modules/fs.realpath/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/fsevents/LICENSE b/src/third_party/devtools/node_modules/fsevents/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/fsevents/LICENSE
rename to src/third_party/devtools/node_modules/fsevents/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/fsevents/README.md b/src/third_party/devtools/node_modules/fsevents/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/fsevents/README.md
rename to src/third_party/devtools/node_modules/fsevents/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/fsevents/fsevents.js b/src/third_party/devtools/node_modules/fsevents/fsevents.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/fsevents/fsevents.js
rename to src/third_party/devtools/node_modules/fsevents/fsevents.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/fsevents/fsevents.node b/src/third_party/devtools/node_modules/fsevents/fsevents.node
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/fsevents/fsevents.node
rename to src/third_party/devtools/node_modules/fsevents/fsevents.node
Binary files differ
diff --git a/src/cobalt/debug/remote/devtools/node_modules/fsevents/package.json b/src/third_party/devtools/node_modules/fsevents/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/fsevents/package.json
rename to src/third_party/devtools/node_modules/fsevents/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/function-bind/.editorconfig b/src/third_party/devtools/node_modules/function-bind/.editorconfig
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/function-bind/.editorconfig
rename to src/third_party/devtools/node_modules/function-bind/.editorconfig
diff --git a/src/cobalt/debug/remote/devtools/node_modules/function-bind/.eslintrc b/src/third_party/devtools/node_modules/function-bind/.eslintrc
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/function-bind/.eslintrc
rename to src/third_party/devtools/node_modules/function-bind/.eslintrc
diff --git a/src/cobalt/debug/remote/devtools/node_modules/function-bind/.jscs.json b/src/third_party/devtools/node_modules/function-bind/.jscs.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/function-bind/.jscs.json
rename to src/third_party/devtools/node_modules/function-bind/.jscs.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/function-bind/.npmignore b/src/third_party/devtools/node_modules/function-bind/.npmignore
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/function-bind/.npmignore
rename to src/third_party/devtools/node_modules/function-bind/.npmignore
diff --git a/src/cobalt/debug/remote/devtools/node_modules/function-bind/.travis.yml b/src/third_party/devtools/node_modules/function-bind/.travis.yml
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/function-bind/.travis.yml
rename to src/third_party/devtools/node_modules/function-bind/.travis.yml
diff --git a/src/cobalt/debug/remote/devtools/node_modules/function-bind/LICENSE b/src/third_party/devtools/node_modules/function-bind/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/function-bind/LICENSE
rename to src/third_party/devtools/node_modules/function-bind/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/function-bind/README.md b/src/third_party/devtools/node_modules/function-bind/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/function-bind/README.md
rename to src/third_party/devtools/node_modules/function-bind/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/function-bind/implementation.js b/src/third_party/devtools/node_modules/function-bind/implementation.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/function-bind/implementation.js
rename to src/third_party/devtools/node_modules/function-bind/implementation.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/function-bind/index.js b/src/third_party/devtools/node_modules/function-bind/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/function-bind/index.js
rename to src/third_party/devtools/node_modules/function-bind/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/function-bind/package.json b/src/third_party/devtools/node_modules/function-bind/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/function-bind/package.json
rename to src/third_party/devtools/node_modules/function-bind/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/function-bind/test/.eslintrc b/src/third_party/devtools/node_modules/function-bind/test/.eslintrc
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/function-bind/test/.eslintrc
rename to src/third_party/devtools/node_modules/function-bind/test/.eslintrc
diff --git a/src/cobalt/debug/remote/devtools/node_modules/function-bind/test/index.js b/src/third_party/devtools/node_modules/function-bind/test/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/function-bind/test/index.js
rename to src/third_party/devtools/node_modules/function-bind/test/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/functional-red-black-tree/.npmignore b/src/third_party/devtools/node_modules/functional-red-black-tree/.npmignore
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/functional-red-black-tree/.npmignore
rename to src/third_party/devtools/node_modules/functional-red-black-tree/.npmignore
diff --git a/src/cobalt/debug/remote/devtools/node_modules/functional-red-black-tree/LICENSE b/src/third_party/devtools/node_modules/functional-red-black-tree/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/functional-red-black-tree/LICENSE
rename to src/third_party/devtools/node_modules/functional-red-black-tree/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/functional-red-black-tree/README.md b/src/third_party/devtools/node_modules/functional-red-black-tree/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/functional-red-black-tree/README.md
rename to src/third_party/devtools/node_modules/functional-red-black-tree/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/functional-red-black-tree/bench/test.js b/src/third_party/devtools/node_modules/functional-red-black-tree/bench/test.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/functional-red-black-tree/bench/test.js
rename to src/third_party/devtools/node_modules/functional-red-black-tree/bench/test.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/functional-red-black-tree/package.json b/src/third_party/devtools/node_modules/functional-red-black-tree/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/functional-red-black-tree/package.json
rename to src/third_party/devtools/node_modules/functional-red-black-tree/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/functional-red-black-tree/rbtree.js b/src/third_party/devtools/node_modules/functional-red-black-tree/rbtree.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/functional-red-black-tree/rbtree.js
rename to src/third_party/devtools/node_modules/functional-red-black-tree/rbtree.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/functional-red-black-tree/test/test.js b/src/third_party/devtools/node_modules/functional-red-black-tree/test/test.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/functional-red-black-tree/test/test.js
rename to src/third_party/devtools/node_modules/functional-red-black-tree/test/test.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/get-caller-file/LICENSE.md b/src/third_party/devtools/node_modules/get-caller-file/LICENSE.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/get-caller-file/LICENSE.md
rename to src/third_party/devtools/node_modules/get-caller-file/LICENSE.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/get-caller-file/README.md b/src/third_party/devtools/node_modules/get-caller-file/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/get-caller-file/README.md
rename to src/third_party/devtools/node_modules/get-caller-file/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/get-caller-file/index.d.ts b/src/third_party/devtools/node_modules/get-caller-file/index.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/get-caller-file/index.d.ts
rename to src/third_party/devtools/node_modules/get-caller-file/index.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/get-caller-file/index.js b/src/third_party/devtools/node_modules/get-caller-file/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/get-caller-file/index.js
rename to src/third_party/devtools/node_modules/get-caller-file/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/get-caller-file/index.js.map b/src/third_party/devtools/node_modules/get-caller-file/index.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/get-caller-file/index.js.map
rename to src/third_party/devtools/node_modules/get-caller-file/index.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/get-caller-file/package.json b/src/third_party/devtools/node_modules/get-caller-file/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/get-caller-file/package.json
rename to src/third_party/devtools/node_modules/get-caller-file/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/get-func-name/LICENSE b/src/third_party/devtools/node_modules/get-func-name/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/get-func-name/LICENSE
rename to src/third_party/devtools/node_modules/get-func-name/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/get-func-name/README.md b/src/third_party/devtools/node_modules/get-func-name/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/get-func-name/README.md
rename to src/third_party/devtools/node_modules/get-func-name/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/get-func-name/get-func-name.js b/src/third_party/devtools/node_modules/get-func-name/get-func-name.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/get-func-name/get-func-name.js
rename to src/third_party/devtools/node_modules/get-func-name/get-func-name.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/get-func-name/index.js b/src/third_party/devtools/node_modules/get-func-name/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/get-func-name/index.js
rename to src/third_party/devtools/node_modules/get-func-name/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/get-func-name/package.json b/src/third_party/devtools/node_modules/get-func-name/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/get-func-name/package.json
rename to src/third_party/devtools/node_modules/get-func-name/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/get-stdin/index.js b/src/third_party/devtools/node_modules/get-stdin/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/get-stdin/index.js
rename to src/third_party/devtools/node_modules/get-stdin/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/get-stdin/package.json b/src/third_party/devtools/node_modules/get-stdin/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/get-stdin/package.json
rename to src/third_party/devtools/node_modules/get-stdin/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/get-stdin/readme.md b/src/third_party/devtools/node_modules/get-stdin/readme.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/get-stdin/readme.md
rename to src/third_party/devtools/node_modules/get-stdin/readme.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/get-stream/buffer-stream.js b/src/third_party/devtools/node_modules/get-stream/buffer-stream.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/get-stream/buffer-stream.js
rename to src/third_party/devtools/node_modules/get-stream/buffer-stream.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/get-stream/index.js b/src/third_party/devtools/node_modules/get-stream/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/get-stream/index.js
rename to src/third_party/devtools/node_modules/get-stream/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/get-stream/license b/src/third_party/devtools/node_modules/get-stream/license
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/get-stream/license
rename to src/third_party/devtools/node_modules/get-stream/license
diff --git a/src/cobalt/debug/remote/devtools/node_modules/get-stream/package.json b/src/third_party/devtools/node_modules/get-stream/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/get-stream/package.json
rename to src/third_party/devtools/node_modules/get-stream/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/get-stream/readme.md b/src/third_party/devtools/node_modules/get-stream/readme.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/get-stream/readme.md
rename to src/third_party/devtools/node_modules/get-stream/readme.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/glob-parent/LICENSE b/src/third_party/devtools/node_modules/glob-parent/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/glob-parent/LICENSE
rename to src/third_party/devtools/node_modules/glob-parent/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/glob-parent/README.md b/src/third_party/devtools/node_modules/glob-parent/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/glob-parent/README.md
rename to src/third_party/devtools/node_modules/glob-parent/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/glob-parent/index.js b/src/third_party/devtools/node_modules/glob-parent/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/glob-parent/index.js
rename to src/third_party/devtools/node_modules/glob-parent/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/glob-parent/node_modules/is-glob/LICENSE b/src/third_party/devtools/node_modules/glob-parent/node_modules/is-glob/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/glob-parent/node_modules/is-glob/LICENSE
rename to src/third_party/devtools/node_modules/glob-parent/node_modules/is-glob/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/glob-parent/node_modules/is-glob/README.md b/src/third_party/devtools/node_modules/glob-parent/node_modules/is-glob/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/glob-parent/node_modules/is-glob/README.md
rename to src/third_party/devtools/node_modules/glob-parent/node_modules/is-glob/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/glob-parent/node_modules/is-glob/index.js b/src/third_party/devtools/node_modules/glob-parent/node_modules/is-glob/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/glob-parent/node_modules/is-glob/index.js
rename to src/third_party/devtools/node_modules/glob-parent/node_modules/is-glob/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/glob-parent/node_modules/is-glob/package.json b/src/third_party/devtools/node_modules/glob-parent/node_modules/is-glob/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/glob-parent/node_modules/is-glob/package.json
rename to src/third_party/devtools/node_modules/glob-parent/node_modules/is-glob/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/glob-parent/package.json b/src/third_party/devtools/node_modules/glob-parent/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/glob-parent/package.json
rename to src/third_party/devtools/node_modules/glob-parent/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/glob/LICENSE b/src/third_party/devtools/node_modules/glob/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/glob/LICENSE
rename to src/third_party/devtools/node_modules/glob/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/glob/README.md b/src/third_party/devtools/node_modules/glob/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/glob/README.md
rename to src/third_party/devtools/node_modules/glob/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/glob/changelog.md b/src/third_party/devtools/node_modules/glob/changelog.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/glob/changelog.md
rename to src/third_party/devtools/node_modules/glob/changelog.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/glob/common.js b/src/third_party/devtools/node_modules/glob/common.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/glob/common.js
rename to src/third_party/devtools/node_modules/glob/common.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/glob/glob.js b/src/third_party/devtools/node_modules/glob/glob.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/glob/glob.js
rename to src/third_party/devtools/node_modules/glob/glob.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/glob/package.json b/src/third_party/devtools/node_modules/glob/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/glob/package.json
rename to src/third_party/devtools/node_modules/glob/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/glob/sync.js b/src/third_party/devtools/node_modules/glob/sync.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/glob/sync.js
rename to src/third_party/devtools/node_modules/glob/sync.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/globals/LICENSE b/src/third_party/devtools/node_modules/globals/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/globals/LICENSE
rename to src/third_party/devtools/node_modules/globals/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/globals/globals.json b/src/third_party/devtools/node_modules/globals/globals.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/globals/globals.json
rename to src/third_party/devtools/node_modules/globals/globals.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/globals/index.js b/src/third_party/devtools/node_modules/globals/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/globals/index.js
rename to src/third_party/devtools/node_modules/globals/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/globals/package.json b/src/third_party/devtools/node_modules/globals/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/globals/package.json
rename to src/third_party/devtools/node_modules/globals/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/globals/readme.md b/src/third_party/devtools/node_modules/globals/readme.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/globals/readme.md
rename to src/third_party/devtools/node_modules/globals/readme.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/graceful-fs/LICENSE b/src/third_party/devtools/node_modules/graceful-fs/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/graceful-fs/LICENSE
rename to src/third_party/devtools/node_modules/graceful-fs/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/graceful-fs/README.md b/src/third_party/devtools/node_modules/graceful-fs/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/graceful-fs/README.md
rename to src/third_party/devtools/node_modules/graceful-fs/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/graceful-fs/clone.js b/src/third_party/devtools/node_modules/graceful-fs/clone.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/graceful-fs/clone.js
rename to src/third_party/devtools/node_modules/graceful-fs/clone.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/graceful-fs/graceful-fs.js b/src/third_party/devtools/node_modules/graceful-fs/graceful-fs.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/graceful-fs/graceful-fs.js
rename to src/third_party/devtools/node_modules/graceful-fs/graceful-fs.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/graceful-fs/legacy-streams.js b/src/third_party/devtools/node_modules/graceful-fs/legacy-streams.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/graceful-fs/legacy-streams.js
rename to src/third_party/devtools/node_modules/graceful-fs/legacy-streams.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/graceful-fs/package.json b/src/third_party/devtools/node_modules/graceful-fs/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/graceful-fs/package.json
rename to src/third_party/devtools/node_modules/graceful-fs/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/graceful-fs/polyfills.js b/src/third_party/devtools/node_modules/graceful-fs/polyfills.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/graceful-fs/polyfills.js
rename to src/third_party/devtools/node_modules/graceful-fs/polyfills.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/growl/.eslintrc.json b/src/third_party/devtools/node_modules/growl/.eslintrc.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/growl/.eslintrc.json
rename to src/third_party/devtools/node_modules/growl/.eslintrc.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/growl/.tags b/src/third_party/devtools/node_modules/growl/.tags
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/growl/.tags
rename to src/third_party/devtools/node_modules/growl/.tags
diff --git a/src/cobalt/debug/remote/devtools/node_modules/growl/.tags1 b/src/third_party/devtools/node_modules/growl/.tags1
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/growl/.tags1
rename to src/third_party/devtools/node_modules/growl/.tags1
diff --git a/src/cobalt/debug/remote/devtools/node_modules/growl/.travis.yml b/src/third_party/devtools/node_modules/growl/.travis.yml
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/growl/.travis.yml
rename to src/third_party/devtools/node_modules/growl/.travis.yml
diff --git a/src/cobalt/debug/remote/devtools/node_modules/growl/History.md b/src/third_party/devtools/node_modules/growl/History.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/growl/History.md
rename to src/third_party/devtools/node_modules/growl/History.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/growl/Readme.md b/src/third_party/devtools/node_modules/growl/Readme.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/growl/Readme.md
rename to src/third_party/devtools/node_modules/growl/Readme.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/growl/lib/growl.js b/src/third_party/devtools/node_modules/growl/lib/growl.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/growl/lib/growl.js
rename to src/third_party/devtools/node_modules/growl/lib/growl.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/growl/package.json b/src/third_party/devtools/node_modules/growl/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/growl/package.json
rename to src/third_party/devtools/node_modules/growl/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/growl/test.js b/src/third_party/devtools/node_modules/growl/test.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/growl/test.js
rename to src/third_party/devtools/node_modules/growl/test.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/handlebars/LICENSE b/src/third_party/devtools/node_modules/handlebars/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/handlebars/LICENSE
rename to src/third_party/devtools/node_modules/handlebars/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/handlebars/README.markdown b/src/third_party/devtools/node_modules/handlebars/README.markdown
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/handlebars/README.markdown
rename to src/third_party/devtools/node_modules/handlebars/README.markdown
diff --git a/src/cobalt/debug/remote/devtools/node_modules/handlebars/bin/handlebars b/src/third_party/devtools/node_modules/handlebars/bin/handlebars
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/handlebars/bin/handlebars
rename to src/third_party/devtools/node_modules/handlebars/bin/handlebars
diff --git a/src/cobalt/debug/remote/devtools/node_modules/handlebars/dist/amd/handlebars.js b/src/third_party/devtools/node_modules/handlebars/dist/amd/handlebars.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/handlebars/dist/amd/handlebars.js
rename to src/third_party/devtools/node_modules/handlebars/dist/amd/handlebars.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/handlebars/dist/amd/handlebars.runtime.js b/src/third_party/devtools/node_modules/handlebars/dist/amd/handlebars.runtime.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/handlebars/dist/amd/handlebars.runtime.js
rename to src/third_party/devtools/node_modules/handlebars/dist/amd/handlebars.runtime.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/handlebars/dist/amd/handlebars/base.js b/src/third_party/devtools/node_modules/handlebars/dist/amd/handlebars/base.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/handlebars/dist/amd/handlebars/base.js
rename to src/third_party/devtools/node_modules/handlebars/dist/amd/handlebars/base.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/handlebars/dist/amd/handlebars/compiler/ast.js b/src/third_party/devtools/node_modules/handlebars/dist/amd/handlebars/compiler/ast.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/handlebars/dist/amd/handlebars/compiler/ast.js
rename to src/third_party/devtools/node_modules/handlebars/dist/amd/handlebars/compiler/ast.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/handlebars/dist/amd/handlebars/compiler/base.js b/src/third_party/devtools/node_modules/handlebars/dist/amd/handlebars/compiler/base.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/handlebars/dist/amd/handlebars/compiler/base.js
rename to src/third_party/devtools/node_modules/handlebars/dist/amd/handlebars/compiler/base.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/handlebars/dist/amd/handlebars/compiler/code-gen.js b/src/third_party/devtools/node_modules/handlebars/dist/amd/handlebars/compiler/code-gen.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/handlebars/dist/amd/handlebars/compiler/code-gen.js
rename to src/third_party/devtools/node_modules/handlebars/dist/amd/handlebars/compiler/code-gen.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/handlebars/dist/amd/handlebars/compiler/compiler.js b/src/third_party/devtools/node_modules/handlebars/dist/amd/handlebars/compiler/compiler.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/handlebars/dist/amd/handlebars/compiler/compiler.js
rename to src/third_party/devtools/node_modules/handlebars/dist/amd/handlebars/compiler/compiler.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/handlebars/dist/amd/handlebars/compiler/helpers.js b/src/third_party/devtools/node_modules/handlebars/dist/amd/handlebars/compiler/helpers.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/handlebars/dist/amd/handlebars/compiler/helpers.js
rename to src/third_party/devtools/node_modules/handlebars/dist/amd/handlebars/compiler/helpers.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/handlebars/dist/amd/handlebars/compiler/javascript-compiler.js b/src/third_party/devtools/node_modules/handlebars/dist/amd/handlebars/compiler/javascript-compiler.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/handlebars/dist/amd/handlebars/compiler/javascript-compiler.js
rename to src/third_party/devtools/node_modules/handlebars/dist/amd/handlebars/compiler/javascript-compiler.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/handlebars/dist/amd/handlebars/compiler/parser.js b/src/third_party/devtools/node_modules/handlebars/dist/amd/handlebars/compiler/parser.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/handlebars/dist/amd/handlebars/compiler/parser.js
rename to src/third_party/devtools/node_modules/handlebars/dist/amd/handlebars/compiler/parser.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/handlebars/dist/amd/handlebars/compiler/printer.js b/src/third_party/devtools/node_modules/handlebars/dist/amd/handlebars/compiler/printer.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/handlebars/dist/amd/handlebars/compiler/printer.js
rename to src/third_party/devtools/node_modules/handlebars/dist/amd/handlebars/compiler/printer.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/handlebars/dist/amd/handlebars/compiler/visitor.js b/src/third_party/devtools/node_modules/handlebars/dist/amd/handlebars/compiler/visitor.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/handlebars/dist/amd/handlebars/compiler/visitor.js
rename to src/third_party/devtools/node_modules/handlebars/dist/amd/handlebars/compiler/visitor.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/handlebars/dist/amd/handlebars/compiler/whitespace-control.js b/src/third_party/devtools/node_modules/handlebars/dist/amd/handlebars/compiler/whitespace-control.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/handlebars/dist/amd/handlebars/compiler/whitespace-control.js
rename to src/third_party/devtools/node_modules/handlebars/dist/amd/handlebars/compiler/whitespace-control.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/handlebars/dist/amd/handlebars/decorators.js b/src/third_party/devtools/node_modules/handlebars/dist/amd/handlebars/decorators.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/handlebars/dist/amd/handlebars/decorators.js
rename to src/third_party/devtools/node_modules/handlebars/dist/amd/handlebars/decorators.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/handlebars/dist/amd/handlebars/decorators/inline.js b/src/third_party/devtools/node_modules/handlebars/dist/amd/handlebars/decorators/inline.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/handlebars/dist/amd/handlebars/decorators/inline.js
rename to src/third_party/devtools/node_modules/handlebars/dist/amd/handlebars/decorators/inline.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/handlebars/dist/amd/handlebars/exception.js b/src/third_party/devtools/node_modules/handlebars/dist/amd/handlebars/exception.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/handlebars/dist/amd/handlebars/exception.js
rename to src/third_party/devtools/node_modules/handlebars/dist/amd/handlebars/exception.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/handlebars/dist/amd/handlebars/helpers.js b/src/third_party/devtools/node_modules/handlebars/dist/amd/handlebars/helpers.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/handlebars/dist/amd/handlebars/helpers.js
rename to src/third_party/devtools/node_modules/handlebars/dist/amd/handlebars/helpers.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/handlebars/dist/amd/handlebars/helpers/block-helper-missing.js b/src/third_party/devtools/node_modules/handlebars/dist/amd/handlebars/helpers/block-helper-missing.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/handlebars/dist/amd/handlebars/helpers/block-helper-missing.js
rename to src/third_party/devtools/node_modules/handlebars/dist/amd/handlebars/helpers/block-helper-missing.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/handlebars/dist/amd/handlebars/helpers/each.js b/src/third_party/devtools/node_modules/handlebars/dist/amd/handlebars/helpers/each.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/handlebars/dist/amd/handlebars/helpers/each.js
rename to src/third_party/devtools/node_modules/handlebars/dist/amd/handlebars/helpers/each.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/handlebars/dist/amd/handlebars/helpers/helper-missing.js b/src/third_party/devtools/node_modules/handlebars/dist/amd/handlebars/helpers/helper-missing.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/handlebars/dist/amd/handlebars/helpers/helper-missing.js
rename to src/third_party/devtools/node_modules/handlebars/dist/amd/handlebars/helpers/helper-missing.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/handlebars/dist/amd/handlebars/helpers/if.js b/src/third_party/devtools/node_modules/handlebars/dist/amd/handlebars/helpers/if.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/handlebars/dist/amd/handlebars/helpers/if.js
rename to src/third_party/devtools/node_modules/handlebars/dist/amd/handlebars/helpers/if.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/handlebars/dist/amd/handlebars/helpers/log.js b/src/third_party/devtools/node_modules/handlebars/dist/amd/handlebars/helpers/log.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/handlebars/dist/amd/handlebars/helpers/log.js
rename to src/third_party/devtools/node_modules/handlebars/dist/amd/handlebars/helpers/log.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/handlebars/dist/amd/handlebars/helpers/lookup.js b/src/third_party/devtools/node_modules/handlebars/dist/amd/handlebars/helpers/lookup.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/handlebars/dist/amd/handlebars/helpers/lookup.js
rename to src/third_party/devtools/node_modules/handlebars/dist/amd/handlebars/helpers/lookup.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/handlebars/dist/amd/handlebars/helpers/with.js b/src/third_party/devtools/node_modules/handlebars/dist/amd/handlebars/helpers/with.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/handlebars/dist/amd/handlebars/helpers/with.js
rename to src/third_party/devtools/node_modules/handlebars/dist/amd/handlebars/helpers/with.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/handlebars/dist/amd/handlebars/logger.js b/src/third_party/devtools/node_modules/handlebars/dist/amd/handlebars/logger.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/handlebars/dist/amd/handlebars/logger.js
rename to src/third_party/devtools/node_modules/handlebars/dist/amd/handlebars/logger.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/handlebars/dist/amd/handlebars/no-conflict.js b/src/third_party/devtools/node_modules/handlebars/dist/amd/handlebars/no-conflict.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/handlebars/dist/amd/handlebars/no-conflict.js
rename to src/third_party/devtools/node_modules/handlebars/dist/amd/handlebars/no-conflict.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/handlebars/dist/amd/handlebars/runtime.js b/src/third_party/devtools/node_modules/handlebars/dist/amd/handlebars/runtime.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/handlebars/dist/amd/handlebars/runtime.js
rename to src/third_party/devtools/node_modules/handlebars/dist/amd/handlebars/runtime.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/handlebars/dist/amd/handlebars/safe-string.js b/src/third_party/devtools/node_modules/handlebars/dist/amd/handlebars/safe-string.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/handlebars/dist/amd/handlebars/safe-string.js
rename to src/third_party/devtools/node_modules/handlebars/dist/amd/handlebars/safe-string.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/handlebars/dist/amd/handlebars/utils.js b/src/third_party/devtools/node_modules/handlebars/dist/amd/handlebars/utils.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/handlebars/dist/amd/handlebars/utils.js
rename to src/third_party/devtools/node_modules/handlebars/dist/amd/handlebars/utils.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/handlebars/dist/amd/precompiler.js b/src/third_party/devtools/node_modules/handlebars/dist/amd/precompiler.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/handlebars/dist/amd/precompiler.js
rename to src/third_party/devtools/node_modules/handlebars/dist/amd/precompiler.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/handlebars/dist/cjs/handlebars.js b/src/third_party/devtools/node_modules/handlebars/dist/cjs/handlebars.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/handlebars/dist/cjs/handlebars.js
rename to src/third_party/devtools/node_modules/handlebars/dist/cjs/handlebars.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/handlebars/dist/cjs/handlebars.runtime.js b/src/third_party/devtools/node_modules/handlebars/dist/cjs/handlebars.runtime.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/handlebars/dist/cjs/handlebars.runtime.js
rename to src/third_party/devtools/node_modules/handlebars/dist/cjs/handlebars.runtime.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/handlebars/dist/cjs/handlebars/base.js b/src/third_party/devtools/node_modules/handlebars/dist/cjs/handlebars/base.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/handlebars/dist/cjs/handlebars/base.js
rename to src/third_party/devtools/node_modules/handlebars/dist/cjs/handlebars/base.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/handlebars/dist/cjs/handlebars/compiler/ast.js b/src/third_party/devtools/node_modules/handlebars/dist/cjs/handlebars/compiler/ast.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/handlebars/dist/cjs/handlebars/compiler/ast.js
rename to src/third_party/devtools/node_modules/handlebars/dist/cjs/handlebars/compiler/ast.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/handlebars/dist/cjs/handlebars/compiler/base.js b/src/third_party/devtools/node_modules/handlebars/dist/cjs/handlebars/compiler/base.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/handlebars/dist/cjs/handlebars/compiler/base.js
rename to src/third_party/devtools/node_modules/handlebars/dist/cjs/handlebars/compiler/base.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/handlebars/dist/cjs/handlebars/compiler/code-gen.js b/src/third_party/devtools/node_modules/handlebars/dist/cjs/handlebars/compiler/code-gen.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/handlebars/dist/cjs/handlebars/compiler/code-gen.js
rename to src/third_party/devtools/node_modules/handlebars/dist/cjs/handlebars/compiler/code-gen.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/handlebars/dist/cjs/handlebars/compiler/compiler.js b/src/third_party/devtools/node_modules/handlebars/dist/cjs/handlebars/compiler/compiler.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/handlebars/dist/cjs/handlebars/compiler/compiler.js
rename to src/third_party/devtools/node_modules/handlebars/dist/cjs/handlebars/compiler/compiler.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/handlebars/dist/cjs/handlebars/compiler/helpers.js b/src/third_party/devtools/node_modules/handlebars/dist/cjs/handlebars/compiler/helpers.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/handlebars/dist/cjs/handlebars/compiler/helpers.js
rename to src/third_party/devtools/node_modules/handlebars/dist/cjs/handlebars/compiler/helpers.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/handlebars/dist/cjs/handlebars/compiler/javascript-compiler.js b/src/third_party/devtools/node_modules/handlebars/dist/cjs/handlebars/compiler/javascript-compiler.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/handlebars/dist/cjs/handlebars/compiler/javascript-compiler.js
rename to src/third_party/devtools/node_modules/handlebars/dist/cjs/handlebars/compiler/javascript-compiler.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/handlebars/dist/cjs/handlebars/compiler/parser.js b/src/third_party/devtools/node_modules/handlebars/dist/cjs/handlebars/compiler/parser.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/handlebars/dist/cjs/handlebars/compiler/parser.js
rename to src/third_party/devtools/node_modules/handlebars/dist/cjs/handlebars/compiler/parser.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/handlebars/dist/cjs/handlebars/compiler/printer.js b/src/third_party/devtools/node_modules/handlebars/dist/cjs/handlebars/compiler/printer.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/handlebars/dist/cjs/handlebars/compiler/printer.js
rename to src/third_party/devtools/node_modules/handlebars/dist/cjs/handlebars/compiler/printer.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/handlebars/dist/cjs/handlebars/compiler/visitor.js b/src/third_party/devtools/node_modules/handlebars/dist/cjs/handlebars/compiler/visitor.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/handlebars/dist/cjs/handlebars/compiler/visitor.js
rename to src/third_party/devtools/node_modules/handlebars/dist/cjs/handlebars/compiler/visitor.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/handlebars/dist/cjs/handlebars/compiler/whitespace-control.js b/src/third_party/devtools/node_modules/handlebars/dist/cjs/handlebars/compiler/whitespace-control.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/handlebars/dist/cjs/handlebars/compiler/whitespace-control.js
rename to src/third_party/devtools/node_modules/handlebars/dist/cjs/handlebars/compiler/whitespace-control.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/handlebars/dist/cjs/handlebars/decorators.js b/src/third_party/devtools/node_modules/handlebars/dist/cjs/handlebars/decorators.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/handlebars/dist/cjs/handlebars/decorators.js
rename to src/third_party/devtools/node_modules/handlebars/dist/cjs/handlebars/decorators.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/handlebars/dist/cjs/handlebars/decorators/inline.js b/src/third_party/devtools/node_modules/handlebars/dist/cjs/handlebars/decorators/inline.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/handlebars/dist/cjs/handlebars/decorators/inline.js
rename to src/third_party/devtools/node_modules/handlebars/dist/cjs/handlebars/decorators/inline.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/handlebars/dist/cjs/handlebars/exception.js b/src/third_party/devtools/node_modules/handlebars/dist/cjs/handlebars/exception.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/handlebars/dist/cjs/handlebars/exception.js
rename to src/third_party/devtools/node_modules/handlebars/dist/cjs/handlebars/exception.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/handlebars/dist/cjs/handlebars/helpers.js b/src/third_party/devtools/node_modules/handlebars/dist/cjs/handlebars/helpers.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/handlebars/dist/cjs/handlebars/helpers.js
rename to src/third_party/devtools/node_modules/handlebars/dist/cjs/handlebars/helpers.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/handlebars/dist/cjs/handlebars/helpers/block-helper-missing.js b/src/third_party/devtools/node_modules/handlebars/dist/cjs/handlebars/helpers/block-helper-missing.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/handlebars/dist/cjs/handlebars/helpers/block-helper-missing.js
rename to src/third_party/devtools/node_modules/handlebars/dist/cjs/handlebars/helpers/block-helper-missing.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/handlebars/dist/cjs/handlebars/helpers/each.js b/src/third_party/devtools/node_modules/handlebars/dist/cjs/handlebars/helpers/each.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/handlebars/dist/cjs/handlebars/helpers/each.js
rename to src/third_party/devtools/node_modules/handlebars/dist/cjs/handlebars/helpers/each.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/handlebars/dist/cjs/handlebars/helpers/helper-missing.js b/src/third_party/devtools/node_modules/handlebars/dist/cjs/handlebars/helpers/helper-missing.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/handlebars/dist/cjs/handlebars/helpers/helper-missing.js
rename to src/third_party/devtools/node_modules/handlebars/dist/cjs/handlebars/helpers/helper-missing.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/handlebars/dist/cjs/handlebars/helpers/if.js b/src/third_party/devtools/node_modules/handlebars/dist/cjs/handlebars/helpers/if.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/handlebars/dist/cjs/handlebars/helpers/if.js
rename to src/third_party/devtools/node_modules/handlebars/dist/cjs/handlebars/helpers/if.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/handlebars/dist/cjs/handlebars/helpers/log.js b/src/third_party/devtools/node_modules/handlebars/dist/cjs/handlebars/helpers/log.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/handlebars/dist/cjs/handlebars/helpers/log.js
rename to src/third_party/devtools/node_modules/handlebars/dist/cjs/handlebars/helpers/log.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/handlebars/dist/cjs/handlebars/helpers/lookup.js b/src/third_party/devtools/node_modules/handlebars/dist/cjs/handlebars/helpers/lookup.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/handlebars/dist/cjs/handlebars/helpers/lookup.js
rename to src/third_party/devtools/node_modules/handlebars/dist/cjs/handlebars/helpers/lookup.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/handlebars/dist/cjs/handlebars/helpers/with.js b/src/third_party/devtools/node_modules/handlebars/dist/cjs/handlebars/helpers/with.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/handlebars/dist/cjs/handlebars/helpers/with.js
rename to src/third_party/devtools/node_modules/handlebars/dist/cjs/handlebars/helpers/with.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/handlebars/dist/cjs/handlebars/logger.js b/src/third_party/devtools/node_modules/handlebars/dist/cjs/handlebars/logger.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/handlebars/dist/cjs/handlebars/logger.js
rename to src/third_party/devtools/node_modules/handlebars/dist/cjs/handlebars/logger.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/handlebars/dist/cjs/handlebars/no-conflict.js b/src/third_party/devtools/node_modules/handlebars/dist/cjs/handlebars/no-conflict.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/handlebars/dist/cjs/handlebars/no-conflict.js
rename to src/third_party/devtools/node_modules/handlebars/dist/cjs/handlebars/no-conflict.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/handlebars/dist/cjs/handlebars/runtime.js b/src/third_party/devtools/node_modules/handlebars/dist/cjs/handlebars/runtime.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/handlebars/dist/cjs/handlebars/runtime.js
rename to src/third_party/devtools/node_modules/handlebars/dist/cjs/handlebars/runtime.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/handlebars/dist/cjs/handlebars/safe-string.js b/src/third_party/devtools/node_modules/handlebars/dist/cjs/handlebars/safe-string.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/handlebars/dist/cjs/handlebars/safe-string.js
rename to src/third_party/devtools/node_modules/handlebars/dist/cjs/handlebars/safe-string.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/handlebars/dist/cjs/handlebars/utils.js b/src/third_party/devtools/node_modules/handlebars/dist/cjs/handlebars/utils.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/handlebars/dist/cjs/handlebars/utils.js
rename to src/third_party/devtools/node_modules/handlebars/dist/cjs/handlebars/utils.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/handlebars/dist/cjs/precompiler.js b/src/third_party/devtools/node_modules/handlebars/dist/cjs/precompiler.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/handlebars/dist/cjs/precompiler.js
rename to src/third_party/devtools/node_modules/handlebars/dist/cjs/precompiler.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/handlebars/dist/handlebars.amd.js b/src/third_party/devtools/node_modules/handlebars/dist/handlebars.amd.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/handlebars/dist/handlebars.amd.js
rename to src/third_party/devtools/node_modules/handlebars/dist/handlebars.amd.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/handlebars/dist/handlebars.amd.min.js b/src/third_party/devtools/node_modules/handlebars/dist/handlebars.amd.min.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/handlebars/dist/handlebars.amd.min.js
rename to src/third_party/devtools/node_modules/handlebars/dist/handlebars.amd.min.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/handlebars/dist/handlebars.js b/src/third_party/devtools/node_modules/handlebars/dist/handlebars.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/handlebars/dist/handlebars.js
rename to src/third_party/devtools/node_modules/handlebars/dist/handlebars.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/handlebars/dist/handlebars.min.js b/src/third_party/devtools/node_modules/handlebars/dist/handlebars.min.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/handlebars/dist/handlebars.min.js
rename to src/third_party/devtools/node_modules/handlebars/dist/handlebars.min.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/handlebars/dist/handlebars.runtime.amd.js b/src/third_party/devtools/node_modules/handlebars/dist/handlebars.runtime.amd.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/handlebars/dist/handlebars.runtime.amd.js
rename to src/third_party/devtools/node_modules/handlebars/dist/handlebars.runtime.amd.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/handlebars/dist/handlebars.runtime.amd.min.js b/src/third_party/devtools/node_modules/handlebars/dist/handlebars.runtime.amd.min.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/handlebars/dist/handlebars.runtime.amd.min.js
rename to src/third_party/devtools/node_modules/handlebars/dist/handlebars.runtime.amd.min.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/handlebars/dist/handlebars.runtime.js b/src/third_party/devtools/node_modules/handlebars/dist/handlebars.runtime.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/handlebars/dist/handlebars.runtime.js
rename to src/third_party/devtools/node_modules/handlebars/dist/handlebars.runtime.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/handlebars/dist/handlebars.runtime.min.js b/src/third_party/devtools/node_modules/handlebars/dist/handlebars.runtime.min.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/handlebars/dist/handlebars.runtime.min.js
rename to src/third_party/devtools/node_modules/handlebars/dist/handlebars.runtime.min.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/handlebars/lib/handlebars.js b/src/third_party/devtools/node_modules/handlebars/lib/handlebars.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/handlebars/lib/handlebars.js
rename to src/third_party/devtools/node_modules/handlebars/lib/handlebars.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/handlebars/lib/handlebars.runtime.js b/src/third_party/devtools/node_modules/handlebars/lib/handlebars.runtime.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/handlebars/lib/handlebars.runtime.js
rename to src/third_party/devtools/node_modules/handlebars/lib/handlebars.runtime.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/handlebars/lib/handlebars/base.js b/src/third_party/devtools/node_modules/handlebars/lib/handlebars/base.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/handlebars/lib/handlebars/base.js
rename to src/third_party/devtools/node_modules/handlebars/lib/handlebars/base.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/handlebars/lib/handlebars/compiler/ast.js b/src/third_party/devtools/node_modules/handlebars/lib/handlebars/compiler/ast.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/handlebars/lib/handlebars/compiler/ast.js
rename to src/third_party/devtools/node_modules/handlebars/lib/handlebars/compiler/ast.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/handlebars/lib/handlebars/compiler/base.js b/src/third_party/devtools/node_modules/handlebars/lib/handlebars/compiler/base.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/handlebars/lib/handlebars/compiler/base.js
rename to src/third_party/devtools/node_modules/handlebars/lib/handlebars/compiler/base.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/handlebars/lib/handlebars/compiler/code-gen.js b/src/third_party/devtools/node_modules/handlebars/lib/handlebars/compiler/code-gen.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/handlebars/lib/handlebars/compiler/code-gen.js
rename to src/third_party/devtools/node_modules/handlebars/lib/handlebars/compiler/code-gen.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/handlebars/lib/handlebars/compiler/compiler.js b/src/third_party/devtools/node_modules/handlebars/lib/handlebars/compiler/compiler.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/handlebars/lib/handlebars/compiler/compiler.js
rename to src/third_party/devtools/node_modules/handlebars/lib/handlebars/compiler/compiler.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/handlebars/lib/handlebars/compiler/helpers.js b/src/third_party/devtools/node_modules/handlebars/lib/handlebars/compiler/helpers.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/handlebars/lib/handlebars/compiler/helpers.js
rename to src/third_party/devtools/node_modules/handlebars/lib/handlebars/compiler/helpers.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/handlebars/lib/handlebars/compiler/javascript-compiler.js b/src/third_party/devtools/node_modules/handlebars/lib/handlebars/compiler/javascript-compiler.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/handlebars/lib/handlebars/compiler/javascript-compiler.js
rename to src/third_party/devtools/node_modules/handlebars/lib/handlebars/compiler/javascript-compiler.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/handlebars/lib/handlebars/compiler/parser.js b/src/third_party/devtools/node_modules/handlebars/lib/handlebars/compiler/parser.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/handlebars/lib/handlebars/compiler/parser.js
rename to src/third_party/devtools/node_modules/handlebars/lib/handlebars/compiler/parser.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/handlebars/lib/handlebars/compiler/printer.js b/src/third_party/devtools/node_modules/handlebars/lib/handlebars/compiler/printer.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/handlebars/lib/handlebars/compiler/printer.js
rename to src/third_party/devtools/node_modules/handlebars/lib/handlebars/compiler/printer.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/handlebars/lib/handlebars/compiler/visitor.js b/src/third_party/devtools/node_modules/handlebars/lib/handlebars/compiler/visitor.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/handlebars/lib/handlebars/compiler/visitor.js
rename to src/third_party/devtools/node_modules/handlebars/lib/handlebars/compiler/visitor.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/handlebars/lib/handlebars/compiler/whitespace-control.js b/src/third_party/devtools/node_modules/handlebars/lib/handlebars/compiler/whitespace-control.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/handlebars/lib/handlebars/compiler/whitespace-control.js
rename to src/third_party/devtools/node_modules/handlebars/lib/handlebars/compiler/whitespace-control.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/handlebars/lib/handlebars/decorators.js b/src/third_party/devtools/node_modules/handlebars/lib/handlebars/decorators.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/handlebars/lib/handlebars/decorators.js
rename to src/third_party/devtools/node_modules/handlebars/lib/handlebars/decorators.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/handlebars/lib/handlebars/decorators/inline.js b/src/third_party/devtools/node_modules/handlebars/lib/handlebars/decorators/inline.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/handlebars/lib/handlebars/decorators/inline.js
rename to src/third_party/devtools/node_modules/handlebars/lib/handlebars/decorators/inline.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/handlebars/lib/handlebars/exception.js b/src/third_party/devtools/node_modules/handlebars/lib/handlebars/exception.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/handlebars/lib/handlebars/exception.js
rename to src/third_party/devtools/node_modules/handlebars/lib/handlebars/exception.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/handlebars/lib/handlebars/helpers.js b/src/third_party/devtools/node_modules/handlebars/lib/handlebars/helpers.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/handlebars/lib/handlebars/helpers.js
rename to src/third_party/devtools/node_modules/handlebars/lib/handlebars/helpers.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/handlebars/lib/handlebars/helpers/block-helper-missing.js b/src/third_party/devtools/node_modules/handlebars/lib/handlebars/helpers/block-helper-missing.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/handlebars/lib/handlebars/helpers/block-helper-missing.js
rename to src/third_party/devtools/node_modules/handlebars/lib/handlebars/helpers/block-helper-missing.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/handlebars/lib/handlebars/helpers/each.js b/src/third_party/devtools/node_modules/handlebars/lib/handlebars/helpers/each.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/handlebars/lib/handlebars/helpers/each.js
rename to src/third_party/devtools/node_modules/handlebars/lib/handlebars/helpers/each.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/handlebars/lib/handlebars/helpers/helper-missing.js b/src/third_party/devtools/node_modules/handlebars/lib/handlebars/helpers/helper-missing.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/handlebars/lib/handlebars/helpers/helper-missing.js
rename to src/third_party/devtools/node_modules/handlebars/lib/handlebars/helpers/helper-missing.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/handlebars/lib/handlebars/helpers/if.js b/src/third_party/devtools/node_modules/handlebars/lib/handlebars/helpers/if.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/handlebars/lib/handlebars/helpers/if.js
rename to src/third_party/devtools/node_modules/handlebars/lib/handlebars/helpers/if.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/handlebars/lib/handlebars/helpers/log.js b/src/third_party/devtools/node_modules/handlebars/lib/handlebars/helpers/log.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/handlebars/lib/handlebars/helpers/log.js
rename to src/third_party/devtools/node_modules/handlebars/lib/handlebars/helpers/log.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/handlebars/lib/handlebars/helpers/lookup.js b/src/third_party/devtools/node_modules/handlebars/lib/handlebars/helpers/lookup.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/handlebars/lib/handlebars/helpers/lookup.js
rename to src/third_party/devtools/node_modules/handlebars/lib/handlebars/helpers/lookup.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/handlebars/lib/handlebars/helpers/with.js b/src/third_party/devtools/node_modules/handlebars/lib/handlebars/helpers/with.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/handlebars/lib/handlebars/helpers/with.js
rename to src/third_party/devtools/node_modules/handlebars/lib/handlebars/helpers/with.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/handlebars/lib/handlebars/logger.js b/src/third_party/devtools/node_modules/handlebars/lib/handlebars/logger.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/handlebars/lib/handlebars/logger.js
rename to src/third_party/devtools/node_modules/handlebars/lib/handlebars/logger.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/handlebars/lib/handlebars/no-conflict.js b/src/third_party/devtools/node_modules/handlebars/lib/handlebars/no-conflict.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/handlebars/lib/handlebars/no-conflict.js
rename to src/third_party/devtools/node_modules/handlebars/lib/handlebars/no-conflict.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/handlebars/lib/handlebars/runtime.js b/src/third_party/devtools/node_modules/handlebars/lib/handlebars/runtime.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/handlebars/lib/handlebars/runtime.js
rename to src/third_party/devtools/node_modules/handlebars/lib/handlebars/runtime.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/handlebars/lib/handlebars/safe-string.js b/src/third_party/devtools/node_modules/handlebars/lib/handlebars/safe-string.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/handlebars/lib/handlebars/safe-string.js
rename to src/third_party/devtools/node_modules/handlebars/lib/handlebars/safe-string.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/handlebars/lib/handlebars/utils.js b/src/third_party/devtools/node_modules/handlebars/lib/handlebars/utils.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/handlebars/lib/handlebars/utils.js
rename to src/third_party/devtools/node_modules/handlebars/lib/handlebars/utils.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/handlebars/lib/index.js b/src/third_party/devtools/node_modules/handlebars/lib/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/handlebars/lib/index.js
rename to src/third_party/devtools/node_modules/handlebars/lib/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/handlebars/lib/precompiler.js b/src/third_party/devtools/node_modules/handlebars/lib/precompiler.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/handlebars/lib/precompiler.js
rename to src/third_party/devtools/node_modules/handlebars/lib/precompiler.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/handlebars/package.json b/src/third_party/devtools/node_modules/handlebars/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/handlebars/package.json
rename to src/third_party/devtools/node_modules/handlebars/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/handlebars/print-script b/src/third_party/devtools/node_modules/handlebars/print-script
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/handlebars/print-script
rename to src/third_party/devtools/node_modules/handlebars/print-script
diff --git a/src/cobalt/debug/remote/devtools/node_modules/handlebars/release-notes.md b/src/third_party/devtools/node_modules/handlebars/release-notes.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/handlebars/release-notes.md
rename to src/third_party/devtools/node_modules/handlebars/release-notes.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/handlebars/runtime.js b/src/third_party/devtools/node_modules/handlebars/runtime.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/handlebars/runtime.js
rename to src/third_party/devtools/node_modules/handlebars/runtime.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/handlebars/types/index.d.ts b/src/third_party/devtools/node_modules/handlebars/types/index.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/handlebars/types/index.d.ts
rename to src/third_party/devtools/node_modules/handlebars/types/index.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/has-binary2/History.md b/src/third_party/devtools/node_modules/has-binary2/History.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/has-binary2/History.md
rename to src/third_party/devtools/node_modules/has-binary2/History.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/has-binary2/LICENSE b/src/third_party/devtools/node_modules/has-binary2/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/has-binary2/LICENSE
rename to src/third_party/devtools/node_modules/has-binary2/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/has-binary2/README.md b/src/third_party/devtools/node_modules/has-binary2/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/has-binary2/README.md
rename to src/third_party/devtools/node_modules/has-binary2/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/has-binary2/index.js b/src/third_party/devtools/node_modules/has-binary2/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/has-binary2/index.js
rename to src/third_party/devtools/node_modules/has-binary2/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/has-binary2/package.json b/src/third_party/devtools/node_modules/has-binary2/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/has-binary2/package.json
rename to src/third_party/devtools/node_modules/has-binary2/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/has-cors/.npmignore b/src/third_party/devtools/node_modules/has-cors/.npmignore
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/has-cors/.npmignore
rename to src/third_party/devtools/node_modules/has-cors/.npmignore
diff --git a/src/cobalt/debug/remote/devtools/node_modules/has-cors/History.md b/src/third_party/devtools/node_modules/has-cors/History.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/has-cors/History.md
rename to src/third_party/devtools/node_modules/has-cors/History.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/has-cors/Makefile b/src/third_party/devtools/node_modules/has-cors/Makefile
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/has-cors/Makefile
rename to src/third_party/devtools/node_modules/has-cors/Makefile
diff --git a/src/cobalt/debug/remote/devtools/node_modules/has-cors/Readme.md b/src/third_party/devtools/node_modules/has-cors/Readme.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/has-cors/Readme.md
rename to src/third_party/devtools/node_modules/has-cors/Readme.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/has-cors/component.json b/src/third_party/devtools/node_modules/has-cors/component.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/has-cors/component.json
rename to src/third_party/devtools/node_modules/has-cors/component.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/has-cors/index.js b/src/third_party/devtools/node_modules/has-cors/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/has-cors/index.js
rename to src/third_party/devtools/node_modules/has-cors/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/has-cors/package.json b/src/third_party/devtools/node_modules/has-cors/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/has-cors/package.json
rename to src/third_party/devtools/node_modules/has-cors/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/has-cors/test.js b/src/third_party/devtools/node_modules/has-cors/test.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/has-cors/test.js
rename to src/third_party/devtools/node_modules/has-cors/test.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/has-flag/LICENSE b/src/third_party/devtools/node_modules/has-flag/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/has-flag/LICENSE
rename to src/third_party/devtools/node_modules/has-flag/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/has-flag/index.js b/src/third_party/devtools/node_modules/has-flag/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/has-flag/index.js
rename to src/third_party/devtools/node_modules/has-flag/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/has-flag/package.json b/src/third_party/devtools/node_modules/has-flag/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/has-flag/package.json
rename to src/third_party/devtools/node_modules/has-flag/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/has-flag/readme.md b/src/third_party/devtools/node_modules/has-flag/readme.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/has-flag/readme.md
rename to src/third_party/devtools/node_modules/has-flag/readme.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/has-symbols/.eslintrc b/src/third_party/devtools/node_modules/has-symbols/.eslintrc
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/has-symbols/.eslintrc
rename to src/third_party/devtools/node_modules/has-symbols/.eslintrc
diff --git a/src/cobalt/debug/remote/devtools/node_modules/has-symbols/.npmignore b/src/third_party/devtools/node_modules/has-symbols/.npmignore
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/has-symbols/.npmignore
rename to src/third_party/devtools/node_modules/has-symbols/.npmignore
diff --git a/src/cobalt/debug/remote/devtools/node_modules/has-symbols/.travis.yml b/src/third_party/devtools/node_modules/has-symbols/.travis.yml
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/has-symbols/.travis.yml
rename to src/third_party/devtools/node_modules/has-symbols/.travis.yml
diff --git a/src/cobalt/debug/remote/devtools/node_modules/has-symbols/CHANGELOG.md b/src/third_party/devtools/node_modules/has-symbols/CHANGELOG.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/has-symbols/CHANGELOG.md
rename to src/third_party/devtools/node_modules/has-symbols/CHANGELOG.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/has-symbols/LICENSE b/src/third_party/devtools/node_modules/has-symbols/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/has-symbols/LICENSE
rename to src/third_party/devtools/node_modules/has-symbols/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/has-symbols/README.md b/src/third_party/devtools/node_modules/has-symbols/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/has-symbols/README.md
rename to src/third_party/devtools/node_modules/has-symbols/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/has-symbols/index.js b/src/third_party/devtools/node_modules/has-symbols/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/has-symbols/index.js
rename to src/third_party/devtools/node_modules/has-symbols/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/has-symbols/package.json b/src/third_party/devtools/node_modules/has-symbols/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/has-symbols/package.json
rename to src/third_party/devtools/node_modules/has-symbols/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/has-symbols/shams.js b/src/third_party/devtools/node_modules/has-symbols/shams.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/has-symbols/shams.js
rename to src/third_party/devtools/node_modules/has-symbols/shams.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/has-symbols/test/index.js b/src/third_party/devtools/node_modules/has-symbols/test/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/has-symbols/test/index.js
rename to src/third_party/devtools/node_modules/has-symbols/test/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/has-symbols/test/shams/core-js.js b/src/third_party/devtools/node_modules/has-symbols/test/shams/core-js.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/has-symbols/test/shams/core-js.js
rename to src/third_party/devtools/node_modules/has-symbols/test/shams/core-js.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/has-symbols/test/shams/get-own-property-symbols.js b/src/third_party/devtools/node_modules/has-symbols/test/shams/get-own-property-symbols.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/has-symbols/test/shams/get-own-property-symbols.js
rename to src/third_party/devtools/node_modules/has-symbols/test/shams/get-own-property-symbols.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/has-symbols/test/tests.js b/src/third_party/devtools/node_modules/has-symbols/test/tests.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/has-symbols/test/tests.js
rename to src/third_party/devtools/node_modules/has-symbols/test/tests.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/has/LICENSE-MIT b/src/third_party/devtools/node_modules/has/LICENSE-MIT
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/has/LICENSE-MIT
rename to src/third_party/devtools/node_modules/has/LICENSE-MIT
diff --git a/src/cobalt/debug/remote/devtools/node_modules/has/README.md b/src/third_party/devtools/node_modules/has/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/has/README.md
rename to src/third_party/devtools/node_modules/has/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/has/package.json b/src/third_party/devtools/node_modules/has/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/has/package.json
rename to src/third_party/devtools/node_modules/has/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/has/src/index.js b/src/third_party/devtools/node_modules/has/src/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/has/src/index.js
rename to src/third_party/devtools/node_modules/has/src/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/has/test/index.js b/src/third_party/devtools/node_modules/has/test/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/has/test/index.js
rename to src/third_party/devtools/node_modules/has/test/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/hash-base/LICENSE b/src/third_party/devtools/node_modules/hash-base/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/hash-base/LICENSE
rename to src/third_party/devtools/node_modules/hash-base/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/hash-base/README.md b/src/third_party/devtools/node_modules/hash-base/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/hash-base/README.md
rename to src/third_party/devtools/node_modules/hash-base/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/hash-base/index.js b/src/third_party/devtools/node_modules/hash-base/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/hash-base/index.js
rename to src/third_party/devtools/node_modules/hash-base/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/hash-base/package.json b/src/third_party/devtools/node_modules/hash-base/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/hash-base/package.json
rename to src/third_party/devtools/node_modules/hash-base/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/hash.js/.eslintrc.js b/src/third_party/devtools/node_modules/hash.js/.eslintrc.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/hash.js/.eslintrc.js
rename to src/third_party/devtools/node_modules/hash.js/.eslintrc.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/hash.js/.travis.yml b/src/third_party/devtools/node_modules/hash.js/.travis.yml
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/hash.js/.travis.yml
rename to src/third_party/devtools/node_modules/hash.js/.travis.yml
diff --git a/src/cobalt/debug/remote/devtools/node_modules/hash.js/README.md b/src/third_party/devtools/node_modules/hash.js/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/hash.js/README.md
rename to src/third_party/devtools/node_modules/hash.js/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/hash.js/lib/hash.d.ts b/src/third_party/devtools/node_modules/hash.js/lib/hash.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/hash.js/lib/hash.d.ts
rename to src/third_party/devtools/node_modules/hash.js/lib/hash.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/hash.js/lib/hash.js b/src/third_party/devtools/node_modules/hash.js/lib/hash.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/hash.js/lib/hash.js
rename to src/third_party/devtools/node_modules/hash.js/lib/hash.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/hash.js/lib/hash/common.js b/src/third_party/devtools/node_modules/hash.js/lib/hash/common.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/hash.js/lib/hash/common.js
rename to src/third_party/devtools/node_modules/hash.js/lib/hash/common.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/hash.js/lib/hash/hmac.js b/src/third_party/devtools/node_modules/hash.js/lib/hash/hmac.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/hash.js/lib/hash/hmac.js
rename to src/third_party/devtools/node_modules/hash.js/lib/hash/hmac.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/hash.js/lib/hash/ripemd.js b/src/third_party/devtools/node_modules/hash.js/lib/hash/ripemd.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/hash.js/lib/hash/ripemd.js
rename to src/third_party/devtools/node_modules/hash.js/lib/hash/ripemd.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/hash.js/lib/hash/sha.js b/src/third_party/devtools/node_modules/hash.js/lib/hash/sha.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/hash.js/lib/hash/sha.js
rename to src/third_party/devtools/node_modules/hash.js/lib/hash/sha.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/hash.js/lib/hash/sha/1.js b/src/third_party/devtools/node_modules/hash.js/lib/hash/sha/1.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/hash.js/lib/hash/sha/1.js
rename to src/third_party/devtools/node_modules/hash.js/lib/hash/sha/1.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/hash.js/lib/hash/sha/224.js b/src/third_party/devtools/node_modules/hash.js/lib/hash/sha/224.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/hash.js/lib/hash/sha/224.js
rename to src/third_party/devtools/node_modules/hash.js/lib/hash/sha/224.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/hash.js/lib/hash/sha/256.js b/src/third_party/devtools/node_modules/hash.js/lib/hash/sha/256.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/hash.js/lib/hash/sha/256.js
rename to src/third_party/devtools/node_modules/hash.js/lib/hash/sha/256.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/hash.js/lib/hash/sha/384.js b/src/third_party/devtools/node_modules/hash.js/lib/hash/sha/384.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/hash.js/lib/hash/sha/384.js
rename to src/third_party/devtools/node_modules/hash.js/lib/hash/sha/384.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/hash.js/lib/hash/sha/512.js b/src/third_party/devtools/node_modules/hash.js/lib/hash/sha/512.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/hash.js/lib/hash/sha/512.js
rename to src/third_party/devtools/node_modules/hash.js/lib/hash/sha/512.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/hash.js/lib/hash/sha/common.js b/src/third_party/devtools/node_modules/hash.js/lib/hash/sha/common.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/hash.js/lib/hash/sha/common.js
rename to src/third_party/devtools/node_modules/hash.js/lib/hash/sha/common.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/hash.js/lib/hash/utils.js b/src/third_party/devtools/node_modules/hash.js/lib/hash/utils.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/hash.js/lib/hash/utils.js
rename to src/third_party/devtools/node_modules/hash.js/lib/hash/utils.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/hash.js/package.json b/src/third_party/devtools/node_modules/hash.js/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/hash.js/package.json
rename to src/third_party/devtools/node_modules/hash.js/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/hash.js/test/hash-test.js b/src/third_party/devtools/node_modules/hash.js/test/hash-test.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/hash.js/test/hash-test.js
rename to src/third_party/devtools/node_modules/hash.js/test/hash-test.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/hash.js/test/hmac-test.js b/src/third_party/devtools/node_modules/hash.js/test/hmac-test.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/hash.js/test/hmac-test.js
rename to src/third_party/devtools/node_modules/hash.js/test/hmac-test.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/he/LICENSE-MIT.txt b/src/third_party/devtools/node_modules/he/LICENSE-MIT.txt
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/he/LICENSE-MIT.txt
rename to src/third_party/devtools/node_modules/he/LICENSE-MIT.txt
diff --git a/src/cobalt/debug/remote/devtools/node_modules/he/README.md b/src/third_party/devtools/node_modules/he/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/he/README.md
rename to src/third_party/devtools/node_modules/he/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/he/bin/he b/src/third_party/devtools/node_modules/he/bin/he
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/he/bin/he
rename to src/third_party/devtools/node_modules/he/bin/he
diff --git a/src/cobalt/debug/remote/devtools/node_modules/he/he.js b/src/third_party/devtools/node_modules/he/he.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/he/he.js
rename to src/third_party/devtools/node_modules/he/he.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/he/man/he.1 b/src/third_party/devtools/node_modules/he/man/he.1
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/he/man/he.1
rename to src/third_party/devtools/node_modules/he/man/he.1
diff --git a/src/cobalt/debug/remote/devtools/node_modules/he/package.json b/src/third_party/devtools/node_modules/he/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/he/package.json
rename to src/third_party/devtools/node_modules/he/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/hmac-drbg/.npmignore b/src/third_party/devtools/node_modules/hmac-drbg/.npmignore
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/hmac-drbg/.npmignore
rename to src/third_party/devtools/node_modules/hmac-drbg/.npmignore
diff --git a/src/cobalt/debug/remote/devtools/node_modules/hmac-drbg/.travis.yml b/src/third_party/devtools/node_modules/hmac-drbg/.travis.yml
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/hmac-drbg/.travis.yml
rename to src/third_party/devtools/node_modules/hmac-drbg/.travis.yml
diff --git a/src/cobalt/debug/remote/devtools/node_modules/hmac-drbg/README.md b/src/third_party/devtools/node_modules/hmac-drbg/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/hmac-drbg/README.md
rename to src/third_party/devtools/node_modules/hmac-drbg/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/hmac-drbg/lib/hmac-drbg.js b/src/third_party/devtools/node_modules/hmac-drbg/lib/hmac-drbg.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/hmac-drbg/lib/hmac-drbg.js
rename to src/third_party/devtools/node_modules/hmac-drbg/lib/hmac-drbg.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/hmac-drbg/package.json b/src/third_party/devtools/node_modules/hmac-drbg/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/hmac-drbg/package.json
rename to src/third_party/devtools/node_modules/hmac-drbg/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/hmac-drbg/test/drbg-test.js b/src/third_party/devtools/node_modules/hmac-drbg/test/drbg-test.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/hmac-drbg/test/drbg-test.js
rename to src/third_party/devtools/node_modules/hmac-drbg/test/drbg-test.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/hmac-drbg/test/fixtures/hmac-drbg-nist.json b/src/third_party/devtools/node_modules/hmac-drbg/test/fixtures/hmac-drbg-nist.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/hmac-drbg/test/fixtures/hmac-drbg-nist.json
rename to src/third_party/devtools/node_modules/hmac-drbg/test/fixtures/hmac-drbg-nist.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/hosted-git-info/CHANGELOG.md b/src/third_party/devtools/node_modules/hosted-git-info/CHANGELOG.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/hosted-git-info/CHANGELOG.md
rename to src/third_party/devtools/node_modules/hosted-git-info/CHANGELOG.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/hosted-git-info/LICENSE b/src/third_party/devtools/node_modules/hosted-git-info/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/hosted-git-info/LICENSE
rename to src/third_party/devtools/node_modules/hosted-git-info/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/hosted-git-info/README.md b/src/third_party/devtools/node_modules/hosted-git-info/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/hosted-git-info/README.md
rename to src/third_party/devtools/node_modules/hosted-git-info/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/hosted-git-info/git-host-info.js b/src/third_party/devtools/node_modules/hosted-git-info/git-host-info.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/hosted-git-info/git-host-info.js
rename to src/third_party/devtools/node_modules/hosted-git-info/git-host-info.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/hosted-git-info/git-host.js b/src/third_party/devtools/node_modules/hosted-git-info/git-host.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/hosted-git-info/git-host.js
rename to src/third_party/devtools/node_modules/hosted-git-info/git-host.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/hosted-git-info/index.js b/src/third_party/devtools/node_modules/hosted-git-info/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/hosted-git-info/index.js
rename to src/third_party/devtools/node_modules/hosted-git-info/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/hosted-git-info/package.json b/src/third_party/devtools/node_modules/hosted-git-info/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/hosted-git-info/package.json
rename to src/third_party/devtools/node_modules/hosted-git-info/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/http-errors/HISTORY.md b/src/third_party/devtools/node_modules/http-errors/HISTORY.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/http-errors/HISTORY.md
rename to src/third_party/devtools/node_modules/http-errors/HISTORY.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/http-errors/LICENSE b/src/third_party/devtools/node_modules/http-errors/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/http-errors/LICENSE
rename to src/third_party/devtools/node_modules/http-errors/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/http-errors/README.md b/src/third_party/devtools/node_modules/http-errors/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/http-errors/README.md
rename to src/third_party/devtools/node_modules/http-errors/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/http-errors/index.js b/src/third_party/devtools/node_modules/http-errors/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/http-errors/index.js
rename to src/third_party/devtools/node_modules/http-errors/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/http-errors/node_modules/inherits/LICENSE b/src/third_party/devtools/node_modules/http-errors/node_modules/inherits/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/http-errors/node_modules/inherits/LICENSE
rename to src/third_party/devtools/node_modules/http-errors/node_modules/inherits/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/http-errors/node_modules/inherits/README.md b/src/third_party/devtools/node_modules/http-errors/node_modules/inherits/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/http-errors/node_modules/inherits/README.md
rename to src/third_party/devtools/node_modules/http-errors/node_modules/inherits/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/http-errors/node_modules/inherits/inherits.js b/src/third_party/devtools/node_modules/http-errors/node_modules/inherits/inherits.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/http-errors/node_modules/inherits/inherits.js
rename to src/third_party/devtools/node_modules/http-errors/node_modules/inherits/inherits.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/http-errors/node_modules/inherits/inherits_browser.js b/src/third_party/devtools/node_modules/http-errors/node_modules/inherits/inherits_browser.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/http-errors/node_modules/inherits/inherits_browser.js
rename to src/third_party/devtools/node_modules/http-errors/node_modules/inherits/inherits_browser.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/http-errors/node_modules/inherits/package.json b/src/third_party/devtools/node_modules/http-errors/node_modules/inherits/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/http-errors/node_modules/inherits/package.json
rename to src/third_party/devtools/node_modules/http-errors/node_modules/inherits/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/http-errors/package.json b/src/third_party/devtools/node_modules/http-errors/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/http-errors/package.json
rename to src/third_party/devtools/node_modules/http-errors/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/http-proxy/.auto-changelog b/src/third_party/devtools/node_modules/http-proxy/.auto-changelog
similarity index 99%
rename from src/cobalt/debug/remote/devtools/node_modules/http-proxy/.auto-changelog
rename to src/third_party/devtools/node_modules/http-proxy/.auto-changelog
index 38e2455..98e4a98 100644
--- a/src/cobalt/debug/remote/devtools/node_modules/http-proxy/.auto-changelog
+++ b/src/third_party/devtools/node_modules/http-proxy/.auto-changelog
@@ -1,6 +1,6 @@
-{

-  "output": "CHANGELOG.md",

-  "template": "keepachangelog",

-  "unreleased": true,

-  "commitLimit": false

+{
+  "output": "CHANGELOG.md",
+  "template": "keepachangelog",
+  "unreleased": true,
+  "commitLimit": false
 }
\ No newline at end of file
diff --git a/src/cobalt/debug/remote/devtools/node_modules/http-proxy/CHANGELOG.md b/src/third_party/devtools/node_modules/http-proxy/CHANGELOG.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/http-proxy/CHANGELOG.md
rename to src/third_party/devtools/node_modules/http-proxy/CHANGELOG.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/http-proxy/CODE_OF_CONDUCT.md b/src/third_party/devtools/node_modules/http-proxy/CODE_OF_CONDUCT.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/http-proxy/CODE_OF_CONDUCT.md
rename to src/third_party/devtools/node_modules/http-proxy/CODE_OF_CONDUCT.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/http-proxy/LICENSE b/src/third_party/devtools/node_modules/http-proxy/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/http-proxy/LICENSE
rename to src/third_party/devtools/node_modules/http-proxy/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/http-proxy/README.md b/src/third_party/devtools/node_modules/http-proxy/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/http-proxy/README.md
rename to src/third_party/devtools/node_modules/http-proxy/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/http-proxy/codecov.yml b/src/third_party/devtools/node_modules/http-proxy/codecov.yml
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/http-proxy/codecov.yml
rename to src/third_party/devtools/node_modules/http-proxy/codecov.yml
diff --git a/src/cobalt/debug/remote/devtools/node_modules/http-proxy/index.js b/src/third_party/devtools/node_modules/http-proxy/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/http-proxy/index.js
rename to src/third_party/devtools/node_modules/http-proxy/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/http-proxy/lib/http-proxy.js b/src/third_party/devtools/node_modules/http-proxy/lib/http-proxy.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/http-proxy/lib/http-proxy.js
rename to src/third_party/devtools/node_modules/http-proxy/lib/http-proxy.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/http-proxy/lib/http-proxy/common.js b/src/third_party/devtools/node_modules/http-proxy/lib/http-proxy/common.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/http-proxy/lib/http-proxy/common.js
rename to src/third_party/devtools/node_modules/http-proxy/lib/http-proxy/common.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/http-proxy/lib/http-proxy/index.js b/src/third_party/devtools/node_modules/http-proxy/lib/http-proxy/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/http-proxy/lib/http-proxy/index.js
rename to src/third_party/devtools/node_modules/http-proxy/lib/http-proxy/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/http-proxy/lib/http-proxy/passes/web-incoming.js b/src/third_party/devtools/node_modules/http-proxy/lib/http-proxy/passes/web-incoming.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/http-proxy/lib/http-proxy/passes/web-incoming.js
rename to src/third_party/devtools/node_modules/http-proxy/lib/http-proxy/passes/web-incoming.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/http-proxy/lib/http-proxy/passes/web-outgoing.js b/src/third_party/devtools/node_modules/http-proxy/lib/http-proxy/passes/web-outgoing.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/http-proxy/lib/http-proxy/passes/web-outgoing.js
rename to src/third_party/devtools/node_modules/http-proxy/lib/http-proxy/passes/web-outgoing.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/http-proxy/lib/http-proxy/passes/ws-incoming.js b/src/third_party/devtools/node_modules/http-proxy/lib/http-proxy/passes/ws-incoming.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/http-proxy/lib/http-proxy/passes/ws-incoming.js
rename to src/third_party/devtools/node_modules/http-proxy/lib/http-proxy/passes/ws-incoming.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/http-proxy/package.json b/src/third_party/devtools/node_modules/http-proxy/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/http-proxy/package.json
rename to src/third_party/devtools/node_modules/http-proxy/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/http-proxy/renovate.json b/src/third_party/devtools/node_modules/http-proxy/renovate.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/http-proxy/renovate.json
rename to src/third_party/devtools/node_modules/http-proxy/renovate.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/https-browserify/LICENSE b/src/third_party/devtools/node_modules/https-browserify/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/https-browserify/LICENSE
rename to src/third_party/devtools/node_modules/https-browserify/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/https-browserify/index.js b/src/third_party/devtools/node_modules/https-browserify/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/https-browserify/index.js
rename to src/third_party/devtools/node_modules/https-browserify/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/https-browserify/package.json b/src/third_party/devtools/node_modules/https-browserify/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/https-browserify/package.json
rename to src/third_party/devtools/node_modules/https-browserify/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/https-browserify/readme.markdown b/src/third_party/devtools/node_modules/https-browserify/readme.markdown
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/https-browserify/readme.markdown
rename to src/third_party/devtools/node_modules/https-browserify/readme.markdown
diff --git a/src/cobalt/debug/remote/devtools/node_modules/https-proxy-agent/.editorconfig b/src/third_party/devtools/node_modules/https-proxy-agent/.editorconfig
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/https-proxy-agent/.editorconfig
rename to src/third_party/devtools/node_modules/https-proxy-agent/.editorconfig
diff --git a/src/cobalt/debug/remote/devtools/node_modules/https-proxy-agent/.eslintrc.js b/src/third_party/devtools/node_modules/https-proxy-agent/.eslintrc.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/https-proxy-agent/.eslintrc.js
rename to src/third_party/devtools/node_modules/https-proxy-agent/.eslintrc.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/https-proxy-agent/.github/workflows/test.yml b/src/third_party/devtools/node_modules/https-proxy-agent/.github/workflows/test.yml
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/https-proxy-agent/.github/workflows/test.yml
rename to src/third_party/devtools/node_modules/https-proxy-agent/.github/workflows/test.yml
diff --git a/src/cobalt/debug/remote/devtools/node_modules/https-proxy-agent/README.md b/src/third_party/devtools/node_modules/https-proxy-agent/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/https-proxy-agent/README.md
rename to src/third_party/devtools/node_modules/https-proxy-agent/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/https-proxy-agent/index.d.ts b/src/third_party/devtools/node_modules/https-proxy-agent/index.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/https-proxy-agent/index.d.ts
rename to src/third_party/devtools/node_modules/https-proxy-agent/index.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/https-proxy-agent/index.js b/src/third_party/devtools/node_modules/https-proxy-agent/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/https-proxy-agent/index.js
rename to src/third_party/devtools/node_modules/https-proxy-agent/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/https-proxy-agent/node_modules/debug/CHANGELOG.md b/src/third_party/devtools/node_modules/https-proxy-agent/node_modules/debug/CHANGELOG.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/https-proxy-agent/node_modules/debug/CHANGELOG.md
rename to src/third_party/devtools/node_modules/https-proxy-agent/node_modules/debug/CHANGELOG.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/https-proxy-agent/node_modules/debug/LICENSE b/src/third_party/devtools/node_modules/https-proxy-agent/node_modules/debug/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/https-proxy-agent/node_modules/debug/LICENSE
rename to src/third_party/devtools/node_modules/https-proxy-agent/node_modules/debug/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/https-proxy-agent/node_modules/debug/README.md b/src/third_party/devtools/node_modules/https-proxy-agent/node_modules/debug/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/https-proxy-agent/node_modules/debug/README.md
rename to src/third_party/devtools/node_modules/https-proxy-agent/node_modules/debug/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/https-proxy-agent/node_modules/debug/dist/debug.js b/src/third_party/devtools/node_modules/https-proxy-agent/node_modules/debug/dist/debug.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/https-proxy-agent/node_modules/debug/dist/debug.js
rename to src/third_party/devtools/node_modules/https-proxy-agent/node_modules/debug/dist/debug.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/https-proxy-agent/node_modules/debug/node.js b/src/third_party/devtools/node_modules/https-proxy-agent/node_modules/debug/node.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/https-proxy-agent/node_modules/debug/node.js
rename to src/third_party/devtools/node_modules/https-proxy-agent/node_modules/debug/node.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/https-proxy-agent/node_modules/debug/package.json b/src/third_party/devtools/node_modules/https-proxy-agent/node_modules/debug/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/https-proxy-agent/node_modules/debug/package.json
rename to src/third_party/devtools/node_modules/https-proxy-agent/node_modules/debug/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/https-proxy-agent/node_modules/debug/src/browser.js b/src/third_party/devtools/node_modules/https-proxy-agent/node_modules/debug/src/browser.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/https-proxy-agent/node_modules/debug/src/browser.js
rename to src/third_party/devtools/node_modules/https-proxy-agent/node_modules/debug/src/browser.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/https-proxy-agent/node_modules/debug/src/common.js b/src/third_party/devtools/node_modules/https-proxy-agent/node_modules/debug/src/common.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/https-proxy-agent/node_modules/debug/src/common.js
rename to src/third_party/devtools/node_modules/https-proxy-agent/node_modules/debug/src/common.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/https-proxy-agent/node_modules/debug/src/index.js b/src/third_party/devtools/node_modules/https-proxy-agent/node_modules/debug/src/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/https-proxy-agent/node_modules/debug/src/index.js
rename to src/third_party/devtools/node_modules/https-proxy-agent/node_modules/debug/src/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/https-proxy-agent/node_modules/debug/src/node.js b/src/third_party/devtools/node_modules/https-proxy-agent/node_modules/debug/src/node.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/https-proxy-agent/node_modules/debug/src/node.js
rename to src/third_party/devtools/node_modules/https-proxy-agent/node_modules/debug/src/node.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/https-proxy-agent/package.json b/src/third_party/devtools/node_modules/https-proxy-agent/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/https-proxy-agent/package.json
rename to src/third_party/devtools/node_modules/https-proxy-agent/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/iconv-lite/Changelog.md b/src/third_party/devtools/node_modules/iconv-lite/Changelog.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/iconv-lite/Changelog.md
rename to src/third_party/devtools/node_modules/iconv-lite/Changelog.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/iconv-lite/LICENSE b/src/third_party/devtools/node_modules/iconv-lite/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/iconv-lite/LICENSE
rename to src/third_party/devtools/node_modules/iconv-lite/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/iconv-lite/README.md b/src/third_party/devtools/node_modules/iconv-lite/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/iconv-lite/README.md
rename to src/third_party/devtools/node_modules/iconv-lite/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/iconv-lite/encodings/dbcs-codec.js b/src/third_party/devtools/node_modules/iconv-lite/encodings/dbcs-codec.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/iconv-lite/encodings/dbcs-codec.js
rename to src/third_party/devtools/node_modules/iconv-lite/encodings/dbcs-codec.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/iconv-lite/encodings/dbcs-data.js b/src/third_party/devtools/node_modules/iconv-lite/encodings/dbcs-data.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/iconv-lite/encodings/dbcs-data.js
rename to src/third_party/devtools/node_modules/iconv-lite/encodings/dbcs-data.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/iconv-lite/encodings/index.js b/src/third_party/devtools/node_modules/iconv-lite/encodings/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/iconv-lite/encodings/index.js
rename to src/third_party/devtools/node_modules/iconv-lite/encodings/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/iconv-lite/encodings/internal.js b/src/third_party/devtools/node_modules/iconv-lite/encodings/internal.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/iconv-lite/encodings/internal.js
rename to src/third_party/devtools/node_modules/iconv-lite/encodings/internal.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/iconv-lite/encodings/sbcs-codec.js b/src/third_party/devtools/node_modules/iconv-lite/encodings/sbcs-codec.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/iconv-lite/encodings/sbcs-codec.js
rename to src/third_party/devtools/node_modules/iconv-lite/encodings/sbcs-codec.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/iconv-lite/encodings/sbcs-data-generated.js b/src/third_party/devtools/node_modules/iconv-lite/encodings/sbcs-data-generated.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/iconv-lite/encodings/sbcs-data-generated.js
rename to src/third_party/devtools/node_modules/iconv-lite/encodings/sbcs-data-generated.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/iconv-lite/encodings/sbcs-data.js b/src/third_party/devtools/node_modules/iconv-lite/encodings/sbcs-data.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/iconv-lite/encodings/sbcs-data.js
rename to src/third_party/devtools/node_modules/iconv-lite/encodings/sbcs-data.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/iconv-lite/encodings/tables/big5-added.json b/src/third_party/devtools/node_modules/iconv-lite/encodings/tables/big5-added.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/iconv-lite/encodings/tables/big5-added.json
rename to src/third_party/devtools/node_modules/iconv-lite/encodings/tables/big5-added.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/iconv-lite/encodings/tables/cp936.json b/src/third_party/devtools/node_modules/iconv-lite/encodings/tables/cp936.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/iconv-lite/encodings/tables/cp936.json
rename to src/third_party/devtools/node_modules/iconv-lite/encodings/tables/cp936.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/iconv-lite/encodings/tables/cp949.json b/src/third_party/devtools/node_modules/iconv-lite/encodings/tables/cp949.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/iconv-lite/encodings/tables/cp949.json
rename to src/third_party/devtools/node_modules/iconv-lite/encodings/tables/cp949.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/iconv-lite/encodings/tables/cp950.json b/src/third_party/devtools/node_modules/iconv-lite/encodings/tables/cp950.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/iconv-lite/encodings/tables/cp950.json
rename to src/third_party/devtools/node_modules/iconv-lite/encodings/tables/cp950.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/iconv-lite/encodings/tables/eucjp.json b/src/third_party/devtools/node_modules/iconv-lite/encodings/tables/eucjp.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/iconv-lite/encodings/tables/eucjp.json
rename to src/third_party/devtools/node_modules/iconv-lite/encodings/tables/eucjp.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/iconv-lite/encodings/tables/gb18030-ranges.json b/src/third_party/devtools/node_modules/iconv-lite/encodings/tables/gb18030-ranges.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/iconv-lite/encodings/tables/gb18030-ranges.json
rename to src/third_party/devtools/node_modules/iconv-lite/encodings/tables/gb18030-ranges.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/iconv-lite/encodings/tables/gbk-added.json b/src/third_party/devtools/node_modules/iconv-lite/encodings/tables/gbk-added.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/iconv-lite/encodings/tables/gbk-added.json
rename to src/third_party/devtools/node_modules/iconv-lite/encodings/tables/gbk-added.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/iconv-lite/encodings/tables/shiftjis.json b/src/third_party/devtools/node_modules/iconv-lite/encodings/tables/shiftjis.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/iconv-lite/encodings/tables/shiftjis.json
rename to src/third_party/devtools/node_modules/iconv-lite/encodings/tables/shiftjis.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/iconv-lite/encodings/utf16.js b/src/third_party/devtools/node_modules/iconv-lite/encodings/utf16.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/iconv-lite/encodings/utf16.js
rename to src/third_party/devtools/node_modules/iconv-lite/encodings/utf16.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/iconv-lite/encodings/utf7.js b/src/third_party/devtools/node_modules/iconv-lite/encodings/utf7.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/iconv-lite/encodings/utf7.js
rename to src/third_party/devtools/node_modules/iconv-lite/encodings/utf7.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/iconv-lite/lib/bom-handling.js b/src/third_party/devtools/node_modules/iconv-lite/lib/bom-handling.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/iconv-lite/lib/bom-handling.js
rename to src/third_party/devtools/node_modules/iconv-lite/lib/bom-handling.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/iconv-lite/lib/extend-node.js b/src/third_party/devtools/node_modules/iconv-lite/lib/extend-node.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/iconv-lite/lib/extend-node.js
rename to src/third_party/devtools/node_modules/iconv-lite/lib/extend-node.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/iconv-lite/lib/index.d.ts b/src/third_party/devtools/node_modules/iconv-lite/lib/index.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/iconv-lite/lib/index.d.ts
rename to src/third_party/devtools/node_modules/iconv-lite/lib/index.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/iconv-lite/lib/index.js b/src/third_party/devtools/node_modules/iconv-lite/lib/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/iconv-lite/lib/index.js
rename to src/third_party/devtools/node_modules/iconv-lite/lib/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/iconv-lite/lib/streams.js b/src/third_party/devtools/node_modules/iconv-lite/lib/streams.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/iconv-lite/lib/streams.js
rename to src/third_party/devtools/node_modules/iconv-lite/lib/streams.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/iconv-lite/package.json b/src/third_party/devtools/node_modules/iconv-lite/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/iconv-lite/package.json
rename to src/third_party/devtools/node_modules/iconv-lite/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/ieee754/LICENSE b/src/third_party/devtools/node_modules/ieee754/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/ieee754/LICENSE
rename to src/third_party/devtools/node_modules/ieee754/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/ieee754/README.md b/src/third_party/devtools/node_modules/ieee754/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/ieee754/README.md
rename to src/third_party/devtools/node_modules/ieee754/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/ieee754/index.js b/src/third_party/devtools/node_modules/ieee754/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/ieee754/index.js
rename to src/third_party/devtools/node_modules/ieee754/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/ieee754/package.json b/src/third_party/devtools/node_modules/ieee754/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/ieee754/package.json
rename to src/third_party/devtools/node_modules/ieee754/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/ignore/CHANGELOG.md b/src/third_party/devtools/node_modules/ignore/CHANGELOG.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/ignore/CHANGELOG.md
rename to src/third_party/devtools/node_modules/ignore/CHANGELOG.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/ignore/LICENSE-MIT b/src/third_party/devtools/node_modules/ignore/LICENSE-MIT
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/ignore/LICENSE-MIT
rename to src/third_party/devtools/node_modules/ignore/LICENSE-MIT
diff --git a/src/cobalt/debug/remote/devtools/node_modules/ignore/README.md b/src/third_party/devtools/node_modules/ignore/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/ignore/README.md
rename to src/third_party/devtools/node_modules/ignore/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/ignore/index.d.ts b/src/third_party/devtools/node_modules/ignore/index.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/ignore/index.d.ts
rename to src/third_party/devtools/node_modules/ignore/index.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/ignore/index.js b/src/third_party/devtools/node_modules/ignore/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/ignore/index.js
rename to src/third_party/devtools/node_modules/ignore/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/ignore/legacy.js b/src/third_party/devtools/node_modules/ignore/legacy.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/ignore/legacy.js
rename to src/third_party/devtools/node_modules/ignore/legacy.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/ignore/package.json b/src/third_party/devtools/node_modules/ignore/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/ignore/package.json
rename to src/third_party/devtools/node_modules/ignore/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/import-fresh/index.d.ts b/src/third_party/devtools/node_modules/import-fresh/index.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/import-fresh/index.d.ts
rename to src/third_party/devtools/node_modules/import-fresh/index.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/import-fresh/index.js b/src/third_party/devtools/node_modules/import-fresh/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/import-fresh/index.js
rename to src/third_party/devtools/node_modules/import-fresh/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/import-fresh/license b/src/third_party/devtools/node_modules/import-fresh/license
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/import-fresh/license
rename to src/third_party/devtools/node_modules/import-fresh/license
diff --git a/src/cobalt/debug/remote/devtools/node_modules/import-fresh/package.json b/src/third_party/devtools/node_modules/import-fresh/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/import-fresh/package.json
rename to src/third_party/devtools/node_modules/import-fresh/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/import-fresh/readme.md b/src/third_party/devtools/node_modules/import-fresh/readme.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/import-fresh/readme.md
rename to src/third_party/devtools/node_modules/import-fresh/readme.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/imurmurhash/README.md b/src/third_party/devtools/node_modules/imurmurhash/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/imurmurhash/README.md
rename to src/third_party/devtools/node_modules/imurmurhash/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/imurmurhash/imurmurhash.js b/src/third_party/devtools/node_modules/imurmurhash/imurmurhash.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/imurmurhash/imurmurhash.js
rename to src/third_party/devtools/node_modules/imurmurhash/imurmurhash.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/imurmurhash/imurmurhash.min.js b/src/third_party/devtools/node_modules/imurmurhash/imurmurhash.min.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/imurmurhash/imurmurhash.min.js
rename to src/third_party/devtools/node_modules/imurmurhash/imurmurhash.min.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/imurmurhash/package.json b/src/third_party/devtools/node_modules/imurmurhash/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/imurmurhash/package.json
rename to src/third_party/devtools/node_modules/imurmurhash/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/indent-string/index.js b/src/third_party/devtools/node_modules/indent-string/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/indent-string/index.js
rename to src/third_party/devtools/node_modules/indent-string/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/indent-string/license b/src/third_party/devtools/node_modules/indent-string/license
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/indent-string/license
rename to src/third_party/devtools/node_modules/indent-string/license
diff --git a/src/cobalt/debug/remote/devtools/node_modules/indent-string/package.json b/src/third_party/devtools/node_modules/indent-string/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/indent-string/package.json
rename to src/third_party/devtools/node_modules/indent-string/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/indent-string/readme.md b/src/third_party/devtools/node_modules/indent-string/readme.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/indent-string/readme.md
rename to src/third_party/devtools/node_modules/indent-string/readme.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/indexof/.npmignore b/src/third_party/devtools/node_modules/indexof/.npmignore
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/indexof/.npmignore
rename to src/third_party/devtools/node_modules/indexof/.npmignore
diff --git a/src/cobalt/debug/remote/devtools/node_modules/indexof/Makefile b/src/third_party/devtools/node_modules/indexof/Makefile
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/indexof/Makefile
rename to src/third_party/devtools/node_modules/indexof/Makefile
diff --git a/src/cobalt/debug/remote/devtools/node_modules/indexof/Readme.md b/src/third_party/devtools/node_modules/indexof/Readme.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/indexof/Readme.md
rename to src/third_party/devtools/node_modules/indexof/Readme.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/indexof/component.json b/src/third_party/devtools/node_modules/indexof/component.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/indexof/component.json
rename to src/third_party/devtools/node_modules/indexof/component.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/indexof/index.js b/src/third_party/devtools/node_modules/indexof/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/indexof/index.js
rename to src/third_party/devtools/node_modules/indexof/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/indexof/package.json b/src/third_party/devtools/node_modules/indexof/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/indexof/package.json
rename to src/third_party/devtools/node_modules/indexof/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/inflight/LICENSE b/src/third_party/devtools/node_modules/inflight/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/inflight/LICENSE
rename to src/third_party/devtools/node_modules/inflight/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/inflight/README.md b/src/third_party/devtools/node_modules/inflight/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/inflight/README.md
rename to src/third_party/devtools/node_modules/inflight/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/inflight/inflight.js b/src/third_party/devtools/node_modules/inflight/inflight.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/inflight/inflight.js
rename to src/third_party/devtools/node_modules/inflight/inflight.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/inflight/package.json b/src/third_party/devtools/node_modules/inflight/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/inflight/package.json
rename to src/third_party/devtools/node_modules/inflight/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/inherits/LICENSE b/src/third_party/devtools/node_modules/inherits/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/inherits/LICENSE
rename to src/third_party/devtools/node_modules/inherits/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/inherits/README.md b/src/third_party/devtools/node_modules/inherits/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/inherits/README.md
rename to src/third_party/devtools/node_modules/inherits/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/inherits/inherits.js b/src/third_party/devtools/node_modules/inherits/inherits.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/inherits/inherits.js
rename to src/third_party/devtools/node_modules/inherits/inherits.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/inherits/inherits_browser.js b/src/third_party/devtools/node_modules/inherits/inherits_browser.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/inherits/inherits_browser.js
rename to src/third_party/devtools/node_modules/inherits/inherits_browser.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/inherits/package.json b/src/third_party/devtools/node_modules/inherits/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/inherits/package.json
rename to src/third_party/devtools/node_modules/inherits/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/inline-source-map/.npmignore b/src/third_party/devtools/node_modules/inline-source-map/.npmignore
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/inline-source-map/.npmignore
rename to src/third_party/devtools/node_modules/inline-source-map/.npmignore
diff --git a/src/cobalt/debug/remote/devtools/node_modules/inline-source-map/.travis.yml b/src/third_party/devtools/node_modules/inline-source-map/.travis.yml
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/inline-source-map/.travis.yml
rename to src/third_party/devtools/node_modules/inline-source-map/.travis.yml
diff --git a/src/cobalt/debug/remote/devtools/node_modules/inline-source-map/LICENSE b/src/third_party/devtools/node_modules/inline-source-map/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/inline-source-map/LICENSE
rename to src/third_party/devtools/node_modules/inline-source-map/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/inline-source-map/README.md b/src/third_party/devtools/node_modules/inline-source-map/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/inline-source-map/README.md
rename to src/third_party/devtools/node_modules/inline-source-map/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/inline-source-map/example/foo-bar.js b/src/third_party/devtools/node_modules/inline-source-map/example/foo-bar.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/inline-source-map/example/foo-bar.js
rename to src/third_party/devtools/node_modules/inline-source-map/example/foo-bar.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/inline-source-map/index.js b/src/third_party/devtools/node_modules/inline-source-map/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/inline-source-map/index.js
rename to src/third_party/devtools/node_modules/inline-source-map/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/inline-source-map/node_modules/source-map/CHANGELOG.md b/src/third_party/devtools/node_modules/inline-source-map/node_modules/source-map/CHANGELOG.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/inline-source-map/node_modules/source-map/CHANGELOG.md
rename to src/third_party/devtools/node_modules/inline-source-map/node_modules/source-map/CHANGELOG.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/inline-source-map/node_modules/source-map/LICENSE b/src/third_party/devtools/node_modules/inline-source-map/node_modules/source-map/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/inline-source-map/node_modules/source-map/LICENSE
rename to src/third_party/devtools/node_modules/inline-source-map/node_modules/source-map/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/inline-source-map/node_modules/source-map/README.md b/src/third_party/devtools/node_modules/inline-source-map/node_modules/source-map/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/inline-source-map/node_modules/source-map/README.md
rename to src/third_party/devtools/node_modules/inline-source-map/node_modules/source-map/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/inline-source-map/node_modules/source-map/dist/source-map.debug.js b/src/third_party/devtools/node_modules/inline-source-map/node_modules/source-map/dist/source-map.debug.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/inline-source-map/node_modules/source-map/dist/source-map.debug.js
rename to src/third_party/devtools/node_modules/inline-source-map/node_modules/source-map/dist/source-map.debug.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/inline-source-map/node_modules/source-map/dist/source-map.js b/src/third_party/devtools/node_modules/inline-source-map/node_modules/source-map/dist/source-map.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/inline-source-map/node_modules/source-map/dist/source-map.js
rename to src/third_party/devtools/node_modules/inline-source-map/node_modules/source-map/dist/source-map.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/inline-source-map/node_modules/source-map/dist/source-map.min.js b/src/third_party/devtools/node_modules/inline-source-map/node_modules/source-map/dist/source-map.min.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/inline-source-map/node_modules/source-map/dist/source-map.min.js
rename to src/third_party/devtools/node_modules/inline-source-map/node_modules/source-map/dist/source-map.min.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/inline-source-map/node_modules/source-map/dist/source-map.min.js.map b/src/third_party/devtools/node_modules/inline-source-map/node_modules/source-map/dist/source-map.min.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/inline-source-map/node_modules/source-map/dist/source-map.min.js.map
rename to src/third_party/devtools/node_modules/inline-source-map/node_modules/source-map/dist/source-map.min.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/inline-source-map/node_modules/source-map/lib/array-set.js b/src/third_party/devtools/node_modules/inline-source-map/node_modules/source-map/lib/array-set.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/inline-source-map/node_modules/source-map/lib/array-set.js
rename to src/third_party/devtools/node_modules/inline-source-map/node_modules/source-map/lib/array-set.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/inline-source-map/node_modules/source-map/lib/base64-vlq.js b/src/third_party/devtools/node_modules/inline-source-map/node_modules/source-map/lib/base64-vlq.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/inline-source-map/node_modules/source-map/lib/base64-vlq.js
rename to src/third_party/devtools/node_modules/inline-source-map/node_modules/source-map/lib/base64-vlq.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/inline-source-map/node_modules/source-map/lib/base64.js b/src/third_party/devtools/node_modules/inline-source-map/node_modules/source-map/lib/base64.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/inline-source-map/node_modules/source-map/lib/base64.js
rename to src/third_party/devtools/node_modules/inline-source-map/node_modules/source-map/lib/base64.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/inline-source-map/node_modules/source-map/lib/binary-search.js b/src/third_party/devtools/node_modules/inline-source-map/node_modules/source-map/lib/binary-search.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/inline-source-map/node_modules/source-map/lib/binary-search.js
rename to src/third_party/devtools/node_modules/inline-source-map/node_modules/source-map/lib/binary-search.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/inline-source-map/node_modules/source-map/lib/mapping-list.js b/src/third_party/devtools/node_modules/inline-source-map/node_modules/source-map/lib/mapping-list.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/inline-source-map/node_modules/source-map/lib/mapping-list.js
rename to src/third_party/devtools/node_modules/inline-source-map/node_modules/source-map/lib/mapping-list.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/inline-source-map/node_modules/source-map/lib/quick-sort.js b/src/third_party/devtools/node_modules/inline-source-map/node_modules/source-map/lib/quick-sort.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/inline-source-map/node_modules/source-map/lib/quick-sort.js
rename to src/third_party/devtools/node_modules/inline-source-map/node_modules/source-map/lib/quick-sort.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/inline-source-map/node_modules/source-map/lib/source-map-consumer.js b/src/third_party/devtools/node_modules/inline-source-map/node_modules/source-map/lib/source-map-consumer.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/inline-source-map/node_modules/source-map/lib/source-map-consumer.js
rename to src/third_party/devtools/node_modules/inline-source-map/node_modules/source-map/lib/source-map-consumer.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/inline-source-map/node_modules/source-map/lib/source-map-generator.js b/src/third_party/devtools/node_modules/inline-source-map/node_modules/source-map/lib/source-map-generator.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/inline-source-map/node_modules/source-map/lib/source-map-generator.js
rename to src/third_party/devtools/node_modules/inline-source-map/node_modules/source-map/lib/source-map-generator.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/inline-source-map/node_modules/source-map/lib/source-node.js b/src/third_party/devtools/node_modules/inline-source-map/node_modules/source-map/lib/source-node.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/inline-source-map/node_modules/source-map/lib/source-node.js
rename to src/third_party/devtools/node_modules/inline-source-map/node_modules/source-map/lib/source-node.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/inline-source-map/node_modules/source-map/lib/util.js b/src/third_party/devtools/node_modules/inline-source-map/node_modules/source-map/lib/util.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/inline-source-map/node_modules/source-map/lib/util.js
rename to src/third_party/devtools/node_modules/inline-source-map/node_modules/source-map/lib/util.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/inline-source-map/node_modules/source-map/package.json b/src/third_party/devtools/node_modules/inline-source-map/node_modules/source-map/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/inline-source-map/node_modules/source-map/package.json
rename to src/third_party/devtools/node_modules/inline-source-map/node_modules/source-map/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/inline-source-map/node_modules/source-map/source-map.js b/src/third_party/devtools/node_modules/inline-source-map/node_modules/source-map/source-map.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/inline-source-map/node_modules/source-map/source-map.js
rename to src/third_party/devtools/node_modules/inline-source-map/node_modules/source-map/source-map.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/inline-source-map/package.json b/src/third_party/devtools/node_modules/inline-source-map/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/inline-source-map/package.json
rename to src/third_party/devtools/node_modules/inline-source-map/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/inline-source-map/test/inline-source-map.js b/src/third_party/devtools/node_modules/inline-source-map/test/inline-source-map.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/inline-source-map/test/inline-source-map.js
rename to src/third_party/devtools/node_modules/inline-source-map/test/inline-source-map.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/inline-source-map/test/source-content.js b/src/third_party/devtools/node_modules/inline-source-map/test/source-content.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/inline-source-map/test/source-content.js
rename to src/third_party/devtools/node_modules/inline-source-map/test/source-content.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/inquirer/LICENSE b/src/third_party/devtools/node_modules/inquirer/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/inquirer/LICENSE
rename to src/third_party/devtools/node_modules/inquirer/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/inquirer/README.md b/src/third_party/devtools/node_modules/inquirer/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/inquirer/README.md
rename to src/third_party/devtools/node_modules/inquirer/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/inquirer/lib/inquirer.js b/src/third_party/devtools/node_modules/inquirer/lib/inquirer.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/inquirer/lib/inquirer.js
rename to src/third_party/devtools/node_modules/inquirer/lib/inquirer.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/inquirer/lib/objects/choice.js b/src/third_party/devtools/node_modules/inquirer/lib/objects/choice.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/inquirer/lib/objects/choice.js
rename to src/third_party/devtools/node_modules/inquirer/lib/objects/choice.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/inquirer/lib/objects/choices.js b/src/third_party/devtools/node_modules/inquirer/lib/objects/choices.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/inquirer/lib/objects/choices.js
rename to src/third_party/devtools/node_modules/inquirer/lib/objects/choices.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/inquirer/lib/objects/separator.js b/src/third_party/devtools/node_modules/inquirer/lib/objects/separator.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/inquirer/lib/objects/separator.js
rename to src/third_party/devtools/node_modules/inquirer/lib/objects/separator.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/inquirer/lib/prompts/base.js b/src/third_party/devtools/node_modules/inquirer/lib/prompts/base.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/inquirer/lib/prompts/base.js
rename to src/third_party/devtools/node_modules/inquirer/lib/prompts/base.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/inquirer/lib/prompts/checkbox.js b/src/third_party/devtools/node_modules/inquirer/lib/prompts/checkbox.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/inquirer/lib/prompts/checkbox.js
rename to src/third_party/devtools/node_modules/inquirer/lib/prompts/checkbox.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/inquirer/lib/prompts/confirm.js b/src/third_party/devtools/node_modules/inquirer/lib/prompts/confirm.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/inquirer/lib/prompts/confirm.js
rename to src/third_party/devtools/node_modules/inquirer/lib/prompts/confirm.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/inquirer/lib/prompts/editor.js b/src/third_party/devtools/node_modules/inquirer/lib/prompts/editor.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/inquirer/lib/prompts/editor.js
rename to src/third_party/devtools/node_modules/inquirer/lib/prompts/editor.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/inquirer/lib/prompts/expand.js b/src/third_party/devtools/node_modules/inquirer/lib/prompts/expand.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/inquirer/lib/prompts/expand.js
rename to src/third_party/devtools/node_modules/inquirer/lib/prompts/expand.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/inquirer/lib/prompts/input.js b/src/third_party/devtools/node_modules/inquirer/lib/prompts/input.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/inquirer/lib/prompts/input.js
rename to src/third_party/devtools/node_modules/inquirer/lib/prompts/input.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/inquirer/lib/prompts/list.js b/src/third_party/devtools/node_modules/inquirer/lib/prompts/list.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/inquirer/lib/prompts/list.js
rename to src/third_party/devtools/node_modules/inquirer/lib/prompts/list.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/inquirer/lib/prompts/number.js b/src/third_party/devtools/node_modules/inquirer/lib/prompts/number.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/inquirer/lib/prompts/number.js
rename to src/third_party/devtools/node_modules/inquirer/lib/prompts/number.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/inquirer/lib/prompts/password.js b/src/third_party/devtools/node_modules/inquirer/lib/prompts/password.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/inquirer/lib/prompts/password.js
rename to src/third_party/devtools/node_modules/inquirer/lib/prompts/password.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/inquirer/lib/prompts/rawlist.js b/src/third_party/devtools/node_modules/inquirer/lib/prompts/rawlist.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/inquirer/lib/prompts/rawlist.js
rename to src/third_party/devtools/node_modules/inquirer/lib/prompts/rawlist.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/inquirer/lib/ui/baseUI.js b/src/third_party/devtools/node_modules/inquirer/lib/ui/baseUI.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/inquirer/lib/ui/baseUI.js
rename to src/third_party/devtools/node_modules/inquirer/lib/ui/baseUI.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/inquirer/lib/ui/bottom-bar.js b/src/third_party/devtools/node_modules/inquirer/lib/ui/bottom-bar.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/inquirer/lib/ui/bottom-bar.js
rename to src/third_party/devtools/node_modules/inquirer/lib/ui/bottom-bar.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/inquirer/lib/ui/prompt.js b/src/third_party/devtools/node_modules/inquirer/lib/ui/prompt.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/inquirer/lib/ui/prompt.js
rename to src/third_party/devtools/node_modules/inquirer/lib/ui/prompt.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/inquirer/lib/utils/events.js b/src/third_party/devtools/node_modules/inquirer/lib/utils/events.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/inquirer/lib/utils/events.js
rename to src/third_party/devtools/node_modules/inquirer/lib/utils/events.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/inquirer/lib/utils/paginator.js b/src/third_party/devtools/node_modules/inquirer/lib/utils/paginator.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/inquirer/lib/utils/paginator.js
rename to src/third_party/devtools/node_modules/inquirer/lib/utils/paginator.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/inquirer/lib/utils/readline.js b/src/third_party/devtools/node_modules/inquirer/lib/utils/readline.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/inquirer/lib/utils/readline.js
rename to src/third_party/devtools/node_modules/inquirer/lib/utils/readline.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/inquirer/lib/utils/screen-manager.js b/src/third_party/devtools/node_modules/inquirer/lib/utils/screen-manager.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/inquirer/lib/utils/screen-manager.js
rename to src/third_party/devtools/node_modules/inquirer/lib/utils/screen-manager.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/inquirer/lib/utils/utils.js b/src/third_party/devtools/node_modules/inquirer/lib/utils/utils.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/inquirer/lib/utils/utils.js
rename to src/third_party/devtools/node_modules/inquirer/lib/utils/utils.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/inquirer/node_modules/ansi-regex/index.js b/src/third_party/devtools/node_modules/inquirer/node_modules/ansi-regex/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/inquirer/node_modules/ansi-regex/index.js
rename to src/third_party/devtools/node_modules/inquirer/node_modules/ansi-regex/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/inquirer/node_modules/ansi-regex/license b/src/third_party/devtools/node_modules/inquirer/node_modules/ansi-regex/license
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/inquirer/node_modules/ansi-regex/license
rename to src/third_party/devtools/node_modules/inquirer/node_modules/ansi-regex/license
diff --git a/src/cobalt/debug/remote/devtools/node_modules/inquirer/node_modules/ansi-regex/package.json b/src/third_party/devtools/node_modules/inquirer/node_modules/ansi-regex/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/inquirer/node_modules/ansi-regex/package.json
rename to src/third_party/devtools/node_modules/inquirer/node_modules/ansi-regex/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/inquirer/node_modules/ansi-regex/readme.md b/src/third_party/devtools/node_modules/inquirer/node_modules/ansi-regex/readme.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/inquirer/node_modules/ansi-regex/readme.md
rename to src/third_party/devtools/node_modules/inquirer/node_modules/ansi-regex/readme.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/inquirer/node_modules/strip-ansi/index.d.ts b/src/third_party/devtools/node_modules/inquirer/node_modules/strip-ansi/index.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/inquirer/node_modules/strip-ansi/index.d.ts
rename to src/third_party/devtools/node_modules/inquirer/node_modules/strip-ansi/index.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/inquirer/node_modules/strip-ansi/index.js b/src/third_party/devtools/node_modules/inquirer/node_modules/strip-ansi/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/inquirer/node_modules/strip-ansi/index.js
rename to src/third_party/devtools/node_modules/inquirer/node_modules/strip-ansi/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/inquirer/node_modules/strip-ansi/license b/src/third_party/devtools/node_modules/inquirer/node_modules/strip-ansi/license
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/inquirer/node_modules/strip-ansi/license
rename to src/third_party/devtools/node_modules/inquirer/node_modules/strip-ansi/license
diff --git a/src/cobalt/debug/remote/devtools/node_modules/inquirer/node_modules/strip-ansi/package.json b/src/third_party/devtools/node_modules/inquirer/node_modules/strip-ansi/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/inquirer/node_modules/strip-ansi/package.json
rename to src/third_party/devtools/node_modules/inquirer/node_modules/strip-ansi/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/inquirer/node_modules/strip-ansi/readme.md b/src/third_party/devtools/node_modules/inquirer/node_modules/strip-ansi/readme.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/inquirer/node_modules/strip-ansi/readme.md
rename to src/third_party/devtools/node_modules/inquirer/node_modules/strip-ansi/readme.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/inquirer/package.json b/src/third_party/devtools/node_modules/inquirer/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/inquirer/package.json
rename to src/third_party/devtools/node_modules/inquirer/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/invert-kv/index.js b/src/third_party/devtools/node_modules/invert-kv/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/invert-kv/index.js
rename to src/third_party/devtools/node_modules/invert-kv/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/invert-kv/license b/src/third_party/devtools/node_modules/invert-kv/license
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/invert-kv/license
rename to src/third_party/devtools/node_modules/invert-kv/license
diff --git a/src/cobalt/debug/remote/devtools/node_modules/invert-kv/package.json b/src/third_party/devtools/node_modules/invert-kv/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/invert-kv/package.json
rename to src/third_party/devtools/node_modules/invert-kv/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/invert-kv/readme.md b/src/third_party/devtools/node_modules/invert-kv/readme.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/invert-kv/readme.md
rename to src/third_party/devtools/node_modules/invert-kv/readme.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/is-arguments/.editorconfig b/src/third_party/devtools/node_modules/is-arguments/.editorconfig
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/is-arguments/.editorconfig
rename to src/third_party/devtools/node_modules/is-arguments/.editorconfig
diff --git a/src/cobalt/debug/remote/devtools/node_modules/is-arguments/.eslintrc b/src/third_party/devtools/node_modules/is-arguments/.eslintrc
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/is-arguments/.eslintrc
rename to src/third_party/devtools/node_modules/is-arguments/.eslintrc
diff --git a/src/cobalt/debug/remote/devtools/node_modules/is-arguments/.jscs.json b/src/third_party/devtools/node_modules/is-arguments/.jscs.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/is-arguments/.jscs.json
rename to src/third_party/devtools/node_modules/is-arguments/.jscs.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/is-arguments/.travis.yml b/src/third_party/devtools/node_modules/is-arguments/.travis.yml
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/is-arguments/.travis.yml
rename to src/third_party/devtools/node_modules/is-arguments/.travis.yml
diff --git a/src/cobalt/debug/remote/devtools/node_modules/is-arguments/CHANGELOG.md b/src/third_party/devtools/node_modules/is-arguments/CHANGELOG.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/is-arguments/CHANGELOG.md
rename to src/third_party/devtools/node_modules/is-arguments/CHANGELOG.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/is-arguments/LICENSE b/src/third_party/devtools/node_modules/is-arguments/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/is-arguments/LICENSE
rename to src/third_party/devtools/node_modules/is-arguments/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/is-arguments/README.md b/src/third_party/devtools/node_modules/is-arguments/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/is-arguments/README.md
rename to src/third_party/devtools/node_modules/is-arguments/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/is-arguments/index.js b/src/third_party/devtools/node_modules/is-arguments/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/is-arguments/index.js
rename to src/third_party/devtools/node_modules/is-arguments/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/is-arguments/package.json b/src/third_party/devtools/node_modules/is-arguments/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/is-arguments/package.json
rename to src/third_party/devtools/node_modules/is-arguments/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/is-arguments/test.js b/src/third_party/devtools/node_modules/is-arguments/test.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/is-arguments/test.js
rename to src/third_party/devtools/node_modules/is-arguments/test.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/is-arrayish/.editorconfig b/src/third_party/devtools/node_modules/is-arrayish/.editorconfig
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/is-arrayish/.editorconfig
rename to src/third_party/devtools/node_modules/is-arrayish/.editorconfig
diff --git a/src/cobalt/debug/remote/devtools/node_modules/is-arrayish/.istanbul.yml b/src/third_party/devtools/node_modules/is-arrayish/.istanbul.yml
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/is-arrayish/.istanbul.yml
rename to src/third_party/devtools/node_modules/is-arrayish/.istanbul.yml
diff --git a/src/cobalt/debug/remote/devtools/node_modules/is-arrayish/.npmignore b/src/third_party/devtools/node_modules/is-arrayish/.npmignore
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/is-arrayish/.npmignore
rename to src/third_party/devtools/node_modules/is-arrayish/.npmignore
diff --git a/src/cobalt/debug/remote/devtools/node_modules/is-arrayish/.travis.yml b/src/third_party/devtools/node_modules/is-arrayish/.travis.yml
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/is-arrayish/.travis.yml
rename to src/third_party/devtools/node_modules/is-arrayish/.travis.yml
diff --git a/src/cobalt/debug/remote/devtools/node_modules/is-arrayish/LICENSE b/src/third_party/devtools/node_modules/is-arrayish/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/is-arrayish/LICENSE
rename to src/third_party/devtools/node_modules/is-arrayish/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/is-arrayish/README.md b/src/third_party/devtools/node_modules/is-arrayish/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/is-arrayish/README.md
rename to src/third_party/devtools/node_modules/is-arrayish/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/is-arrayish/index.js b/src/third_party/devtools/node_modules/is-arrayish/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/is-arrayish/index.js
rename to src/third_party/devtools/node_modules/is-arrayish/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/is-arrayish/package.json b/src/third_party/devtools/node_modules/is-arrayish/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/is-arrayish/package.json
rename to src/third_party/devtools/node_modules/is-arrayish/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/is-binary-path/index.d.ts b/src/third_party/devtools/node_modules/is-binary-path/index.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/is-binary-path/index.d.ts
rename to src/third_party/devtools/node_modules/is-binary-path/index.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/is-binary-path/index.js b/src/third_party/devtools/node_modules/is-binary-path/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/is-binary-path/index.js
rename to src/third_party/devtools/node_modules/is-binary-path/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/is-binary-path/license b/src/third_party/devtools/node_modules/is-binary-path/license
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/is-binary-path/license
rename to src/third_party/devtools/node_modules/is-binary-path/license
diff --git a/src/cobalt/debug/remote/devtools/node_modules/is-binary-path/package.json b/src/third_party/devtools/node_modules/is-binary-path/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/is-binary-path/package.json
rename to src/third_party/devtools/node_modules/is-binary-path/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/is-binary-path/readme.md b/src/third_party/devtools/node_modules/is-binary-path/readme.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/is-binary-path/readme.md
rename to src/third_party/devtools/node_modules/is-binary-path/readme.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/is-buffer/LICENSE b/src/third_party/devtools/node_modules/is-buffer/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/is-buffer/LICENSE
rename to src/third_party/devtools/node_modules/is-buffer/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/is-buffer/README.md b/src/third_party/devtools/node_modules/is-buffer/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/is-buffer/README.md
rename to src/third_party/devtools/node_modules/is-buffer/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/is-buffer/index.d.ts b/src/third_party/devtools/node_modules/is-buffer/index.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/is-buffer/index.d.ts
rename to src/third_party/devtools/node_modules/is-buffer/index.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/is-buffer/index.js b/src/third_party/devtools/node_modules/is-buffer/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/is-buffer/index.js
rename to src/third_party/devtools/node_modules/is-buffer/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/is-buffer/package.json b/src/third_party/devtools/node_modules/is-buffer/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/is-buffer/package.json
rename to src/third_party/devtools/node_modules/is-buffer/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/is-callable/.editorconfig b/src/third_party/devtools/node_modules/is-callable/.editorconfig
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/is-callable/.editorconfig
rename to src/third_party/devtools/node_modules/is-callable/.editorconfig
diff --git a/src/cobalt/debug/remote/devtools/node_modules/is-callable/.eslintrc b/src/third_party/devtools/node_modules/is-callable/.eslintrc
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/is-callable/.eslintrc
rename to src/third_party/devtools/node_modules/is-callable/.eslintrc
diff --git a/src/cobalt/debug/remote/devtools/node_modules/is-callable/.istanbul.yml b/src/third_party/devtools/node_modules/is-callable/.istanbul.yml
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/is-callable/.istanbul.yml
rename to src/third_party/devtools/node_modules/is-callable/.istanbul.yml
diff --git a/src/cobalt/debug/remote/devtools/node_modules/is-callable/.jscs.json b/src/third_party/devtools/node_modules/is-callable/.jscs.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/is-callable/.jscs.json
rename to src/third_party/devtools/node_modules/is-callable/.jscs.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/is-callable/.travis.yml b/src/third_party/devtools/node_modules/is-callable/.travis.yml
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/is-callable/.travis.yml
rename to src/third_party/devtools/node_modules/is-callable/.travis.yml
diff --git a/src/cobalt/debug/remote/devtools/node_modules/is-callable/CHANGELOG.md b/src/third_party/devtools/node_modules/is-callable/CHANGELOG.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/is-callable/CHANGELOG.md
rename to src/third_party/devtools/node_modules/is-callable/CHANGELOG.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/is-callable/LICENSE b/src/third_party/devtools/node_modules/is-callable/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/is-callable/LICENSE
rename to src/third_party/devtools/node_modules/is-callable/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/is-callable/Makefile b/src/third_party/devtools/node_modules/is-callable/Makefile
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/is-callable/Makefile
rename to src/third_party/devtools/node_modules/is-callable/Makefile
diff --git a/src/cobalt/debug/remote/devtools/node_modules/is-callable/README.md b/src/third_party/devtools/node_modules/is-callable/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/is-callable/README.md
rename to src/third_party/devtools/node_modules/is-callable/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/is-callable/index.js b/src/third_party/devtools/node_modules/is-callable/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/is-callable/index.js
rename to src/third_party/devtools/node_modules/is-callable/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/is-callable/package.json b/src/third_party/devtools/node_modules/is-callable/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/is-callable/package.json
rename to src/third_party/devtools/node_modules/is-callable/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/is-callable/test.js b/src/third_party/devtools/node_modules/is-callable/test.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/is-callable/test.js
rename to src/third_party/devtools/node_modules/is-callable/test.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/is-date-object/.eslintrc b/src/third_party/devtools/node_modules/is-date-object/.eslintrc
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/is-date-object/.eslintrc
rename to src/third_party/devtools/node_modules/is-date-object/.eslintrc
diff --git a/src/cobalt/debug/remote/devtools/node_modules/is-date-object/.jscs.json b/src/third_party/devtools/node_modules/is-date-object/.jscs.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/is-date-object/.jscs.json
rename to src/third_party/devtools/node_modules/is-date-object/.jscs.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/is-date-object/.npmignore b/src/third_party/devtools/node_modules/is-date-object/.npmignore
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/is-date-object/.npmignore
rename to src/third_party/devtools/node_modules/is-date-object/.npmignore
diff --git a/src/cobalt/debug/remote/devtools/node_modules/is-date-object/.travis.yml b/src/third_party/devtools/node_modules/is-date-object/.travis.yml
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/is-date-object/.travis.yml
rename to src/third_party/devtools/node_modules/is-date-object/.travis.yml
diff --git a/src/cobalt/debug/remote/devtools/node_modules/is-date-object/CHANGELOG.md b/src/third_party/devtools/node_modules/is-date-object/CHANGELOG.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/is-date-object/CHANGELOG.md
rename to src/third_party/devtools/node_modules/is-date-object/CHANGELOG.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/is-date-object/LICENSE b/src/third_party/devtools/node_modules/is-date-object/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/is-date-object/LICENSE
rename to src/third_party/devtools/node_modules/is-date-object/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/is-date-object/Makefile b/src/third_party/devtools/node_modules/is-date-object/Makefile
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/is-date-object/Makefile
rename to src/third_party/devtools/node_modules/is-date-object/Makefile
diff --git a/src/cobalt/debug/remote/devtools/node_modules/is-date-object/README.md b/src/third_party/devtools/node_modules/is-date-object/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/is-date-object/README.md
rename to src/third_party/devtools/node_modules/is-date-object/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/is-date-object/index.js b/src/third_party/devtools/node_modules/is-date-object/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/is-date-object/index.js
rename to src/third_party/devtools/node_modules/is-date-object/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/is-date-object/package.json b/src/third_party/devtools/node_modules/is-date-object/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/is-date-object/package.json
rename to src/third_party/devtools/node_modules/is-date-object/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/is-date-object/test.js b/src/third_party/devtools/node_modules/is-date-object/test.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/is-date-object/test.js
rename to src/third_party/devtools/node_modules/is-date-object/test.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/is-extendable/LICENSE b/src/third_party/devtools/node_modules/is-extendable/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/is-extendable/LICENSE
rename to src/third_party/devtools/node_modules/is-extendable/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/is-extendable/README.md b/src/third_party/devtools/node_modules/is-extendable/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/is-extendable/README.md
rename to src/third_party/devtools/node_modules/is-extendable/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/is-extendable/index.d.ts b/src/third_party/devtools/node_modules/is-extendable/index.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/is-extendable/index.d.ts
rename to src/third_party/devtools/node_modules/is-extendable/index.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/is-extendable/index.js b/src/third_party/devtools/node_modules/is-extendable/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/is-extendable/index.js
rename to src/third_party/devtools/node_modules/is-extendable/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/is-extendable/package.json b/src/third_party/devtools/node_modules/is-extendable/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/is-extendable/package.json
rename to src/third_party/devtools/node_modules/is-extendable/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/is-extglob/LICENSE b/src/third_party/devtools/node_modules/is-extglob/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/is-extglob/LICENSE
rename to src/third_party/devtools/node_modules/is-extglob/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/is-extglob/README.md b/src/third_party/devtools/node_modules/is-extglob/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/is-extglob/README.md
rename to src/third_party/devtools/node_modules/is-extglob/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/is-extglob/index.js b/src/third_party/devtools/node_modules/is-extglob/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/is-extglob/index.js
rename to src/third_party/devtools/node_modules/is-extglob/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/is-extglob/package.json b/src/third_party/devtools/node_modules/is-extglob/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/is-extglob/package.json
rename to src/third_party/devtools/node_modules/is-extglob/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/is-finite/index.js b/src/third_party/devtools/node_modules/is-finite/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/is-finite/index.js
rename to src/third_party/devtools/node_modules/is-finite/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/is-finite/license b/src/third_party/devtools/node_modules/is-finite/license
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/is-finite/license
rename to src/third_party/devtools/node_modules/is-finite/license
diff --git a/src/cobalt/debug/remote/devtools/node_modules/is-finite/package.json b/src/third_party/devtools/node_modules/is-finite/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/is-finite/package.json
rename to src/third_party/devtools/node_modules/is-finite/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/is-finite/readme.md b/src/third_party/devtools/node_modules/is-finite/readme.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/is-finite/readme.md
rename to src/third_party/devtools/node_modules/is-finite/readme.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/is-fullwidth-code-point/LICENSE b/src/third_party/devtools/node_modules/is-fullwidth-code-point/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/is-fullwidth-code-point/LICENSE
rename to src/third_party/devtools/node_modules/is-fullwidth-code-point/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/is-fullwidth-code-point/index.js b/src/third_party/devtools/node_modules/is-fullwidth-code-point/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/is-fullwidth-code-point/index.js
rename to src/third_party/devtools/node_modules/is-fullwidth-code-point/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/is-fullwidth-code-point/package.json b/src/third_party/devtools/node_modules/is-fullwidth-code-point/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/is-fullwidth-code-point/package.json
rename to src/third_party/devtools/node_modules/is-fullwidth-code-point/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/is-fullwidth-code-point/readme.md b/src/third_party/devtools/node_modules/is-fullwidth-code-point/readme.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/is-fullwidth-code-point/readme.md
rename to src/third_party/devtools/node_modules/is-fullwidth-code-point/readme.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/is-generator-function/.editorconfig b/src/third_party/devtools/node_modules/is-generator-function/.editorconfig
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/is-generator-function/.editorconfig
rename to src/third_party/devtools/node_modules/is-generator-function/.editorconfig
diff --git a/src/cobalt/debug/remote/devtools/node_modules/is-generator-function/.eslintrc b/src/third_party/devtools/node_modules/is-generator-function/.eslintrc
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/is-generator-function/.eslintrc
rename to src/third_party/devtools/node_modules/is-generator-function/.eslintrc
diff --git a/src/cobalt/debug/remote/devtools/node_modules/is-generator-function/.jscs.json b/src/third_party/devtools/node_modules/is-generator-function/.jscs.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/is-generator-function/.jscs.json
rename to src/third_party/devtools/node_modules/is-generator-function/.jscs.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/is-generator-function/.nvmrc b/src/third_party/devtools/node_modules/is-generator-function/.nvmrc
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/is-generator-function/.nvmrc
rename to src/third_party/devtools/node_modules/is-generator-function/.nvmrc
diff --git a/src/cobalt/debug/remote/devtools/node_modules/is-generator-function/.travis.yml b/src/third_party/devtools/node_modules/is-generator-function/.travis.yml
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/is-generator-function/.travis.yml
rename to src/third_party/devtools/node_modules/is-generator-function/.travis.yml
diff --git a/src/cobalt/debug/remote/devtools/node_modules/is-generator-function/CHANGELOG.md b/src/third_party/devtools/node_modules/is-generator-function/CHANGELOG.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/is-generator-function/CHANGELOG.md
rename to src/third_party/devtools/node_modules/is-generator-function/CHANGELOG.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/is-generator-function/LICENSE b/src/third_party/devtools/node_modules/is-generator-function/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/is-generator-function/LICENSE
rename to src/third_party/devtools/node_modules/is-generator-function/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/is-generator-function/Makefile b/src/third_party/devtools/node_modules/is-generator-function/Makefile
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/is-generator-function/Makefile
rename to src/third_party/devtools/node_modules/is-generator-function/Makefile
diff --git a/src/cobalt/debug/remote/devtools/node_modules/is-generator-function/README.md b/src/third_party/devtools/node_modules/is-generator-function/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/is-generator-function/README.md
rename to src/third_party/devtools/node_modules/is-generator-function/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/is-generator-function/index.js b/src/third_party/devtools/node_modules/is-generator-function/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/is-generator-function/index.js
rename to src/third_party/devtools/node_modules/is-generator-function/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/is-generator-function/package.json b/src/third_party/devtools/node_modules/is-generator-function/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/is-generator-function/package.json
rename to src/third_party/devtools/node_modules/is-generator-function/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/is-generator-function/test/.eslintrc b/src/third_party/devtools/node_modules/is-generator-function/test/.eslintrc
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/is-generator-function/test/.eslintrc
rename to src/third_party/devtools/node_modules/is-generator-function/test/.eslintrc
diff --git a/src/cobalt/debug/remote/devtools/node_modules/is-generator-function/test/corejs.js b/src/third_party/devtools/node_modules/is-generator-function/test/corejs.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/is-generator-function/test/corejs.js
rename to src/third_party/devtools/node_modules/is-generator-function/test/corejs.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/is-generator-function/test/index.js b/src/third_party/devtools/node_modules/is-generator-function/test/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/is-generator-function/test/index.js
rename to src/third_party/devtools/node_modules/is-generator-function/test/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/is-generator-function/test/uglified.js b/src/third_party/devtools/node_modules/is-generator-function/test/uglified.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/is-generator-function/test/uglified.js
rename to src/third_party/devtools/node_modules/is-generator-function/test/uglified.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/is-glob/LICENSE b/src/third_party/devtools/node_modules/is-glob/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/is-glob/LICENSE
rename to src/third_party/devtools/node_modules/is-glob/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/is-glob/README.md b/src/third_party/devtools/node_modules/is-glob/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/is-glob/README.md
rename to src/third_party/devtools/node_modules/is-glob/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/is-glob/index.js b/src/third_party/devtools/node_modules/is-glob/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/is-glob/index.js
rename to src/third_party/devtools/node_modules/is-glob/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/is-glob/package.json b/src/third_party/devtools/node_modules/is-glob/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/is-glob/package.json
rename to src/third_party/devtools/node_modules/is-glob/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/is-nan/.eslintrc b/src/third_party/devtools/node_modules/is-nan/.eslintrc
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/is-nan/.eslintrc
rename to src/third_party/devtools/node_modules/is-nan/.eslintrc
diff --git a/src/cobalt/debug/remote/devtools/node_modules/is-nan/.jscs.json b/src/third_party/devtools/node_modules/is-nan/.jscs.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/is-nan/.jscs.json
rename to src/third_party/devtools/node_modules/is-nan/.jscs.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/is-nan/.npmignore b/src/third_party/devtools/node_modules/is-nan/.npmignore
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/is-nan/.npmignore
rename to src/third_party/devtools/node_modules/is-nan/.npmignore
diff --git a/src/cobalt/debug/remote/devtools/node_modules/is-nan/.travis.yml b/src/third_party/devtools/node_modules/is-nan/.travis.yml
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/is-nan/.travis.yml
rename to src/third_party/devtools/node_modules/is-nan/.travis.yml
diff --git a/src/cobalt/debug/remote/devtools/node_modules/is-nan/CHANGELOG.md b/src/third_party/devtools/node_modules/is-nan/CHANGELOG.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/is-nan/CHANGELOG.md
rename to src/third_party/devtools/node_modules/is-nan/CHANGELOG.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/is-nan/LICENSE b/src/third_party/devtools/node_modules/is-nan/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/is-nan/LICENSE
rename to src/third_party/devtools/node_modules/is-nan/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/is-nan/README.md b/src/third_party/devtools/node_modules/is-nan/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/is-nan/README.md
rename to src/third_party/devtools/node_modules/is-nan/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/is-nan/implementation.js b/src/third_party/devtools/node_modules/is-nan/implementation.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/is-nan/implementation.js
rename to src/third_party/devtools/node_modules/is-nan/implementation.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/is-nan/index.js b/src/third_party/devtools/node_modules/is-nan/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/is-nan/index.js
rename to src/third_party/devtools/node_modules/is-nan/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/is-nan/package.json b/src/third_party/devtools/node_modules/is-nan/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/is-nan/package.json
rename to src/third_party/devtools/node_modules/is-nan/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/is-nan/polyfill.js b/src/third_party/devtools/node_modules/is-nan/polyfill.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/is-nan/polyfill.js
rename to src/third_party/devtools/node_modules/is-nan/polyfill.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/is-nan/shim.js b/src/third_party/devtools/node_modules/is-nan/shim.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/is-nan/shim.js
rename to src/third_party/devtools/node_modules/is-nan/shim.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/is-nan/test/index.js b/src/third_party/devtools/node_modules/is-nan/test/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/is-nan/test/index.js
rename to src/third_party/devtools/node_modules/is-nan/test/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/is-nan/test/shimmed.js b/src/third_party/devtools/node_modules/is-nan/test/shimmed.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/is-nan/test/shimmed.js
rename to src/third_party/devtools/node_modules/is-nan/test/shimmed.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/is-nan/test/tests.js b/src/third_party/devtools/node_modules/is-nan/test/tests.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/is-nan/test/tests.js
rename to src/third_party/devtools/node_modules/is-nan/test/tests.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/is-number/LICENSE b/src/third_party/devtools/node_modules/is-number/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/is-number/LICENSE
rename to src/third_party/devtools/node_modules/is-number/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/is-number/README.md b/src/third_party/devtools/node_modules/is-number/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/is-number/README.md
rename to src/third_party/devtools/node_modules/is-number/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/is-number/index.js b/src/third_party/devtools/node_modules/is-number/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/is-number/index.js
rename to src/third_party/devtools/node_modules/is-number/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/is-number/package.json b/src/third_party/devtools/node_modules/is-number/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/is-number/package.json
rename to src/third_party/devtools/node_modules/is-number/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/is-plain-object/LICENSE b/src/third_party/devtools/node_modules/is-plain-object/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/is-plain-object/LICENSE
rename to src/third_party/devtools/node_modules/is-plain-object/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/is-plain-object/README.md b/src/third_party/devtools/node_modules/is-plain-object/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/is-plain-object/README.md
rename to src/third_party/devtools/node_modules/is-plain-object/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/is-plain-object/index.d.ts b/src/third_party/devtools/node_modules/is-plain-object/index.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/is-plain-object/index.d.ts
rename to src/third_party/devtools/node_modules/is-plain-object/index.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/is-plain-object/index.js b/src/third_party/devtools/node_modules/is-plain-object/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/is-plain-object/index.js
rename to src/third_party/devtools/node_modules/is-plain-object/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/is-plain-object/package.json b/src/third_party/devtools/node_modules/is-plain-object/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/is-plain-object/package.json
rename to src/third_party/devtools/node_modules/is-plain-object/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/is-promise/.npmignore b/src/third_party/devtools/node_modules/is-promise/.npmignore
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/is-promise/.npmignore
rename to src/third_party/devtools/node_modules/is-promise/.npmignore
diff --git a/src/cobalt/debug/remote/devtools/node_modules/is-promise/.travis.yml b/src/third_party/devtools/node_modules/is-promise/.travis.yml
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/is-promise/.travis.yml
rename to src/third_party/devtools/node_modules/is-promise/.travis.yml
diff --git a/src/cobalt/debug/remote/devtools/node_modules/is-promise/LICENSE b/src/third_party/devtools/node_modules/is-promise/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/is-promise/LICENSE
rename to src/third_party/devtools/node_modules/is-promise/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/is-promise/index.js b/src/third_party/devtools/node_modules/is-promise/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/is-promise/index.js
rename to src/third_party/devtools/node_modules/is-promise/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/is-promise/package.json b/src/third_party/devtools/node_modules/is-promise/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/is-promise/package.json
rename to src/third_party/devtools/node_modules/is-promise/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/is-promise/readme.md b/src/third_party/devtools/node_modules/is-promise/readme.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/is-promise/readme.md
rename to src/third_party/devtools/node_modules/is-promise/readme.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/is-regex/.eslintrc b/src/third_party/devtools/node_modules/is-regex/.eslintrc
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/is-regex/.eslintrc
rename to src/third_party/devtools/node_modules/is-regex/.eslintrc
diff --git a/src/cobalt/debug/remote/devtools/node_modules/is-regex/.jscs.json b/src/third_party/devtools/node_modules/is-regex/.jscs.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/is-regex/.jscs.json
rename to src/third_party/devtools/node_modules/is-regex/.jscs.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/is-regex/.npmignore b/src/third_party/devtools/node_modules/is-regex/.npmignore
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/is-regex/.npmignore
rename to src/third_party/devtools/node_modules/is-regex/.npmignore
diff --git a/src/cobalt/debug/remote/devtools/node_modules/is-regex/.travis.yml b/src/third_party/devtools/node_modules/is-regex/.travis.yml
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/is-regex/.travis.yml
rename to src/third_party/devtools/node_modules/is-regex/.travis.yml
diff --git a/src/cobalt/debug/remote/devtools/node_modules/is-regex/CHANGELOG.md b/src/third_party/devtools/node_modules/is-regex/CHANGELOG.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/is-regex/CHANGELOG.md
rename to src/third_party/devtools/node_modules/is-regex/CHANGELOG.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/is-regex/LICENSE b/src/third_party/devtools/node_modules/is-regex/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/is-regex/LICENSE
rename to src/third_party/devtools/node_modules/is-regex/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/is-regex/Makefile b/src/third_party/devtools/node_modules/is-regex/Makefile
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/is-regex/Makefile
rename to src/third_party/devtools/node_modules/is-regex/Makefile
diff --git a/src/cobalt/debug/remote/devtools/node_modules/is-regex/README.md b/src/third_party/devtools/node_modules/is-regex/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/is-regex/README.md
rename to src/third_party/devtools/node_modules/is-regex/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/is-regex/index.js b/src/third_party/devtools/node_modules/is-regex/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/is-regex/index.js
rename to src/third_party/devtools/node_modules/is-regex/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/is-regex/package.json b/src/third_party/devtools/node_modules/is-regex/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/is-regex/package.json
rename to src/third_party/devtools/node_modules/is-regex/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/is-regex/test.js b/src/third_party/devtools/node_modules/is-regex/test.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/is-regex/test.js
rename to src/third_party/devtools/node_modules/is-regex/test.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/is-stream/index.js b/src/third_party/devtools/node_modules/is-stream/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/is-stream/index.js
rename to src/third_party/devtools/node_modules/is-stream/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/is-stream/license b/src/third_party/devtools/node_modules/is-stream/license
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/is-stream/license
rename to src/third_party/devtools/node_modules/is-stream/license
diff --git a/src/cobalt/debug/remote/devtools/node_modules/is-stream/package.json b/src/third_party/devtools/node_modules/is-stream/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/is-stream/package.json
rename to src/third_party/devtools/node_modules/is-stream/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/is-stream/readme.md b/src/third_party/devtools/node_modules/is-stream/readme.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/is-stream/readme.md
rename to src/third_party/devtools/node_modules/is-stream/readme.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/is-symbol/.editorconfig b/src/third_party/devtools/node_modules/is-symbol/.editorconfig
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/is-symbol/.editorconfig
rename to src/third_party/devtools/node_modules/is-symbol/.editorconfig
diff --git a/src/cobalt/debug/remote/devtools/node_modules/is-symbol/.eslintrc b/src/third_party/devtools/node_modules/is-symbol/.eslintrc
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/is-symbol/.eslintrc
rename to src/third_party/devtools/node_modules/is-symbol/.eslintrc
diff --git a/src/cobalt/debug/remote/devtools/node_modules/is-symbol/.jscs.json b/src/third_party/devtools/node_modules/is-symbol/.jscs.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/is-symbol/.jscs.json
rename to src/third_party/devtools/node_modules/is-symbol/.jscs.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/is-symbol/.nvmrc b/src/third_party/devtools/node_modules/is-symbol/.nvmrc
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/is-symbol/.nvmrc
rename to src/third_party/devtools/node_modules/is-symbol/.nvmrc
diff --git a/src/cobalt/debug/remote/devtools/node_modules/is-symbol/.travis.yml b/src/third_party/devtools/node_modules/is-symbol/.travis.yml
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/is-symbol/.travis.yml
rename to src/third_party/devtools/node_modules/is-symbol/.travis.yml
diff --git a/src/cobalt/debug/remote/devtools/node_modules/is-symbol/CHANGELOG.md b/src/third_party/devtools/node_modules/is-symbol/CHANGELOG.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/is-symbol/CHANGELOG.md
rename to src/third_party/devtools/node_modules/is-symbol/CHANGELOG.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/is-symbol/LICENSE b/src/third_party/devtools/node_modules/is-symbol/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/is-symbol/LICENSE
rename to src/third_party/devtools/node_modules/is-symbol/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/is-symbol/Makefile b/src/third_party/devtools/node_modules/is-symbol/Makefile
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/is-symbol/Makefile
rename to src/third_party/devtools/node_modules/is-symbol/Makefile
diff --git a/src/cobalt/debug/remote/devtools/node_modules/is-symbol/README.md b/src/third_party/devtools/node_modules/is-symbol/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/is-symbol/README.md
rename to src/third_party/devtools/node_modules/is-symbol/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/is-symbol/index.js b/src/third_party/devtools/node_modules/is-symbol/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/is-symbol/index.js
rename to src/third_party/devtools/node_modules/is-symbol/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/is-symbol/package.json b/src/third_party/devtools/node_modules/is-symbol/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/is-symbol/package.json
rename to src/third_party/devtools/node_modules/is-symbol/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/is-symbol/test/.eslintrc b/src/third_party/devtools/node_modules/is-symbol/test/.eslintrc
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/is-symbol/test/.eslintrc
rename to src/third_party/devtools/node_modules/is-symbol/test/.eslintrc
diff --git a/src/cobalt/debug/remote/devtools/node_modules/is-symbol/test/index.js b/src/third_party/devtools/node_modules/is-symbol/test/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/is-symbol/test/index.js
rename to src/third_party/devtools/node_modules/is-symbol/test/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/is-utf8/LICENSE b/src/third_party/devtools/node_modules/is-utf8/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/is-utf8/LICENSE
rename to src/third_party/devtools/node_modules/is-utf8/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/is-utf8/README.md b/src/third_party/devtools/node_modules/is-utf8/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/is-utf8/README.md
rename to src/third_party/devtools/node_modules/is-utf8/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/is-utf8/is-utf8.js b/src/third_party/devtools/node_modules/is-utf8/is-utf8.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/is-utf8/is-utf8.js
rename to src/third_party/devtools/node_modules/is-utf8/is-utf8.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/is-utf8/package.json b/src/third_party/devtools/node_modules/is-utf8/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/is-utf8/package.json
rename to src/third_party/devtools/node_modules/is-utf8/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/isarray/README.md b/src/third_party/devtools/node_modules/isarray/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/isarray/README.md
rename to src/third_party/devtools/node_modules/isarray/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/isarray/index.js b/src/third_party/devtools/node_modules/isarray/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/isarray/index.js
rename to src/third_party/devtools/node_modules/isarray/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/isarray/package.json b/src/third_party/devtools/node_modules/isarray/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/isarray/package.json
rename to src/third_party/devtools/node_modules/isarray/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/isbinaryfile/LICENSE.txt b/src/third_party/devtools/node_modules/isbinaryfile/LICENSE.txt
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/isbinaryfile/LICENSE.txt
rename to src/third_party/devtools/node_modules/isbinaryfile/LICENSE.txt
diff --git a/src/cobalt/debug/remote/devtools/node_modules/isbinaryfile/README.md b/src/third_party/devtools/node_modules/isbinaryfile/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/isbinaryfile/README.md
rename to src/third_party/devtools/node_modules/isbinaryfile/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/isbinaryfile/index.js b/src/third_party/devtools/node_modules/isbinaryfile/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/isbinaryfile/index.js
rename to src/third_party/devtools/node_modules/isbinaryfile/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/isbinaryfile/package.json b/src/third_party/devtools/node_modules/isbinaryfile/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/isbinaryfile/package.json
rename to src/third_party/devtools/node_modules/isbinaryfile/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/isexe/.npmignore b/src/third_party/devtools/node_modules/isexe/.npmignore
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/isexe/.npmignore
rename to src/third_party/devtools/node_modules/isexe/.npmignore
diff --git a/src/cobalt/debug/remote/devtools/node_modules/isexe/LICENSE b/src/third_party/devtools/node_modules/isexe/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/isexe/LICENSE
rename to src/third_party/devtools/node_modules/isexe/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/isexe/README.md b/src/third_party/devtools/node_modules/isexe/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/isexe/README.md
rename to src/third_party/devtools/node_modules/isexe/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/isexe/index.js b/src/third_party/devtools/node_modules/isexe/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/isexe/index.js
rename to src/third_party/devtools/node_modules/isexe/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/isexe/mode.js b/src/third_party/devtools/node_modules/isexe/mode.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/isexe/mode.js
rename to src/third_party/devtools/node_modules/isexe/mode.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/isexe/package.json b/src/third_party/devtools/node_modules/isexe/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/isexe/package.json
rename to src/third_party/devtools/node_modules/isexe/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/isexe/test/basic.js b/src/third_party/devtools/node_modules/isexe/test/basic.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/isexe/test/basic.js
rename to src/third_party/devtools/node_modules/isexe/test/basic.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/isexe/windows.js b/src/third_party/devtools/node_modules/isexe/windows.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/isexe/windows.js
rename to src/third_party/devtools/node_modules/isexe/windows.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/isobject/LICENSE b/src/third_party/devtools/node_modules/isobject/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/isobject/LICENSE
rename to src/third_party/devtools/node_modules/isobject/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/isobject/README.md b/src/third_party/devtools/node_modules/isobject/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/isobject/README.md
rename to src/third_party/devtools/node_modules/isobject/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/isobject/index.d.ts b/src/third_party/devtools/node_modules/isobject/index.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/isobject/index.d.ts
rename to src/third_party/devtools/node_modules/isobject/index.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/isobject/index.js b/src/third_party/devtools/node_modules/isobject/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/isobject/index.js
rename to src/third_party/devtools/node_modules/isobject/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/isobject/package.json b/src/third_party/devtools/node_modules/isobject/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/isobject/package.json
rename to src/third_party/devtools/node_modules/isobject/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul-api/CHANGELOG.md b/src/third_party/devtools/node_modules/istanbul-api/CHANGELOG.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul-api/CHANGELOG.md
rename to src/third_party/devtools/node_modules/istanbul-api/CHANGELOG.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul-api/LICENSE b/src/third_party/devtools/node_modules/istanbul-api/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul-api/LICENSE
rename to src/third_party/devtools/node_modules/istanbul-api/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul-api/README.md b/src/third_party/devtools/node_modules/istanbul-api/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul-api/README.md
rename to src/third_party/devtools/node_modules/istanbul-api/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul-api/index.js b/src/third_party/devtools/node_modules/istanbul-api/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul-api/index.js
rename to src/third_party/devtools/node_modules/istanbul-api/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul-api/lib/config.js b/src/third_party/devtools/node_modules/istanbul-api/lib/config.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul-api/lib/config.js
rename to src/third_party/devtools/node_modules/istanbul-api/lib/config.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul-api/lib/file-matcher.js b/src/third_party/devtools/node_modules/istanbul-api/lib/file-matcher.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul-api/lib/file-matcher.js
rename to src/third_party/devtools/node_modules/istanbul-api/lib/file-matcher.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul-api/lib/input-error.js b/src/third_party/devtools/node_modules/istanbul-api/lib/input-error.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul-api/lib/input-error.js
rename to src/third_party/devtools/node_modules/istanbul-api/lib/input-error.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul-api/lib/reporter.js b/src/third_party/devtools/node_modules/istanbul-api/lib/reporter.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul-api/lib/reporter.js
rename to src/third_party/devtools/node_modules/istanbul-api/lib/reporter.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul-api/lib/run-check-coverage.js b/src/third_party/devtools/node_modules/istanbul-api/lib/run-check-coverage.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul-api/lib/run-check-coverage.js
rename to src/third_party/devtools/node_modules/istanbul-api/lib/run-check-coverage.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul-api/lib/run-cover.js b/src/third_party/devtools/node_modules/istanbul-api/lib/run-cover.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul-api/lib/run-cover.js
rename to src/third_party/devtools/node_modules/istanbul-api/lib/run-cover.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul-api/lib/run-instrument.js b/src/third_party/devtools/node_modules/istanbul-api/lib/run-instrument.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul-api/lib/run-instrument.js
rename to src/third_party/devtools/node_modules/istanbul-api/lib/run-instrument.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul-api/lib/run-reports.js b/src/third_party/devtools/node_modules/istanbul-api/lib/run-reports.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul-api/lib/run-reports.js
rename to src/third_party/devtools/node_modules/istanbul-api/lib/run-reports.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul-api/package.json b/src/third_party/devtools/node_modules/istanbul-api/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul-api/package.json
rename to src/third_party/devtools/node_modules/istanbul-api/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul-lib-coverage/CHANGELOG.md b/src/third_party/devtools/node_modules/istanbul-lib-coverage/CHANGELOG.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul-lib-coverage/CHANGELOG.md
rename to src/third_party/devtools/node_modules/istanbul-lib-coverage/CHANGELOG.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul-lib-coverage/LICENSE b/src/third_party/devtools/node_modules/istanbul-lib-coverage/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul-lib-coverage/LICENSE
rename to src/third_party/devtools/node_modules/istanbul-lib-coverage/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul-lib-coverage/README.md b/src/third_party/devtools/node_modules/istanbul-lib-coverage/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul-lib-coverage/README.md
rename to src/third_party/devtools/node_modules/istanbul-lib-coverage/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul-lib-coverage/index.js b/src/third_party/devtools/node_modules/istanbul-lib-coverage/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul-lib-coverage/index.js
rename to src/third_party/devtools/node_modules/istanbul-lib-coverage/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul-lib-coverage/lib/coverage-map.js b/src/third_party/devtools/node_modules/istanbul-lib-coverage/lib/coverage-map.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul-lib-coverage/lib/coverage-map.js
rename to src/third_party/devtools/node_modules/istanbul-lib-coverage/lib/coverage-map.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul-lib-coverage/lib/file.js b/src/third_party/devtools/node_modules/istanbul-lib-coverage/lib/file.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul-lib-coverage/lib/file.js
rename to src/third_party/devtools/node_modules/istanbul-lib-coverage/lib/file.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul-lib-coverage/package.json b/src/third_party/devtools/node_modules/istanbul-lib-coverage/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul-lib-coverage/package.json
rename to src/third_party/devtools/node_modules/istanbul-lib-coverage/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul-lib-hook/CHANGELOG.md b/src/third_party/devtools/node_modules/istanbul-lib-hook/CHANGELOG.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul-lib-hook/CHANGELOG.md
rename to src/third_party/devtools/node_modules/istanbul-lib-hook/CHANGELOG.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul-lib-hook/LICENSE b/src/third_party/devtools/node_modules/istanbul-lib-hook/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul-lib-hook/LICENSE
rename to src/third_party/devtools/node_modules/istanbul-lib-hook/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul-lib-hook/README.md b/src/third_party/devtools/node_modules/istanbul-lib-hook/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul-lib-hook/README.md
rename to src/third_party/devtools/node_modules/istanbul-lib-hook/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul-lib-hook/index.js b/src/third_party/devtools/node_modules/istanbul-lib-hook/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul-lib-hook/index.js
rename to src/third_party/devtools/node_modules/istanbul-lib-hook/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul-lib-hook/lib/hook.js b/src/third_party/devtools/node_modules/istanbul-lib-hook/lib/hook.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul-lib-hook/lib/hook.js
rename to src/third_party/devtools/node_modules/istanbul-lib-hook/lib/hook.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul-lib-hook/package.json b/src/third_party/devtools/node_modules/istanbul-lib-hook/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul-lib-hook/package.json
rename to src/third_party/devtools/node_modules/istanbul-lib-hook/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul-lib-instrument/CHANGELOG.md b/src/third_party/devtools/node_modules/istanbul-lib-instrument/CHANGELOG.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul-lib-instrument/CHANGELOG.md
rename to src/third_party/devtools/node_modules/istanbul-lib-instrument/CHANGELOG.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul-lib-instrument/LICENSE b/src/third_party/devtools/node_modules/istanbul-lib-instrument/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul-lib-instrument/LICENSE
rename to src/third_party/devtools/node_modules/istanbul-lib-instrument/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul-lib-instrument/README.md b/src/third_party/devtools/node_modules/istanbul-lib-instrument/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul-lib-instrument/README.md
rename to src/third_party/devtools/node_modules/istanbul-lib-instrument/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul-lib-instrument/dist/constants.js b/src/third_party/devtools/node_modules/istanbul-lib-instrument/dist/constants.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul-lib-instrument/dist/constants.js
rename to src/third_party/devtools/node_modules/istanbul-lib-instrument/dist/constants.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul-lib-instrument/dist/index.js b/src/third_party/devtools/node_modules/istanbul-lib-instrument/dist/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul-lib-instrument/dist/index.js
rename to src/third_party/devtools/node_modules/istanbul-lib-instrument/dist/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul-lib-instrument/dist/instrumenter.js b/src/third_party/devtools/node_modules/istanbul-lib-instrument/dist/instrumenter.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul-lib-instrument/dist/instrumenter.js
rename to src/third_party/devtools/node_modules/istanbul-lib-instrument/dist/instrumenter.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul-lib-instrument/dist/read-coverage.js b/src/third_party/devtools/node_modules/istanbul-lib-instrument/dist/read-coverage.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul-lib-instrument/dist/read-coverage.js
rename to src/third_party/devtools/node_modules/istanbul-lib-instrument/dist/read-coverage.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul-lib-instrument/dist/source-coverage.js b/src/third_party/devtools/node_modules/istanbul-lib-instrument/dist/source-coverage.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul-lib-instrument/dist/source-coverage.js
rename to src/third_party/devtools/node_modules/istanbul-lib-instrument/dist/source-coverage.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul-lib-instrument/dist/visitor.js b/src/third_party/devtools/node_modules/istanbul-lib-instrument/dist/visitor.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul-lib-instrument/dist/visitor.js
rename to src/third_party/devtools/node_modules/istanbul-lib-instrument/dist/visitor.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul-lib-instrument/node_modules/.bin/semver b/src/third_party/devtools/node_modules/istanbul-lib-instrument/node_modules/.bin/semver
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul-lib-instrument/node_modules/.bin/semver
rename to src/third_party/devtools/node_modules/istanbul-lib-instrument/node_modules/.bin/semver
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul-lib-instrument/node_modules/semver/CHANGELOG.md b/src/third_party/devtools/node_modules/istanbul-lib-instrument/node_modules/semver/CHANGELOG.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul-lib-instrument/node_modules/semver/CHANGELOG.md
rename to src/third_party/devtools/node_modules/istanbul-lib-instrument/node_modules/semver/CHANGELOG.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul-lib-instrument/node_modules/semver/LICENSE b/src/third_party/devtools/node_modules/istanbul-lib-instrument/node_modules/semver/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul-lib-instrument/node_modules/semver/LICENSE
rename to src/third_party/devtools/node_modules/istanbul-lib-instrument/node_modules/semver/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul-lib-instrument/node_modules/semver/README.md b/src/third_party/devtools/node_modules/istanbul-lib-instrument/node_modules/semver/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul-lib-instrument/node_modules/semver/README.md
rename to src/third_party/devtools/node_modules/istanbul-lib-instrument/node_modules/semver/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul-lib-instrument/node_modules/semver/bin/semver.js b/src/third_party/devtools/node_modules/istanbul-lib-instrument/node_modules/semver/bin/semver.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul-lib-instrument/node_modules/semver/bin/semver.js
rename to src/third_party/devtools/node_modules/istanbul-lib-instrument/node_modules/semver/bin/semver.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul-lib-instrument/node_modules/semver/package.json b/src/third_party/devtools/node_modules/istanbul-lib-instrument/node_modules/semver/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul-lib-instrument/node_modules/semver/package.json
rename to src/third_party/devtools/node_modules/istanbul-lib-instrument/node_modules/semver/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul-lib-instrument/node_modules/semver/range.bnf b/src/third_party/devtools/node_modules/istanbul-lib-instrument/node_modules/semver/range.bnf
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul-lib-instrument/node_modules/semver/range.bnf
rename to src/third_party/devtools/node_modules/istanbul-lib-instrument/node_modules/semver/range.bnf
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul-lib-instrument/node_modules/semver/semver.js b/src/third_party/devtools/node_modules/istanbul-lib-instrument/node_modules/semver/semver.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul-lib-instrument/node_modules/semver/semver.js
rename to src/third_party/devtools/node_modules/istanbul-lib-instrument/node_modules/semver/semver.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul-lib-instrument/package.json b/src/third_party/devtools/node_modules/istanbul-lib-instrument/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul-lib-instrument/package.json
rename to src/third_party/devtools/node_modules/istanbul-lib-instrument/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul-lib-report/CHANGELOG.md b/src/third_party/devtools/node_modules/istanbul-lib-report/CHANGELOG.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul-lib-report/CHANGELOG.md
rename to src/third_party/devtools/node_modules/istanbul-lib-report/CHANGELOG.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul-lib-report/LICENSE b/src/third_party/devtools/node_modules/istanbul-lib-report/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul-lib-report/LICENSE
rename to src/third_party/devtools/node_modules/istanbul-lib-report/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul-lib-report/README.md b/src/third_party/devtools/node_modules/istanbul-lib-report/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul-lib-report/README.md
rename to src/third_party/devtools/node_modules/istanbul-lib-report/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul-lib-report/index.js b/src/third_party/devtools/node_modules/istanbul-lib-report/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul-lib-report/index.js
rename to src/third_party/devtools/node_modules/istanbul-lib-report/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul-lib-report/lib/context.js b/src/third_party/devtools/node_modules/istanbul-lib-report/lib/context.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul-lib-report/lib/context.js
rename to src/third_party/devtools/node_modules/istanbul-lib-report/lib/context.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul-lib-report/lib/file-writer.js b/src/third_party/devtools/node_modules/istanbul-lib-report/lib/file-writer.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul-lib-report/lib/file-writer.js
rename to src/third_party/devtools/node_modules/istanbul-lib-report/lib/file-writer.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul-lib-report/lib/path.js b/src/third_party/devtools/node_modules/istanbul-lib-report/lib/path.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul-lib-report/lib/path.js
rename to src/third_party/devtools/node_modules/istanbul-lib-report/lib/path.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul-lib-report/lib/summarizer.js b/src/third_party/devtools/node_modules/istanbul-lib-report/lib/summarizer.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul-lib-report/lib/summarizer.js
rename to src/third_party/devtools/node_modules/istanbul-lib-report/lib/summarizer.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul-lib-report/lib/tree.js b/src/third_party/devtools/node_modules/istanbul-lib-report/lib/tree.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul-lib-report/lib/tree.js
rename to src/third_party/devtools/node_modules/istanbul-lib-report/lib/tree.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul-lib-report/lib/watermarks.js b/src/third_party/devtools/node_modules/istanbul-lib-report/lib/watermarks.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul-lib-report/lib/watermarks.js
rename to src/third_party/devtools/node_modules/istanbul-lib-report/lib/watermarks.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul-lib-report/lib/xml-writer.js b/src/third_party/devtools/node_modules/istanbul-lib-report/lib/xml-writer.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul-lib-report/lib/xml-writer.js
rename to src/third_party/devtools/node_modules/istanbul-lib-report/lib/xml-writer.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul-lib-report/node_modules/supports-color/browser.js b/src/third_party/devtools/node_modules/istanbul-lib-report/node_modules/supports-color/browser.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul-lib-report/node_modules/supports-color/browser.js
rename to src/third_party/devtools/node_modules/istanbul-lib-report/node_modules/supports-color/browser.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul-lib-report/node_modules/supports-color/index.js b/src/third_party/devtools/node_modules/istanbul-lib-report/node_modules/supports-color/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul-lib-report/node_modules/supports-color/index.js
rename to src/third_party/devtools/node_modules/istanbul-lib-report/node_modules/supports-color/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul-lib-report/node_modules/supports-color/license b/src/third_party/devtools/node_modules/istanbul-lib-report/node_modules/supports-color/license
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul-lib-report/node_modules/supports-color/license
rename to src/third_party/devtools/node_modules/istanbul-lib-report/node_modules/supports-color/license
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul-lib-report/node_modules/supports-color/package.json b/src/third_party/devtools/node_modules/istanbul-lib-report/node_modules/supports-color/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul-lib-report/node_modules/supports-color/package.json
rename to src/third_party/devtools/node_modules/istanbul-lib-report/node_modules/supports-color/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul-lib-report/node_modules/supports-color/readme.md b/src/third_party/devtools/node_modules/istanbul-lib-report/node_modules/supports-color/readme.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul-lib-report/node_modules/supports-color/readme.md
rename to src/third_party/devtools/node_modules/istanbul-lib-report/node_modules/supports-color/readme.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul-lib-report/package.json b/src/third_party/devtools/node_modules/istanbul-lib-report/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul-lib-report/package.json
rename to src/third_party/devtools/node_modules/istanbul-lib-report/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul-lib-source-maps/CHANGELOG.md b/src/third_party/devtools/node_modules/istanbul-lib-source-maps/CHANGELOG.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul-lib-source-maps/CHANGELOG.md
rename to src/third_party/devtools/node_modules/istanbul-lib-source-maps/CHANGELOG.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul-lib-source-maps/LICENSE b/src/third_party/devtools/node_modules/istanbul-lib-source-maps/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul-lib-source-maps/LICENSE
rename to src/third_party/devtools/node_modules/istanbul-lib-source-maps/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul-lib-source-maps/README.md b/src/third_party/devtools/node_modules/istanbul-lib-source-maps/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul-lib-source-maps/README.md
rename to src/third_party/devtools/node_modules/istanbul-lib-source-maps/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul-lib-source-maps/index.js b/src/third_party/devtools/node_modules/istanbul-lib-source-maps/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul-lib-source-maps/index.js
rename to src/third_party/devtools/node_modules/istanbul-lib-source-maps/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul-lib-source-maps/lib/get-mapping.js b/src/third_party/devtools/node_modules/istanbul-lib-source-maps/lib/get-mapping.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul-lib-source-maps/lib/get-mapping.js
rename to src/third_party/devtools/node_modules/istanbul-lib-source-maps/lib/get-mapping.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul-lib-source-maps/lib/map-store.js b/src/third_party/devtools/node_modules/istanbul-lib-source-maps/lib/map-store.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul-lib-source-maps/lib/map-store.js
rename to src/third_party/devtools/node_modules/istanbul-lib-source-maps/lib/map-store.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul-lib-source-maps/lib/mapped.js b/src/third_party/devtools/node_modules/istanbul-lib-source-maps/lib/mapped.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul-lib-source-maps/lib/mapped.js
rename to src/third_party/devtools/node_modules/istanbul-lib-source-maps/lib/mapped.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul-lib-source-maps/lib/pathutils.js b/src/third_party/devtools/node_modules/istanbul-lib-source-maps/lib/pathutils.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul-lib-source-maps/lib/pathutils.js
rename to src/third_party/devtools/node_modules/istanbul-lib-source-maps/lib/pathutils.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul-lib-source-maps/lib/source-store.js b/src/third_party/devtools/node_modules/istanbul-lib-source-maps/lib/source-store.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul-lib-source-maps/lib/source-store.js
rename to src/third_party/devtools/node_modules/istanbul-lib-source-maps/lib/source-store.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul-lib-source-maps/lib/transform-utils.js b/src/third_party/devtools/node_modules/istanbul-lib-source-maps/lib/transform-utils.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul-lib-source-maps/lib/transform-utils.js
rename to src/third_party/devtools/node_modules/istanbul-lib-source-maps/lib/transform-utils.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul-lib-source-maps/lib/transformer.js b/src/third_party/devtools/node_modules/istanbul-lib-source-maps/lib/transformer.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul-lib-source-maps/lib/transformer.js
rename to src/third_party/devtools/node_modules/istanbul-lib-source-maps/lib/transformer.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul-lib-source-maps/package.json b/src/third_party/devtools/node_modules/istanbul-lib-source-maps/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul-lib-source-maps/package.json
rename to src/third_party/devtools/node_modules/istanbul-lib-source-maps/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul-reports/CHANGELOG.md b/src/third_party/devtools/node_modules/istanbul-reports/CHANGELOG.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul-reports/CHANGELOG.md
rename to src/third_party/devtools/node_modules/istanbul-reports/CHANGELOG.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul-reports/LICENSE b/src/third_party/devtools/node_modules/istanbul-reports/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul-reports/LICENSE
rename to src/third_party/devtools/node_modules/istanbul-reports/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul-reports/README.md b/src/third_party/devtools/node_modules/istanbul-reports/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul-reports/README.md
rename to src/third_party/devtools/node_modules/istanbul-reports/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul-reports/index.js b/src/third_party/devtools/node_modules/istanbul-reports/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul-reports/index.js
rename to src/third_party/devtools/node_modules/istanbul-reports/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul-reports/lib/clover/index.js b/src/third_party/devtools/node_modules/istanbul-reports/lib/clover/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul-reports/lib/clover/index.js
rename to src/third_party/devtools/node_modules/istanbul-reports/lib/clover/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul-reports/lib/cobertura/index.js b/src/third_party/devtools/node_modules/istanbul-reports/lib/cobertura/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul-reports/lib/cobertura/index.js
rename to src/third_party/devtools/node_modules/istanbul-reports/lib/cobertura/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul-reports/lib/html/annotator.js b/src/third_party/devtools/node_modules/istanbul-reports/lib/html/annotator.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul-reports/lib/html/annotator.js
rename to src/third_party/devtools/node_modules/istanbul-reports/lib/html/annotator.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul-reports/lib/html/assets/base.css b/src/third_party/devtools/node_modules/istanbul-reports/lib/html/assets/base.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul-reports/lib/html/assets/base.css
rename to src/third_party/devtools/node_modules/istanbul-reports/lib/html/assets/base.css
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul-reports/lib/html/assets/block-navigation.js b/src/third_party/devtools/node_modules/istanbul-reports/lib/html/assets/block-navigation.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul-reports/lib/html/assets/block-navigation.js
rename to src/third_party/devtools/node_modules/istanbul-reports/lib/html/assets/block-navigation.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul-reports/lib/html/assets/sort-arrow-sprite.png b/src/third_party/devtools/node_modules/istanbul-reports/lib/html/assets/sort-arrow-sprite.png
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul-reports/lib/html/assets/sort-arrow-sprite.png
rename to src/third_party/devtools/node_modules/istanbul-reports/lib/html/assets/sort-arrow-sprite.png
Binary files differ
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul-reports/lib/html/assets/sorter.js b/src/third_party/devtools/node_modules/istanbul-reports/lib/html/assets/sorter.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul-reports/lib/html/assets/sorter.js
rename to src/third_party/devtools/node_modules/istanbul-reports/lib/html/assets/sorter.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul-reports/lib/html/assets/vendor/prettify.css b/src/third_party/devtools/node_modules/istanbul-reports/lib/html/assets/vendor/prettify.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul-reports/lib/html/assets/vendor/prettify.css
rename to src/third_party/devtools/node_modules/istanbul-reports/lib/html/assets/vendor/prettify.css
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul-reports/lib/html/assets/vendor/prettify.js b/src/third_party/devtools/node_modules/istanbul-reports/lib/html/assets/vendor/prettify.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul-reports/lib/html/assets/vendor/prettify.js
rename to src/third_party/devtools/node_modules/istanbul-reports/lib/html/assets/vendor/prettify.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul-reports/lib/html/helpers.js b/src/third_party/devtools/node_modules/istanbul-reports/lib/html/helpers.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul-reports/lib/html/helpers.js
rename to src/third_party/devtools/node_modules/istanbul-reports/lib/html/helpers.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul-reports/lib/html/index.js b/src/third_party/devtools/node_modules/istanbul-reports/lib/html/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul-reports/lib/html/index.js
rename to src/third_party/devtools/node_modules/istanbul-reports/lib/html/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul-reports/lib/html/insertion-text.js b/src/third_party/devtools/node_modules/istanbul-reports/lib/html/insertion-text.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul-reports/lib/html/insertion-text.js
rename to src/third_party/devtools/node_modules/istanbul-reports/lib/html/insertion-text.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul-reports/lib/html/templates/foot.txt b/src/third_party/devtools/node_modules/istanbul-reports/lib/html/templates/foot.txt
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul-reports/lib/html/templates/foot.txt
rename to src/third_party/devtools/node_modules/istanbul-reports/lib/html/templates/foot.txt
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul-reports/lib/html/templates/head.txt b/src/third_party/devtools/node_modules/istanbul-reports/lib/html/templates/head.txt
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul-reports/lib/html/templates/head.txt
rename to src/third_party/devtools/node_modules/istanbul-reports/lib/html/templates/head.txt
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul-reports/lib/json-summary/index.js b/src/third_party/devtools/node_modules/istanbul-reports/lib/json-summary/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul-reports/lib/json-summary/index.js
rename to src/third_party/devtools/node_modules/istanbul-reports/lib/json-summary/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul-reports/lib/json/index.js b/src/third_party/devtools/node_modules/istanbul-reports/lib/json/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul-reports/lib/json/index.js
rename to src/third_party/devtools/node_modules/istanbul-reports/lib/json/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul-reports/lib/lcov/index.js b/src/third_party/devtools/node_modules/istanbul-reports/lib/lcov/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul-reports/lib/lcov/index.js
rename to src/third_party/devtools/node_modules/istanbul-reports/lib/lcov/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul-reports/lib/lcovonly/index.js b/src/third_party/devtools/node_modules/istanbul-reports/lib/lcovonly/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul-reports/lib/lcovonly/index.js
rename to src/third_party/devtools/node_modules/istanbul-reports/lib/lcovonly/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul-reports/lib/none/index.js b/src/third_party/devtools/node_modules/istanbul-reports/lib/none/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul-reports/lib/none/index.js
rename to src/third_party/devtools/node_modules/istanbul-reports/lib/none/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul-reports/lib/teamcity/index.js b/src/third_party/devtools/node_modules/istanbul-reports/lib/teamcity/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul-reports/lib/teamcity/index.js
rename to src/third_party/devtools/node_modules/istanbul-reports/lib/teamcity/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul-reports/lib/text-lcov/index.js b/src/third_party/devtools/node_modules/istanbul-reports/lib/text-lcov/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul-reports/lib/text-lcov/index.js
rename to src/third_party/devtools/node_modules/istanbul-reports/lib/text-lcov/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul-reports/lib/text-summary/index.js b/src/third_party/devtools/node_modules/istanbul-reports/lib/text-summary/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul-reports/lib/text-summary/index.js
rename to src/third_party/devtools/node_modules/istanbul-reports/lib/text-summary/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul-reports/lib/text/index.js b/src/third_party/devtools/node_modules/istanbul-reports/lib/text/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul-reports/lib/text/index.js
rename to src/third_party/devtools/node_modules/istanbul-reports/lib/text/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul-reports/package.json b/src/third_party/devtools/node_modules/istanbul-reports/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul-reports/package.json
rename to src/third_party/devtools/node_modules/istanbul-reports/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul/CHANGELOG.md b/src/third_party/devtools/node_modules/istanbul/CHANGELOG.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul/CHANGELOG.md
rename to src/third_party/devtools/node_modules/istanbul/CHANGELOG.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul/LICENSE b/src/third_party/devtools/node_modules/istanbul/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul/LICENSE
rename to src/third_party/devtools/node_modules/istanbul/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul/README.md b/src/third_party/devtools/node_modules/istanbul/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul/README.md
rename to src/third_party/devtools/node_modules/istanbul/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul/index.js b/src/third_party/devtools/node_modules/istanbul/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul/index.js
rename to src/third_party/devtools/node_modules/istanbul/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul/lib/assets/base.css b/src/third_party/devtools/node_modules/istanbul/lib/assets/base.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul/lib/assets/base.css
rename to src/third_party/devtools/node_modules/istanbul/lib/assets/base.css
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul/lib/assets/sort-arrow-sprite.png b/src/third_party/devtools/node_modules/istanbul/lib/assets/sort-arrow-sprite.png
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul/lib/assets/sort-arrow-sprite.png
rename to src/third_party/devtools/node_modules/istanbul/lib/assets/sort-arrow-sprite.png
Binary files differ
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul/lib/assets/sorter.js b/src/third_party/devtools/node_modules/istanbul/lib/assets/sorter.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul/lib/assets/sorter.js
rename to src/third_party/devtools/node_modules/istanbul/lib/assets/sorter.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul/lib/assets/vendor/prettify.css b/src/third_party/devtools/node_modules/istanbul/lib/assets/vendor/prettify.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul/lib/assets/vendor/prettify.css
rename to src/third_party/devtools/node_modules/istanbul/lib/assets/vendor/prettify.css
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul/lib/assets/vendor/prettify.js b/src/third_party/devtools/node_modules/istanbul/lib/assets/vendor/prettify.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul/lib/assets/vendor/prettify.js
rename to src/third_party/devtools/node_modules/istanbul/lib/assets/vendor/prettify.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul/lib/cli.js b/src/third_party/devtools/node_modules/istanbul/lib/cli.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul/lib/cli.js
rename to src/third_party/devtools/node_modules/istanbul/lib/cli.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul/lib/collector.js b/src/third_party/devtools/node_modules/istanbul/lib/collector.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul/lib/collector.js
rename to src/third_party/devtools/node_modules/istanbul/lib/collector.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul/lib/command/check-coverage.js b/src/third_party/devtools/node_modules/istanbul/lib/command/check-coverage.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul/lib/command/check-coverage.js
rename to src/third_party/devtools/node_modules/istanbul/lib/command/check-coverage.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul/lib/command/common/run-with-cover.js b/src/third_party/devtools/node_modules/istanbul/lib/command/common/run-with-cover.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul/lib/command/common/run-with-cover.js
rename to src/third_party/devtools/node_modules/istanbul/lib/command/common/run-with-cover.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul/lib/command/cover.js b/src/third_party/devtools/node_modules/istanbul/lib/command/cover.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul/lib/command/cover.js
rename to src/third_party/devtools/node_modules/istanbul/lib/command/cover.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul/lib/command/help.js b/src/third_party/devtools/node_modules/istanbul/lib/command/help.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul/lib/command/help.js
rename to src/third_party/devtools/node_modules/istanbul/lib/command/help.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul/lib/command/index.js b/src/third_party/devtools/node_modules/istanbul/lib/command/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul/lib/command/index.js
rename to src/third_party/devtools/node_modules/istanbul/lib/command/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul/lib/command/instrument.js b/src/third_party/devtools/node_modules/istanbul/lib/command/instrument.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul/lib/command/instrument.js
rename to src/third_party/devtools/node_modules/istanbul/lib/command/instrument.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul/lib/command/report.js b/src/third_party/devtools/node_modules/istanbul/lib/command/report.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul/lib/command/report.js
rename to src/third_party/devtools/node_modules/istanbul/lib/command/report.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul/lib/command/test.js b/src/third_party/devtools/node_modules/istanbul/lib/command/test.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul/lib/command/test.js
rename to src/third_party/devtools/node_modules/istanbul/lib/command/test.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul/lib/config.js b/src/third_party/devtools/node_modules/istanbul/lib/config.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul/lib/config.js
rename to src/third_party/devtools/node_modules/istanbul/lib/config.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul/lib/hook.js b/src/third_party/devtools/node_modules/istanbul/lib/hook.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul/lib/hook.js
rename to src/third_party/devtools/node_modules/istanbul/lib/hook.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul/lib/instrumenter.js b/src/third_party/devtools/node_modules/istanbul/lib/instrumenter.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul/lib/instrumenter.js
rename to src/third_party/devtools/node_modules/istanbul/lib/instrumenter.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul/lib/object-utils.js b/src/third_party/devtools/node_modules/istanbul/lib/object-utils.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul/lib/object-utils.js
rename to src/third_party/devtools/node_modules/istanbul/lib/object-utils.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul/lib/register-plugins.js b/src/third_party/devtools/node_modules/istanbul/lib/register-plugins.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul/lib/register-plugins.js
rename to src/third_party/devtools/node_modules/istanbul/lib/register-plugins.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul/lib/report/clover.js b/src/third_party/devtools/node_modules/istanbul/lib/report/clover.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul/lib/report/clover.js
rename to src/third_party/devtools/node_modules/istanbul/lib/report/clover.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul/lib/report/cobertura.js b/src/third_party/devtools/node_modules/istanbul/lib/report/cobertura.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul/lib/report/cobertura.js
rename to src/third_party/devtools/node_modules/istanbul/lib/report/cobertura.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul/lib/report/common/defaults.js b/src/third_party/devtools/node_modules/istanbul/lib/report/common/defaults.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul/lib/report/common/defaults.js
rename to src/third_party/devtools/node_modules/istanbul/lib/report/common/defaults.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul/lib/report/html.js b/src/third_party/devtools/node_modules/istanbul/lib/report/html.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul/lib/report/html.js
rename to src/third_party/devtools/node_modules/istanbul/lib/report/html.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul/lib/report/index.js b/src/third_party/devtools/node_modules/istanbul/lib/report/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul/lib/report/index.js
rename to src/third_party/devtools/node_modules/istanbul/lib/report/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul/lib/report/json-summary.js b/src/third_party/devtools/node_modules/istanbul/lib/report/json-summary.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul/lib/report/json-summary.js
rename to src/third_party/devtools/node_modules/istanbul/lib/report/json-summary.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul/lib/report/json.js b/src/third_party/devtools/node_modules/istanbul/lib/report/json.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul/lib/report/json.js
rename to src/third_party/devtools/node_modules/istanbul/lib/report/json.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul/lib/report/lcov.js b/src/third_party/devtools/node_modules/istanbul/lib/report/lcov.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul/lib/report/lcov.js
rename to src/third_party/devtools/node_modules/istanbul/lib/report/lcov.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul/lib/report/lcovonly.js b/src/third_party/devtools/node_modules/istanbul/lib/report/lcovonly.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul/lib/report/lcovonly.js
rename to src/third_party/devtools/node_modules/istanbul/lib/report/lcovonly.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul/lib/report/none.js b/src/third_party/devtools/node_modules/istanbul/lib/report/none.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul/lib/report/none.js
rename to src/third_party/devtools/node_modules/istanbul/lib/report/none.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul/lib/report/teamcity.js b/src/third_party/devtools/node_modules/istanbul/lib/report/teamcity.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul/lib/report/teamcity.js
rename to src/third_party/devtools/node_modules/istanbul/lib/report/teamcity.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul/lib/report/templates/foot.txt b/src/third_party/devtools/node_modules/istanbul/lib/report/templates/foot.txt
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul/lib/report/templates/foot.txt
rename to src/third_party/devtools/node_modules/istanbul/lib/report/templates/foot.txt
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul/lib/report/templates/head.txt b/src/third_party/devtools/node_modules/istanbul/lib/report/templates/head.txt
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul/lib/report/templates/head.txt
rename to src/third_party/devtools/node_modules/istanbul/lib/report/templates/head.txt
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul/lib/report/text-lcov.js b/src/third_party/devtools/node_modules/istanbul/lib/report/text-lcov.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul/lib/report/text-lcov.js
rename to src/third_party/devtools/node_modules/istanbul/lib/report/text-lcov.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul/lib/report/text-summary.js b/src/third_party/devtools/node_modules/istanbul/lib/report/text-summary.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul/lib/report/text-summary.js
rename to src/third_party/devtools/node_modules/istanbul/lib/report/text-summary.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul/lib/report/text.js b/src/third_party/devtools/node_modules/istanbul/lib/report/text.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul/lib/report/text.js
rename to src/third_party/devtools/node_modules/istanbul/lib/report/text.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul/lib/reporter.js b/src/third_party/devtools/node_modules/istanbul/lib/reporter.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul/lib/reporter.js
rename to src/third_party/devtools/node_modules/istanbul/lib/reporter.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul/lib/store/fslookup.js b/src/third_party/devtools/node_modules/istanbul/lib/store/fslookup.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul/lib/store/fslookup.js
rename to src/third_party/devtools/node_modules/istanbul/lib/store/fslookup.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul/lib/store/index.js b/src/third_party/devtools/node_modules/istanbul/lib/store/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul/lib/store/index.js
rename to src/third_party/devtools/node_modules/istanbul/lib/store/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul/lib/store/memory.js b/src/third_party/devtools/node_modules/istanbul/lib/store/memory.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul/lib/store/memory.js
rename to src/third_party/devtools/node_modules/istanbul/lib/store/memory.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul/lib/store/tmp.js b/src/third_party/devtools/node_modules/istanbul/lib/store/tmp.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul/lib/store/tmp.js
rename to src/third_party/devtools/node_modules/istanbul/lib/store/tmp.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul/lib/util/factory.js b/src/third_party/devtools/node_modules/istanbul/lib/util/factory.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul/lib/util/factory.js
rename to src/third_party/devtools/node_modules/istanbul/lib/util/factory.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul/lib/util/file-matcher.js b/src/third_party/devtools/node_modules/istanbul/lib/util/file-matcher.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul/lib/util/file-matcher.js
rename to src/third_party/devtools/node_modules/istanbul/lib/util/file-matcher.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul/lib/util/file-writer.js b/src/third_party/devtools/node_modules/istanbul/lib/util/file-writer.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul/lib/util/file-writer.js
rename to src/third_party/devtools/node_modules/istanbul/lib/util/file-writer.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul/lib/util/help-formatter.js b/src/third_party/devtools/node_modules/istanbul/lib/util/help-formatter.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul/lib/util/help-formatter.js
rename to src/third_party/devtools/node_modules/istanbul/lib/util/help-formatter.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul/lib/util/input-error.js b/src/third_party/devtools/node_modules/istanbul/lib/util/input-error.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul/lib/util/input-error.js
rename to src/third_party/devtools/node_modules/istanbul/lib/util/input-error.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul/lib/util/insertion-text.js b/src/third_party/devtools/node_modules/istanbul/lib/util/insertion-text.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul/lib/util/insertion-text.js
rename to src/third_party/devtools/node_modules/istanbul/lib/util/insertion-text.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul/lib/util/meta.js b/src/third_party/devtools/node_modules/istanbul/lib/util/meta.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul/lib/util/meta.js
rename to src/third_party/devtools/node_modules/istanbul/lib/util/meta.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul/lib/util/tree-summarizer.js b/src/third_party/devtools/node_modules/istanbul/lib/util/tree-summarizer.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul/lib/util/tree-summarizer.js
rename to src/third_party/devtools/node_modules/istanbul/lib/util/tree-summarizer.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul/lib/util/writer.js b/src/third_party/devtools/node_modules/istanbul/lib/util/writer.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul/lib/util/writer.js
rename to src/third_party/devtools/node_modules/istanbul/lib/util/writer.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul/lib/util/yui-load-hook.js b/src/third_party/devtools/node_modules/istanbul/lib/util/yui-load-hook.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul/lib/util/yui-load-hook.js
rename to src/third_party/devtools/node_modules/istanbul/lib/util/yui-load-hook.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul/node_modules/.bin/escodegen b/src/third_party/devtools/node_modules/istanbul/node_modules/.bin/escodegen
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul/node_modules/.bin/escodegen
rename to src/third_party/devtools/node_modules/istanbul/node_modules/.bin/escodegen
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul/node_modules/.bin/esgenerate b/src/third_party/devtools/node_modules/istanbul/node_modules/.bin/esgenerate
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul/node_modules/.bin/esgenerate
rename to src/third_party/devtools/node_modules/istanbul/node_modules/.bin/esgenerate
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul/node_modules/.bin/esparse b/src/third_party/devtools/node_modules/istanbul/node_modules/.bin/esparse
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul/node_modules/.bin/esparse
rename to src/third_party/devtools/node_modules/istanbul/node_modules/.bin/esparse
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul/node_modules/.bin/esvalidate b/src/third_party/devtools/node_modules/istanbul/node_modules/.bin/esvalidate
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul/node_modules/.bin/esvalidate
rename to src/third_party/devtools/node_modules/istanbul/node_modules/.bin/esvalidate
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul/node_modules/async/CHANGELOG.md b/src/third_party/devtools/node_modules/istanbul/node_modules/async/CHANGELOG.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul/node_modules/async/CHANGELOG.md
rename to src/third_party/devtools/node_modules/istanbul/node_modules/async/CHANGELOG.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul/node_modules/async/LICENSE b/src/third_party/devtools/node_modules/istanbul/node_modules/async/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul/node_modules/async/LICENSE
rename to src/third_party/devtools/node_modules/istanbul/node_modules/async/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul/node_modules/async/README.md b/src/third_party/devtools/node_modules/istanbul/node_modules/async/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul/node_modules/async/README.md
rename to src/third_party/devtools/node_modules/istanbul/node_modules/async/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul/node_modules/async/dist/async.js b/src/third_party/devtools/node_modules/istanbul/node_modules/async/dist/async.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul/node_modules/async/dist/async.js
rename to src/third_party/devtools/node_modules/istanbul/node_modules/async/dist/async.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul/node_modules/async/dist/async.min.js b/src/third_party/devtools/node_modules/istanbul/node_modules/async/dist/async.min.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul/node_modules/async/dist/async.min.js
rename to src/third_party/devtools/node_modules/istanbul/node_modules/async/dist/async.min.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul/node_modules/async/lib/async.js b/src/third_party/devtools/node_modules/istanbul/node_modules/async/lib/async.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul/node_modules/async/lib/async.js
rename to src/third_party/devtools/node_modules/istanbul/node_modules/async/lib/async.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul/node_modules/async/package.json b/src/third_party/devtools/node_modules/istanbul/node_modules/async/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul/node_modules/async/package.json
rename to src/third_party/devtools/node_modules/istanbul/node_modules/async/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul/node_modules/escodegen/LICENSE.BSD b/src/third_party/devtools/node_modules/istanbul/node_modules/escodegen/LICENSE.BSD
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul/node_modules/escodegen/LICENSE.BSD
rename to src/third_party/devtools/node_modules/istanbul/node_modules/escodegen/LICENSE.BSD
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul/node_modules/escodegen/LICENSE.source-map b/src/third_party/devtools/node_modules/istanbul/node_modules/escodegen/LICENSE.source-map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul/node_modules/escodegen/LICENSE.source-map
rename to src/third_party/devtools/node_modules/istanbul/node_modules/escodegen/LICENSE.source-map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul/node_modules/escodegen/README.md b/src/third_party/devtools/node_modules/istanbul/node_modules/escodegen/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul/node_modules/escodegen/README.md
rename to src/third_party/devtools/node_modules/istanbul/node_modules/escodegen/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul/node_modules/escodegen/bin/escodegen.js b/src/third_party/devtools/node_modules/istanbul/node_modules/escodegen/bin/escodegen.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul/node_modules/escodegen/bin/escodegen.js
rename to src/third_party/devtools/node_modules/istanbul/node_modules/escodegen/bin/escodegen.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul/node_modules/escodegen/bin/esgenerate.js b/src/third_party/devtools/node_modules/istanbul/node_modules/escodegen/bin/esgenerate.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul/node_modules/escodegen/bin/esgenerate.js
rename to src/third_party/devtools/node_modules/istanbul/node_modules/escodegen/bin/esgenerate.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul/node_modules/escodegen/escodegen.js b/src/third_party/devtools/node_modules/istanbul/node_modules/escodegen/escodegen.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul/node_modules/escodegen/escodegen.js
rename to src/third_party/devtools/node_modules/istanbul/node_modules/escodegen/escodegen.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul/node_modules/escodegen/package.json b/src/third_party/devtools/node_modules/istanbul/node_modules/escodegen/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul/node_modules/escodegen/package.json
rename to src/third_party/devtools/node_modules/istanbul/node_modules/escodegen/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul/node_modules/esprima/ChangeLog b/src/third_party/devtools/node_modules/istanbul/node_modules/esprima/ChangeLog
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul/node_modules/esprima/ChangeLog
rename to src/third_party/devtools/node_modules/istanbul/node_modules/esprima/ChangeLog
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul/node_modules/esprima/LICENSE.BSD b/src/third_party/devtools/node_modules/istanbul/node_modules/esprima/LICENSE.BSD
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul/node_modules/esprima/LICENSE.BSD
rename to src/third_party/devtools/node_modules/istanbul/node_modules/esprima/LICENSE.BSD
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul/node_modules/esprima/README.md b/src/third_party/devtools/node_modules/istanbul/node_modules/esprima/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul/node_modules/esprima/README.md
rename to src/third_party/devtools/node_modules/istanbul/node_modules/esprima/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul/node_modules/esprima/bin/esparse.js b/src/third_party/devtools/node_modules/istanbul/node_modules/esprima/bin/esparse.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul/node_modules/esprima/bin/esparse.js
rename to src/third_party/devtools/node_modules/istanbul/node_modules/esprima/bin/esparse.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul/node_modules/esprima/bin/esvalidate.js b/src/third_party/devtools/node_modules/istanbul/node_modules/esprima/bin/esvalidate.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul/node_modules/esprima/bin/esvalidate.js
rename to src/third_party/devtools/node_modules/istanbul/node_modules/esprima/bin/esvalidate.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul/node_modules/esprima/esprima.js b/src/third_party/devtools/node_modules/istanbul/node_modules/esprima/esprima.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul/node_modules/esprima/esprima.js
rename to src/third_party/devtools/node_modules/istanbul/node_modules/esprima/esprima.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul/node_modules/esprima/package.json b/src/third_party/devtools/node_modules/istanbul/node_modules/esprima/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul/node_modules/esprima/package.json
rename to src/third_party/devtools/node_modules/istanbul/node_modules/esprima/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul/node_modules/estraverse/.editorconfig b/src/third_party/devtools/node_modules/istanbul/node_modules/estraverse/.editorconfig
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul/node_modules/estraverse/.editorconfig
rename to src/third_party/devtools/node_modules/istanbul/node_modules/estraverse/.editorconfig
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul/node_modules/estraverse/.jshintrc b/src/third_party/devtools/node_modules/istanbul/node_modules/estraverse/.jshintrc
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul/node_modules/estraverse/.jshintrc
rename to src/third_party/devtools/node_modules/istanbul/node_modules/estraverse/.jshintrc
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul/node_modules/estraverse/LICENSE.BSD b/src/third_party/devtools/node_modules/istanbul/node_modules/estraverse/LICENSE.BSD
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul/node_modules/estraverse/LICENSE.BSD
rename to src/third_party/devtools/node_modules/istanbul/node_modules/estraverse/LICENSE.BSD
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul/node_modules/estraverse/README.md b/src/third_party/devtools/node_modules/istanbul/node_modules/estraverse/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul/node_modules/estraverse/README.md
rename to src/third_party/devtools/node_modules/istanbul/node_modules/estraverse/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul/node_modules/estraverse/estraverse.js b/src/third_party/devtools/node_modules/istanbul/node_modules/estraverse/estraverse.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul/node_modules/estraverse/estraverse.js
rename to src/third_party/devtools/node_modules/istanbul/node_modules/estraverse/estraverse.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul/node_modules/estraverse/gulpfile.js b/src/third_party/devtools/node_modules/istanbul/node_modules/estraverse/gulpfile.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul/node_modules/estraverse/gulpfile.js
rename to src/third_party/devtools/node_modules/istanbul/node_modules/estraverse/gulpfile.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul/node_modules/estraverse/package.json b/src/third_party/devtools/node_modules/istanbul/node_modules/estraverse/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul/node_modules/estraverse/package.json
rename to src/third_party/devtools/node_modules/istanbul/node_modules/estraverse/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul/node_modules/glob/LICENSE b/src/third_party/devtools/node_modules/istanbul/node_modules/glob/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul/node_modules/glob/LICENSE
rename to src/third_party/devtools/node_modules/istanbul/node_modules/glob/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul/node_modules/glob/README.md b/src/third_party/devtools/node_modules/istanbul/node_modules/glob/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul/node_modules/glob/README.md
rename to src/third_party/devtools/node_modules/istanbul/node_modules/glob/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul/node_modules/glob/common.js b/src/third_party/devtools/node_modules/istanbul/node_modules/glob/common.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul/node_modules/glob/common.js
rename to src/third_party/devtools/node_modules/istanbul/node_modules/glob/common.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul/node_modules/glob/glob.js b/src/third_party/devtools/node_modules/istanbul/node_modules/glob/glob.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul/node_modules/glob/glob.js
rename to src/third_party/devtools/node_modules/istanbul/node_modules/glob/glob.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul/node_modules/glob/package.json b/src/third_party/devtools/node_modules/istanbul/node_modules/glob/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul/node_modules/glob/package.json
rename to src/third_party/devtools/node_modules/istanbul/node_modules/glob/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul/node_modules/glob/sync.js b/src/third_party/devtools/node_modules/istanbul/node_modules/glob/sync.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul/node_modules/glob/sync.js
rename to src/third_party/devtools/node_modules/istanbul/node_modules/glob/sync.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul/node_modules/has-flag/index.js b/src/third_party/devtools/node_modules/istanbul/node_modules/has-flag/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul/node_modules/has-flag/index.js
rename to src/third_party/devtools/node_modules/istanbul/node_modules/has-flag/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul/node_modules/has-flag/license b/src/third_party/devtools/node_modules/istanbul/node_modules/has-flag/license
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul/node_modules/has-flag/license
rename to src/third_party/devtools/node_modules/istanbul/node_modules/has-flag/license
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul/node_modules/has-flag/package.json b/src/third_party/devtools/node_modules/istanbul/node_modules/has-flag/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul/node_modules/has-flag/package.json
rename to src/third_party/devtools/node_modules/istanbul/node_modules/has-flag/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul/node_modules/has-flag/readme.md b/src/third_party/devtools/node_modules/istanbul/node_modules/has-flag/readme.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul/node_modules/has-flag/readme.md
rename to src/third_party/devtools/node_modules/istanbul/node_modules/has-flag/readme.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul/node_modules/source-map/.npmignore b/src/third_party/devtools/node_modules/istanbul/node_modules/source-map/.npmignore
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul/node_modules/source-map/.npmignore
rename to src/third_party/devtools/node_modules/istanbul/node_modules/source-map/.npmignore
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul/node_modules/source-map/.travis.yml b/src/third_party/devtools/node_modules/istanbul/node_modules/source-map/.travis.yml
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul/node_modules/source-map/.travis.yml
rename to src/third_party/devtools/node_modules/istanbul/node_modules/source-map/.travis.yml
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul/node_modules/source-map/CHANGELOG.md b/src/third_party/devtools/node_modules/istanbul/node_modules/source-map/CHANGELOG.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul/node_modules/source-map/CHANGELOG.md
rename to src/third_party/devtools/node_modules/istanbul/node_modules/source-map/CHANGELOG.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul/node_modules/source-map/LICENSE b/src/third_party/devtools/node_modules/istanbul/node_modules/source-map/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul/node_modules/source-map/LICENSE
rename to src/third_party/devtools/node_modules/istanbul/node_modules/source-map/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul/node_modules/source-map/Makefile.dryice.js b/src/third_party/devtools/node_modules/istanbul/node_modules/source-map/Makefile.dryice.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul/node_modules/source-map/Makefile.dryice.js
rename to src/third_party/devtools/node_modules/istanbul/node_modules/source-map/Makefile.dryice.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul/node_modules/source-map/README.md b/src/third_party/devtools/node_modules/istanbul/node_modules/source-map/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul/node_modules/source-map/README.md
rename to src/third_party/devtools/node_modules/istanbul/node_modules/source-map/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul/node_modules/source-map/build/assert-shim.js b/src/third_party/devtools/node_modules/istanbul/node_modules/source-map/build/assert-shim.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul/node_modules/source-map/build/assert-shim.js
rename to src/third_party/devtools/node_modules/istanbul/node_modules/source-map/build/assert-shim.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul/node_modules/source-map/build/mini-require.js b/src/third_party/devtools/node_modules/istanbul/node_modules/source-map/build/mini-require.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul/node_modules/source-map/build/mini-require.js
rename to src/third_party/devtools/node_modules/istanbul/node_modules/source-map/build/mini-require.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul/node_modules/source-map/build/prefix-source-map.jsm b/src/third_party/devtools/node_modules/istanbul/node_modules/source-map/build/prefix-source-map.jsm
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul/node_modules/source-map/build/prefix-source-map.jsm
rename to src/third_party/devtools/node_modules/istanbul/node_modules/source-map/build/prefix-source-map.jsm
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul/node_modules/source-map/build/prefix-utils.jsm b/src/third_party/devtools/node_modules/istanbul/node_modules/source-map/build/prefix-utils.jsm
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul/node_modules/source-map/build/prefix-utils.jsm
rename to src/third_party/devtools/node_modules/istanbul/node_modules/source-map/build/prefix-utils.jsm
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul/node_modules/source-map/build/suffix-browser.js b/src/third_party/devtools/node_modules/istanbul/node_modules/source-map/build/suffix-browser.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul/node_modules/source-map/build/suffix-browser.js
rename to src/third_party/devtools/node_modules/istanbul/node_modules/source-map/build/suffix-browser.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul/node_modules/source-map/build/suffix-source-map.jsm b/src/third_party/devtools/node_modules/istanbul/node_modules/source-map/build/suffix-source-map.jsm
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul/node_modules/source-map/build/suffix-source-map.jsm
rename to src/third_party/devtools/node_modules/istanbul/node_modules/source-map/build/suffix-source-map.jsm
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul/node_modules/source-map/build/suffix-utils.jsm b/src/third_party/devtools/node_modules/istanbul/node_modules/source-map/build/suffix-utils.jsm
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul/node_modules/source-map/build/suffix-utils.jsm
rename to src/third_party/devtools/node_modules/istanbul/node_modules/source-map/build/suffix-utils.jsm
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul/node_modules/source-map/build/test-prefix.js b/src/third_party/devtools/node_modules/istanbul/node_modules/source-map/build/test-prefix.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul/node_modules/source-map/build/test-prefix.js
rename to src/third_party/devtools/node_modules/istanbul/node_modules/source-map/build/test-prefix.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul/node_modules/source-map/build/test-suffix.js b/src/third_party/devtools/node_modules/istanbul/node_modules/source-map/build/test-suffix.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul/node_modules/source-map/build/test-suffix.js
rename to src/third_party/devtools/node_modules/istanbul/node_modules/source-map/build/test-suffix.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul/node_modules/source-map/lib/source-map.js b/src/third_party/devtools/node_modules/istanbul/node_modules/source-map/lib/source-map.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul/node_modules/source-map/lib/source-map.js
rename to src/third_party/devtools/node_modules/istanbul/node_modules/source-map/lib/source-map.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul/node_modules/source-map/lib/source-map/array-set.js b/src/third_party/devtools/node_modules/istanbul/node_modules/source-map/lib/source-map/array-set.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul/node_modules/source-map/lib/source-map/array-set.js
rename to src/third_party/devtools/node_modules/istanbul/node_modules/source-map/lib/source-map/array-set.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul/node_modules/source-map/lib/source-map/base64-vlq.js b/src/third_party/devtools/node_modules/istanbul/node_modules/source-map/lib/source-map/base64-vlq.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul/node_modules/source-map/lib/source-map/base64-vlq.js
rename to src/third_party/devtools/node_modules/istanbul/node_modules/source-map/lib/source-map/base64-vlq.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul/node_modules/source-map/lib/source-map/base64.js b/src/third_party/devtools/node_modules/istanbul/node_modules/source-map/lib/source-map/base64.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul/node_modules/source-map/lib/source-map/base64.js
rename to src/third_party/devtools/node_modules/istanbul/node_modules/source-map/lib/source-map/base64.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul/node_modules/source-map/lib/source-map/basic-source-map-consumer.js b/src/third_party/devtools/node_modules/istanbul/node_modules/source-map/lib/source-map/basic-source-map-consumer.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul/node_modules/source-map/lib/source-map/basic-source-map-consumer.js
rename to src/third_party/devtools/node_modules/istanbul/node_modules/source-map/lib/source-map/basic-source-map-consumer.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul/node_modules/source-map/lib/source-map/binary-search.js b/src/third_party/devtools/node_modules/istanbul/node_modules/source-map/lib/source-map/binary-search.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul/node_modules/source-map/lib/source-map/binary-search.js
rename to src/third_party/devtools/node_modules/istanbul/node_modules/source-map/lib/source-map/binary-search.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul/node_modules/source-map/lib/source-map/indexed-source-map-consumer.js b/src/third_party/devtools/node_modules/istanbul/node_modules/source-map/lib/source-map/indexed-source-map-consumer.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul/node_modules/source-map/lib/source-map/indexed-source-map-consumer.js
rename to src/third_party/devtools/node_modules/istanbul/node_modules/source-map/lib/source-map/indexed-source-map-consumer.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul/node_modules/source-map/lib/source-map/mapping-list.js b/src/third_party/devtools/node_modules/istanbul/node_modules/source-map/lib/source-map/mapping-list.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul/node_modules/source-map/lib/source-map/mapping-list.js
rename to src/third_party/devtools/node_modules/istanbul/node_modules/source-map/lib/source-map/mapping-list.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul/node_modules/source-map/lib/source-map/source-map-consumer.js b/src/third_party/devtools/node_modules/istanbul/node_modules/source-map/lib/source-map/source-map-consumer.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul/node_modules/source-map/lib/source-map/source-map-consumer.js
rename to src/third_party/devtools/node_modules/istanbul/node_modules/source-map/lib/source-map/source-map-consumer.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul/node_modules/source-map/lib/source-map/source-map-generator.js b/src/third_party/devtools/node_modules/istanbul/node_modules/source-map/lib/source-map/source-map-generator.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul/node_modules/source-map/lib/source-map/source-map-generator.js
rename to src/third_party/devtools/node_modules/istanbul/node_modules/source-map/lib/source-map/source-map-generator.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul/node_modules/source-map/lib/source-map/source-node.js b/src/third_party/devtools/node_modules/istanbul/node_modules/source-map/lib/source-map/source-node.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul/node_modules/source-map/lib/source-map/source-node.js
rename to src/third_party/devtools/node_modules/istanbul/node_modules/source-map/lib/source-map/source-node.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul/node_modules/source-map/lib/source-map/util.js b/src/third_party/devtools/node_modules/istanbul/node_modules/source-map/lib/source-map/util.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul/node_modules/source-map/lib/source-map/util.js
rename to src/third_party/devtools/node_modules/istanbul/node_modules/source-map/lib/source-map/util.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul/node_modules/source-map/package.json b/src/third_party/devtools/node_modules/istanbul/node_modules/source-map/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul/node_modules/source-map/package.json
rename to src/third_party/devtools/node_modules/istanbul/node_modules/source-map/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul/node_modules/source-map/test/run-tests.js b/src/third_party/devtools/node_modules/istanbul/node_modules/source-map/test/run-tests.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul/node_modules/source-map/test/run-tests.js
rename to src/third_party/devtools/node_modules/istanbul/node_modules/source-map/test/run-tests.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul/node_modules/source-map/test/source-map/test-api.js b/src/third_party/devtools/node_modules/istanbul/node_modules/source-map/test/source-map/test-api.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul/node_modules/source-map/test/source-map/test-api.js
rename to src/third_party/devtools/node_modules/istanbul/node_modules/source-map/test/source-map/test-api.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul/node_modules/source-map/test/source-map/test-array-set.js b/src/third_party/devtools/node_modules/istanbul/node_modules/source-map/test/source-map/test-array-set.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul/node_modules/source-map/test/source-map/test-array-set.js
rename to src/third_party/devtools/node_modules/istanbul/node_modules/source-map/test/source-map/test-array-set.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul/node_modules/source-map/test/source-map/test-base64-vlq.js b/src/third_party/devtools/node_modules/istanbul/node_modules/source-map/test/source-map/test-base64-vlq.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul/node_modules/source-map/test/source-map/test-base64-vlq.js
rename to src/third_party/devtools/node_modules/istanbul/node_modules/source-map/test/source-map/test-base64-vlq.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul/node_modules/source-map/test/source-map/test-base64.js b/src/third_party/devtools/node_modules/istanbul/node_modules/source-map/test/source-map/test-base64.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul/node_modules/source-map/test/source-map/test-base64.js
rename to src/third_party/devtools/node_modules/istanbul/node_modules/source-map/test/source-map/test-base64.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul/node_modules/source-map/test/source-map/test-binary-search.js b/src/third_party/devtools/node_modules/istanbul/node_modules/source-map/test/source-map/test-binary-search.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul/node_modules/source-map/test/source-map/test-binary-search.js
rename to src/third_party/devtools/node_modules/istanbul/node_modules/source-map/test/source-map/test-binary-search.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul/node_modules/source-map/test/source-map/test-dog-fooding.js b/src/third_party/devtools/node_modules/istanbul/node_modules/source-map/test/source-map/test-dog-fooding.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul/node_modules/source-map/test/source-map/test-dog-fooding.js
rename to src/third_party/devtools/node_modules/istanbul/node_modules/source-map/test/source-map/test-dog-fooding.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul/node_modules/source-map/test/source-map/test-source-map-consumer.js b/src/third_party/devtools/node_modules/istanbul/node_modules/source-map/test/source-map/test-source-map-consumer.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul/node_modules/source-map/test/source-map/test-source-map-consumer.js
rename to src/third_party/devtools/node_modules/istanbul/node_modules/source-map/test/source-map/test-source-map-consumer.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul/node_modules/source-map/test/source-map/test-source-map-generator.js b/src/third_party/devtools/node_modules/istanbul/node_modules/source-map/test/source-map/test-source-map-generator.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul/node_modules/source-map/test/source-map/test-source-map-generator.js
rename to src/third_party/devtools/node_modules/istanbul/node_modules/source-map/test/source-map/test-source-map-generator.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul/node_modules/source-map/test/source-map/test-source-node.js b/src/third_party/devtools/node_modules/istanbul/node_modules/source-map/test/source-map/test-source-node.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul/node_modules/source-map/test/source-map/test-source-node.js
rename to src/third_party/devtools/node_modules/istanbul/node_modules/source-map/test/source-map/test-source-node.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul/node_modules/source-map/test/source-map/test-util.js b/src/third_party/devtools/node_modules/istanbul/node_modules/source-map/test/source-map/test-util.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul/node_modules/source-map/test/source-map/test-util.js
rename to src/third_party/devtools/node_modules/istanbul/node_modules/source-map/test/source-map/test-util.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul/node_modules/source-map/test/source-map/util.js b/src/third_party/devtools/node_modules/istanbul/node_modules/source-map/test/source-map/util.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul/node_modules/source-map/test/source-map/util.js
rename to src/third_party/devtools/node_modules/istanbul/node_modules/source-map/test/source-map/util.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul/node_modules/supports-color/browser.js b/src/third_party/devtools/node_modules/istanbul/node_modules/supports-color/browser.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul/node_modules/supports-color/browser.js
rename to src/third_party/devtools/node_modules/istanbul/node_modules/supports-color/browser.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul/node_modules/supports-color/index.js b/src/third_party/devtools/node_modules/istanbul/node_modules/supports-color/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul/node_modules/supports-color/index.js
rename to src/third_party/devtools/node_modules/istanbul/node_modules/supports-color/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul/node_modules/supports-color/license b/src/third_party/devtools/node_modules/istanbul/node_modules/supports-color/license
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul/node_modules/supports-color/license
rename to src/third_party/devtools/node_modules/istanbul/node_modules/supports-color/license
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul/node_modules/supports-color/package.json b/src/third_party/devtools/node_modules/istanbul/node_modules/supports-color/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul/node_modules/supports-color/package.json
rename to src/third_party/devtools/node_modules/istanbul/node_modules/supports-color/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul/node_modules/supports-color/readme.md b/src/third_party/devtools/node_modules/istanbul/node_modules/supports-color/readme.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul/node_modules/supports-color/readme.md
rename to src/third_party/devtools/node_modules/istanbul/node_modules/supports-color/readme.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/istanbul/package.json b/src/third_party/devtools/node_modules/istanbul/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/istanbul/package.json
rename to src/third_party/devtools/node_modules/istanbul/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/js-tokens/CHANGELOG.md b/src/third_party/devtools/node_modules/js-tokens/CHANGELOG.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/js-tokens/CHANGELOG.md
rename to src/third_party/devtools/node_modules/js-tokens/CHANGELOG.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/js-tokens/LICENSE b/src/third_party/devtools/node_modules/js-tokens/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/js-tokens/LICENSE
rename to src/third_party/devtools/node_modules/js-tokens/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/js-tokens/README.md b/src/third_party/devtools/node_modules/js-tokens/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/js-tokens/README.md
rename to src/third_party/devtools/node_modules/js-tokens/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/js-tokens/index.js b/src/third_party/devtools/node_modules/js-tokens/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/js-tokens/index.js
rename to src/third_party/devtools/node_modules/js-tokens/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/js-tokens/package.json b/src/third_party/devtools/node_modules/js-tokens/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/js-tokens/package.json
rename to src/third_party/devtools/node_modules/js-tokens/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/js-yaml/CHANGELOG.md b/src/third_party/devtools/node_modules/js-yaml/CHANGELOG.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/js-yaml/CHANGELOG.md
rename to src/third_party/devtools/node_modules/js-yaml/CHANGELOG.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/js-yaml/LICENSE b/src/third_party/devtools/node_modules/js-yaml/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/js-yaml/LICENSE
rename to src/third_party/devtools/node_modules/js-yaml/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/js-yaml/README.md b/src/third_party/devtools/node_modules/js-yaml/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/js-yaml/README.md
rename to src/third_party/devtools/node_modules/js-yaml/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/js-yaml/bin/js-yaml.js b/src/third_party/devtools/node_modules/js-yaml/bin/js-yaml.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/js-yaml/bin/js-yaml.js
rename to src/third_party/devtools/node_modules/js-yaml/bin/js-yaml.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/js-yaml/dist/js-yaml.js b/src/third_party/devtools/node_modules/js-yaml/dist/js-yaml.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/js-yaml/dist/js-yaml.js
rename to src/third_party/devtools/node_modules/js-yaml/dist/js-yaml.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/js-yaml/dist/js-yaml.min.js b/src/third_party/devtools/node_modules/js-yaml/dist/js-yaml.min.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/js-yaml/dist/js-yaml.min.js
rename to src/third_party/devtools/node_modules/js-yaml/dist/js-yaml.min.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/js-yaml/index.js b/src/third_party/devtools/node_modules/js-yaml/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/js-yaml/index.js
rename to src/third_party/devtools/node_modules/js-yaml/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/js-yaml/lib/js-yaml.js b/src/third_party/devtools/node_modules/js-yaml/lib/js-yaml.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/js-yaml/lib/js-yaml.js
rename to src/third_party/devtools/node_modules/js-yaml/lib/js-yaml.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/js-yaml/lib/js-yaml/common.js b/src/third_party/devtools/node_modules/js-yaml/lib/js-yaml/common.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/js-yaml/lib/js-yaml/common.js
rename to src/third_party/devtools/node_modules/js-yaml/lib/js-yaml/common.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/js-yaml/lib/js-yaml/dumper.js b/src/third_party/devtools/node_modules/js-yaml/lib/js-yaml/dumper.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/js-yaml/lib/js-yaml/dumper.js
rename to src/third_party/devtools/node_modules/js-yaml/lib/js-yaml/dumper.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/js-yaml/lib/js-yaml/exception.js b/src/third_party/devtools/node_modules/js-yaml/lib/js-yaml/exception.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/js-yaml/lib/js-yaml/exception.js
rename to src/third_party/devtools/node_modules/js-yaml/lib/js-yaml/exception.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/js-yaml/lib/js-yaml/loader.js b/src/third_party/devtools/node_modules/js-yaml/lib/js-yaml/loader.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/js-yaml/lib/js-yaml/loader.js
rename to src/third_party/devtools/node_modules/js-yaml/lib/js-yaml/loader.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/js-yaml/lib/js-yaml/mark.js b/src/third_party/devtools/node_modules/js-yaml/lib/js-yaml/mark.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/js-yaml/lib/js-yaml/mark.js
rename to src/third_party/devtools/node_modules/js-yaml/lib/js-yaml/mark.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/js-yaml/lib/js-yaml/schema.js b/src/third_party/devtools/node_modules/js-yaml/lib/js-yaml/schema.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/js-yaml/lib/js-yaml/schema.js
rename to src/third_party/devtools/node_modules/js-yaml/lib/js-yaml/schema.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/js-yaml/lib/js-yaml/schema/core.js b/src/third_party/devtools/node_modules/js-yaml/lib/js-yaml/schema/core.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/js-yaml/lib/js-yaml/schema/core.js
rename to src/third_party/devtools/node_modules/js-yaml/lib/js-yaml/schema/core.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/js-yaml/lib/js-yaml/schema/default_full.js b/src/third_party/devtools/node_modules/js-yaml/lib/js-yaml/schema/default_full.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/js-yaml/lib/js-yaml/schema/default_full.js
rename to src/third_party/devtools/node_modules/js-yaml/lib/js-yaml/schema/default_full.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/js-yaml/lib/js-yaml/schema/default_safe.js b/src/third_party/devtools/node_modules/js-yaml/lib/js-yaml/schema/default_safe.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/js-yaml/lib/js-yaml/schema/default_safe.js
rename to src/third_party/devtools/node_modules/js-yaml/lib/js-yaml/schema/default_safe.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/js-yaml/lib/js-yaml/schema/failsafe.js b/src/third_party/devtools/node_modules/js-yaml/lib/js-yaml/schema/failsafe.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/js-yaml/lib/js-yaml/schema/failsafe.js
rename to src/third_party/devtools/node_modules/js-yaml/lib/js-yaml/schema/failsafe.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/js-yaml/lib/js-yaml/schema/json.js b/src/third_party/devtools/node_modules/js-yaml/lib/js-yaml/schema/json.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/js-yaml/lib/js-yaml/schema/json.js
rename to src/third_party/devtools/node_modules/js-yaml/lib/js-yaml/schema/json.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/js-yaml/lib/js-yaml/type.js b/src/third_party/devtools/node_modules/js-yaml/lib/js-yaml/type.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/js-yaml/lib/js-yaml/type.js
rename to src/third_party/devtools/node_modules/js-yaml/lib/js-yaml/type.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/js-yaml/lib/js-yaml/type/binary.js b/src/third_party/devtools/node_modules/js-yaml/lib/js-yaml/type/binary.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/js-yaml/lib/js-yaml/type/binary.js
rename to src/third_party/devtools/node_modules/js-yaml/lib/js-yaml/type/binary.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/js-yaml/lib/js-yaml/type/bool.js b/src/third_party/devtools/node_modules/js-yaml/lib/js-yaml/type/bool.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/js-yaml/lib/js-yaml/type/bool.js
rename to src/third_party/devtools/node_modules/js-yaml/lib/js-yaml/type/bool.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/js-yaml/lib/js-yaml/type/float.js b/src/third_party/devtools/node_modules/js-yaml/lib/js-yaml/type/float.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/js-yaml/lib/js-yaml/type/float.js
rename to src/third_party/devtools/node_modules/js-yaml/lib/js-yaml/type/float.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/js-yaml/lib/js-yaml/type/int.js b/src/third_party/devtools/node_modules/js-yaml/lib/js-yaml/type/int.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/js-yaml/lib/js-yaml/type/int.js
rename to src/third_party/devtools/node_modules/js-yaml/lib/js-yaml/type/int.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/js-yaml/lib/js-yaml/type/js/function.js b/src/third_party/devtools/node_modules/js-yaml/lib/js-yaml/type/js/function.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/js-yaml/lib/js-yaml/type/js/function.js
rename to src/third_party/devtools/node_modules/js-yaml/lib/js-yaml/type/js/function.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/js-yaml/lib/js-yaml/type/js/regexp.js b/src/third_party/devtools/node_modules/js-yaml/lib/js-yaml/type/js/regexp.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/js-yaml/lib/js-yaml/type/js/regexp.js
rename to src/third_party/devtools/node_modules/js-yaml/lib/js-yaml/type/js/regexp.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/js-yaml/lib/js-yaml/type/js/undefined.js b/src/third_party/devtools/node_modules/js-yaml/lib/js-yaml/type/js/undefined.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/js-yaml/lib/js-yaml/type/js/undefined.js
rename to src/third_party/devtools/node_modules/js-yaml/lib/js-yaml/type/js/undefined.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/js-yaml/lib/js-yaml/type/map.js b/src/third_party/devtools/node_modules/js-yaml/lib/js-yaml/type/map.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/js-yaml/lib/js-yaml/type/map.js
rename to src/third_party/devtools/node_modules/js-yaml/lib/js-yaml/type/map.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/js-yaml/lib/js-yaml/type/merge.js b/src/third_party/devtools/node_modules/js-yaml/lib/js-yaml/type/merge.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/js-yaml/lib/js-yaml/type/merge.js
rename to src/third_party/devtools/node_modules/js-yaml/lib/js-yaml/type/merge.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/js-yaml/lib/js-yaml/type/null.js b/src/third_party/devtools/node_modules/js-yaml/lib/js-yaml/type/null.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/js-yaml/lib/js-yaml/type/null.js
rename to src/third_party/devtools/node_modules/js-yaml/lib/js-yaml/type/null.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/js-yaml/lib/js-yaml/type/omap.js b/src/third_party/devtools/node_modules/js-yaml/lib/js-yaml/type/omap.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/js-yaml/lib/js-yaml/type/omap.js
rename to src/third_party/devtools/node_modules/js-yaml/lib/js-yaml/type/omap.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/js-yaml/lib/js-yaml/type/pairs.js b/src/third_party/devtools/node_modules/js-yaml/lib/js-yaml/type/pairs.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/js-yaml/lib/js-yaml/type/pairs.js
rename to src/third_party/devtools/node_modules/js-yaml/lib/js-yaml/type/pairs.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/js-yaml/lib/js-yaml/type/seq.js b/src/third_party/devtools/node_modules/js-yaml/lib/js-yaml/type/seq.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/js-yaml/lib/js-yaml/type/seq.js
rename to src/third_party/devtools/node_modules/js-yaml/lib/js-yaml/type/seq.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/js-yaml/lib/js-yaml/type/set.js b/src/third_party/devtools/node_modules/js-yaml/lib/js-yaml/type/set.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/js-yaml/lib/js-yaml/type/set.js
rename to src/third_party/devtools/node_modules/js-yaml/lib/js-yaml/type/set.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/js-yaml/lib/js-yaml/type/str.js b/src/third_party/devtools/node_modules/js-yaml/lib/js-yaml/type/str.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/js-yaml/lib/js-yaml/type/str.js
rename to src/third_party/devtools/node_modules/js-yaml/lib/js-yaml/type/str.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/js-yaml/lib/js-yaml/type/timestamp.js b/src/third_party/devtools/node_modules/js-yaml/lib/js-yaml/type/timestamp.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/js-yaml/lib/js-yaml/type/timestamp.js
rename to src/third_party/devtools/node_modules/js-yaml/lib/js-yaml/type/timestamp.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/js-yaml/node_modules/.bin/esparse b/src/third_party/devtools/node_modules/js-yaml/node_modules/.bin/esparse
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/js-yaml/node_modules/.bin/esparse
rename to src/third_party/devtools/node_modules/js-yaml/node_modules/.bin/esparse
diff --git a/src/cobalt/debug/remote/devtools/node_modules/js-yaml/node_modules/.bin/esvalidate b/src/third_party/devtools/node_modules/js-yaml/node_modules/.bin/esvalidate
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/js-yaml/node_modules/.bin/esvalidate
rename to src/third_party/devtools/node_modules/js-yaml/node_modules/.bin/esvalidate
diff --git a/src/cobalt/debug/remote/devtools/node_modules/js-yaml/node_modules/esprima/ChangeLog b/src/third_party/devtools/node_modules/js-yaml/node_modules/esprima/ChangeLog
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/js-yaml/node_modules/esprima/ChangeLog
rename to src/third_party/devtools/node_modules/js-yaml/node_modules/esprima/ChangeLog
diff --git a/src/cobalt/debug/remote/devtools/node_modules/js-yaml/node_modules/esprima/LICENSE.BSD b/src/third_party/devtools/node_modules/js-yaml/node_modules/esprima/LICENSE.BSD
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/js-yaml/node_modules/esprima/LICENSE.BSD
rename to src/third_party/devtools/node_modules/js-yaml/node_modules/esprima/LICENSE.BSD
diff --git a/src/cobalt/debug/remote/devtools/node_modules/js-yaml/node_modules/esprima/README.md b/src/third_party/devtools/node_modules/js-yaml/node_modules/esprima/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/js-yaml/node_modules/esprima/README.md
rename to src/third_party/devtools/node_modules/js-yaml/node_modules/esprima/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/js-yaml/node_modules/esprima/bin/esparse.js b/src/third_party/devtools/node_modules/js-yaml/node_modules/esprima/bin/esparse.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/js-yaml/node_modules/esprima/bin/esparse.js
rename to src/third_party/devtools/node_modules/js-yaml/node_modules/esprima/bin/esparse.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/js-yaml/node_modules/esprima/bin/esvalidate.js b/src/third_party/devtools/node_modules/js-yaml/node_modules/esprima/bin/esvalidate.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/js-yaml/node_modules/esprima/bin/esvalidate.js
rename to src/third_party/devtools/node_modules/js-yaml/node_modules/esprima/bin/esvalidate.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/js-yaml/node_modules/esprima/dist/esprima.js b/src/third_party/devtools/node_modules/js-yaml/node_modules/esprima/dist/esprima.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/js-yaml/node_modules/esprima/dist/esprima.js
rename to src/third_party/devtools/node_modules/js-yaml/node_modules/esprima/dist/esprima.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/js-yaml/node_modules/esprima/package.json b/src/third_party/devtools/node_modules/js-yaml/node_modules/esprima/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/js-yaml/node_modules/esprima/package.json
rename to src/third_party/devtools/node_modules/js-yaml/node_modules/esprima/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/js-yaml/package.json b/src/third_party/devtools/node_modules/js-yaml/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/js-yaml/package.json
rename to src/third_party/devtools/node_modules/js-yaml/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/jsesc/LICENSE-MIT.txt b/src/third_party/devtools/node_modules/jsesc/LICENSE-MIT.txt
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/jsesc/LICENSE-MIT.txt
rename to src/third_party/devtools/node_modules/jsesc/LICENSE-MIT.txt
diff --git a/src/cobalt/debug/remote/devtools/node_modules/jsesc/README.md b/src/third_party/devtools/node_modules/jsesc/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/jsesc/README.md
rename to src/third_party/devtools/node_modules/jsesc/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/jsesc/bin/jsesc b/src/third_party/devtools/node_modules/jsesc/bin/jsesc
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/jsesc/bin/jsesc
rename to src/third_party/devtools/node_modules/jsesc/bin/jsesc
diff --git a/src/cobalt/debug/remote/devtools/node_modules/jsesc/jsesc.js b/src/third_party/devtools/node_modules/jsesc/jsesc.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/jsesc/jsesc.js
rename to src/third_party/devtools/node_modules/jsesc/jsesc.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/jsesc/man/jsesc.1 b/src/third_party/devtools/node_modules/jsesc/man/jsesc.1
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/jsesc/man/jsesc.1
rename to src/third_party/devtools/node_modules/jsesc/man/jsesc.1
diff --git a/src/cobalt/debug/remote/devtools/node_modules/jsesc/package.json b/src/third_party/devtools/node_modules/jsesc/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/jsesc/package.json
rename to src/third_party/devtools/node_modules/jsesc/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/json-parse-better-errors/CHANGELOG.md b/src/third_party/devtools/node_modules/json-parse-better-errors/CHANGELOG.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/json-parse-better-errors/CHANGELOG.md
rename to src/third_party/devtools/node_modules/json-parse-better-errors/CHANGELOG.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/json-parse-better-errors/LICENSE.md b/src/third_party/devtools/node_modules/json-parse-better-errors/LICENSE.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/json-parse-better-errors/LICENSE.md
rename to src/third_party/devtools/node_modules/json-parse-better-errors/LICENSE.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/json-parse-better-errors/README.md b/src/third_party/devtools/node_modules/json-parse-better-errors/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/json-parse-better-errors/README.md
rename to src/third_party/devtools/node_modules/json-parse-better-errors/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/json-parse-better-errors/index.js b/src/third_party/devtools/node_modules/json-parse-better-errors/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/json-parse-better-errors/index.js
rename to src/third_party/devtools/node_modules/json-parse-better-errors/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/json-parse-better-errors/package.json b/src/third_party/devtools/node_modules/json-parse-better-errors/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/json-parse-better-errors/package.json
rename to src/third_party/devtools/node_modules/json-parse-better-errors/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/json-schema-traverse/.eslintrc.yml b/src/third_party/devtools/node_modules/json-schema-traverse/.eslintrc.yml
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/json-schema-traverse/.eslintrc.yml
rename to src/third_party/devtools/node_modules/json-schema-traverse/.eslintrc.yml
diff --git a/src/cobalt/debug/remote/devtools/node_modules/json-schema-traverse/.travis.yml b/src/third_party/devtools/node_modules/json-schema-traverse/.travis.yml
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/json-schema-traverse/.travis.yml
rename to src/third_party/devtools/node_modules/json-schema-traverse/.travis.yml
diff --git a/src/cobalt/debug/remote/devtools/node_modules/json-schema-traverse/LICENSE b/src/third_party/devtools/node_modules/json-schema-traverse/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/json-schema-traverse/LICENSE
rename to src/third_party/devtools/node_modules/json-schema-traverse/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/json-schema-traverse/README.md b/src/third_party/devtools/node_modules/json-schema-traverse/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/json-schema-traverse/README.md
rename to src/third_party/devtools/node_modules/json-schema-traverse/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/json-schema-traverse/index.js b/src/third_party/devtools/node_modules/json-schema-traverse/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/json-schema-traverse/index.js
rename to src/third_party/devtools/node_modules/json-schema-traverse/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/json-schema-traverse/package.json b/src/third_party/devtools/node_modules/json-schema-traverse/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/json-schema-traverse/package.json
rename to src/third_party/devtools/node_modules/json-schema-traverse/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/json-schema-traverse/spec/.eslintrc.yml b/src/third_party/devtools/node_modules/json-schema-traverse/spec/.eslintrc.yml
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/json-schema-traverse/spec/.eslintrc.yml
rename to src/third_party/devtools/node_modules/json-schema-traverse/spec/.eslintrc.yml
diff --git a/src/cobalt/debug/remote/devtools/node_modules/json-schema-traverse/spec/fixtures/schema.js b/src/third_party/devtools/node_modules/json-schema-traverse/spec/fixtures/schema.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/json-schema-traverse/spec/fixtures/schema.js
rename to src/third_party/devtools/node_modules/json-schema-traverse/spec/fixtures/schema.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/json-schema-traverse/spec/index.spec.js b/src/third_party/devtools/node_modules/json-schema-traverse/spec/index.spec.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/json-schema-traverse/spec/index.spec.js
rename to src/third_party/devtools/node_modules/json-schema-traverse/spec/index.spec.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/json-stable-stringify-without-jsonify/.npmignore b/src/third_party/devtools/node_modules/json-stable-stringify-without-jsonify/.npmignore
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/json-stable-stringify-without-jsonify/.npmignore
rename to src/third_party/devtools/node_modules/json-stable-stringify-without-jsonify/.npmignore
diff --git a/src/cobalt/debug/remote/devtools/node_modules/json-stable-stringify-without-jsonify/.travis.yml b/src/third_party/devtools/node_modules/json-stable-stringify-without-jsonify/.travis.yml
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/json-stable-stringify-without-jsonify/.travis.yml
rename to src/third_party/devtools/node_modules/json-stable-stringify-without-jsonify/.travis.yml
diff --git a/src/cobalt/debug/remote/devtools/node_modules/json-stable-stringify-without-jsonify/LICENSE b/src/third_party/devtools/node_modules/json-stable-stringify-without-jsonify/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/json-stable-stringify-without-jsonify/LICENSE
rename to src/third_party/devtools/node_modules/json-stable-stringify-without-jsonify/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/json-stable-stringify-without-jsonify/example/key_cmp.js b/src/third_party/devtools/node_modules/json-stable-stringify-without-jsonify/example/key_cmp.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/json-stable-stringify-without-jsonify/example/key_cmp.js
rename to src/third_party/devtools/node_modules/json-stable-stringify-without-jsonify/example/key_cmp.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/json-stable-stringify-without-jsonify/example/nested.js b/src/third_party/devtools/node_modules/json-stable-stringify-without-jsonify/example/nested.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/json-stable-stringify-without-jsonify/example/nested.js
rename to src/third_party/devtools/node_modules/json-stable-stringify-without-jsonify/example/nested.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/json-stable-stringify-without-jsonify/example/str.js b/src/third_party/devtools/node_modules/json-stable-stringify-without-jsonify/example/str.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/json-stable-stringify-without-jsonify/example/str.js
rename to src/third_party/devtools/node_modules/json-stable-stringify-without-jsonify/example/str.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/json-stable-stringify-without-jsonify/example/value_cmp.js b/src/third_party/devtools/node_modules/json-stable-stringify-without-jsonify/example/value_cmp.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/json-stable-stringify-without-jsonify/example/value_cmp.js
rename to src/third_party/devtools/node_modules/json-stable-stringify-without-jsonify/example/value_cmp.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/json-stable-stringify-without-jsonify/index.js b/src/third_party/devtools/node_modules/json-stable-stringify-without-jsonify/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/json-stable-stringify-without-jsonify/index.js
rename to src/third_party/devtools/node_modules/json-stable-stringify-without-jsonify/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/json-stable-stringify-without-jsonify/package.json b/src/third_party/devtools/node_modules/json-stable-stringify-without-jsonify/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/json-stable-stringify-without-jsonify/package.json
rename to src/third_party/devtools/node_modules/json-stable-stringify-without-jsonify/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/json-stable-stringify-without-jsonify/readme.markdown b/src/third_party/devtools/node_modules/json-stable-stringify-without-jsonify/readme.markdown
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/json-stable-stringify-without-jsonify/readme.markdown
rename to src/third_party/devtools/node_modules/json-stable-stringify-without-jsonify/readme.markdown
diff --git a/src/cobalt/debug/remote/devtools/node_modules/json-stable-stringify-without-jsonify/test/cmp.js b/src/third_party/devtools/node_modules/json-stable-stringify-without-jsonify/test/cmp.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/json-stable-stringify-without-jsonify/test/cmp.js
rename to src/third_party/devtools/node_modules/json-stable-stringify-without-jsonify/test/cmp.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/json-stable-stringify-without-jsonify/test/nested.js b/src/third_party/devtools/node_modules/json-stable-stringify-without-jsonify/test/nested.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/json-stable-stringify-without-jsonify/test/nested.js
rename to src/third_party/devtools/node_modules/json-stable-stringify-without-jsonify/test/nested.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/json-stable-stringify-without-jsonify/test/replacer.js b/src/third_party/devtools/node_modules/json-stable-stringify-without-jsonify/test/replacer.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/json-stable-stringify-without-jsonify/test/replacer.js
rename to src/third_party/devtools/node_modules/json-stable-stringify-without-jsonify/test/replacer.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/json-stable-stringify-without-jsonify/test/space.js b/src/third_party/devtools/node_modules/json-stable-stringify-without-jsonify/test/space.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/json-stable-stringify-without-jsonify/test/space.js
rename to src/third_party/devtools/node_modules/json-stable-stringify-without-jsonify/test/space.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/json-stable-stringify-without-jsonify/test/str.js b/src/third_party/devtools/node_modules/json-stable-stringify-without-jsonify/test/str.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/json-stable-stringify-without-jsonify/test/str.js
rename to src/third_party/devtools/node_modules/json-stable-stringify-without-jsonify/test/str.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/json-stable-stringify-without-jsonify/test/to-json.js b/src/third_party/devtools/node_modules/json-stable-stringify-without-jsonify/test/to-json.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/json-stable-stringify-without-jsonify/test/to-json.js
rename to src/third_party/devtools/node_modules/json-stable-stringify-without-jsonify/test/to-json.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/json-stringify-safe/.npmignore b/src/third_party/devtools/node_modules/json-stringify-safe/.npmignore
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/json-stringify-safe/.npmignore
rename to src/third_party/devtools/node_modules/json-stringify-safe/.npmignore
diff --git a/src/cobalt/debug/remote/devtools/node_modules/json-stringify-safe/CHANGELOG.md b/src/third_party/devtools/node_modules/json-stringify-safe/CHANGELOG.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/json-stringify-safe/CHANGELOG.md
rename to src/third_party/devtools/node_modules/json-stringify-safe/CHANGELOG.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/json-stringify-safe/LICENSE b/src/third_party/devtools/node_modules/json-stringify-safe/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/json-stringify-safe/LICENSE
rename to src/third_party/devtools/node_modules/json-stringify-safe/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/json-stringify-safe/Makefile b/src/third_party/devtools/node_modules/json-stringify-safe/Makefile
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/json-stringify-safe/Makefile
rename to src/third_party/devtools/node_modules/json-stringify-safe/Makefile
diff --git a/src/cobalt/debug/remote/devtools/node_modules/json-stringify-safe/README.md b/src/third_party/devtools/node_modules/json-stringify-safe/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/json-stringify-safe/README.md
rename to src/third_party/devtools/node_modules/json-stringify-safe/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/json-stringify-safe/package.json b/src/third_party/devtools/node_modules/json-stringify-safe/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/json-stringify-safe/package.json
rename to src/third_party/devtools/node_modules/json-stringify-safe/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/json-stringify-safe/stringify.js b/src/third_party/devtools/node_modules/json-stringify-safe/stringify.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/json-stringify-safe/stringify.js
rename to src/third_party/devtools/node_modules/json-stringify-safe/stringify.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/json-stringify-safe/test/mocha.opts b/src/third_party/devtools/node_modules/json-stringify-safe/test/mocha.opts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/json-stringify-safe/test/mocha.opts
rename to src/third_party/devtools/node_modules/json-stringify-safe/test/mocha.opts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/json-stringify-safe/test/stringify_test.js b/src/third_party/devtools/node_modules/json-stringify-safe/test/stringify_test.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/json-stringify-safe/test/stringify_test.js
rename to src/third_party/devtools/node_modules/json-stringify-safe/test/stringify_test.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/jsonfile/CHANGELOG.md b/src/third_party/devtools/node_modules/jsonfile/CHANGELOG.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/jsonfile/CHANGELOG.md
rename to src/third_party/devtools/node_modules/jsonfile/CHANGELOG.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/jsonfile/LICENSE b/src/third_party/devtools/node_modules/jsonfile/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/jsonfile/LICENSE
rename to src/third_party/devtools/node_modules/jsonfile/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/jsonfile/README.md b/src/third_party/devtools/node_modules/jsonfile/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/jsonfile/README.md
rename to src/third_party/devtools/node_modules/jsonfile/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/jsonfile/index.js b/src/third_party/devtools/node_modules/jsonfile/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/jsonfile/index.js
rename to src/third_party/devtools/node_modules/jsonfile/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/jsonfile/package.json b/src/third_party/devtools/node_modules/jsonfile/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/jsonfile/package.json
rename to src/third_party/devtools/node_modules/jsonfile/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-chai/.npmignore b/src/third_party/devtools/node_modules/karma-chai/.npmignore
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-chai/.npmignore
rename to src/third_party/devtools/node_modules/karma-chai/.npmignore
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-chai/LICENSE b/src/third_party/devtools/node_modules/karma-chai/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-chai/LICENSE
rename to src/third_party/devtools/node_modules/karma-chai/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-chai/README.md b/src/third_party/devtools/node_modules/karma-chai/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-chai/README.md
rename to src/third_party/devtools/node_modules/karma-chai/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-chai/adapter.js b/src/third_party/devtools/node_modules/karma-chai/adapter.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-chai/adapter.js
rename to src/third_party/devtools/node_modules/karma-chai/adapter.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-chai/index.js b/src/third_party/devtools/node_modules/karma-chai/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-chai/index.js
rename to src/third_party/devtools/node_modules/karma-chai/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-chai/package.json b/src/third_party/devtools/node_modules/karma-chai/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-chai/package.json
rename to src/third_party/devtools/node_modules/karma-chai/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-chrome-launcher/CHANGELOG.md b/src/third_party/devtools/node_modules/karma-chrome-launcher/CHANGELOG.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-chrome-launcher/CHANGELOG.md
rename to src/third_party/devtools/node_modules/karma-chrome-launcher/CHANGELOG.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-chrome-launcher/LICENSE b/src/third_party/devtools/node_modules/karma-chrome-launcher/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-chrome-launcher/LICENSE
rename to src/third_party/devtools/node_modules/karma-chrome-launcher/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-chrome-launcher/README.md b/src/third_party/devtools/node_modules/karma-chrome-launcher/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-chrome-launcher/README.md
rename to src/third_party/devtools/node_modules/karma-chrome-launcher/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-chrome-launcher/examples/simple/index.spec.js b/src/third_party/devtools/node_modules/karma-chrome-launcher/examples/simple/index.spec.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-chrome-launcher/examples/simple/index.spec.js
rename to src/third_party/devtools/node_modules/karma-chrome-launcher/examples/simple/index.spec.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-chrome-launcher/examples/simple/karma.conf.js b/src/third_party/devtools/node_modules/karma-chrome-launcher/examples/simple/karma.conf.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-chrome-launcher/examples/simple/karma.conf.js
rename to src/third_party/devtools/node_modules/karma-chrome-launcher/examples/simple/karma.conf.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-chrome-launcher/gruntfile.js b/src/third_party/devtools/node_modules/karma-chrome-launcher/gruntfile.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-chrome-launcher/gruntfile.js
rename to src/third_party/devtools/node_modules/karma-chrome-launcher/gruntfile.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-chrome-launcher/index.js b/src/third_party/devtools/node_modules/karma-chrome-launcher/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-chrome-launcher/index.js
rename to src/third_party/devtools/node_modules/karma-chrome-launcher/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-chrome-launcher/package.json b/src/third_party/devtools/node_modules/karma-chrome-launcher/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-chrome-launcher/package.json
rename to src/third_party/devtools/node_modules/karma-chrome-launcher/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-chrome-launcher/test/jsflags.spec.js b/src/third_party/devtools/node_modules/karma-chrome-launcher/test/jsflags.spec.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-chrome-launcher/test/jsflags.spec.js
rename to src/third_party/devtools/node_modules/karma-chrome-launcher/test/jsflags.spec.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-coverage-istanbul-instrumenter/LICENSE b/src/third_party/devtools/node_modules/karma-coverage-istanbul-instrumenter/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-coverage-istanbul-instrumenter/LICENSE
rename to src/third_party/devtools/node_modules/karma-coverage-istanbul-instrumenter/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-coverage-istanbul-instrumenter/README.md b/src/third_party/devtools/node_modules/karma-coverage-istanbul-instrumenter/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-coverage-istanbul-instrumenter/README.md
rename to src/third_party/devtools/node_modules/karma-coverage-istanbul-instrumenter/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-coverage-istanbul-instrumenter/package.json b/src/third_party/devtools/node_modules/karma-coverage-istanbul-instrumenter/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-coverage-istanbul-instrumenter/package.json
rename to src/third_party/devtools/node_modules/karma-coverage-istanbul-instrumenter/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-coverage-istanbul-instrumenter/src/index.js b/src/third_party/devtools/node_modules/karma-coverage-istanbul-instrumenter/src/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-coverage-istanbul-instrumenter/src/index.js
rename to src/third_party/devtools/node_modules/karma-coverage-istanbul-instrumenter/src/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-coverage-istanbul-instrumenter/src/preprocessor.js b/src/third_party/devtools/node_modules/karma-coverage-istanbul-instrumenter/src/preprocessor.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-coverage-istanbul-instrumenter/src/preprocessor.js
rename to src/third_party/devtools/node_modules/karma-coverage-istanbul-instrumenter/src/preprocessor.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-coverage-istanbul-reporter/CHANGELOG.md b/src/third_party/devtools/node_modules/karma-coverage-istanbul-reporter/CHANGELOG.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-coverage-istanbul-reporter/CHANGELOG.md
rename to src/third_party/devtools/node_modules/karma-coverage-istanbul-reporter/CHANGELOG.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-coverage-istanbul-reporter/LICENSE b/src/third_party/devtools/node_modules/karma-coverage-istanbul-reporter/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-coverage-istanbul-reporter/LICENSE
rename to src/third_party/devtools/node_modules/karma-coverage-istanbul-reporter/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-coverage-istanbul-reporter/README.md b/src/third_party/devtools/node_modules/karma-coverage-istanbul-reporter/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-coverage-istanbul-reporter/README.md
rename to src/third_party/devtools/node_modules/karma-coverage-istanbul-reporter/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-coverage-istanbul-reporter/package.json b/src/third_party/devtools/node_modules/karma-coverage-istanbul-reporter/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-coverage-istanbul-reporter/package.json
rename to src/third_party/devtools/node_modules/karma-coverage-istanbul-reporter/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-coverage-istanbul-reporter/src/reporter.js b/src/third_party/devtools/node_modules/karma-coverage-istanbul-reporter/src/reporter.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-coverage-istanbul-reporter/src/reporter.js
rename to src/third_party/devtools/node_modules/karma-coverage-istanbul-reporter/src/reporter.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-coverage-istanbul-reporter/src/util.js b/src/third_party/devtools/node_modules/karma-coverage-istanbul-reporter/src/util.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-coverage-istanbul-reporter/src/util.js
rename to src/third_party/devtools/node_modules/karma-coverage-istanbul-reporter/src/util.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-mocha/.eslintrc b/src/third_party/devtools/node_modules/karma-mocha/.eslintrc
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-mocha/.eslintrc
rename to src/third_party/devtools/node_modules/karma-mocha/.eslintrc
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-mocha/.mailmap b/src/third_party/devtools/node_modules/karma-mocha/.mailmap
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-mocha/.mailmap
rename to src/third_party/devtools/node_modules/karma-mocha/.mailmap
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-mocha/.npmignore b/src/third_party/devtools/node_modules/karma-mocha/.npmignore
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-mocha/.npmignore
rename to src/third_party/devtools/node_modules/karma-mocha/.npmignore
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-mocha/CHANGELOG.md b/src/third_party/devtools/node_modules/karma-mocha/CHANGELOG.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-mocha/CHANGELOG.md
rename to src/third_party/devtools/node_modules/karma-mocha/CHANGELOG.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-mocha/LICENSE b/src/third_party/devtools/node_modules/karma-mocha/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-mocha/LICENSE
rename to src/third_party/devtools/node_modules/karma-mocha/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-mocha/README.md b/src/third_party/devtools/node_modules/karma-mocha/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-mocha/README.md
rename to src/third_party/devtools/node_modules/karma-mocha/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-mocha/gruntfile.js b/src/third_party/devtools/node_modules/karma-mocha/gruntfile.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-mocha/gruntfile.js
rename to src/third_party/devtools/node_modules/karma-mocha/gruntfile.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-mocha/lib/adapter.js b/src/third_party/devtools/node_modules/karma-mocha/lib/adapter.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-mocha/lib/adapter.js
rename to src/third_party/devtools/node_modules/karma-mocha/lib/adapter.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-mocha/lib/index.js b/src/third_party/devtools/node_modules/karma-mocha/lib/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-mocha/lib/index.js
rename to src/third_party/devtools/node_modules/karma-mocha/lib/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-mocha/node_modules/minimist/.travis.yml b/src/third_party/devtools/node_modules/karma-mocha/node_modules/minimist/.travis.yml
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-mocha/node_modules/minimist/.travis.yml
rename to src/third_party/devtools/node_modules/karma-mocha/node_modules/minimist/.travis.yml
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-mocha/node_modules/minimist/LICENSE b/src/third_party/devtools/node_modules/karma-mocha/node_modules/minimist/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-mocha/node_modules/minimist/LICENSE
rename to src/third_party/devtools/node_modules/karma-mocha/node_modules/minimist/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-mocha/node_modules/minimist/example/parse.js b/src/third_party/devtools/node_modules/karma-mocha/node_modules/minimist/example/parse.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-mocha/node_modules/minimist/example/parse.js
rename to src/third_party/devtools/node_modules/karma-mocha/node_modules/minimist/example/parse.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-mocha/node_modules/minimist/index.js b/src/third_party/devtools/node_modules/karma-mocha/node_modules/minimist/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-mocha/node_modules/minimist/index.js
rename to src/third_party/devtools/node_modules/karma-mocha/node_modules/minimist/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-mocha/node_modules/minimist/package.json b/src/third_party/devtools/node_modules/karma-mocha/node_modules/minimist/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-mocha/node_modules/minimist/package.json
rename to src/third_party/devtools/node_modules/karma-mocha/node_modules/minimist/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-mocha/node_modules/minimist/readme.markdown b/src/third_party/devtools/node_modules/karma-mocha/node_modules/minimist/readme.markdown
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-mocha/node_modules/minimist/readme.markdown
rename to src/third_party/devtools/node_modules/karma-mocha/node_modules/minimist/readme.markdown
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-mocha/node_modules/minimist/test/all_bool.js b/src/third_party/devtools/node_modules/karma-mocha/node_modules/minimist/test/all_bool.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-mocha/node_modules/minimist/test/all_bool.js
rename to src/third_party/devtools/node_modules/karma-mocha/node_modules/minimist/test/all_bool.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-mocha/node_modules/minimist/test/bool.js b/src/third_party/devtools/node_modules/karma-mocha/node_modules/minimist/test/bool.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-mocha/node_modules/minimist/test/bool.js
rename to src/third_party/devtools/node_modules/karma-mocha/node_modules/minimist/test/bool.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-mocha/node_modules/minimist/test/dash.js b/src/third_party/devtools/node_modules/karma-mocha/node_modules/minimist/test/dash.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-mocha/node_modules/minimist/test/dash.js
rename to src/third_party/devtools/node_modules/karma-mocha/node_modules/minimist/test/dash.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-mocha/node_modules/minimist/test/default_bool.js b/src/third_party/devtools/node_modules/karma-mocha/node_modules/minimist/test/default_bool.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-mocha/node_modules/minimist/test/default_bool.js
rename to src/third_party/devtools/node_modules/karma-mocha/node_modules/minimist/test/default_bool.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-mocha/node_modules/minimist/test/dotted.js b/src/third_party/devtools/node_modules/karma-mocha/node_modules/minimist/test/dotted.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-mocha/node_modules/minimist/test/dotted.js
rename to src/third_party/devtools/node_modules/karma-mocha/node_modules/minimist/test/dotted.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-mocha/node_modules/minimist/test/kv_short.js b/src/third_party/devtools/node_modules/karma-mocha/node_modules/minimist/test/kv_short.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-mocha/node_modules/minimist/test/kv_short.js
rename to src/third_party/devtools/node_modules/karma-mocha/node_modules/minimist/test/kv_short.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-mocha/node_modules/minimist/test/long.js b/src/third_party/devtools/node_modules/karma-mocha/node_modules/minimist/test/long.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-mocha/node_modules/minimist/test/long.js
rename to src/third_party/devtools/node_modules/karma-mocha/node_modules/minimist/test/long.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-mocha/node_modules/minimist/test/num.js b/src/third_party/devtools/node_modules/karma-mocha/node_modules/minimist/test/num.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-mocha/node_modules/minimist/test/num.js
rename to src/third_party/devtools/node_modules/karma-mocha/node_modules/minimist/test/num.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-mocha/node_modules/minimist/test/parse.js b/src/third_party/devtools/node_modules/karma-mocha/node_modules/minimist/test/parse.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-mocha/node_modules/minimist/test/parse.js
rename to src/third_party/devtools/node_modules/karma-mocha/node_modules/minimist/test/parse.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-mocha/node_modules/minimist/test/parse_modified.js b/src/third_party/devtools/node_modules/karma-mocha/node_modules/minimist/test/parse_modified.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-mocha/node_modules/minimist/test/parse_modified.js
rename to src/third_party/devtools/node_modules/karma-mocha/node_modules/minimist/test/parse_modified.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-mocha/node_modules/minimist/test/short.js b/src/third_party/devtools/node_modules/karma-mocha/node_modules/minimist/test/short.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-mocha/node_modules/minimist/test/short.js
rename to src/third_party/devtools/node_modules/karma-mocha/node_modules/minimist/test/short.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-mocha/node_modules/minimist/test/stop_early.js b/src/third_party/devtools/node_modules/karma-mocha/node_modules/minimist/test/stop_early.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-mocha/node_modules/minimist/test/stop_early.js
rename to src/third_party/devtools/node_modules/karma-mocha/node_modules/minimist/test/stop_early.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-mocha/node_modules/minimist/test/unknown.js b/src/third_party/devtools/node_modules/karma-mocha/node_modules/minimist/test/unknown.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-mocha/node_modules/minimist/test/unknown.js
rename to src/third_party/devtools/node_modules/karma-mocha/node_modules/minimist/test/unknown.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-mocha/node_modules/minimist/test/whitespace.js b/src/third_party/devtools/node_modules/karma-mocha/node_modules/minimist/test/whitespace.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-mocha/node_modules/minimist/test/whitespace.js
rename to src/third_party/devtools/node_modules/karma-mocha/node_modules/minimist/test/whitespace.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-mocha/package.json b/src/third_party/devtools/node_modules/karma-mocha/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-mocha/package.json
rename to src/third_party/devtools/node_modules/karma-mocha/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-mocha/wallaby.js b/src/third_party/devtools/node_modules/karma-mocha/wallaby.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-mocha/wallaby.js
rename to src/third_party/devtools/node_modules/karma-mocha/wallaby.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/LICENSE b/src/third_party/devtools/node_modules/karma-typescript/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/LICENSE
rename to src/third_party/devtools/node_modules/karma-typescript/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/README.md b/src/third_party/devtools/node_modules/karma-typescript/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/README.md
rename to src/third_party/devtools/node_modules/karma-typescript/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/cookbook.md b/src/third_party/devtools/node_modules/karma-typescript/cookbook.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/cookbook.md
rename to src/third_party/devtools/node_modules/karma-typescript/cookbook.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/api/configuration.d.ts b/src/third_party/devtools/node_modules/karma-typescript/dist/api/configuration.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/api/configuration.d.ts
rename to src/third_party/devtools/node_modules/karma-typescript/dist/api/configuration.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/api/configuration.js b/src/third_party/devtools/node_modules/karma-typescript/dist/api/configuration.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/api/configuration.js
rename to src/third_party/devtools/node_modules/karma-typescript/dist/api/configuration.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/api/configuration.js.map b/src/third_party/devtools/node_modules/karma-typescript/dist/api/configuration.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/api/configuration.js.map
rename to src/third_party/devtools/node_modules/karma-typescript/dist/api/configuration.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/api/index.d.ts b/src/third_party/devtools/node_modules/karma-typescript/dist/api/index.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/api/index.d.ts
rename to src/third_party/devtools/node_modules/karma-typescript/dist/api/index.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/api/index.js b/src/third_party/devtools/node_modules/karma-typescript/dist/api/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/api/index.js
rename to src/third_party/devtools/node_modules/karma-typescript/dist/api/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/api/index.js.map b/src/third_party/devtools/node_modules/karma-typescript/dist/api/index.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/api/index.js.map
rename to src/third_party/devtools/node_modules/karma-typescript/dist/api/index.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/api/transforms.d.ts b/src/third_party/devtools/node_modules/karma-typescript/dist/api/transforms.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/api/transforms.d.ts
rename to src/third_party/devtools/node_modules/karma-typescript/dist/api/transforms.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/api/transforms.js b/src/third_party/devtools/node_modules/karma-typescript/dist/api/transforms.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/api/transforms.js
rename to src/third_party/devtools/node_modules/karma-typescript/dist/api/transforms.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/api/transforms.js.map b/src/third_party/devtools/node_modules/karma-typescript/dist/api/transforms.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/api/transforms.js.map
rename to src/third_party/devtools/node_modules/karma-typescript/dist/api/transforms.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/bundler/bundle-callback.d.ts b/src/third_party/devtools/node_modules/karma-typescript/dist/bundler/bundle-callback.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/bundler/bundle-callback.d.ts
rename to src/third_party/devtools/node_modules/karma-typescript/dist/bundler/bundle-callback.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/bundler/bundle-callback.js b/src/third_party/devtools/node_modules/karma-typescript/dist/bundler/bundle-callback.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/bundler/bundle-callback.js
rename to src/third_party/devtools/node_modules/karma-typescript/dist/bundler/bundle-callback.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/bundler/bundle-callback.js.map b/src/third_party/devtools/node_modules/karma-typescript/dist/bundler/bundle-callback.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/bundler/bundle-callback.js.map
rename to src/third_party/devtools/node_modules/karma-typescript/dist/bundler/bundle-callback.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/bundler/bundle-item.d.ts b/src/third_party/devtools/node_modules/karma-typescript/dist/bundler/bundle-item.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/bundler/bundle-item.d.ts
rename to src/third_party/devtools/node_modules/karma-typescript/dist/bundler/bundle-item.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/bundler/bundle-item.js b/src/third_party/devtools/node_modules/karma-typescript/dist/bundler/bundle-item.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/bundler/bundle-item.js
rename to src/third_party/devtools/node_modules/karma-typescript/dist/bundler/bundle-item.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/bundler/bundle-item.js.map b/src/third_party/devtools/node_modules/karma-typescript/dist/bundler/bundle-item.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/bundler/bundle-item.js.map
rename to src/third_party/devtools/node_modules/karma-typescript/dist/bundler/bundle-item.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/bundler/bundler.d.ts b/src/third_party/devtools/node_modules/karma-typescript/dist/bundler/bundler.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/bundler/bundler.d.ts
rename to src/third_party/devtools/node_modules/karma-typescript/dist/bundler/bundler.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/bundler/bundler.js b/src/third_party/devtools/node_modules/karma-typescript/dist/bundler/bundler.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/bundler/bundler.js
rename to src/third_party/devtools/node_modules/karma-typescript/dist/bundler/bundler.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/bundler/bundler.js.map b/src/third_party/devtools/node_modules/karma-typescript/dist/bundler/bundler.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/bundler/bundler.js.map
rename to src/third_party/devtools/node_modules/karma-typescript/dist/bundler/bundler.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/bundler/dependency-walker.d.ts b/src/third_party/devtools/node_modules/karma-typescript/dist/bundler/dependency-walker.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/bundler/dependency-walker.d.ts
rename to src/third_party/devtools/node_modules/karma-typescript/dist/bundler/dependency-walker.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/bundler/dependency-walker.js b/src/third_party/devtools/node_modules/karma-typescript/dist/bundler/dependency-walker.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/bundler/dependency-walker.js
rename to src/third_party/devtools/node_modules/karma-typescript/dist/bundler/dependency-walker.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/bundler/dependency-walker.js.map b/src/third_party/devtools/node_modules/karma-typescript/dist/bundler/dependency-walker.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/bundler/dependency-walker.js.map
rename to src/third_party/devtools/node_modules/karma-typescript/dist/bundler/dependency-walker.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/bundler/globals.d.ts b/src/third_party/devtools/node_modules/karma-typescript/dist/bundler/globals.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/bundler/globals.d.ts
rename to src/third_party/devtools/node_modules/karma-typescript/dist/bundler/globals.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/bundler/globals.js b/src/third_party/devtools/node_modules/karma-typescript/dist/bundler/globals.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/bundler/globals.js
rename to src/third_party/devtools/node_modules/karma-typescript/dist/bundler/globals.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/bundler/globals.js.map b/src/third_party/devtools/node_modules/karma-typescript/dist/bundler/globals.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/bundler/globals.js.map
rename to src/third_party/devtools/node_modules/karma-typescript/dist/bundler/globals.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/bundler/queued.d.ts b/src/third_party/devtools/node_modules/karma-typescript/dist/bundler/queued.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/bundler/queued.d.ts
rename to src/third_party/devtools/node_modules/karma-typescript/dist/bundler/queued.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/bundler/queued.js b/src/third_party/devtools/node_modules/karma-typescript/dist/bundler/queued.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/bundler/queued.js
rename to src/third_party/devtools/node_modules/karma-typescript/dist/bundler/queued.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/bundler/queued.js.map b/src/third_party/devtools/node_modules/karma-typescript/dist/bundler/queued.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/bundler/queued.js.map
rename to src/third_party/devtools/node_modules/karma-typescript/dist/bundler/queued.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/bundler/resolve/empty.d.ts b/src/third_party/devtools/node_modules/karma-typescript/dist/bundler/resolve/empty.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/bundler/resolve/empty.d.ts
rename to src/third_party/devtools/node_modules/karma-typescript/dist/bundler/resolve/empty.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/bundler/resolve/empty.js b/src/third_party/devtools/node_modules/karma-typescript/dist/bundler/resolve/empty.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/bundler/resolve/empty.js
rename to src/third_party/devtools/node_modules/karma-typescript/dist/bundler/resolve/empty.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/bundler/resolve/empty.js.map b/src/third_party/devtools/node_modules/karma-typescript/dist/bundler/resolve/empty.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/bundler/resolve/empty.js.map
rename to src/third_party/devtools/node_modules/karma-typescript/dist/bundler/resolve/empty.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/bundler/resolve/resolver.d.ts b/src/third_party/devtools/node_modules/karma-typescript/dist/bundler/resolve/resolver.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/bundler/resolve/resolver.d.ts
rename to src/third_party/devtools/node_modules/karma-typescript/dist/bundler/resolve/resolver.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/bundler/resolve/resolver.js b/src/third_party/devtools/node_modules/karma-typescript/dist/bundler/resolve/resolver.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/bundler/resolve/resolver.js
rename to src/third_party/devtools/node_modules/karma-typescript/dist/bundler/resolve/resolver.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/bundler/resolve/resolver.js.map b/src/third_party/devtools/node_modules/karma-typescript/dist/bundler/resolve/resolver.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/bundler/resolve/resolver.js.map
rename to src/third_party/devtools/node_modules/karma-typescript/dist/bundler/resolve/resolver.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/bundler/resolve/shims.d.ts b/src/third_party/devtools/node_modules/karma-typescript/dist/bundler/resolve/shims.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/bundler/resolve/shims.d.ts
rename to src/third_party/devtools/node_modules/karma-typescript/dist/bundler/resolve/shims.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/bundler/resolve/shims.js b/src/third_party/devtools/node_modules/karma-typescript/dist/bundler/resolve/shims.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/bundler/resolve/shims.js
rename to src/third_party/devtools/node_modules/karma-typescript/dist/bundler/resolve/shims.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/bundler/resolve/shims.js.map b/src/third_party/devtools/node_modules/karma-typescript/dist/bundler/resolve/shims.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/bundler/resolve/shims.js.map
rename to src/third_party/devtools/node_modules/karma-typescript/dist/bundler/resolve/shims.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/bundler/resolve/source-reader.d.ts b/src/third_party/devtools/node_modules/karma-typescript/dist/bundler/resolve/source-reader.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/bundler/resolve/source-reader.d.ts
rename to src/third_party/devtools/node_modules/karma-typescript/dist/bundler/resolve/source-reader.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/bundler/resolve/source-reader.js b/src/third_party/devtools/node_modules/karma-typescript/dist/bundler/resolve/source-reader.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/bundler/resolve/source-reader.js
rename to src/third_party/devtools/node_modules/karma-typescript/dist/bundler/resolve/source-reader.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/bundler/resolve/source-reader.js.map b/src/third_party/devtools/node_modules/karma-typescript/dist/bundler/resolve/source-reader.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/bundler/resolve/source-reader.js.map
rename to src/third_party/devtools/node_modules/karma-typescript/dist/bundler/resolve/source-reader.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/bundler/resolve/source-reader.spec.d.ts b/src/third_party/devtools/node_modules/karma-typescript/dist/bundler/resolve/source-reader.spec.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/bundler/resolve/source-reader.spec.d.ts
rename to src/third_party/devtools/node_modules/karma-typescript/dist/bundler/resolve/source-reader.spec.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/bundler/resolve/source-reader.spec.js b/src/third_party/devtools/node_modules/karma-typescript/dist/bundler/resolve/source-reader.spec.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/bundler/resolve/source-reader.spec.js
rename to src/third_party/devtools/node_modules/karma-typescript/dist/bundler/resolve/source-reader.spec.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/bundler/resolve/source-reader.spec.js.map b/src/third_party/devtools/node_modules/karma-typescript/dist/bundler/resolve/source-reader.spec.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/bundler/resolve/source-reader.spec.js.map
rename to src/third_party/devtools/node_modules/karma-typescript/dist/bundler/resolve/source-reader.spec.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/bundler/source-map.d.ts b/src/third_party/devtools/node_modules/karma-typescript/dist/bundler/source-map.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/bundler/source-map.d.ts
rename to src/third_party/devtools/node_modules/karma-typescript/dist/bundler/source-map.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/bundler/source-map.js b/src/third_party/devtools/node_modules/karma-typescript/dist/bundler/source-map.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/bundler/source-map.js
rename to src/third_party/devtools/node_modules/karma-typescript/dist/bundler/source-map.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/bundler/source-map.js.map b/src/third_party/devtools/node_modules/karma-typescript/dist/bundler/source-map.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/bundler/source-map.js.map
rename to src/third_party/devtools/node_modules/karma-typescript/dist/bundler/source-map.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/bundler/transformer.d.ts b/src/third_party/devtools/node_modules/karma-typescript/dist/bundler/transformer.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/bundler/transformer.d.ts
rename to src/third_party/devtools/node_modules/karma-typescript/dist/bundler/transformer.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/bundler/transformer.js b/src/third_party/devtools/node_modules/karma-typescript/dist/bundler/transformer.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/bundler/transformer.js
rename to src/third_party/devtools/node_modules/karma-typescript/dist/bundler/transformer.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/bundler/transformer.js.map b/src/third_party/devtools/node_modules/karma-typescript/dist/bundler/transformer.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/bundler/transformer.js.map
rename to src/third_party/devtools/node_modules/karma-typescript/dist/bundler/transformer.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/bundler/validator.d.ts b/src/third_party/devtools/node_modules/karma-typescript/dist/bundler/validator.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/bundler/validator.d.ts
rename to src/third_party/devtools/node_modules/karma-typescript/dist/bundler/validator.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/bundler/validator.js b/src/third_party/devtools/node_modules/karma-typescript/dist/bundler/validator.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/bundler/validator.js
rename to src/third_party/devtools/node_modules/karma-typescript/dist/bundler/validator.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/bundler/validator.js.map b/src/third_party/devtools/node_modules/karma-typescript/dist/bundler/validator.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/bundler/validator.js.map
rename to src/third_party/devtools/node_modules/karma-typescript/dist/bundler/validator.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/client/commonjs.d.ts b/src/third_party/devtools/node_modules/karma-typescript/dist/client/commonjs.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/client/commonjs.d.ts
rename to src/third_party/devtools/node_modules/karma-typescript/dist/client/commonjs.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/client/commonjs.js b/src/third_party/devtools/node_modules/karma-typescript/dist/client/commonjs.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/client/commonjs.js
rename to src/third_party/devtools/node_modules/karma-typescript/dist/client/commonjs.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/client/commonjs.js.map b/src/third_party/devtools/node_modules/karma-typescript/dist/client/commonjs.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/client/commonjs.js.map
rename to src/third_party/devtools/node_modules/karma-typescript/dist/client/commonjs.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/compiler/compile-callback.d.ts b/src/third_party/devtools/node_modules/karma-typescript/dist/compiler/compile-callback.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/compiler/compile-callback.d.ts
rename to src/third_party/devtools/node_modules/karma-typescript/dist/compiler/compile-callback.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/compiler/compile-callback.js b/src/third_party/devtools/node_modules/karma-typescript/dist/compiler/compile-callback.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/compiler/compile-callback.js
rename to src/third_party/devtools/node_modules/karma-typescript/dist/compiler/compile-callback.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/compiler/compile-callback.js.map b/src/third_party/devtools/node_modules/karma-typescript/dist/compiler/compile-callback.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/compiler/compile-callback.js.map
rename to src/third_party/devtools/node_modules/karma-typescript/dist/compiler/compile-callback.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/compiler/compiler.d.ts b/src/third_party/devtools/node_modules/karma-typescript/dist/compiler/compiler.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/compiler/compiler.d.ts
rename to src/third_party/devtools/node_modules/karma-typescript/dist/compiler/compiler.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/compiler/compiler.js b/src/third_party/devtools/node_modules/karma-typescript/dist/compiler/compiler.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/compiler/compiler.js
rename to src/third_party/devtools/node_modules/karma-typescript/dist/compiler/compiler.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/compiler/compiler.js.map b/src/third_party/devtools/node_modules/karma-typescript/dist/compiler/compiler.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/compiler/compiler.js.map
rename to src/third_party/devtools/node_modules/karma-typescript/dist/compiler/compiler.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/compiler/emit-output.d.ts b/src/third_party/devtools/node_modules/karma-typescript/dist/compiler/emit-output.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/compiler/emit-output.d.ts
rename to src/third_party/devtools/node_modules/karma-typescript/dist/compiler/emit-output.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/compiler/emit-output.js b/src/third_party/devtools/node_modules/karma-typescript/dist/compiler/emit-output.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/compiler/emit-output.js
rename to src/third_party/devtools/node_modules/karma-typescript/dist/compiler/emit-output.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/compiler/emit-output.js.map b/src/third_party/devtools/node_modules/karma-typescript/dist/compiler/emit-output.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/compiler/emit-output.js.map
rename to src/third_party/devtools/node_modules/karma-typescript/dist/compiler/emit-output.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/index.d.ts b/src/third_party/devtools/node_modules/karma-typescript/dist/index.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/index.d.ts
rename to src/third_party/devtools/node_modules/karma-typescript/dist/index.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/index.js b/src/third_party/devtools/node_modules/karma-typescript/dist/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/index.js
rename to src/third_party/devtools/node_modules/karma-typescript/dist/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/index.js.map b/src/third_party/devtools/node_modules/karma-typescript/dist/index.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/index.js.map
rename to src/third_party/devtools/node_modules/karma-typescript/dist/index.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/istanbul/coverage-callback.d.ts b/src/third_party/devtools/node_modules/karma-typescript/dist/istanbul/coverage-callback.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/istanbul/coverage-callback.d.ts
rename to src/third_party/devtools/node_modules/karma-typescript/dist/istanbul/coverage-callback.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/istanbul/coverage-callback.js b/src/third_party/devtools/node_modules/karma-typescript/dist/istanbul/coverage-callback.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/istanbul/coverage-callback.js
rename to src/third_party/devtools/node_modules/karma-typescript/dist/istanbul/coverage-callback.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/istanbul/coverage-callback.js.map b/src/third_party/devtools/node_modules/karma-typescript/dist/istanbul/coverage-callback.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/istanbul/coverage-callback.js.map
rename to src/third_party/devtools/node_modules/karma-typescript/dist/istanbul/coverage-callback.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/istanbul/coverage.d.ts b/src/third_party/devtools/node_modules/karma-typescript/dist/istanbul/coverage.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/istanbul/coverage.d.ts
rename to src/third_party/devtools/node_modules/karma-typescript/dist/istanbul/coverage.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/istanbul/coverage.js b/src/third_party/devtools/node_modules/karma-typescript/dist/istanbul/coverage.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/istanbul/coverage.js
rename to src/third_party/devtools/node_modules/karma-typescript/dist/istanbul/coverage.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/istanbul/coverage.js.map b/src/third_party/devtools/node_modules/karma-typescript/dist/istanbul/coverage.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/istanbul/coverage.js.map
rename to src/third_party/devtools/node_modules/karma-typescript/dist/istanbul/coverage.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/istanbul/threshold.d.ts b/src/third_party/devtools/node_modules/karma-typescript/dist/istanbul/threshold.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/istanbul/threshold.d.ts
rename to src/third_party/devtools/node_modules/karma-typescript/dist/istanbul/threshold.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/istanbul/threshold.js b/src/third_party/devtools/node_modules/karma-typescript/dist/istanbul/threshold.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/istanbul/threshold.js
rename to src/third_party/devtools/node_modules/karma-typescript/dist/istanbul/threshold.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/istanbul/threshold.js.map b/src/third_party/devtools/node_modules/karma-typescript/dist/istanbul/threshold.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/istanbul/threshold.js.map
rename to src/third_party/devtools/node_modules/karma-typescript/dist/istanbul/threshold.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/karma/framework.d.ts b/src/third_party/devtools/node_modules/karma-typescript/dist/karma/framework.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/karma/framework.d.ts
rename to src/third_party/devtools/node_modules/karma-typescript/dist/karma/framework.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/karma/framework.js b/src/third_party/devtools/node_modules/karma-typescript/dist/karma/framework.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/karma/framework.js
rename to src/third_party/devtools/node_modules/karma-typescript/dist/karma/framework.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/karma/framework.js.map b/src/third_party/devtools/node_modules/karma-typescript/dist/karma/framework.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/karma/framework.js.map
rename to src/third_party/devtools/node_modules/karma-typescript/dist/karma/framework.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/karma/preprocessor.d.ts b/src/third_party/devtools/node_modules/karma-typescript/dist/karma/preprocessor.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/karma/preprocessor.d.ts
rename to src/third_party/devtools/node_modules/karma-typescript/dist/karma/preprocessor.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/karma/preprocessor.js b/src/third_party/devtools/node_modules/karma-typescript/dist/karma/preprocessor.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/karma/preprocessor.js
rename to src/third_party/devtools/node_modules/karma-typescript/dist/karma/preprocessor.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/karma/preprocessor.js.map b/src/third_party/devtools/node_modules/karma-typescript/dist/karma/preprocessor.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/karma/preprocessor.js.map
rename to src/third_party/devtools/node_modules/karma-typescript/dist/karma/preprocessor.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/karma/reporter.d.ts b/src/third_party/devtools/node_modules/karma-typescript/dist/karma/reporter.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/karma/reporter.d.ts
rename to src/third_party/devtools/node_modules/karma-typescript/dist/karma/reporter.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/karma/reporter.js b/src/third_party/devtools/node_modules/karma-typescript/dist/karma/reporter.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/karma/reporter.js
rename to src/third_party/devtools/node_modules/karma-typescript/dist/karma/reporter.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/karma/reporter.js.map b/src/third_party/devtools/node_modules/karma-typescript/dist/karma/reporter.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/karma/reporter.js.map
rename to src/third_party/devtools/node_modules/karma-typescript/dist/karma/reporter.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/shared/benchmark.d.ts b/src/third_party/devtools/node_modules/karma-typescript/dist/shared/benchmark.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/shared/benchmark.d.ts
rename to src/third_party/devtools/node_modules/karma-typescript/dist/shared/benchmark.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/shared/benchmark.js b/src/third_party/devtools/node_modules/karma-typescript/dist/shared/benchmark.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/shared/benchmark.js
rename to src/third_party/devtools/node_modules/karma-typescript/dist/shared/benchmark.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/shared/benchmark.js.map b/src/third_party/devtools/node_modules/karma-typescript/dist/shared/benchmark.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/shared/benchmark.js.map
rename to src/third_party/devtools/node_modules/karma-typescript/dist/shared/benchmark.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/shared/configuration.d.ts b/src/third_party/devtools/node_modules/karma-typescript/dist/shared/configuration.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/shared/configuration.d.ts
rename to src/third_party/devtools/node_modules/karma-typescript/dist/shared/configuration.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/shared/configuration.js b/src/third_party/devtools/node_modules/karma-typescript/dist/shared/configuration.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/shared/configuration.js
rename to src/third_party/devtools/node_modules/karma-typescript/dist/shared/configuration.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/shared/configuration.js.map b/src/third_party/devtools/node_modules/karma-typescript/dist/shared/configuration.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/shared/configuration.js.map
rename to src/third_party/devtools/node_modules/karma-typescript/dist/shared/configuration.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/shared/extender.d.ts b/src/third_party/devtools/node_modules/karma-typescript/dist/shared/extender.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/shared/extender.d.ts
rename to src/third_party/devtools/node_modules/karma-typescript/dist/shared/extender.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/shared/extender.js b/src/third_party/devtools/node_modules/karma-typescript/dist/shared/extender.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/shared/extender.js
rename to src/third_party/devtools/node_modules/karma-typescript/dist/shared/extender.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/shared/extender.js.map b/src/third_party/devtools/node_modules/karma-typescript/dist/shared/extender.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/shared/extender.js.map
rename to src/third_party/devtools/node_modules/karma-typescript/dist/shared/extender.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/shared/file-utils.d.ts b/src/third_party/devtools/node_modules/karma-typescript/dist/shared/file-utils.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/shared/file-utils.d.ts
rename to src/third_party/devtools/node_modules/karma-typescript/dist/shared/file-utils.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/shared/file-utils.js b/src/third_party/devtools/node_modules/karma-typescript/dist/shared/file-utils.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/shared/file-utils.js
rename to src/third_party/devtools/node_modules/karma-typescript/dist/shared/file-utils.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/shared/file-utils.js.map b/src/third_party/devtools/node_modules/karma-typescript/dist/shared/file-utils.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/shared/file-utils.js.map
rename to src/third_party/devtools/node_modules/karma-typescript/dist/shared/file-utils.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/shared/file.d.ts b/src/third_party/devtools/node_modules/karma-typescript/dist/shared/file.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/shared/file.d.ts
rename to src/third_party/devtools/node_modules/karma-typescript/dist/shared/file.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/shared/file.js b/src/third_party/devtools/node_modules/karma-typescript/dist/shared/file.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/shared/file.js
rename to src/third_party/devtools/node_modules/karma-typescript/dist/shared/file.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/shared/file.js.map b/src/third_party/devtools/node_modules/karma-typescript/dist/shared/file.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/shared/file.js.map
rename to src/third_party/devtools/node_modules/karma-typescript/dist/shared/file.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/shared/path-tool.d.ts b/src/third_party/devtools/node_modules/karma-typescript/dist/shared/path-tool.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/shared/path-tool.d.ts
rename to src/third_party/devtools/node_modules/karma-typescript/dist/shared/path-tool.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/shared/path-tool.js b/src/third_party/devtools/node_modules/karma-typescript/dist/shared/path-tool.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/shared/path-tool.js
rename to src/third_party/devtools/node_modules/karma-typescript/dist/shared/path-tool.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/shared/path-tool.js.map b/src/third_party/devtools/node_modules/karma-typescript/dist/shared/path-tool.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/shared/path-tool.js.map
rename to src/third_party/devtools/node_modules/karma-typescript/dist/shared/path-tool.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/shared/project.d.ts b/src/third_party/devtools/node_modules/karma-typescript/dist/shared/project.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/shared/project.d.ts
rename to src/third_party/devtools/node_modules/karma-typescript/dist/shared/project.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/shared/project.js b/src/third_party/devtools/node_modules/karma-typescript/dist/shared/project.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/shared/project.js
rename to src/third_party/devtools/node_modules/karma-typescript/dist/shared/project.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/shared/project.js.map b/src/third_party/devtools/node_modules/karma-typescript/dist/shared/project.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/shared/project.js.map
rename to src/third_party/devtools/node_modules/karma-typescript/dist/shared/project.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/shared/shared-processed-files.d.ts b/src/third_party/devtools/node_modules/karma-typescript/dist/shared/shared-processed-files.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/shared/shared-processed-files.d.ts
rename to src/third_party/devtools/node_modules/karma-typescript/dist/shared/shared-processed-files.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/shared/shared-processed-files.js b/src/third_party/devtools/node_modules/karma-typescript/dist/shared/shared-processed-files.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/shared/shared-processed-files.js
rename to src/third_party/devtools/node_modules/karma-typescript/dist/shared/shared-processed-files.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/shared/shared-processed-files.js.map b/src/third_party/devtools/node_modules/karma-typescript/dist/shared/shared-processed-files.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/dist/shared/shared-processed-files.js.map
rename to src/third_party/devtools/node_modules/karma-typescript/dist/shared/shared-processed-files.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/.bin/acorn b/src/third_party/devtools/node_modules/karma-typescript/node_modules/.bin/acorn
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/.bin/acorn
rename to src/third_party/devtools/node_modules/karma-typescript/node_modules/.bin/acorn
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/acorn/CHANGELOG.md b/src/third_party/devtools/node_modules/karma-typescript/node_modules/acorn/CHANGELOG.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/acorn/CHANGELOG.md
rename to src/third_party/devtools/node_modules/karma-typescript/node_modules/acorn/CHANGELOG.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/acorn/LICENSE b/src/third_party/devtools/node_modules/karma-typescript/node_modules/acorn/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/acorn/LICENSE
rename to src/third_party/devtools/node_modules/karma-typescript/node_modules/acorn/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/acorn/README.md b/src/third_party/devtools/node_modules/karma-typescript/node_modules/acorn/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/acorn/README.md
rename to src/third_party/devtools/node_modules/karma-typescript/node_modules/acorn/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/acorn/bin/acorn b/src/third_party/devtools/node_modules/karma-typescript/node_modules/acorn/bin/acorn
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/acorn/bin/acorn
rename to src/third_party/devtools/node_modules/karma-typescript/node_modules/acorn/bin/acorn
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/acorn/dist/acorn.d.ts b/src/third_party/devtools/node_modules/karma-typescript/node_modules/acorn/dist/acorn.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/acorn/dist/acorn.d.ts
rename to src/third_party/devtools/node_modules/karma-typescript/node_modules/acorn/dist/acorn.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/acorn/dist/acorn.js b/src/third_party/devtools/node_modules/karma-typescript/node_modules/acorn/dist/acorn.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/acorn/dist/acorn.js
rename to src/third_party/devtools/node_modules/karma-typescript/node_modules/acorn/dist/acorn.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/acorn/dist/acorn.js.map b/src/third_party/devtools/node_modules/karma-typescript/node_modules/acorn/dist/acorn.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/acorn/dist/acorn.js.map
rename to src/third_party/devtools/node_modules/karma-typescript/node_modules/acorn/dist/acorn.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/acorn/dist/acorn.mjs b/src/third_party/devtools/node_modules/karma-typescript/node_modules/acorn/dist/acorn.mjs
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/acorn/dist/acorn.mjs
rename to src/third_party/devtools/node_modules/karma-typescript/node_modules/acorn/dist/acorn.mjs
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/acorn/dist/acorn.mjs.map b/src/third_party/devtools/node_modules/karma-typescript/node_modules/acorn/dist/acorn.mjs.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/acorn/dist/acorn.mjs.map
rename to src/third_party/devtools/node_modules/karma-typescript/node_modules/acorn/dist/acorn.mjs.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/acorn/dist/bin.js b/src/third_party/devtools/node_modules/karma-typescript/node_modules/acorn/dist/bin.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/acorn/dist/bin.js
rename to src/third_party/devtools/node_modules/karma-typescript/node_modules/acorn/dist/bin.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/acorn/package.json b/src/third_party/devtools/node_modules/karma-typescript/node_modules/acorn/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/acorn/package.json
rename to src/third_party/devtools/node_modules/karma-typescript/node_modules/acorn/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/CHANGELOG.md b/src/third_party/devtools/node_modules/karma-typescript/node_modules/async/CHANGELOG.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/CHANGELOG.md
rename to src/third_party/devtools/node_modules/karma-typescript/node_modules/async/CHANGELOG.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/LICENSE b/src/third_party/devtools/node_modules/karma-typescript/node_modules/async/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/LICENSE
rename to src/third_party/devtools/node_modules/karma-typescript/node_modules/async/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/README.md b/src/third_party/devtools/node_modules/karma-typescript/node_modules/async/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/README.md
rename to src/third_party/devtools/node_modules/karma-typescript/node_modules/async/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/all.js b/src/third_party/devtools/node_modules/karma-typescript/node_modules/async/all.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/all.js
rename to src/third_party/devtools/node_modules/karma-typescript/node_modules/async/all.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/allLimit.js b/src/third_party/devtools/node_modules/karma-typescript/node_modules/async/allLimit.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/allLimit.js
rename to src/third_party/devtools/node_modules/karma-typescript/node_modules/async/allLimit.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/allSeries.js b/src/third_party/devtools/node_modules/karma-typescript/node_modules/async/allSeries.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/allSeries.js
rename to src/third_party/devtools/node_modules/karma-typescript/node_modules/async/allSeries.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/any.js b/src/third_party/devtools/node_modules/karma-typescript/node_modules/async/any.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/any.js
rename to src/third_party/devtools/node_modules/karma-typescript/node_modules/async/any.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/anyLimit.js b/src/third_party/devtools/node_modules/karma-typescript/node_modules/async/anyLimit.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/anyLimit.js
rename to src/third_party/devtools/node_modules/karma-typescript/node_modules/async/anyLimit.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/anySeries.js b/src/third_party/devtools/node_modules/karma-typescript/node_modules/async/anySeries.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/anySeries.js
rename to src/third_party/devtools/node_modules/karma-typescript/node_modules/async/anySeries.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/apply.js b/src/third_party/devtools/node_modules/karma-typescript/node_modules/async/apply.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/apply.js
rename to src/third_party/devtools/node_modules/karma-typescript/node_modules/async/apply.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/applyEach.js b/src/third_party/devtools/node_modules/karma-typescript/node_modules/async/applyEach.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/applyEach.js
rename to src/third_party/devtools/node_modules/karma-typescript/node_modules/async/applyEach.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/applyEachSeries.js b/src/third_party/devtools/node_modules/karma-typescript/node_modules/async/applyEachSeries.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/applyEachSeries.js
rename to src/third_party/devtools/node_modules/karma-typescript/node_modules/async/applyEachSeries.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/asyncify.js b/src/third_party/devtools/node_modules/karma-typescript/node_modules/async/asyncify.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/asyncify.js
rename to src/third_party/devtools/node_modules/karma-typescript/node_modules/async/asyncify.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/auto.js b/src/third_party/devtools/node_modules/karma-typescript/node_modules/async/auto.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/auto.js
rename to src/third_party/devtools/node_modules/karma-typescript/node_modules/async/auto.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/autoInject.js b/src/third_party/devtools/node_modules/karma-typescript/node_modules/async/autoInject.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/autoInject.js
rename to src/third_party/devtools/node_modules/karma-typescript/node_modules/async/autoInject.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/bower.json b/src/third_party/devtools/node_modules/karma-typescript/node_modules/async/bower.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/bower.json
rename to src/third_party/devtools/node_modules/karma-typescript/node_modules/async/bower.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/cargo.js b/src/third_party/devtools/node_modules/karma-typescript/node_modules/async/cargo.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/cargo.js
rename to src/third_party/devtools/node_modules/karma-typescript/node_modules/async/cargo.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/cargoQueue.js b/src/third_party/devtools/node_modules/karma-typescript/node_modules/async/cargoQueue.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/cargoQueue.js
rename to src/third_party/devtools/node_modules/karma-typescript/node_modules/async/cargoQueue.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/compose.js b/src/third_party/devtools/node_modules/karma-typescript/node_modules/async/compose.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/compose.js
rename to src/third_party/devtools/node_modules/karma-typescript/node_modules/async/compose.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/concat.js b/src/third_party/devtools/node_modules/karma-typescript/node_modules/async/concat.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/concat.js
rename to src/third_party/devtools/node_modules/karma-typescript/node_modules/async/concat.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/concatLimit.js b/src/third_party/devtools/node_modules/karma-typescript/node_modules/async/concatLimit.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/concatLimit.js
rename to src/third_party/devtools/node_modules/karma-typescript/node_modules/async/concatLimit.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/concatSeries.js b/src/third_party/devtools/node_modules/karma-typescript/node_modules/async/concatSeries.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/concatSeries.js
rename to src/third_party/devtools/node_modules/karma-typescript/node_modules/async/concatSeries.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/constant.js b/src/third_party/devtools/node_modules/karma-typescript/node_modules/async/constant.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/constant.js
rename to src/third_party/devtools/node_modules/karma-typescript/node_modules/async/constant.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/detect.js b/src/third_party/devtools/node_modules/karma-typescript/node_modules/async/detect.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/detect.js
rename to src/third_party/devtools/node_modules/karma-typescript/node_modules/async/detect.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/detectLimit.js b/src/third_party/devtools/node_modules/karma-typescript/node_modules/async/detectLimit.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/detectLimit.js
rename to src/third_party/devtools/node_modules/karma-typescript/node_modules/async/detectLimit.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/detectSeries.js b/src/third_party/devtools/node_modules/karma-typescript/node_modules/async/detectSeries.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/detectSeries.js
rename to src/third_party/devtools/node_modules/karma-typescript/node_modules/async/detectSeries.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/dir.js b/src/third_party/devtools/node_modules/karma-typescript/node_modules/async/dir.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/dir.js
rename to src/third_party/devtools/node_modules/karma-typescript/node_modules/async/dir.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/dist/async.js b/src/third_party/devtools/node_modules/karma-typescript/node_modules/async/dist/async.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/dist/async.js
rename to src/third_party/devtools/node_modules/karma-typescript/node_modules/async/dist/async.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/dist/async.min.js b/src/third_party/devtools/node_modules/karma-typescript/node_modules/async/dist/async.min.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/dist/async.min.js
rename to src/third_party/devtools/node_modules/karma-typescript/node_modules/async/dist/async.min.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/dist/async.mjs b/src/third_party/devtools/node_modules/karma-typescript/node_modules/async/dist/async.mjs
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/dist/async.mjs
rename to src/third_party/devtools/node_modules/karma-typescript/node_modules/async/dist/async.mjs
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/doDuring.js b/src/third_party/devtools/node_modules/karma-typescript/node_modules/async/doDuring.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/doDuring.js
rename to src/third_party/devtools/node_modules/karma-typescript/node_modules/async/doDuring.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/doUntil.js b/src/third_party/devtools/node_modules/karma-typescript/node_modules/async/doUntil.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/doUntil.js
rename to src/third_party/devtools/node_modules/karma-typescript/node_modules/async/doUntil.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/doWhilst.js b/src/third_party/devtools/node_modules/karma-typescript/node_modules/async/doWhilst.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/doWhilst.js
rename to src/third_party/devtools/node_modules/karma-typescript/node_modules/async/doWhilst.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/during.js b/src/third_party/devtools/node_modules/karma-typescript/node_modules/async/during.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/during.js
rename to src/third_party/devtools/node_modules/karma-typescript/node_modules/async/during.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/each.js b/src/third_party/devtools/node_modules/karma-typescript/node_modules/async/each.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/each.js
rename to src/third_party/devtools/node_modules/karma-typescript/node_modules/async/each.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/eachLimit.js b/src/third_party/devtools/node_modules/karma-typescript/node_modules/async/eachLimit.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/eachLimit.js
rename to src/third_party/devtools/node_modules/karma-typescript/node_modules/async/eachLimit.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/eachOf.js b/src/third_party/devtools/node_modules/karma-typescript/node_modules/async/eachOf.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/eachOf.js
rename to src/third_party/devtools/node_modules/karma-typescript/node_modules/async/eachOf.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/eachOfLimit.js b/src/third_party/devtools/node_modules/karma-typescript/node_modules/async/eachOfLimit.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/eachOfLimit.js
rename to src/third_party/devtools/node_modules/karma-typescript/node_modules/async/eachOfLimit.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/eachOfSeries.js b/src/third_party/devtools/node_modules/karma-typescript/node_modules/async/eachOfSeries.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/eachOfSeries.js
rename to src/third_party/devtools/node_modules/karma-typescript/node_modules/async/eachOfSeries.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/eachSeries.js b/src/third_party/devtools/node_modules/karma-typescript/node_modules/async/eachSeries.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/eachSeries.js
rename to src/third_party/devtools/node_modules/karma-typescript/node_modules/async/eachSeries.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/ensureAsync.js b/src/third_party/devtools/node_modules/karma-typescript/node_modules/async/ensureAsync.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/ensureAsync.js
rename to src/third_party/devtools/node_modules/karma-typescript/node_modules/async/ensureAsync.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/every.js b/src/third_party/devtools/node_modules/karma-typescript/node_modules/async/every.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/every.js
rename to src/third_party/devtools/node_modules/karma-typescript/node_modules/async/every.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/everyLimit.js b/src/third_party/devtools/node_modules/karma-typescript/node_modules/async/everyLimit.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/everyLimit.js
rename to src/third_party/devtools/node_modules/karma-typescript/node_modules/async/everyLimit.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/everySeries.js b/src/third_party/devtools/node_modules/karma-typescript/node_modules/async/everySeries.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/everySeries.js
rename to src/third_party/devtools/node_modules/karma-typescript/node_modules/async/everySeries.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/filter.js b/src/third_party/devtools/node_modules/karma-typescript/node_modules/async/filter.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/filter.js
rename to src/third_party/devtools/node_modules/karma-typescript/node_modules/async/filter.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/filterLimit.js b/src/third_party/devtools/node_modules/karma-typescript/node_modules/async/filterLimit.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/filterLimit.js
rename to src/third_party/devtools/node_modules/karma-typescript/node_modules/async/filterLimit.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/filterSeries.js b/src/third_party/devtools/node_modules/karma-typescript/node_modules/async/filterSeries.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/filterSeries.js
rename to src/third_party/devtools/node_modules/karma-typescript/node_modules/async/filterSeries.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/find.js b/src/third_party/devtools/node_modules/karma-typescript/node_modules/async/find.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/find.js
rename to src/third_party/devtools/node_modules/karma-typescript/node_modules/async/find.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/findLimit.js b/src/third_party/devtools/node_modules/karma-typescript/node_modules/async/findLimit.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/findLimit.js
rename to src/third_party/devtools/node_modules/karma-typescript/node_modules/async/findLimit.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/findSeries.js b/src/third_party/devtools/node_modules/karma-typescript/node_modules/async/findSeries.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/findSeries.js
rename to src/third_party/devtools/node_modules/karma-typescript/node_modules/async/findSeries.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/flatMap.js b/src/third_party/devtools/node_modules/karma-typescript/node_modules/async/flatMap.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/flatMap.js
rename to src/third_party/devtools/node_modules/karma-typescript/node_modules/async/flatMap.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/flatMapLimit.js b/src/third_party/devtools/node_modules/karma-typescript/node_modules/async/flatMapLimit.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/flatMapLimit.js
rename to src/third_party/devtools/node_modules/karma-typescript/node_modules/async/flatMapLimit.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/flatMapSeries.js b/src/third_party/devtools/node_modules/karma-typescript/node_modules/async/flatMapSeries.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/flatMapSeries.js
rename to src/third_party/devtools/node_modules/karma-typescript/node_modules/async/flatMapSeries.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/foldl.js b/src/third_party/devtools/node_modules/karma-typescript/node_modules/async/foldl.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/foldl.js
rename to src/third_party/devtools/node_modules/karma-typescript/node_modules/async/foldl.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/foldr.js b/src/third_party/devtools/node_modules/karma-typescript/node_modules/async/foldr.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/foldr.js
rename to src/third_party/devtools/node_modules/karma-typescript/node_modules/async/foldr.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/forEach.js b/src/third_party/devtools/node_modules/karma-typescript/node_modules/async/forEach.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/forEach.js
rename to src/third_party/devtools/node_modules/karma-typescript/node_modules/async/forEach.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/forEachLimit.js b/src/third_party/devtools/node_modules/karma-typescript/node_modules/async/forEachLimit.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/forEachLimit.js
rename to src/third_party/devtools/node_modules/karma-typescript/node_modules/async/forEachLimit.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/forEachOf.js b/src/third_party/devtools/node_modules/karma-typescript/node_modules/async/forEachOf.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/forEachOf.js
rename to src/third_party/devtools/node_modules/karma-typescript/node_modules/async/forEachOf.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/forEachOfLimit.js b/src/third_party/devtools/node_modules/karma-typescript/node_modules/async/forEachOfLimit.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/forEachOfLimit.js
rename to src/third_party/devtools/node_modules/karma-typescript/node_modules/async/forEachOfLimit.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/forEachOfSeries.js b/src/third_party/devtools/node_modules/karma-typescript/node_modules/async/forEachOfSeries.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/forEachOfSeries.js
rename to src/third_party/devtools/node_modules/karma-typescript/node_modules/async/forEachOfSeries.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/forEachSeries.js b/src/third_party/devtools/node_modules/karma-typescript/node_modules/async/forEachSeries.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/forEachSeries.js
rename to src/third_party/devtools/node_modules/karma-typescript/node_modules/async/forEachSeries.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/forever.js b/src/third_party/devtools/node_modules/karma-typescript/node_modules/async/forever.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/forever.js
rename to src/third_party/devtools/node_modules/karma-typescript/node_modules/async/forever.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/groupBy.js b/src/third_party/devtools/node_modules/karma-typescript/node_modules/async/groupBy.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/groupBy.js
rename to src/third_party/devtools/node_modules/karma-typescript/node_modules/async/groupBy.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/groupByLimit.js b/src/third_party/devtools/node_modules/karma-typescript/node_modules/async/groupByLimit.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/groupByLimit.js
rename to src/third_party/devtools/node_modules/karma-typescript/node_modules/async/groupByLimit.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/groupBySeries.js b/src/third_party/devtools/node_modules/karma-typescript/node_modules/async/groupBySeries.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/groupBySeries.js
rename to src/third_party/devtools/node_modules/karma-typescript/node_modules/async/groupBySeries.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/index.js b/src/third_party/devtools/node_modules/karma-typescript/node_modules/async/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/index.js
rename to src/third_party/devtools/node_modules/karma-typescript/node_modules/async/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/inject.js b/src/third_party/devtools/node_modules/karma-typescript/node_modules/async/inject.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/inject.js
rename to src/third_party/devtools/node_modules/karma-typescript/node_modules/async/inject.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/internal/DoublyLinkedList.js b/src/third_party/devtools/node_modules/karma-typescript/node_modules/async/internal/DoublyLinkedList.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/internal/DoublyLinkedList.js
rename to src/third_party/devtools/node_modules/karma-typescript/node_modules/async/internal/DoublyLinkedList.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/internal/Heap.js b/src/third_party/devtools/node_modules/karma-typescript/node_modules/async/internal/Heap.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/internal/Heap.js
rename to src/third_party/devtools/node_modules/karma-typescript/node_modules/async/internal/Heap.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/internal/applyEach.js b/src/third_party/devtools/node_modules/karma-typescript/node_modules/async/internal/applyEach.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/internal/applyEach.js
rename to src/third_party/devtools/node_modules/karma-typescript/node_modules/async/internal/applyEach.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/internal/asyncEachOfLimit.js b/src/third_party/devtools/node_modules/karma-typescript/node_modules/async/internal/asyncEachOfLimit.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/internal/asyncEachOfLimit.js
rename to src/third_party/devtools/node_modules/karma-typescript/node_modules/async/internal/asyncEachOfLimit.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/internal/awaitify.js b/src/third_party/devtools/node_modules/karma-typescript/node_modules/async/internal/awaitify.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/internal/awaitify.js
rename to src/third_party/devtools/node_modules/karma-typescript/node_modules/async/internal/awaitify.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/internal/breakLoop.js b/src/third_party/devtools/node_modules/karma-typescript/node_modules/async/internal/breakLoop.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/internal/breakLoop.js
rename to src/third_party/devtools/node_modules/karma-typescript/node_modules/async/internal/breakLoop.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/internal/consoleFunc.js b/src/third_party/devtools/node_modules/karma-typescript/node_modules/async/internal/consoleFunc.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/internal/consoleFunc.js
rename to src/third_party/devtools/node_modules/karma-typescript/node_modules/async/internal/consoleFunc.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/internal/createTester.js b/src/third_party/devtools/node_modules/karma-typescript/node_modules/async/internal/createTester.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/internal/createTester.js
rename to src/third_party/devtools/node_modules/karma-typescript/node_modules/async/internal/createTester.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/internal/eachOfLimit.js b/src/third_party/devtools/node_modules/karma-typescript/node_modules/async/internal/eachOfLimit.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/internal/eachOfLimit.js
rename to src/third_party/devtools/node_modules/karma-typescript/node_modules/async/internal/eachOfLimit.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/internal/filter.js b/src/third_party/devtools/node_modules/karma-typescript/node_modules/async/internal/filter.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/internal/filter.js
rename to src/third_party/devtools/node_modules/karma-typescript/node_modules/async/internal/filter.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/internal/getIterator.js b/src/third_party/devtools/node_modules/karma-typescript/node_modules/async/internal/getIterator.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/internal/getIterator.js
rename to src/third_party/devtools/node_modules/karma-typescript/node_modules/async/internal/getIterator.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/internal/initialParams.js b/src/third_party/devtools/node_modules/karma-typescript/node_modules/async/internal/initialParams.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/internal/initialParams.js
rename to src/third_party/devtools/node_modules/karma-typescript/node_modules/async/internal/initialParams.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/internal/isArrayLike.js b/src/third_party/devtools/node_modules/karma-typescript/node_modules/async/internal/isArrayLike.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/internal/isArrayLike.js
rename to src/third_party/devtools/node_modules/karma-typescript/node_modules/async/internal/isArrayLike.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/internal/iterator.js b/src/third_party/devtools/node_modules/karma-typescript/node_modules/async/internal/iterator.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/internal/iterator.js
rename to src/third_party/devtools/node_modules/karma-typescript/node_modules/async/internal/iterator.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/internal/map.js b/src/third_party/devtools/node_modules/karma-typescript/node_modules/async/internal/map.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/internal/map.js
rename to src/third_party/devtools/node_modules/karma-typescript/node_modules/async/internal/map.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/internal/once.js b/src/third_party/devtools/node_modules/karma-typescript/node_modules/async/internal/once.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/internal/once.js
rename to src/third_party/devtools/node_modules/karma-typescript/node_modules/async/internal/once.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/internal/onlyOnce.js b/src/third_party/devtools/node_modules/karma-typescript/node_modules/async/internal/onlyOnce.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/internal/onlyOnce.js
rename to src/third_party/devtools/node_modules/karma-typescript/node_modules/async/internal/onlyOnce.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/internal/parallel.js b/src/third_party/devtools/node_modules/karma-typescript/node_modules/async/internal/parallel.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/internal/parallel.js
rename to src/third_party/devtools/node_modules/karma-typescript/node_modules/async/internal/parallel.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/internal/promiseCallback.js b/src/third_party/devtools/node_modules/karma-typescript/node_modules/async/internal/promiseCallback.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/internal/promiseCallback.js
rename to src/third_party/devtools/node_modules/karma-typescript/node_modules/async/internal/promiseCallback.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/internal/queue.js b/src/third_party/devtools/node_modules/karma-typescript/node_modules/async/internal/queue.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/internal/queue.js
rename to src/third_party/devtools/node_modules/karma-typescript/node_modules/async/internal/queue.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/internal/range.js b/src/third_party/devtools/node_modules/karma-typescript/node_modules/async/internal/range.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/internal/range.js
rename to src/third_party/devtools/node_modules/karma-typescript/node_modules/async/internal/range.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/internal/reject.js b/src/third_party/devtools/node_modules/karma-typescript/node_modules/async/internal/reject.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/internal/reject.js
rename to src/third_party/devtools/node_modules/karma-typescript/node_modules/async/internal/reject.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/internal/setImmediate.js b/src/third_party/devtools/node_modules/karma-typescript/node_modules/async/internal/setImmediate.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/internal/setImmediate.js
rename to src/third_party/devtools/node_modules/karma-typescript/node_modules/async/internal/setImmediate.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/internal/withoutIndex.js b/src/third_party/devtools/node_modules/karma-typescript/node_modules/async/internal/withoutIndex.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/internal/withoutIndex.js
rename to src/third_party/devtools/node_modules/karma-typescript/node_modules/async/internal/withoutIndex.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/internal/wrapAsync.js b/src/third_party/devtools/node_modules/karma-typescript/node_modules/async/internal/wrapAsync.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/internal/wrapAsync.js
rename to src/third_party/devtools/node_modules/karma-typescript/node_modules/async/internal/wrapAsync.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/log.js b/src/third_party/devtools/node_modules/karma-typescript/node_modules/async/log.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/log.js
rename to src/third_party/devtools/node_modules/karma-typescript/node_modules/async/log.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/map.js b/src/third_party/devtools/node_modules/karma-typescript/node_modules/async/map.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/map.js
rename to src/third_party/devtools/node_modules/karma-typescript/node_modules/async/map.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/mapLimit.js b/src/third_party/devtools/node_modules/karma-typescript/node_modules/async/mapLimit.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/mapLimit.js
rename to src/third_party/devtools/node_modules/karma-typescript/node_modules/async/mapLimit.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/mapSeries.js b/src/third_party/devtools/node_modules/karma-typescript/node_modules/async/mapSeries.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/mapSeries.js
rename to src/third_party/devtools/node_modules/karma-typescript/node_modules/async/mapSeries.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/mapValues.js b/src/third_party/devtools/node_modules/karma-typescript/node_modules/async/mapValues.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/mapValues.js
rename to src/third_party/devtools/node_modules/karma-typescript/node_modules/async/mapValues.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/mapValuesLimit.js b/src/third_party/devtools/node_modules/karma-typescript/node_modules/async/mapValuesLimit.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/mapValuesLimit.js
rename to src/third_party/devtools/node_modules/karma-typescript/node_modules/async/mapValuesLimit.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/mapValuesSeries.js b/src/third_party/devtools/node_modules/karma-typescript/node_modules/async/mapValuesSeries.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/mapValuesSeries.js
rename to src/third_party/devtools/node_modules/karma-typescript/node_modules/async/mapValuesSeries.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/memoize.js b/src/third_party/devtools/node_modules/karma-typescript/node_modules/async/memoize.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/memoize.js
rename to src/third_party/devtools/node_modules/karma-typescript/node_modules/async/memoize.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/nextTick.js b/src/third_party/devtools/node_modules/karma-typescript/node_modules/async/nextTick.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/nextTick.js
rename to src/third_party/devtools/node_modules/karma-typescript/node_modules/async/nextTick.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/package.json b/src/third_party/devtools/node_modules/karma-typescript/node_modules/async/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/package.json
rename to src/third_party/devtools/node_modules/karma-typescript/node_modules/async/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/parallel.js b/src/third_party/devtools/node_modules/karma-typescript/node_modules/async/parallel.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/parallel.js
rename to src/third_party/devtools/node_modules/karma-typescript/node_modules/async/parallel.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/parallelLimit.js b/src/third_party/devtools/node_modules/karma-typescript/node_modules/async/parallelLimit.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/parallelLimit.js
rename to src/third_party/devtools/node_modules/karma-typescript/node_modules/async/parallelLimit.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/priorityQueue.js b/src/third_party/devtools/node_modules/karma-typescript/node_modules/async/priorityQueue.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/priorityQueue.js
rename to src/third_party/devtools/node_modules/karma-typescript/node_modules/async/priorityQueue.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/queue.js b/src/third_party/devtools/node_modules/karma-typescript/node_modules/async/queue.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/queue.js
rename to src/third_party/devtools/node_modules/karma-typescript/node_modules/async/queue.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/race.js b/src/third_party/devtools/node_modules/karma-typescript/node_modules/async/race.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/race.js
rename to src/third_party/devtools/node_modules/karma-typescript/node_modules/async/race.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/reduce.js b/src/third_party/devtools/node_modules/karma-typescript/node_modules/async/reduce.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/reduce.js
rename to src/third_party/devtools/node_modules/karma-typescript/node_modules/async/reduce.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/reduceRight.js b/src/third_party/devtools/node_modules/karma-typescript/node_modules/async/reduceRight.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/reduceRight.js
rename to src/third_party/devtools/node_modules/karma-typescript/node_modules/async/reduceRight.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/reflect.js b/src/third_party/devtools/node_modules/karma-typescript/node_modules/async/reflect.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/reflect.js
rename to src/third_party/devtools/node_modules/karma-typescript/node_modules/async/reflect.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/reflectAll.js b/src/third_party/devtools/node_modules/karma-typescript/node_modules/async/reflectAll.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/reflectAll.js
rename to src/third_party/devtools/node_modules/karma-typescript/node_modules/async/reflectAll.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/reject.js b/src/third_party/devtools/node_modules/karma-typescript/node_modules/async/reject.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/reject.js
rename to src/third_party/devtools/node_modules/karma-typescript/node_modules/async/reject.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/rejectLimit.js b/src/third_party/devtools/node_modules/karma-typescript/node_modules/async/rejectLimit.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/rejectLimit.js
rename to src/third_party/devtools/node_modules/karma-typescript/node_modules/async/rejectLimit.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/rejectSeries.js b/src/third_party/devtools/node_modules/karma-typescript/node_modules/async/rejectSeries.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/rejectSeries.js
rename to src/third_party/devtools/node_modules/karma-typescript/node_modules/async/rejectSeries.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/retry.js b/src/third_party/devtools/node_modules/karma-typescript/node_modules/async/retry.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/retry.js
rename to src/third_party/devtools/node_modules/karma-typescript/node_modules/async/retry.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/retryable.js b/src/third_party/devtools/node_modules/karma-typescript/node_modules/async/retryable.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/retryable.js
rename to src/third_party/devtools/node_modules/karma-typescript/node_modules/async/retryable.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/select.js b/src/third_party/devtools/node_modules/karma-typescript/node_modules/async/select.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/select.js
rename to src/third_party/devtools/node_modules/karma-typescript/node_modules/async/select.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/selectLimit.js b/src/third_party/devtools/node_modules/karma-typescript/node_modules/async/selectLimit.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/selectLimit.js
rename to src/third_party/devtools/node_modules/karma-typescript/node_modules/async/selectLimit.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/selectSeries.js b/src/third_party/devtools/node_modules/karma-typescript/node_modules/async/selectSeries.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/selectSeries.js
rename to src/third_party/devtools/node_modules/karma-typescript/node_modules/async/selectSeries.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/seq.js b/src/third_party/devtools/node_modules/karma-typescript/node_modules/async/seq.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/seq.js
rename to src/third_party/devtools/node_modules/karma-typescript/node_modules/async/seq.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/series.js b/src/third_party/devtools/node_modules/karma-typescript/node_modules/async/series.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/series.js
rename to src/third_party/devtools/node_modules/karma-typescript/node_modules/async/series.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/setImmediate.js b/src/third_party/devtools/node_modules/karma-typescript/node_modules/async/setImmediate.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/setImmediate.js
rename to src/third_party/devtools/node_modules/karma-typescript/node_modules/async/setImmediate.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/some.js b/src/third_party/devtools/node_modules/karma-typescript/node_modules/async/some.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/some.js
rename to src/third_party/devtools/node_modules/karma-typescript/node_modules/async/some.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/someLimit.js b/src/third_party/devtools/node_modules/karma-typescript/node_modules/async/someLimit.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/someLimit.js
rename to src/third_party/devtools/node_modules/karma-typescript/node_modules/async/someLimit.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/someSeries.js b/src/third_party/devtools/node_modules/karma-typescript/node_modules/async/someSeries.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/someSeries.js
rename to src/third_party/devtools/node_modules/karma-typescript/node_modules/async/someSeries.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/sortBy.js b/src/third_party/devtools/node_modules/karma-typescript/node_modules/async/sortBy.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/sortBy.js
rename to src/third_party/devtools/node_modules/karma-typescript/node_modules/async/sortBy.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/timeout.js b/src/third_party/devtools/node_modules/karma-typescript/node_modules/async/timeout.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/timeout.js
rename to src/third_party/devtools/node_modules/karma-typescript/node_modules/async/timeout.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/times.js b/src/third_party/devtools/node_modules/karma-typescript/node_modules/async/times.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/times.js
rename to src/third_party/devtools/node_modules/karma-typescript/node_modules/async/times.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/timesLimit.js b/src/third_party/devtools/node_modules/karma-typescript/node_modules/async/timesLimit.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/timesLimit.js
rename to src/third_party/devtools/node_modules/karma-typescript/node_modules/async/timesLimit.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/timesSeries.js b/src/third_party/devtools/node_modules/karma-typescript/node_modules/async/timesSeries.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/timesSeries.js
rename to src/third_party/devtools/node_modules/karma-typescript/node_modules/async/timesSeries.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/transform.js b/src/third_party/devtools/node_modules/karma-typescript/node_modules/async/transform.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/transform.js
rename to src/third_party/devtools/node_modules/karma-typescript/node_modules/async/transform.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/tryEach.js b/src/third_party/devtools/node_modules/karma-typescript/node_modules/async/tryEach.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/tryEach.js
rename to src/third_party/devtools/node_modules/karma-typescript/node_modules/async/tryEach.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/unmemoize.js b/src/third_party/devtools/node_modules/karma-typescript/node_modules/async/unmemoize.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/unmemoize.js
rename to src/third_party/devtools/node_modules/karma-typescript/node_modules/async/unmemoize.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/until.js b/src/third_party/devtools/node_modules/karma-typescript/node_modules/async/until.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/until.js
rename to src/third_party/devtools/node_modules/karma-typescript/node_modules/async/until.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/waterfall.js b/src/third_party/devtools/node_modules/karma-typescript/node_modules/async/waterfall.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/waterfall.js
rename to src/third_party/devtools/node_modules/karma-typescript/node_modules/async/waterfall.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/whilst.js b/src/third_party/devtools/node_modules/karma-typescript/node_modules/async/whilst.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/whilst.js
rename to src/third_party/devtools/node_modules/karma-typescript/node_modules/async/whilst.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/wrapSync.js b/src/third_party/devtools/node_modules/karma-typescript/node_modules/async/wrapSync.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/async/wrapSync.js
rename to src/third_party/devtools/node_modules/karma-typescript/node_modules/async/wrapSync.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/source-map/CHANGELOG.md b/src/third_party/devtools/node_modules/karma-typescript/node_modules/source-map/CHANGELOG.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/source-map/CHANGELOG.md
rename to src/third_party/devtools/node_modules/karma-typescript/node_modules/source-map/CHANGELOG.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/source-map/LICENSE b/src/third_party/devtools/node_modules/karma-typescript/node_modules/source-map/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/source-map/LICENSE
rename to src/third_party/devtools/node_modules/karma-typescript/node_modules/source-map/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/source-map/README.md b/src/third_party/devtools/node_modules/karma-typescript/node_modules/source-map/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/source-map/README.md
rename to src/third_party/devtools/node_modules/karma-typescript/node_modules/source-map/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/source-map/dist/source-map.js b/src/third_party/devtools/node_modules/karma-typescript/node_modules/source-map/dist/source-map.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/source-map/dist/source-map.js
rename to src/third_party/devtools/node_modules/karma-typescript/node_modules/source-map/dist/source-map.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/source-map/lib/array-set.js b/src/third_party/devtools/node_modules/karma-typescript/node_modules/source-map/lib/array-set.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/source-map/lib/array-set.js
rename to src/third_party/devtools/node_modules/karma-typescript/node_modules/source-map/lib/array-set.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/source-map/lib/base64-vlq.js b/src/third_party/devtools/node_modules/karma-typescript/node_modules/source-map/lib/base64-vlq.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/source-map/lib/base64-vlq.js
rename to src/third_party/devtools/node_modules/karma-typescript/node_modules/source-map/lib/base64-vlq.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/source-map/lib/base64.js b/src/third_party/devtools/node_modules/karma-typescript/node_modules/source-map/lib/base64.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/source-map/lib/base64.js
rename to src/third_party/devtools/node_modules/karma-typescript/node_modules/source-map/lib/base64.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/source-map/lib/binary-search.js b/src/third_party/devtools/node_modules/karma-typescript/node_modules/source-map/lib/binary-search.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/source-map/lib/binary-search.js
rename to src/third_party/devtools/node_modules/karma-typescript/node_modules/source-map/lib/binary-search.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/source-map/lib/mapping-list.js b/src/third_party/devtools/node_modules/karma-typescript/node_modules/source-map/lib/mapping-list.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/source-map/lib/mapping-list.js
rename to src/third_party/devtools/node_modules/karma-typescript/node_modules/source-map/lib/mapping-list.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/source-map/lib/mappings.wasm b/src/third_party/devtools/node_modules/karma-typescript/node_modules/source-map/lib/mappings.wasm
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/source-map/lib/mappings.wasm
rename to src/third_party/devtools/node_modules/karma-typescript/node_modules/source-map/lib/mappings.wasm
Binary files differ
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/source-map/lib/read-wasm.js b/src/third_party/devtools/node_modules/karma-typescript/node_modules/source-map/lib/read-wasm.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/source-map/lib/read-wasm.js
rename to src/third_party/devtools/node_modules/karma-typescript/node_modules/source-map/lib/read-wasm.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/source-map/lib/source-map-consumer.js b/src/third_party/devtools/node_modules/karma-typescript/node_modules/source-map/lib/source-map-consumer.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/source-map/lib/source-map-consumer.js
rename to src/third_party/devtools/node_modules/karma-typescript/node_modules/source-map/lib/source-map-consumer.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/source-map/lib/source-map-generator.js b/src/third_party/devtools/node_modules/karma-typescript/node_modules/source-map/lib/source-map-generator.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/source-map/lib/source-map-generator.js
rename to src/third_party/devtools/node_modules/karma-typescript/node_modules/source-map/lib/source-map-generator.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/source-map/lib/source-node.js b/src/third_party/devtools/node_modules/karma-typescript/node_modules/source-map/lib/source-node.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/source-map/lib/source-node.js
rename to src/third_party/devtools/node_modules/karma-typescript/node_modules/source-map/lib/source-node.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/source-map/lib/util.js b/src/third_party/devtools/node_modules/karma-typescript/node_modules/source-map/lib/util.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/source-map/lib/util.js
rename to src/third_party/devtools/node_modules/karma-typescript/node_modules/source-map/lib/util.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/source-map/lib/wasm.js b/src/third_party/devtools/node_modules/karma-typescript/node_modules/source-map/lib/wasm.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/source-map/lib/wasm.js
rename to src/third_party/devtools/node_modules/karma-typescript/node_modules/source-map/lib/wasm.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/source-map/package.json b/src/third_party/devtools/node_modules/karma-typescript/node_modules/source-map/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/source-map/package.json
rename to src/third_party/devtools/node_modules/karma-typescript/node_modules/source-map/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/source-map/source-map.d.ts b/src/third_party/devtools/node_modules/karma-typescript/node_modules/source-map/source-map.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/source-map/source-map.d.ts
rename to src/third_party/devtools/node_modules/karma-typescript/node_modules/source-map/source-map.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/source-map/source-map.js b/src/third_party/devtools/node_modules/karma-typescript/node_modules/source-map/source-map.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/source-map/source-map.js
rename to src/third_party/devtools/node_modules/karma-typescript/node_modules/source-map/source-map.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/tmp/LICENSE b/src/third_party/devtools/node_modules/karma-typescript/node_modules/tmp/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/tmp/LICENSE
rename to src/third_party/devtools/node_modules/karma-typescript/node_modules/tmp/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/tmp/README.md b/src/third_party/devtools/node_modules/karma-typescript/node_modules/tmp/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/tmp/README.md
rename to src/third_party/devtools/node_modules/karma-typescript/node_modules/tmp/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/tmp/lib/tmp.js b/src/third_party/devtools/node_modules/karma-typescript/node_modules/tmp/lib/tmp.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/tmp/lib/tmp.js
rename to src/third_party/devtools/node_modules/karma-typescript/node_modules/tmp/lib/tmp.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/tmp/package.json b/src/third_party/devtools/node_modules/karma-typescript/node_modules/tmp/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/node_modules/tmp/package.json
rename to src/third_party/devtools/node_modules/karma-typescript/node_modules/tmp/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma-typescript/package.json b/src/third_party/devtools/node_modules/karma-typescript/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma-typescript/package.json
rename to src/third_party/devtools/node_modules/karma-typescript/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma/CHANGELOG.md b/src/third_party/devtools/node_modules/karma/CHANGELOG.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma/CHANGELOG.md
rename to src/third_party/devtools/node_modules/karma/CHANGELOG.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma/CODE_OF_CONDUCT.md b/src/third_party/devtools/node_modules/karma/CODE_OF_CONDUCT.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma/CODE_OF_CONDUCT.md
rename to src/third_party/devtools/node_modules/karma/CODE_OF_CONDUCT.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma/ISSUE_TEMPLATE.md b/src/third_party/devtools/node_modules/karma/ISSUE_TEMPLATE.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma/ISSUE_TEMPLATE.md
rename to src/third_party/devtools/node_modules/karma/ISSUE_TEMPLATE.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma/LICENSE b/src/third_party/devtools/node_modules/karma/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma/LICENSE
rename to src/third_party/devtools/node_modules/karma/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma/PULL_REQUEST_TEMPLATE.md b/src/third_party/devtools/node_modules/karma/PULL_REQUEST_TEMPLATE.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma/PULL_REQUEST_TEMPLATE.md
rename to src/third_party/devtools/node_modules/karma/PULL_REQUEST_TEMPLATE.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma/README.md b/src/third_party/devtools/node_modules/karma/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma/README.md
rename to src/third_party/devtools/node_modules/karma/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma/appveyor.yml b/src/third_party/devtools/node_modules/karma/appveyor.yml
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma/appveyor.yml
rename to src/third_party/devtools/node_modules/karma/appveyor.yml
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma/bin/karma b/src/third_party/devtools/node_modules/karma/bin/karma
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma/bin/karma
rename to src/third_party/devtools/node_modules/karma/bin/karma
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma/common/stringify.js b/src/third_party/devtools/node_modules/karma/common/stringify.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma/common/stringify.js
rename to src/third_party/devtools/node_modules/karma/common/stringify.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma/common/util.js b/src/third_party/devtools/node_modules/karma/common/util.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma/common/util.js
rename to src/third_party/devtools/node_modules/karma/common/util.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma/config.tpl.coffee b/src/third_party/devtools/node_modules/karma/config.tpl.coffee
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma/config.tpl.coffee
rename to src/third_party/devtools/node_modules/karma/config.tpl.coffee
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma/config.tpl.js b/src/third_party/devtools/node_modules/karma/config.tpl.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma/config.tpl.js
rename to src/third_party/devtools/node_modules/karma/config.tpl.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma/config.tpl.ls b/src/third_party/devtools/node_modules/karma/config.tpl.ls
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma/config.tpl.ls
rename to src/third_party/devtools/node_modules/karma/config.tpl.ls
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma/config.tpl.ts b/src/third_party/devtools/node_modules/karma/config.tpl.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma/config.tpl.ts
rename to src/third_party/devtools/node_modules/karma/config.tpl.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma/context/karma.js b/src/third_party/devtools/node_modules/karma/context/karma.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma/context/karma.js
rename to src/third_party/devtools/node_modules/karma/context/karma.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma/context/main.js b/src/third_party/devtools/node_modules/karma/context/main.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma/context/main.js
rename to src/third_party/devtools/node_modules/karma/context/main.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma/gruntfile.js b/src/third_party/devtools/node_modules/karma/gruntfile.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma/gruntfile.js
rename to src/third_party/devtools/node_modules/karma/gruntfile.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma/lib/browser.js b/src/third_party/devtools/node_modules/karma/lib/browser.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma/lib/browser.js
rename to src/third_party/devtools/node_modules/karma/lib/browser.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma/lib/browser_collection.js b/src/third_party/devtools/node_modules/karma/lib/browser_collection.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma/lib/browser_collection.js
rename to src/third_party/devtools/node_modules/karma/lib/browser_collection.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma/lib/browser_result.js b/src/third_party/devtools/node_modules/karma/lib/browser_result.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma/lib/browser_result.js
rename to src/third_party/devtools/node_modules/karma/lib/browser_result.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma/lib/cli.js b/src/third_party/devtools/node_modules/karma/lib/cli.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma/lib/cli.js
rename to src/third_party/devtools/node_modules/karma/lib/cli.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma/lib/completion.js b/src/third_party/devtools/node_modules/karma/lib/completion.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma/lib/completion.js
rename to src/third_party/devtools/node_modules/karma/lib/completion.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma/lib/config.js b/src/third_party/devtools/node_modules/karma/lib/config.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma/lib/config.js
rename to src/third_party/devtools/node_modules/karma/lib/config.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma/lib/constants.js b/src/third_party/devtools/node_modules/karma/lib/constants.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma/lib/constants.js
rename to src/third_party/devtools/node_modules/karma/lib/constants.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma/lib/detached.js b/src/third_party/devtools/node_modules/karma/lib/detached.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma/lib/detached.js
rename to src/third_party/devtools/node_modules/karma/lib/detached.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma/lib/emitter_wrapper.js b/src/third_party/devtools/node_modules/karma/lib/emitter_wrapper.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma/lib/emitter_wrapper.js
rename to src/third_party/devtools/node_modules/karma/lib/emitter_wrapper.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma/lib/events.js b/src/third_party/devtools/node_modules/karma/lib/events.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma/lib/events.js
rename to src/third_party/devtools/node_modules/karma/lib/events.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma/lib/executor.js b/src/third_party/devtools/node_modules/karma/lib/executor.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma/lib/executor.js
rename to src/third_party/devtools/node_modules/karma/lib/executor.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma/lib/file-list.js b/src/third_party/devtools/node_modules/karma/lib/file-list.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma/lib/file-list.js
rename to src/third_party/devtools/node_modules/karma/lib/file-list.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma/lib/file.js b/src/third_party/devtools/node_modules/karma/lib/file.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma/lib/file.js
rename to src/third_party/devtools/node_modules/karma/lib/file.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma/lib/helper.js b/src/third_party/devtools/node_modules/karma/lib/helper.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma/lib/helper.js
rename to src/third_party/devtools/node_modules/karma/lib/helper.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma/lib/index.js b/src/third_party/devtools/node_modules/karma/lib/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma/lib/index.js
rename to src/third_party/devtools/node_modules/karma/lib/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma/lib/init.js b/src/third_party/devtools/node_modules/karma/lib/init.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma/lib/init.js
rename to src/third_party/devtools/node_modules/karma/lib/init.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma/lib/init/color_schemes.js b/src/third_party/devtools/node_modules/karma/lib/init/color_schemes.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma/lib/init/color_schemes.js
rename to src/third_party/devtools/node_modules/karma/lib/init/color_schemes.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma/lib/init/formatters.js b/src/third_party/devtools/node_modules/karma/lib/init/formatters.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma/lib/init/formatters.js
rename to src/third_party/devtools/node_modules/karma/lib/init/formatters.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma/lib/init/log-queue.js b/src/third_party/devtools/node_modules/karma/lib/init/log-queue.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma/lib/init/log-queue.js
rename to src/third_party/devtools/node_modules/karma/lib/init/log-queue.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma/lib/init/state_machine.js b/src/third_party/devtools/node_modules/karma/lib/init/state_machine.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma/lib/init/state_machine.js
rename to src/third_party/devtools/node_modules/karma/lib/init/state_machine.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma/lib/launcher.js b/src/third_party/devtools/node_modules/karma/lib/launcher.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma/lib/launcher.js
rename to src/third_party/devtools/node_modules/karma/lib/launcher.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma/lib/launchers/base.js b/src/third_party/devtools/node_modules/karma/lib/launchers/base.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma/lib/launchers/base.js
rename to src/third_party/devtools/node_modules/karma/lib/launchers/base.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma/lib/launchers/capture_timeout.js b/src/third_party/devtools/node_modules/karma/lib/launchers/capture_timeout.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma/lib/launchers/capture_timeout.js
rename to src/third_party/devtools/node_modules/karma/lib/launchers/capture_timeout.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma/lib/launchers/process.js b/src/third_party/devtools/node_modules/karma/lib/launchers/process.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma/lib/launchers/process.js
rename to src/third_party/devtools/node_modules/karma/lib/launchers/process.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma/lib/launchers/retry.js b/src/third_party/devtools/node_modules/karma/lib/launchers/retry.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma/lib/launchers/retry.js
rename to src/third_party/devtools/node_modules/karma/lib/launchers/retry.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma/lib/logger.js b/src/third_party/devtools/node_modules/karma/lib/logger.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma/lib/logger.js
rename to src/third_party/devtools/node_modules/karma/lib/logger.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma/lib/middleware/common.js b/src/third_party/devtools/node_modules/karma/lib/middleware/common.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma/lib/middleware/common.js
rename to src/third_party/devtools/node_modules/karma/lib/middleware/common.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma/lib/middleware/karma.js b/src/third_party/devtools/node_modules/karma/lib/middleware/karma.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma/lib/middleware/karma.js
rename to src/third_party/devtools/node_modules/karma/lib/middleware/karma.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma/lib/middleware/proxy.js b/src/third_party/devtools/node_modules/karma/lib/middleware/proxy.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma/lib/middleware/proxy.js
rename to src/third_party/devtools/node_modules/karma/lib/middleware/proxy.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma/lib/middleware/runner.js b/src/third_party/devtools/node_modules/karma/lib/middleware/runner.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma/lib/middleware/runner.js
rename to src/third_party/devtools/node_modules/karma/lib/middleware/runner.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma/lib/middleware/source_files.js b/src/third_party/devtools/node_modules/karma/lib/middleware/source_files.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma/lib/middleware/source_files.js
rename to src/third_party/devtools/node_modules/karma/lib/middleware/source_files.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma/lib/middleware/stopper.js b/src/third_party/devtools/node_modules/karma/lib/middleware/stopper.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma/lib/middleware/stopper.js
rename to src/third_party/devtools/node_modules/karma/lib/middleware/stopper.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma/lib/middleware/strip_host.js b/src/third_party/devtools/node_modules/karma/lib/middleware/strip_host.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma/lib/middleware/strip_host.js
rename to src/third_party/devtools/node_modules/karma/lib/middleware/strip_host.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma/lib/plugin.js b/src/third_party/devtools/node_modules/karma/lib/plugin.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma/lib/plugin.js
rename to src/third_party/devtools/node_modules/karma/lib/plugin.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma/lib/preprocessor.js b/src/third_party/devtools/node_modules/karma/lib/preprocessor.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma/lib/preprocessor.js
rename to src/third_party/devtools/node_modules/karma/lib/preprocessor.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma/lib/reporter.js b/src/third_party/devtools/node_modules/karma/lib/reporter.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma/lib/reporter.js
rename to src/third_party/devtools/node_modules/karma/lib/reporter.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma/lib/reporters/base.js b/src/third_party/devtools/node_modules/karma/lib/reporters/base.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma/lib/reporters/base.js
rename to src/third_party/devtools/node_modules/karma/lib/reporters/base.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma/lib/reporters/base_color.js b/src/third_party/devtools/node_modules/karma/lib/reporters/base_color.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma/lib/reporters/base_color.js
rename to src/third_party/devtools/node_modules/karma/lib/reporters/base_color.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma/lib/reporters/dots.js b/src/third_party/devtools/node_modules/karma/lib/reporters/dots.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma/lib/reporters/dots.js
rename to src/third_party/devtools/node_modules/karma/lib/reporters/dots.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma/lib/reporters/dots_color.js b/src/third_party/devtools/node_modules/karma/lib/reporters/dots_color.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma/lib/reporters/dots_color.js
rename to src/third_party/devtools/node_modules/karma/lib/reporters/dots_color.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma/lib/reporters/multi.js b/src/third_party/devtools/node_modules/karma/lib/reporters/multi.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma/lib/reporters/multi.js
rename to src/third_party/devtools/node_modules/karma/lib/reporters/multi.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma/lib/reporters/progress.js b/src/third_party/devtools/node_modules/karma/lib/reporters/progress.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma/lib/reporters/progress.js
rename to src/third_party/devtools/node_modules/karma/lib/reporters/progress.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma/lib/reporters/progress_color.js b/src/third_party/devtools/node_modules/karma/lib/reporters/progress_color.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma/lib/reporters/progress_color.js
rename to src/third_party/devtools/node_modules/karma/lib/reporters/progress_color.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma/lib/runner.js b/src/third_party/devtools/node_modules/karma/lib/runner.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma/lib/runner.js
rename to src/third_party/devtools/node_modules/karma/lib/runner.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma/lib/server.js b/src/third_party/devtools/node_modules/karma/lib/server.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma/lib/server.js
rename to src/third_party/devtools/node_modules/karma/lib/server.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma/lib/stopper.js b/src/third_party/devtools/node_modules/karma/lib/stopper.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma/lib/stopper.js
rename to src/third_party/devtools/node_modules/karma/lib/stopper.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma/lib/temp_dir.js b/src/third_party/devtools/node_modules/karma/lib/temp_dir.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma/lib/temp_dir.js
rename to src/third_party/devtools/node_modules/karma/lib/temp_dir.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma/lib/url.js b/src/third_party/devtools/node_modules/karma/lib/url.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma/lib/url.js
rename to src/third_party/devtools/node_modules/karma/lib/url.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma/lib/utils/bundle-utils.js b/src/third_party/devtools/node_modules/karma/lib/utils/bundle-utils.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma/lib/utils/bundle-utils.js
rename to src/third_party/devtools/node_modules/karma/lib/utils/bundle-utils.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma/lib/utils/crypto-utils.js b/src/third_party/devtools/node_modules/karma/lib/utils/crypto-utils.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma/lib/utils/crypto-utils.js
rename to src/third_party/devtools/node_modules/karma/lib/utils/crypto-utils.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma/lib/utils/file-utils.js b/src/third_party/devtools/node_modules/karma/lib/utils/file-utils.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma/lib/utils/file-utils.js
rename to src/third_party/devtools/node_modules/karma/lib/utils/file-utils.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma/lib/utils/json-utils.js b/src/third_party/devtools/node_modules/karma/lib/utils/json-utils.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma/lib/utils/json-utils.js
rename to src/third_party/devtools/node_modules/karma/lib/utils/json-utils.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma/lib/utils/net-utils.js b/src/third_party/devtools/node_modules/karma/lib/utils/net-utils.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma/lib/utils/net-utils.js
rename to src/third_party/devtools/node_modules/karma/lib/utils/net-utils.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma/lib/utils/path-utils.js b/src/third_party/devtools/node_modules/karma/lib/utils/path-utils.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma/lib/utils/path-utils.js
rename to src/third_party/devtools/node_modules/karma/lib/utils/path-utils.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma/lib/utils/pattern-utils.js b/src/third_party/devtools/node_modules/karma/lib/utils/pattern-utils.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma/lib/utils/pattern-utils.js
rename to src/third_party/devtools/node_modules/karma/lib/utils/pattern-utils.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma/lib/watcher.js b/src/third_party/devtools/node_modules/karma/lib/watcher.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma/lib/watcher.js
rename to src/third_party/devtools/node_modules/karma/lib/watcher.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma/lib/web-server.js b/src/third_party/devtools/node_modules/karma/lib/web-server.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma/lib/web-server.js
rename to src/third_party/devtools/node_modules/karma/lib/web-server.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma/package.json b/src/third_party/devtools/node_modules/karma/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma/package.json
rename to src/third_party/devtools/node_modules/karma/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma/requirejs.config.tpl.coffee b/src/third_party/devtools/node_modules/karma/requirejs.config.tpl.coffee
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma/requirejs.config.tpl.coffee
rename to src/third_party/devtools/node_modules/karma/requirejs.config.tpl.coffee
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma/requirejs.config.tpl.js b/src/third_party/devtools/node_modules/karma/requirejs.config.tpl.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma/requirejs.config.tpl.js
rename to src/third_party/devtools/node_modules/karma/requirejs.config.tpl.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma/scripts/integration-tests.sh b/src/third_party/devtools/node_modules/karma/scripts/integration-tests.sh
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma/scripts/integration-tests.sh
rename to src/third_party/devtools/node_modules/karma/scripts/integration-tests.sh
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma/scripts/karma-completion.sh b/src/third_party/devtools/node_modules/karma/scripts/karma-completion.sh
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma/scripts/karma-completion.sh
rename to src/third_party/devtools/node_modules/karma/scripts/karma-completion.sh
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma/scripts/validate-commit-msg.sh b/src/third_party/devtools/node_modules/karma/scripts/validate-commit-msg.sh
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma/scripts/validate-commit-msg.sh
rename to src/third_party/devtools/node_modules/karma/scripts/validate-commit-msg.sh
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma/static/client.html b/src/third_party/devtools/node_modules/karma/static/client.html
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma/static/client.html
rename to src/third_party/devtools/node_modules/karma/static/client.html
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma/static/client_with_context.html b/src/third_party/devtools/node_modules/karma/static/client_with_context.html
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma/static/client_with_context.html
rename to src/third_party/devtools/node_modules/karma/static/client_with_context.html
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma/static/context.html b/src/third_party/devtools/node_modules/karma/static/context.html
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma/static/context.html
rename to src/third_party/devtools/node_modules/karma/static/context.html
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma/static/context.js b/src/third_party/devtools/node_modules/karma/static/context.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma/static/context.js
rename to src/third_party/devtools/node_modules/karma/static/context.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma/static/debug.html b/src/third_party/devtools/node_modules/karma/static/debug.html
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma/static/debug.html
rename to src/third_party/devtools/node_modules/karma/static/debug.html
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma/static/debug.js b/src/third_party/devtools/node_modules/karma/static/debug.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma/static/debug.js
rename to src/third_party/devtools/node_modules/karma/static/debug.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma/static/favicon.ico b/src/third_party/devtools/node_modules/karma/static/favicon.ico
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma/static/favicon.ico
rename to src/third_party/devtools/node_modules/karma/static/favicon.ico
Binary files differ
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma/static/karma.js b/src/third_party/devtools/node_modules/karma/static/karma.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma/static/karma.js
rename to src/third_party/devtools/node_modules/karma/static/karma.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma/wallaby.js b/src/third_party/devtools/node_modules/karma/wallaby.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma/wallaby.js
rename to src/third_party/devtools/node_modules/karma/wallaby.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/karma/yarn.lock b/src/third_party/devtools/node_modules/karma/yarn.lock
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/karma/yarn.lock
rename to src/third_party/devtools/node_modules/karma/yarn.lock
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lcid/index.js b/src/third_party/devtools/node_modules/lcid/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lcid/index.js
rename to src/third_party/devtools/node_modules/lcid/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lcid/lcid.json b/src/third_party/devtools/node_modules/lcid/lcid.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lcid/lcid.json
rename to src/third_party/devtools/node_modules/lcid/lcid.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lcid/license b/src/third_party/devtools/node_modules/lcid/license
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lcid/license
rename to src/third_party/devtools/node_modules/lcid/license
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lcid/package.json b/src/third_party/devtools/node_modules/lcid/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lcid/package.json
rename to src/third_party/devtools/node_modules/lcid/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lcid/readme.md b/src/third_party/devtools/node_modules/lcid/readme.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lcid/readme.md
rename to src/third_party/devtools/node_modules/lcid/readme.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/levn/LICENSE b/src/third_party/devtools/node_modules/levn/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/levn/LICENSE
rename to src/third_party/devtools/node_modules/levn/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/levn/README.md b/src/third_party/devtools/node_modules/levn/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/levn/README.md
rename to src/third_party/devtools/node_modules/levn/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/levn/lib/cast.js b/src/third_party/devtools/node_modules/levn/lib/cast.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/levn/lib/cast.js
rename to src/third_party/devtools/node_modules/levn/lib/cast.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/levn/lib/coerce.js b/src/third_party/devtools/node_modules/levn/lib/coerce.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/levn/lib/coerce.js
rename to src/third_party/devtools/node_modules/levn/lib/coerce.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/levn/lib/index.js b/src/third_party/devtools/node_modules/levn/lib/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/levn/lib/index.js
rename to src/third_party/devtools/node_modules/levn/lib/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/levn/lib/parse-string.js b/src/third_party/devtools/node_modules/levn/lib/parse-string.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/levn/lib/parse-string.js
rename to src/third_party/devtools/node_modules/levn/lib/parse-string.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/levn/lib/parse.js b/src/third_party/devtools/node_modules/levn/lib/parse.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/levn/lib/parse.js
rename to src/third_party/devtools/node_modules/levn/lib/parse.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/levn/package.json b/src/third_party/devtools/node_modules/levn/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/levn/package.json
rename to src/third_party/devtools/node_modules/levn/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/license-checker/.eslintignore b/src/third_party/devtools/node_modules/license-checker/.eslintignore
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/license-checker/.eslintignore
rename to src/third_party/devtools/node_modules/license-checker/.eslintignore
diff --git a/src/cobalt/debug/remote/devtools/node_modules/license-checker/.eslintrc.json b/src/third_party/devtools/node_modules/license-checker/.eslintrc.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/license-checker/.eslintrc.json
rename to src/third_party/devtools/node_modules/license-checker/.eslintrc.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/license-checker/.istanbul.yml b/src/third_party/devtools/node_modules/license-checker/.istanbul.yml
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/license-checker/.istanbul.yml
rename to src/third_party/devtools/node_modules/license-checker/.istanbul.yml
diff --git a/src/cobalt/debug/remote/devtools/node_modules/license-checker/.travis.yml b/src/third_party/devtools/node_modules/license-checker/.travis.yml
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/license-checker/.travis.yml
rename to src/third_party/devtools/node_modules/license-checker/.travis.yml
diff --git a/src/cobalt/debug/remote/devtools/node_modules/license-checker/CHANGELOG.md b/src/third_party/devtools/node_modules/license-checker/CHANGELOG.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/license-checker/CHANGELOG.md
rename to src/third_party/devtools/node_modules/license-checker/CHANGELOG.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/license-checker/LICENSE b/src/third_party/devtools/node_modules/license-checker/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/license-checker/LICENSE
rename to src/third_party/devtools/node_modules/license-checker/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/license-checker/README.md b/src/third_party/devtools/node_modules/license-checker/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/license-checker/README.md
rename to src/third_party/devtools/node_modules/license-checker/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/license-checker/bin/license-checker b/src/third_party/devtools/node_modules/license-checker/bin/license-checker
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/license-checker/bin/license-checker
rename to src/third_party/devtools/node_modules/license-checker/bin/license-checker
diff --git a/src/cobalt/debug/remote/devtools/node_modules/license-checker/customFormatExample.json b/src/third_party/devtools/node_modules/license-checker/customFormatExample.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/license-checker/customFormatExample.json
rename to src/third_party/devtools/node_modules/license-checker/customFormatExample.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/license-checker/lib/args.js b/src/third_party/devtools/node_modules/license-checker/lib/args.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/license-checker/lib/args.js
rename to src/third_party/devtools/node_modules/license-checker/lib/args.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/license-checker/lib/index.js b/src/third_party/devtools/node_modules/license-checker/lib/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/license-checker/lib/index.js
rename to src/third_party/devtools/node_modules/license-checker/lib/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/license-checker/lib/license-files.js b/src/third_party/devtools/node_modules/license-checker/lib/license-files.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/license-checker/lib/license-files.js
rename to src/third_party/devtools/node_modules/license-checker/lib/license-files.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/license-checker/lib/license.js b/src/third_party/devtools/node_modules/license-checker/lib/license.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/license-checker/lib/license.js
rename to src/third_party/devtools/node_modules/license-checker/lib/license.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/license-checker/lib/stack.js b/src/third_party/devtools/node_modules/license-checker/lib/stack.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/license-checker/lib/stack.js
rename to src/third_party/devtools/node_modules/license-checker/lib/stack.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/license-checker/node_modules/.bin/nopt b/src/third_party/devtools/node_modules/license-checker/node_modules/.bin/nopt
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/license-checker/node_modules/.bin/nopt
rename to src/third_party/devtools/node_modules/license-checker/node_modules/.bin/nopt
diff --git a/src/cobalt/debug/remote/devtools/node_modules/license-checker/node_modules/debug/CHANGELOG.md b/src/third_party/devtools/node_modules/license-checker/node_modules/debug/CHANGELOG.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/license-checker/node_modules/debug/CHANGELOG.md
rename to src/third_party/devtools/node_modules/license-checker/node_modules/debug/CHANGELOG.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/license-checker/node_modules/debug/LICENSE b/src/third_party/devtools/node_modules/license-checker/node_modules/debug/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/license-checker/node_modules/debug/LICENSE
rename to src/third_party/devtools/node_modules/license-checker/node_modules/debug/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/license-checker/node_modules/debug/README.md b/src/third_party/devtools/node_modules/license-checker/node_modules/debug/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/license-checker/node_modules/debug/README.md
rename to src/third_party/devtools/node_modules/license-checker/node_modules/debug/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/license-checker/node_modules/debug/dist/debug.js b/src/third_party/devtools/node_modules/license-checker/node_modules/debug/dist/debug.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/license-checker/node_modules/debug/dist/debug.js
rename to src/third_party/devtools/node_modules/license-checker/node_modules/debug/dist/debug.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/license-checker/node_modules/debug/node.js b/src/third_party/devtools/node_modules/license-checker/node_modules/debug/node.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/license-checker/node_modules/debug/node.js
rename to src/third_party/devtools/node_modules/license-checker/node_modules/debug/node.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/license-checker/node_modules/debug/package.json b/src/third_party/devtools/node_modules/license-checker/node_modules/debug/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/license-checker/node_modules/debug/package.json
rename to src/third_party/devtools/node_modules/license-checker/node_modules/debug/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/license-checker/node_modules/debug/src/browser.js b/src/third_party/devtools/node_modules/license-checker/node_modules/debug/src/browser.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/license-checker/node_modules/debug/src/browser.js
rename to src/third_party/devtools/node_modules/license-checker/node_modules/debug/src/browser.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/license-checker/node_modules/debug/src/common.js b/src/third_party/devtools/node_modules/license-checker/node_modules/debug/src/common.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/license-checker/node_modules/debug/src/common.js
rename to src/third_party/devtools/node_modules/license-checker/node_modules/debug/src/common.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/license-checker/node_modules/debug/src/index.js b/src/third_party/devtools/node_modules/license-checker/node_modules/debug/src/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/license-checker/node_modules/debug/src/index.js
rename to src/third_party/devtools/node_modules/license-checker/node_modules/debug/src/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/license-checker/node_modules/debug/src/node.js b/src/third_party/devtools/node_modules/license-checker/node_modules/debug/src/node.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/license-checker/node_modules/debug/src/node.js
rename to src/third_party/devtools/node_modules/license-checker/node_modules/debug/src/node.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/license-checker/node_modules/nopt/.npmignore b/src/third_party/devtools/node_modules/license-checker/node_modules/nopt/.npmignore
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/license-checker/node_modules/nopt/.npmignore
rename to src/third_party/devtools/node_modules/license-checker/node_modules/nopt/.npmignore
diff --git a/src/cobalt/debug/remote/devtools/node_modules/license-checker/node_modules/nopt/.travis.yml b/src/third_party/devtools/node_modules/license-checker/node_modules/nopt/.travis.yml
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/license-checker/node_modules/nopt/.travis.yml
rename to src/third_party/devtools/node_modules/license-checker/node_modules/nopt/.travis.yml
diff --git a/src/cobalt/debug/remote/devtools/node_modules/license-checker/node_modules/nopt/CHANGELOG.md b/src/third_party/devtools/node_modules/license-checker/node_modules/nopt/CHANGELOG.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/license-checker/node_modules/nopt/CHANGELOG.md
rename to src/third_party/devtools/node_modules/license-checker/node_modules/nopt/CHANGELOG.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/license-checker/node_modules/nopt/LICENSE b/src/third_party/devtools/node_modules/license-checker/node_modules/nopt/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/license-checker/node_modules/nopt/LICENSE
rename to src/third_party/devtools/node_modules/license-checker/node_modules/nopt/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/license-checker/node_modules/nopt/README.md b/src/third_party/devtools/node_modules/license-checker/node_modules/nopt/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/license-checker/node_modules/nopt/README.md
rename to src/third_party/devtools/node_modules/license-checker/node_modules/nopt/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/license-checker/node_modules/nopt/bin/nopt.js b/src/third_party/devtools/node_modules/license-checker/node_modules/nopt/bin/nopt.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/license-checker/node_modules/nopt/bin/nopt.js
rename to src/third_party/devtools/node_modules/license-checker/node_modules/nopt/bin/nopt.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/license-checker/node_modules/nopt/examples/my-program.js b/src/third_party/devtools/node_modules/license-checker/node_modules/nopt/examples/my-program.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/license-checker/node_modules/nopt/examples/my-program.js
rename to src/third_party/devtools/node_modules/license-checker/node_modules/nopt/examples/my-program.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/license-checker/node_modules/nopt/lib/nopt.js b/src/third_party/devtools/node_modules/license-checker/node_modules/nopt/lib/nopt.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/license-checker/node_modules/nopt/lib/nopt.js
rename to src/third_party/devtools/node_modules/license-checker/node_modules/nopt/lib/nopt.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/license-checker/node_modules/nopt/package.json b/src/third_party/devtools/node_modules/license-checker/node_modules/nopt/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/license-checker/node_modules/nopt/package.json
rename to src/third_party/devtools/node_modules/license-checker/node_modules/nopt/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/license-checker/node_modules/nopt/test/basic.js b/src/third_party/devtools/node_modules/license-checker/node_modules/nopt/test/basic.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/license-checker/node_modules/nopt/test/basic.js
rename to src/third_party/devtools/node_modules/license-checker/node_modules/nopt/test/basic.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/license-checker/package.json b/src/third_party/devtools/node_modules/license-checker/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/license-checker/package.json
rename to src/third_party/devtools/node_modules/license-checker/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/license-checker/scripts/contrib.js b/src/third_party/devtools/node_modules/license-checker/scripts/contrib.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/license-checker/scripts/contrib.js
rename to src/third_party/devtools/node_modules/license-checker/scripts/contrib.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/license-checker/tests/.eslintrc.json b/src/third_party/devtools/node_modules/license-checker/tests/.eslintrc.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/license-checker/tests/.eslintrc.json
rename to src/third_party/devtools/node_modules/license-checker/tests/.eslintrc.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/license-checker/tests/bin-test.js b/src/third_party/devtools/node_modules/license-checker/tests/bin-test.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/license-checker/tests/bin-test.js
rename to src/third_party/devtools/node_modules/license-checker/tests/bin-test.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/license-checker/tests/config/custom_format_broken.json b/src/third_party/devtools/node_modules/license-checker/tests/config/custom_format_broken.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/license-checker/tests/config/custom_format_broken.json
rename to src/third_party/devtools/node_modules/license-checker/tests/config/custom_format_broken.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/license-checker/tests/config/custom_format_correct.json b/src/third_party/devtools/node_modules/license-checker/tests/config/custom_format_correct.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/license-checker/tests/config/custom_format_correct.json
rename to src/third_party/devtools/node_modules/license-checker/tests/config/custom_format_correct.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/license-checker/tests/failOn-test.js b/src/third_party/devtools/node_modules/license-checker/tests/failOn-test.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/license-checker/tests/failOn-test.js
rename to src/third_party/devtools/node_modules/license-checker/tests/failOn-test.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/license-checker/tests/fixtures/custom-license-file/package.json b/src/third_party/devtools/node_modules/license-checker/tests/fixtures/custom-license-file/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/license-checker/tests/fixtures/custom-license-file/package.json
rename to src/third_party/devtools/node_modules/license-checker/tests/fixtures/custom-license-file/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/license-checker/tests/fixtures/custom-license-url/package.json b/src/third_party/devtools/node_modules/license-checker/tests/fixtures/custom-license-url/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/license-checker/tests/fixtures/custom-license-url/package.json
rename to src/third_party/devtools/node_modules/license-checker/tests/fixtures/custom-license-url/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/license-checker/tests/fixtures/excludeBSD/package.json b/src/third_party/devtools/node_modules/license-checker/tests/fixtures/excludeBSD/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/license-checker/tests/fixtures/excludeBSD/package.json
rename to src/third_party/devtools/node_modules/license-checker/tests/fixtures/excludeBSD/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/license-checker/tests/fixtures/excludePublicDomain/package.json b/src/third_party/devtools/node_modules/license-checker/tests/fixtures/excludePublicDomain/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/license-checker/tests/fixtures/excludePublicDomain/package.json
rename to src/third_party/devtools/node_modules/license-checker/tests/fixtures/excludePublicDomain/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/license-checker/tests/fixtures/excludeWithComma/package.json b/src/third_party/devtools/node_modules/license-checker/tests/fixtures/excludeWithComma/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/license-checker/tests/fixtures/excludeWithComma/package.json
rename to src/third_party/devtools/node_modules/license-checker/tests/fixtures/excludeWithComma/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/license-checker/tests/fixtures/privateModule/README.md b/src/third_party/devtools/node_modules/license-checker/tests/fixtures/privateModule/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/license-checker/tests/fixtures/privateModule/README.md
rename to src/third_party/devtools/node_modules/license-checker/tests/fixtures/privateModule/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/license-checker/tests/fixtures/privateModule/package.json b/src/third_party/devtools/node_modules/license-checker/tests/fixtures/privateModule/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/license-checker/tests/fixtures/privateModule/package.json
rename to src/third_party/devtools/node_modules/license-checker/tests/fixtures/privateModule/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/license-checker/tests/license-files-test.js b/src/third_party/devtools/node_modules/license-checker/tests/license-files-test.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/license-checker/tests/license-files-test.js
rename to src/third_party/devtools/node_modules/license-checker/tests/license-files-test.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/license-checker/tests/license.js b/src/third_party/devtools/node_modules/license-checker/tests/license.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/license-checker/tests/license.js
rename to src/third_party/devtools/node_modules/license-checker/tests/license.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/license-checker/tests/packages-test.js b/src/third_party/devtools/node_modules/license-checker/tests/packages-test.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/license-checker/tests/packages-test.js
rename to src/third_party/devtools/node_modules/license-checker/tests/packages-test.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/license-checker/tests/test.js b/src/third_party/devtools/node_modules/license-checker/tests/test.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/license-checker/tests/test.js
rename to src/third_party/devtools/node_modules/license-checker/tests/test.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/load-json-file/index.js b/src/third_party/devtools/node_modules/load-json-file/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/load-json-file/index.js
rename to src/third_party/devtools/node_modules/load-json-file/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/load-json-file/license b/src/third_party/devtools/node_modules/load-json-file/license
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/load-json-file/license
rename to src/third_party/devtools/node_modules/load-json-file/license
diff --git a/src/cobalt/debug/remote/devtools/node_modules/load-json-file/node_modules/pify/index.js b/src/third_party/devtools/node_modules/load-json-file/node_modules/pify/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/load-json-file/node_modules/pify/index.js
rename to src/third_party/devtools/node_modules/load-json-file/node_modules/pify/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/load-json-file/node_modules/pify/license b/src/third_party/devtools/node_modules/load-json-file/node_modules/pify/license
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/load-json-file/node_modules/pify/license
rename to src/third_party/devtools/node_modules/load-json-file/node_modules/pify/license
diff --git a/src/cobalt/debug/remote/devtools/node_modules/load-json-file/node_modules/pify/package.json b/src/third_party/devtools/node_modules/load-json-file/node_modules/pify/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/load-json-file/node_modules/pify/package.json
rename to src/third_party/devtools/node_modules/load-json-file/node_modules/pify/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/load-json-file/node_modules/pify/readme.md b/src/third_party/devtools/node_modules/load-json-file/node_modules/pify/readme.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/load-json-file/node_modules/pify/readme.md
rename to src/third_party/devtools/node_modules/load-json-file/node_modules/pify/readme.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/load-json-file/node_modules/strip-bom/index.js b/src/third_party/devtools/node_modules/load-json-file/node_modules/strip-bom/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/load-json-file/node_modules/strip-bom/index.js
rename to src/third_party/devtools/node_modules/load-json-file/node_modules/strip-bom/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/load-json-file/node_modules/strip-bom/license b/src/third_party/devtools/node_modules/load-json-file/node_modules/strip-bom/license
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/load-json-file/node_modules/strip-bom/license
rename to src/third_party/devtools/node_modules/load-json-file/node_modules/strip-bom/license
diff --git a/src/cobalt/debug/remote/devtools/node_modules/load-json-file/node_modules/strip-bom/package.json b/src/third_party/devtools/node_modules/load-json-file/node_modules/strip-bom/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/load-json-file/node_modules/strip-bom/package.json
rename to src/third_party/devtools/node_modules/load-json-file/node_modules/strip-bom/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/load-json-file/node_modules/strip-bom/readme.md b/src/third_party/devtools/node_modules/load-json-file/node_modules/strip-bom/readme.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/load-json-file/node_modules/strip-bom/readme.md
rename to src/third_party/devtools/node_modules/load-json-file/node_modules/strip-bom/readme.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/load-json-file/package.json b/src/third_party/devtools/node_modules/load-json-file/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/load-json-file/package.json
rename to src/third_party/devtools/node_modules/load-json-file/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/load-json-file/readme.md b/src/third_party/devtools/node_modules/load-json-file/readme.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/load-json-file/readme.md
rename to src/third_party/devtools/node_modules/load-json-file/readme.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/locate-path/index.js b/src/third_party/devtools/node_modules/locate-path/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/locate-path/index.js
rename to src/third_party/devtools/node_modules/locate-path/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/locate-path/license b/src/third_party/devtools/node_modules/locate-path/license
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/locate-path/license
rename to src/third_party/devtools/node_modules/locate-path/license
diff --git a/src/cobalt/debug/remote/devtools/node_modules/locate-path/node_modules/path-exists/index.js b/src/third_party/devtools/node_modules/locate-path/node_modules/path-exists/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/locate-path/node_modules/path-exists/index.js
rename to src/third_party/devtools/node_modules/locate-path/node_modules/path-exists/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/locate-path/node_modules/path-exists/license b/src/third_party/devtools/node_modules/locate-path/node_modules/path-exists/license
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/locate-path/node_modules/path-exists/license
rename to src/third_party/devtools/node_modules/locate-path/node_modules/path-exists/license
diff --git a/src/cobalt/debug/remote/devtools/node_modules/locate-path/node_modules/path-exists/package.json b/src/third_party/devtools/node_modules/locate-path/node_modules/path-exists/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/locate-path/node_modules/path-exists/package.json
rename to src/third_party/devtools/node_modules/locate-path/node_modules/path-exists/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/locate-path/node_modules/path-exists/readme.md b/src/third_party/devtools/node_modules/locate-path/node_modules/path-exists/readme.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/locate-path/node_modules/path-exists/readme.md
rename to src/third_party/devtools/node_modules/locate-path/node_modules/path-exists/readme.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/locate-path/package.json b/src/third_party/devtools/node_modules/locate-path/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/locate-path/package.json
rename to src/third_party/devtools/node_modules/locate-path/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/locate-path/readme.md b/src/third_party/devtools/node_modules/locate-path/readme.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/locate-path/readme.md
rename to src/third_party/devtools/node_modules/locate-path/readme.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash.memoize/LICENSE.txt b/src/third_party/devtools/node_modules/lodash.memoize/LICENSE.txt
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash.memoize/LICENSE.txt
rename to src/third_party/devtools/node_modules/lodash.memoize/LICENSE.txt
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash.memoize/README.md b/src/third_party/devtools/node_modules/lodash.memoize/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash.memoize/README.md
rename to src/third_party/devtools/node_modules/lodash.memoize/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash.memoize/index.js b/src/third_party/devtools/node_modules/lodash.memoize/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash.memoize/index.js
rename to src/third_party/devtools/node_modules/lodash.memoize/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash.memoize/package.json b/src/third_party/devtools/node_modules/lodash.memoize/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash.memoize/package.json
rename to src/third_party/devtools/node_modules/lodash.memoize/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/LICENSE b/src/third_party/devtools/node_modules/lodash/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/LICENSE
rename to src/third_party/devtools/node_modules/lodash/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/README.md b/src/third_party/devtools/node_modules/lodash/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/README.md
rename to src/third_party/devtools/node_modules/lodash/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_DataView.js b/src/third_party/devtools/node_modules/lodash/_DataView.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_DataView.js
rename to src/third_party/devtools/node_modules/lodash/_DataView.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_Hash.js b/src/third_party/devtools/node_modules/lodash/_Hash.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_Hash.js
rename to src/third_party/devtools/node_modules/lodash/_Hash.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_LazyWrapper.js b/src/third_party/devtools/node_modules/lodash/_LazyWrapper.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_LazyWrapper.js
rename to src/third_party/devtools/node_modules/lodash/_LazyWrapper.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_ListCache.js b/src/third_party/devtools/node_modules/lodash/_ListCache.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_ListCache.js
rename to src/third_party/devtools/node_modules/lodash/_ListCache.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_LodashWrapper.js b/src/third_party/devtools/node_modules/lodash/_LodashWrapper.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_LodashWrapper.js
rename to src/third_party/devtools/node_modules/lodash/_LodashWrapper.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_Map.js b/src/third_party/devtools/node_modules/lodash/_Map.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_Map.js
rename to src/third_party/devtools/node_modules/lodash/_Map.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_MapCache.js b/src/third_party/devtools/node_modules/lodash/_MapCache.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_MapCache.js
rename to src/third_party/devtools/node_modules/lodash/_MapCache.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_Promise.js b/src/third_party/devtools/node_modules/lodash/_Promise.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_Promise.js
rename to src/third_party/devtools/node_modules/lodash/_Promise.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_Set.js b/src/third_party/devtools/node_modules/lodash/_Set.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_Set.js
rename to src/third_party/devtools/node_modules/lodash/_Set.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_SetCache.js b/src/third_party/devtools/node_modules/lodash/_SetCache.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_SetCache.js
rename to src/third_party/devtools/node_modules/lodash/_SetCache.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_Stack.js b/src/third_party/devtools/node_modules/lodash/_Stack.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_Stack.js
rename to src/third_party/devtools/node_modules/lodash/_Stack.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_Symbol.js b/src/third_party/devtools/node_modules/lodash/_Symbol.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_Symbol.js
rename to src/third_party/devtools/node_modules/lodash/_Symbol.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_Uint8Array.js b/src/third_party/devtools/node_modules/lodash/_Uint8Array.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_Uint8Array.js
rename to src/third_party/devtools/node_modules/lodash/_Uint8Array.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_WeakMap.js b/src/third_party/devtools/node_modules/lodash/_WeakMap.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_WeakMap.js
rename to src/third_party/devtools/node_modules/lodash/_WeakMap.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_apply.js b/src/third_party/devtools/node_modules/lodash/_apply.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_apply.js
rename to src/third_party/devtools/node_modules/lodash/_apply.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_arrayAggregator.js b/src/third_party/devtools/node_modules/lodash/_arrayAggregator.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_arrayAggregator.js
rename to src/third_party/devtools/node_modules/lodash/_arrayAggregator.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_arrayEach.js b/src/third_party/devtools/node_modules/lodash/_arrayEach.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_arrayEach.js
rename to src/third_party/devtools/node_modules/lodash/_arrayEach.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_arrayEachRight.js b/src/third_party/devtools/node_modules/lodash/_arrayEachRight.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_arrayEachRight.js
rename to src/third_party/devtools/node_modules/lodash/_arrayEachRight.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_arrayEvery.js b/src/third_party/devtools/node_modules/lodash/_arrayEvery.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_arrayEvery.js
rename to src/third_party/devtools/node_modules/lodash/_arrayEvery.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_arrayFilter.js b/src/third_party/devtools/node_modules/lodash/_arrayFilter.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_arrayFilter.js
rename to src/third_party/devtools/node_modules/lodash/_arrayFilter.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_arrayIncludes.js b/src/third_party/devtools/node_modules/lodash/_arrayIncludes.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_arrayIncludes.js
rename to src/third_party/devtools/node_modules/lodash/_arrayIncludes.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_arrayIncludesWith.js b/src/third_party/devtools/node_modules/lodash/_arrayIncludesWith.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_arrayIncludesWith.js
rename to src/third_party/devtools/node_modules/lodash/_arrayIncludesWith.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_arrayLikeKeys.js b/src/third_party/devtools/node_modules/lodash/_arrayLikeKeys.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_arrayLikeKeys.js
rename to src/third_party/devtools/node_modules/lodash/_arrayLikeKeys.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_arrayMap.js b/src/third_party/devtools/node_modules/lodash/_arrayMap.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_arrayMap.js
rename to src/third_party/devtools/node_modules/lodash/_arrayMap.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_arrayPush.js b/src/third_party/devtools/node_modules/lodash/_arrayPush.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_arrayPush.js
rename to src/third_party/devtools/node_modules/lodash/_arrayPush.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_arrayReduce.js b/src/third_party/devtools/node_modules/lodash/_arrayReduce.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_arrayReduce.js
rename to src/third_party/devtools/node_modules/lodash/_arrayReduce.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_arrayReduceRight.js b/src/third_party/devtools/node_modules/lodash/_arrayReduceRight.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_arrayReduceRight.js
rename to src/third_party/devtools/node_modules/lodash/_arrayReduceRight.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_arraySample.js b/src/third_party/devtools/node_modules/lodash/_arraySample.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_arraySample.js
rename to src/third_party/devtools/node_modules/lodash/_arraySample.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_arraySampleSize.js b/src/third_party/devtools/node_modules/lodash/_arraySampleSize.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_arraySampleSize.js
rename to src/third_party/devtools/node_modules/lodash/_arraySampleSize.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_arrayShuffle.js b/src/third_party/devtools/node_modules/lodash/_arrayShuffle.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_arrayShuffle.js
rename to src/third_party/devtools/node_modules/lodash/_arrayShuffle.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_arraySome.js b/src/third_party/devtools/node_modules/lodash/_arraySome.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_arraySome.js
rename to src/third_party/devtools/node_modules/lodash/_arraySome.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_asciiSize.js b/src/third_party/devtools/node_modules/lodash/_asciiSize.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_asciiSize.js
rename to src/third_party/devtools/node_modules/lodash/_asciiSize.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_asciiToArray.js b/src/third_party/devtools/node_modules/lodash/_asciiToArray.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_asciiToArray.js
rename to src/third_party/devtools/node_modules/lodash/_asciiToArray.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_asciiWords.js b/src/third_party/devtools/node_modules/lodash/_asciiWords.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_asciiWords.js
rename to src/third_party/devtools/node_modules/lodash/_asciiWords.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_assignMergeValue.js b/src/third_party/devtools/node_modules/lodash/_assignMergeValue.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_assignMergeValue.js
rename to src/third_party/devtools/node_modules/lodash/_assignMergeValue.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_assignValue.js b/src/third_party/devtools/node_modules/lodash/_assignValue.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_assignValue.js
rename to src/third_party/devtools/node_modules/lodash/_assignValue.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_assocIndexOf.js b/src/third_party/devtools/node_modules/lodash/_assocIndexOf.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_assocIndexOf.js
rename to src/third_party/devtools/node_modules/lodash/_assocIndexOf.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_baseAggregator.js b/src/third_party/devtools/node_modules/lodash/_baseAggregator.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_baseAggregator.js
rename to src/third_party/devtools/node_modules/lodash/_baseAggregator.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_baseAssign.js b/src/third_party/devtools/node_modules/lodash/_baseAssign.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_baseAssign.js
rename to src/third_party/devtools/node_modules/lodash/_baseAssign.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_baseAssignIn.js b/src/third_party/devtools/node_modules/lodash/_baseAssignIn.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_baseAssignIn.js
rename to src/third_party/devtools/node_modules/lodash/_baseAssignIn.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_baseAssignValue.js b/src/third_party/devtools/node_modules/lodash/_baseAssignValue.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_baseAssignValue.js
rename to src/third_party/devtools/node_modules/lodash/_baseAssignValue.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_baseAt.js b/src/third_party/devtools/node_modules/lodash/_baseAt.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_baseAt.js
rename to src/third_party/devtools/node_modules/lodash/_baseAt.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_baseClamp.js b/src/third_party/devtools/node_modules/lodash/_baseClamp.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_baseClamp.js
rename to src/third_party/devtools/node_modules/lodash/_baseClamp.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_baseClone.js b/src/third_party/devtools/node_modules/lodash/_baseClone.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_baseClone.js
rename to src/third_party/devtools/node_modules/lodash/_baseClone.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_baseConforms.js b/src/third_party/devtools/node_modules/lodash/_baseConforms.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_baseConforms.js
rename to src/third_party/devtools/node_modules/lodash/_baseConforms.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_baseConformsTo.js b/src/third_party/devtools/node_modules/lodash/_baseConformsTo.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_baseConformsTo.js
rename to src/third_party/devtools/node_modules/lodash/_baseConformsTo.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_baseCreate.js b/src/third_party/devtools/node_modules/lodash/_baseCreate.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_baseCreate.js
rename to src/third_party/devtools/node_modules/lodash/_baseCreate.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_baseDelay.js b/src/third_party/devtools/node_modules/lodash/_baseDelay.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_baseDelay.js
rename to src/third_party/devtools/node_modules/lodash/_baseDelay.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_baseDifference.js b/src/third_party/devtools/node_modules/lodash/_baseDifference.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_baseDifference.js
rename to src/third_party/devtools/node_modules/lodash/_baseDifference.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_baseEach.js b/src/third_party/devtools/node_modules/lodash/_baseEach.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_baseEach.js
rename to src/third_party/devtools/node_modules/lodash/_baseEach.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_baseEachRight.js b/src/third_party/devtools/node_modules/lodash/_baseEachRight.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_baseEachRight.js
rename to src/third_party/devtools/node_modules/lodash/_baseEachRight.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_baseEvery.js b/src/third_party/devtools/node_modules/lodash/_baseEvery.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_baseEvery.js
rename to src/third_party/devtools/node_modules/lodash/_baseEvery.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_baseExtremum.js b/src/third_party/devtools/node_modules/lodash/_baseExtremum.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_baseExtremum.js
rename to src/third_party/devtools/node_modules/lodash/_baseExtremum.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_baseFill.js b/src/third_party/devtools/node_modules/lodash/_baseFill.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_baseFill.js
rename to src/third_party/devtools/node_modules/lodash/_baseFill.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_baseFilter.js b/src/third_party/devtools/node_modules/lodash/_baseFilter.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_baseFilter.js
rename to src/third_party/devtools/node_modules/lodash/_baseFilter.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_baseFindIndex.js b/src/third_party/devtools/node_modules/lodash/_baseFindIndex.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_baseFindIndex.js
rename to src/third_party/devtools/node_modules/lodash/_baseFindIndex.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_baseFindKey.js b/src/third_party/devtools/node_modules/lodash/_baseFindKey.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_baseFindKey.js
rename to src/third_party/devtools/node_modules/lodash/_baseFindKey.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_baseFlatten.js b/src/third_party/devtools/node_modules/lodash/_baseFlatten.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_baseFlatten.js
rename to src/third_party/devtools/node_modules/lodash/_baseFlatten.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_baseFor.js b/src/third_party/devtools/node_modules/lodash/_baseFor.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_baseFor.js
rename to src/third_party/devtools/node_modules/lodash/_baseFor.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_baseForOwn.js b/src/third_party/devtools/node_modules/lodash/_baseForOwn.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_baseForOwn.js
rename to src/third_party/devtools/node_modules/lodash/_baseForOwn.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_baseForOwnRight.js b/src/third_party/devtools/node_modules/lodash/_baseForOwnRight.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_baseForOwnRight.js
rename to src/third_party/devtools/node_modules/lodash/_baseForOwnRight.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_baseForRight.js b/src/third_party/devtools/node_modules/lodash/_baseForRight.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_baseForRight.js
rename to src/third_party/devtools/node_modules/lodash/_baseForRight.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_baseFunctions.js b/src/third_party/devtools/node_modules/lodash/_baseFunctions.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_baseFunctions.js
rename to src/third_party/devtools/node_modules/lodash/_baseFunctions.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_baseGet.js b/src/third_party/devtools/node_modules/lodash/_baseGet.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_baseGet.js
rename to src/third_party/devtools/node_modules/lodash/_baseGet.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_baseGetAllKeys.js b/src/third_party/devtools/node_modules/lodash/_baseGetAllKeys.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_baseGetAllKeys.js
rename to src/third_party/devtools/node_modules/lodash/_baseGetAllKeys.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_baseGetTag.js b/src/third_party/devtools/node_modules/lodash/_baseGetTag.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_baseGetTag.js
rename to src/third_party/devtools/node_modules/lodash/_baseGetTag.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_baseGt.js b/src/third_party/devtools/node_modules/lodash/_baseGt.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_baseGt.js
rename to src/third_party/devtools/node_modules/lodash/_baseGt.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_baseHas.js b/src/third_party/devtools/node_modules/lodash/_baseHas.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_baseHas.js
rename to src/third_party/devtools/node_modules/lodash/_baseHas.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_baseHasIn.js b/src/third_party/devtools/node_modules/lodash/_baseHasIn.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_baseHasIn.js
rename to src/third_party/devtools/node_modules/lodash/_baseHasIn.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_baseInRange.js b/src/third_party/devtools/node_modules/lodash/_baseInRange.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_baseInRange.js
rename to src/third_party/devtools/node_modules/lodash/_baseInRange.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_baseIndexOf.js b/src/third_party/devtools/node_modules/lodash/_baseIndexOf.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_baseIndexOf.js
rename to src/third_party/devtools/node_modules/lodash/_baseIndexOf.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_baseIndexOfWith.js b/src/third_party/devtools/node_modules/lodash/_baseIndexOfWith.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_baseIndexOfWith.js
rename to src/third_party/devtools/node_modules/lodash/_baseIndexOfWith.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_baseIntersection.js b/src/third_party/devtools/node_modules/lodash/_baseIntersection.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_baseIntersection.js
rename to src/third_party/devtools/node_modules/lodash/_baseIntersection.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_baseInverter.js b/src/third_party/devtools/node_modules/lodash/_baseInverter.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_baseInverter.js
rename to src/third_party/devtools/node_modules/lodash/_baseInverter.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_baseInvoke.js b/src/third_party/devtools/node_modules/lodash/_baseInvoke.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_baseInvoke.js
rename to src/third_party/devtools/node_modules/lodash/_baseInvoke.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_baseIsArguments.js b/src/third_party/devtools/node_modules/lodash/_baseIsArguments.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_baseIsArguments.js
rename to src/third_party/devtools/node_modules/lodash/_baseIsArguments.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_baseIsArrayBuffer.js b/src/third_party/devtools/node_modules/lodash/_baseIsArrayBuffer.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_baseIsArrayBuffer.js
rename to src/third_party/devtools/node_modules/lodash/_baseIsArrayBuffer.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_baseIsDate.js b/src/third_party/devtools/node_modules/lodash/_baseIsDate.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_baseIsDate.js
rename to src/third_party/devtools/node_modules/lodash/_baseIsDate.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_baseIsEqual.js b/src/third_party/devtools/node_modules/lodash/_baseIsEqual.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_baseIsEqual.js
rename to src/third_party/devtools/node_modules/lodash/_baseIsEqual.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_baseIsEqualDeep.js b/src/third_party/devtools/node_modules/lodash/_baseIsEqualDeep.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_baseIsEqualDeep.js
rename to src/third_party/devtools/node_modules/lodash/_baseIsEqualDeep.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_baseIsMap.js b/src/third_party/devtools/node_modules/lodash/_baseIsMap.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_baseIsMap.js
rename to src/third_party/devtools/node_modules/lodash/_baseIsMap.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_baseIsMatch.js b/src/third_party/devtools/node_modules/lodash/_baseIsMatch.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_baseIsMatch.js
rename to src/third_party/devtools/node_modules/lodash/_baseIsMatch.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_baseIsNaN.js b/src/third_party/devtools/node_modules/lodash/_baseIsNaN.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_baseIsNaN.js
rename to src/third_party/devtools/node_modules/lodash/_baseIsNaN.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_baseIsNative.js b/src/third_party/devtools/node_modules/lodash/_baseIsNative.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_baseIsNative.js
rename to src/third_party/devtools/node_modules/lodash/_baseIsNative.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_baseIsRegExp.js b/src/third_party/devtools/node_modules/lodash/_baseIsRegExp.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_baseIsRegExp.js
rename to src/third_party/devtools/node_modules/lodash/_baseIsRegExp.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_baseIsSet.js b/src/third_party/devtools/node_modules/lodash/_baseIsSet.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_baseIsSet.js
rename to src/third_party/devtools/node_modules/lodash/_baseIsSet.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_baseIsTypedArray.js b/src/third_party/devtools/node_modules/lodash/_baseIsTypedArray.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_baseIsTypedArray.js
rename to src/third_party/devtools/node_modules/lodash/_baseIsTypedArray.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_baseIteratee.js b/src/third_party/devtools/node_modules/lodash/_baseIteratee.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_baseIteratee.js
rename to src/third_party/devtools/node_modules/lodash/_baseIteratee.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_baseKeys.js b/src/third_party/devtools/node_modules/lodash/_baseKeys.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_baseKeys.js
rename to src/third_party/devtools/node_modules/lodash/_baseKeys.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_baseKeysIn.js b/src/third_party/devtools/node_modules/lodash/_baseKeysIn.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_baseKeysIn.js
rename to src/third_party/devtools/node_modules/lodash/_baseKeysIn.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_baseLodash.js b/src/third_party/devtools/node_modules/lodash/_baseLodash.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_baseLodash.js
rename to src/third_party/devtools/node_modules/lodash/_baseLodash.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_baseLt.js b/src/third_party/devtools/node_modules/lodash/_baseLt.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_baseLt.js
rename to src/third_party/devtools/node_modules/lodash/_baseLt.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_baseMap.js b/src/third_party/devtools/node_modules/lodash/_baseMap.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_baseMap.js
rename to src/third_party/devtools/node_modules/lodash/_baseMap.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_baseMatches.js b/src/third_party/devtools/node_modules/lodash/_baseMatches.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_baseMatches.js
rename to src/third_party/devtools/node_modules/lodash/_baseMatches.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_baseMatchesProperty.js b/src/third_party/devtools/node_modules/lodash/_baseMatchesProperty.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_baseMatchesProperty.js
rename to src/third_party/devtools/node_modules/lodash/_baseMatchesProperty.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_baseMean.js b/src/third_party/devtools/node_modules/lodash/_baseMean.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_baseMean.js
rename to src/third_party/devtools/node_modules/lodash/_baseMean.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_baseMerge.js b/src/third_party/devtools/node_modules/lodash/_baseMerge.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_baseMerge.js
rename to src/third_party/devtools/node_modules/lodash/_baseMerge.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_baseMergeDeep.js b/src/third_party/devtools/node_modules/lodash/_baseMergeDeep.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_baseMergeDeep.js
rename to src/third_party/devtools/node_modules/lodash/_baseMergeDeep.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_baseNth.js b/src/third_party/devtools/node_modules/lodash/_baseNth.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_baseNth.js
rename to src/third_party/devtools/node_modules/lodash/_baseNth.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_baseOrderBy.js b/src/third_party/devtools/node_modules/lodash/_baseOrderBy.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_baseOrderBy.js
rename to src/third_party/devtools/node_modules/lodash/_baseOrderBy.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_basePick.js b/src/third_party/devtools/node_modules/lodash/_basePick.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_basePick.js
rename to src/third_party/devtools/node_modules/lodash/_basePick.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_basePickBy.js b/src/third_party/devtools/node_modules/lodash/_basePickBy.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_basePickBy.js
rename to src/third_party/devtools/node_modules/lodash/_basePickBy.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_baseProperty.js b/src/third_party/devtools/node_modules/lodash/_baseProperty.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_baseProperty.js
rename to src/third_party/devtools/node_modules/lodash/_baseProperty.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_basePropertyDeep.js b/src/third_party/devtools/node_modules/lodash/_basePropertyDeep.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_basePropertyDeep.js
rename to src/third_party/devtools/node_modules/lodash/_basePropertyDeep.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_basePropertyOf.js b/src/third_party/devtools/node_modules/lodash/_basePropertyOf.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_basePropertyOf.js
rename to src/third_party/devtools/node_modules/lodash/_basePropertyOf.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_basePullAll.js b/src/third_party/devtools/node_modules/lodash/_basePullAll.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_basePullAll.js
rename to src/third_party/devtools/node_modules/lodash/_basePullAll.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_basePullAt.js b/src/third_party/devtools/node_modules/lodash/_basePullAt.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_basePullAt.js
rename to src/third_party/devtools/node_modules/lodash/_basePullAt.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_baseRandom.js b/src/third_party/devtools/node_modules/lodash/_baseRandom.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_baseRandom.js
rename to src/third_party/devtools/node_modules/lodash/_baseRandom.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_baseRange.js b/src/third_party/devtools/node_modules/lodash/_baseRange.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_baseRange.js
rename to src/third_party/devtools/node_modules/lodash/_baseRange.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_baseReduce.js b/src/third_party/devtools/node_modules/lodash/_baseReduce.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_baseReduce.js
rename to src/third_party/devtools/node_modules/lodash/_baseReduce.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_baseRepeat.js b/src/third_party/devtools/node_modules/lodash/_baseRepeat.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_baseRepeat.js
rename to src/third_party/devtools/node_modules/lodash/_baseRepeat.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_baseRest.js b/src/third_party/devtools/node_modules/lodash/_baseRest.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_baseRest.js
rename to src/third_party/devtools/node_modules/lodash/_baseRest.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_baseSample.js b/src/third_party/devtools/node_modules/lodash/_baseSample.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_baseSample.js
rename to src/third_party/devtools/node_modules/lodash/_baseSample.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_baseSampleSize.js b/src/third_party/devtools/node_modules/lodash/_baseSampleSize.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_baseSampleSize.js
rename to src/third_party/devtools/node_modules/lodash/_baseSampleSize.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_baseSet.js b/src/third_party/devtools/node_modules/lodash/_baseSet.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_baseSet.js
rename to src/third_party/devtools/node_modules/lodash/_baseSet.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_baseSetData.js b/src/third_party/devtools/node_modules/lodash/_baseSetData.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_baseSetData.js
rename to src/third_party/devtools/node_modules/lodash/_baseSetData.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_baseSetToString.js b/src/third_party/devtools/node_modules/lodash/_baseSetToString.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_baseSetToString.js
rename to src/third_party/devtools/node_modules/lodash/_baseSetToString.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_baseShuffle.js b/src/third_party/devtools/node_modules/lodash/_baseShuffle.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_baseShuffle.js
rename to src/third_party/devtools/node_modules/lodash/_baseShuffle.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_baseSlice.js b/src/third_party/devtools/node_modules/lodash/_baseSlice.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_baseSlice.js
rename to src/third_party/devtools/node_modules/lodash/_baseSlice.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_baseSome.js b/src/third_party/devtools/node_modules/lodash/_baseSome.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_baseSome.js
rename to src/third_party/devtools/node_modules/lodash/_baseSome.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_baseSortBy.js b/src/third_party/devtools/node_modules/lodash/_baseSortBy.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_baseSortBy.js
rename to src/third_party/devtools/node_modules/lodash/_baseSortBy.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_baseSortedIndex.js b/src/third_party/devtools/node_modules/lodash/_baseSortedIndex.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_baseSortedIndex.js
rename to src/third_party/devtools/node_modules/lodash/_baseSortedIndex.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_baseSortedIndexBy.js b/src/third_party/devtools/node_modules/lodash/_baseSortedIndexBy.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_baseSortedIndexBy.js
rename to src/third_party/devtools/node_modules/lodash/_baseSortedIndexBy.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_baseSortedUniq.js b/src/third_party/devtools/node_modules/lodash/_baseSortedUniq.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_baseSortedUniq.js
rename to src/third_party/devtools/node_modules/lodash/_baseSortedUniq.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_baseSum.js b/src/third_party/devtools/node_modules/lodash/_baseSum.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_baseSum.js
rename to src/third_party/devtools/node_modules/lodash/_baseSum.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_baseTimes.js b/src/third_party/devtools/node_modules/lodash/_baseTimes.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_baseTimes.js
rename to src/third_party/devtools/node_modules/lodash/_baseTimes.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_baseToNumber.js b/src/third_party/devtools/node_modules/lodash/_baseToNumber.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_baseToNumber.js
rename to src/third_party/devtools/node_modules/lodash/_baseToNumber.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_baseToPairs.js b/src/third_party/devtools/node_modules/lodash/_baseToPairs.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_baseToPairs.js
rename to src/third_party/devtools/node_modules/lodash/_baseToPairs.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_baseToString.js b/src/third_party/devtools/node_modules/lodash/_baseToString.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_baseToString.js
rename to src/third_party/devtools/node_modules/lodash/_baseToString.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_baseUnary.js b/src/third_party/devtools/node_modules/lodash/_baseUnary.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_baseUnary.js
rename to src/third_party/devtools/node_modules/lodash/_baseUnary.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_baseUniq.js b/src/third_party/devtools/node_modules/lodash/_baseUniq.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_baseUniq.js
rename to src/third_party/devtools/node_modules/lodash/_baseUniq.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_baseUnset.js b/src/third_party/devtools/node_modules/lodash/_baseUnset.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_baseUnset.js
rename to src/third_party/devtools/node_modules/lodash/_baseUnset.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_baseUpdate.js b/src/third_party/devtools/node_modules/lodash/_baseUpdate.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_baseUpdate.js
rename to src/third_party/devtools/node_modules/lodash/_baseUpdate.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_baseValues.js b/src/third_party/devtools/node_modules/lodash/_baseValues.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_baseValues.js
rename to src/third_party/devtools/node_modules/lodash/_baseValues.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_baseWhile.js b/src/third_party/devtools/node_modules/lodash/_baseWhile.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_baseWhile.js
rename to src/third_party/devtools/node_modules/lodash/_baseWhile.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_baseWrapperValue.js b/src/third_party/devtools/node_modules/lodash/_baseWrapperValue.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_baseWrapperValue.js
rename to src/third_party/devtools/node_modules/lodash/_baseWrapperValue.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_baseXor.js b/src/third_party/devtools/node_modules/lodash/_baseXor.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_baseXor.js
rename to src/third_party/devtools/node_modules/lodash/_baseXor.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_baseZipObject.js b/src/third_party/devtools/node_modules/lodash/_baseZipObject.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_baseZipObject.js
rename to src/third_party/devtools/node_modules/lodash/_baseZipObject.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_cacheHas.js b/src/third_party/devtools/node_modules/lodash/_cacheHas.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_cacheHas.js
rename to src/third_party/devtools/node_modules/lodash/_cacheHas.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_castArrayLikeObject.js b/src/third_party/devtools/node_modules/lodash/_castArrayLikeObject.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_castArrayLikeObject.js
rename to src/third_party/devtools/node_modules/lodash/_castArrayLikeObject.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_castFunction.js b/src/third_party/devtools/node_modules/lodash/_castFunction.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_castFunction.js
rename to src/third_party/devtools/node_modules/lodash/_castFunction.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_castPath.js b/src/third_party/devtools/node_modules/lodash/_castPath.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_castPath.js
rename to src/third_party/devtools/node_modules/lodash/_castPath.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_castRest.js b/src/third_party/devtools/node_modules/lodash/_castRest.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_castRest.js
rename to src/third_party/devtools/node_modules/lodash/_castRest.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_castSlice.js b/src/third_party/devtools/node_modules/lodash/_castSlice.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_castSlice.js
rename to src/third_party/devtools/node_modules/lodash/_castSlice.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_charsEndIndex.js b/src/third_party/devtools/node_modules/lodash/_charsEndIndex.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_charsEndIndex.js
rename to src/third_party/devtools/node_modules/lodash/_charsEndIndex.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_charsStartIndex.js b/src/third_party/devtools/node_modules/lodash/_charsStartIndex.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_charsStartIndex.js
rename to src/third_party/devtools/node_modules/lodash/_charsStartIndex.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_cloneArrayBuffer.js b/src/third_party/devtools/node_modules/lodash/_cloneArrayBuffer.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_cloneArrayBuffer.js
rename to src/third_party/devtools/node_modules/lodash/_cloneArrayBuffer.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_cloneBuffer.js b/src/third_party/devtools/node_modules/lodash/_cloneBuffer.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_cloneBuffer.js
rename to src/third_party/devtools/node_modules/lodash/_cloneBuffer.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_cloneDataView.js b/src/third_party/devtools/node_modules/lodash/_cloneDataView.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_cloneDataView.js
rename to src/third_party/devtools/node_modules/lodash/_cloneDataView.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_cloneRegExp.js b/src/third_party/devtools/node_modules/lodash/_cloneRegExp.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_cloneRegExp.js
rename to src/third_party/devtools/node_modules/lodash/_cloneRegExp.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_cloneSymbol.js b/src/third_party/devtools/node_modules/lodash/_cloneSymbol.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_cloneSymbol.js
rename to src/third_party/devtools/node_modules/lodash/_cloneSymbol.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_cloneTypedArray.js b/src/third_party/devtools/node_modules/lodash/_cloneTypedArray.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_cloneTypedArray.js
rename to src/third_party/devtools/node_modules/lodash/_cloneTypedArray.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_compareAscending.js b/src/third_party/devtools/node_modules/lodash/_compareAscending.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_compareAscending.js
rename to src/third_party/devtools/node_modules/lodash/_compareAscending.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_compareMultiple.js b/src/third_party/devtools/node_modules/lodash/_compareMultiple.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_compareMultiple.js
rename to src/third_party/devtools/node_modules/lodash/_compareMultiple.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_composeArgs.js b/src/third_party/devtools/node_modules/lodash/_composeArgs.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_composeArgs.js
rename to src/third_party/devtools/node_modules/lodash/_composeArgs.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_composeArgsRight.js b/src/third_party/devtools/node_modules/lodash/_composeArgsRight.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_composeArgsRight.js
rename to src/third_party/devtools/node_modules/lodash/_composeArgsRight.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_copyArray.js b/src/third_party/devtools/node_modules/lodash/_copyArray.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_copyArray.js
rename to src/third_party/devtools/node_modules/lodash/_copyArray.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_copyObject.js b/src/third_party/devtools/node_modules/lodash/_copyObject.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_copyObject.js
rename to src/third_party/devtools/node_modules/lodash/_copyObject.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_copySymbols.js b/src/third_party/devtools/node_modules/lodash/_copySymbols.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_copySymbols.js
rename to src/third_party/devtools/node_modules/lodash/_copySymbols.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_copySymbolsIn.js b/src/third_party/devtools/node_modules/lodash/_copySymbolsIn.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_copySymbolsIn.js
rename to src/third_party/devtools/node_modules/lodash/_copySymbolsIn.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_coreJsData.js b/src/third_party/devtools/node_modules/lodash/_coreJsData.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_coreJsData.js
rename to src/third_party/devtools/node_modules/lodash/_coreJsData.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_countHolders.js b/src/third_party/devtools/node_modules/lodash/_countHolders.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_countHolders.js
rename to src/third_party/devtools/node_modules/lodash/_countHolders.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_createAggregator.js b/src/third_party/devtools/node_modules/lodash/_createAggregator.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_createAggregator.js
rename to src/third_party/devtools/node_modules/lodash/_createAggregator.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_createAssigner.js b/src/third_party/devtools/node_modules/lodash/_createAssigner.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_createAssigner.js
rename to src/third_party/devtools/node_modules/lodash/_createAssigner.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_createBaseEach.js b/src/third_party/devtools/node_modules/lodash/_createBaseEach.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_createBaseEach.js
rename to src/third_party/devtools/node_modules/lodash/_createBaseEach.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_createBaseFor.js b/src/third_party/devtools/node_modules/lodash/_createBaseFor.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_createBaseFor.js
rename to src/third_party/devtools/node_modules/lodash/_createBaseFor.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_createBind.js b/src/third_party/devtools/node_modules/lodash/_createBind.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_createBind.js
rename to src/third_party/devtools/node_modules/lodash/_createBind.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_createCaseFirst.js b/src/third_party/devtools/node_modules/lodash/_createCaseFirst.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_createCaseFirst.js
rename to src/third_party/devtools/node_modules/lodash/_createCaseFirst.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_createCompounder.js b/src/third_party/devtools/node_modules/lodash/_createCompounder.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_createCompounder.js
rename to src/third_party/devtools/node_modules/lodash/_createCompounder.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_createCtor.js b/src/third_party/devtools/node_modules/lodash/_createCtor.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_createCtor.js
rename to src/third_party/devtools/node_modules/lodash/_createCtor.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_createCurry.js b/src/third_party/devtools/node_modules/lodash/_createCurry.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_createCurry.js
rename to src/third_party/devtools/node_modules/lodash/_createCurry.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_createFind.js b/src/third_party/devtools/node_modules/lodash/_createFind.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_createFind.js
rename to src/third_party/devtools/node_modules/lodash/_createFind.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_createFlow.js b/src/third_party/devtools/node_modules/lodash/_createFlow.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_createFlow.js
rename to src/third_party/devtools/node_modules/lodash/_createFlow.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_createHybrid.js b/src/third_party/devtools/node_modules/lodash/_createHybrid.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_createHybrid.js
rename to src/third_party/devtools/node_modules/lodash/_createHybrid.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_createInverter.js b/src/third_party/devtools/node_modules/lodash/_createInverter.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_createInverter.js
rename to src/third_party/devtools/node_modules/lodash/_createInverter.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_createMathOperation.js b/src/third_party/devtools/node_modules/lodash/_createMathOperation.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_createMathOperation.js
rename to src/third_party/devtools/node_modules/lodash/_createMathOperation.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_createOver.js b/src/third_party/devtools/node_modules/lodash/_createOver.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_createOver.js
rename to src/third_party/devtools/node_modules/lodash/_createOver.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_createPadding.js b/src/third_party/devtools/node_modules/lodash/_createPadding.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_createPadding.js
rename to src/third_party/devtools/node_modules/lodash/_createPadding.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_createPartial.js b/src/third_party/devtools/node_modules/lodash/_createPartial.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_createPartial.js
rename to src/third_party/devtools/node_modules/lodash/_createPartial.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_createRange.js b/src/third_party/devtools/node_modules/lodash/_createRange.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_createRange.js
rename to src/third_party/devtools/node_modules/lodash/_createRange.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_createRecurry.js b/src/third_party/devtools/node_modules/lodash/_createRecurry.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_createRecurry.js
rename to src/third_party/devtools/node_modules/lodash/_createRecurry.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_createRelationalOperation.js b/src/third_party/devtools/node_modules/lodash/_createRelationalOperation.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_createRelationalOperation.js
rename to src/third_party/devtools/node_modules/lodash/_createRelationalOperation.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_createRound.js b/src/third_party/devtools/node_modules/lodash/_createRound.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_createRound.js
rename to src/third_party/devtools/node_modules/lodash/_createRound.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_createSet.js b/src/third_party/devtools/node_modules/lodash/_createSet.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_createSet.js
rename to src/third_party/devtools/node_modules/lodash/_createSet.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_createToPairs.js b/src/third_party/devtools/node_modules/lodash/_createToPairs.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_createToPairs.js
rename to src/third_party/devtools/node_modules/lodash/_createToPairs.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_createWrap.js b/src/third_party/devtools/node_modules/lodash/_createWrap.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_createWrap.js
rename to src/third_party/devtools/node_modules/lodash/_createWrap.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_customDefaultsAssignIn.js b/src/third_party/devtools/node_modules/lodash/_customDefaultsAssignIn.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_customDefaultsAssignIn.js
rename to src/third_party/devtools/node_modules/lodash/_customDefaultsAssignIn.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_customDefaultsMerge.js b/src/third_party/devtools/node_modules/lodash/_customDefaultsMerge.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_customDefaultsMerge.js
rename to src/third_party/devtools/node_modules/lodash/_customDefaultsMerge.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_customOmitClone.js b/src/third_party/devtools/node_modules/lodash/_customOmitClone.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_customOmitClone.js
rename to src/third_party/devtools/node_modules/lodash/_customOmitClone.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_deburrLetter.js b/src/third_party/devtools/node_modules/lodash/_deburrLetter.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_deburrLetter.js
rename to src/third_party/devtools/node_modules/lodash/_deburrLetter.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_defineProperty.js b/src/third_party/devtools/node_modules/lodash/_defineProperty.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_defineProperty.js
rename to src/third_party/devtools/node_modules/lodash/_defineProperty.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_equalArrays.js b/src/third_party/devtools/node_modules/lodash/_equalArrays.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_equalArrays.js
rename to src/third_party/devtools/node_modules/lodash/_equalArrays.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_equalByTag.js b/src/third_party/devtools/node_modules/lodash/_equalByTag.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_equalByTag.js
rename to src/third_party/devtools/node_modules/lodash/_equalByTag.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_equalObjects.js b/src/third_party/devtools/node_modules/lodash/_equalObjects.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_equalObjects.js
rename to src/third_party/devtools/node_modules/lodash/_equalObjects.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_escapeHtmlChar.js b/src/third_party/devtools/node_modules/lodash/_escapeHtmlChar.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_escapeHtmlChar.js
rename to src/third_party/devtools/node_modules/lodash/_escapeHtmlChar.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_escapeStringChar.js b/src/third_party/devtools/node_modules/lodash/_escapeStringChar.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_escapeStringChar.js
rename to src/third_party/devtools/node_modules/lodash/_escapeStringChar.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_flatRest.js b/src/third_party/devtools/node_modules/lodash/_flatRest.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_flatRest.js
rename to src/third_party/devtools/node_modules/lodash/_flatRest.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_freeGlobal.js b/src/third_party/devtools/node_modules/lodash/_freeGlobal.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_freeGlobal.js
rename to src/third_party/devtools/node_modules/lodash/_freeGlobal.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_getAllKeys.js b/src/third_party/devtools/node_modules/lodash/_getAllKeys.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_getAllKeys.js
rename to src/third_party/devtools/node_modules/lodash/_getAllKeys.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_getAllKeysIn.js b/src/third_party/devtools/node_modules/lodash/_getAllKeysIn.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_getAllKeysIn.js
rename to src/third_party/devtools/node_modules/lodash/_getAllKeysIn.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_getData.js b/src/third_party/devtools/node_modules/lodash/_getData.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_getData.js
rename to src/third_party/devtools/node_modules/lodash/_getData.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_getFuncName.js b/src/third_party/devtools/node_modules/lodash/_getFuncName.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_getFuncName.js
rename to src/third_party/devtools/node_modules/lodash/_getFuncName.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_getHolder.js b/src/third_party/devtools/node_modules/lodash/_getHolder.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_getHolder.js
rename to src/third_party/devtools/node_modules/lodash/_getHolder.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_getMapData.js b/src/third_party/devtools/node_modules/lodash/_getMapData.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_getMapData.js
rename to src/third_party/devtools/node_modules/lodash/_getMapData.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_getMatchData.js b/src/third_party/devtools/node_modules/lodash/_getMatchData.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_getMatchData.js
rename to src/third_party/devtools/node_modules/lodash/_getMatchData.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_getNative.js b/src/third_party/devtools/node_modules/lodash/_getNative.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_getNative.js
rename to src/third_party/devtools/node_modules/lodash/_getNative.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_getPrototype.js b/src/third_party/devtools/node_modules/lodash/_getPrototype.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_getPrototype.js
rename to src/third_party/devtools/node_modules/lodash/_getPrototype.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_getRawTag.js b/src/third_party/devtools/node_modules/lodash/_getRawTag.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_getRawTag.js
rename to src/third_party/devtools/node_modules/lodash/_getRawTag.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_getSymbols.js b/src/third_party/devtools/node_modules/lodash/_getSymbols.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_getSymbols.js
rename to src/third_party/devtools/node_modules/lodash/_getSymbols.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_getSymbolsIn.js b/src/third_party/devtools/node_modules/lodash/_getSymbolsIn.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_getSymbolsIn.js
rename to src/third_party/devtools/node_modules/lodash/_getSymbolsIn.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_getTag.js b/src/third_party/devtools/node_modules/lodash/_getTag.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_getTag.js
rename to src/third_party/devtools/node_modules/lodash/_getTag.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_getValue.js b/src/third_party/devtools/node_modules/lodash/_getValue.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_getValue.js
rename to src/third_party/devtools/node_modules/lodash/_getValue.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_getView.js b/src/third_party/devtools/node_modules/lodash/_getView.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_getView.js
rename to src/third_party/devtools/node_modules/lodash/_getView.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_getWrapDetails.js b/src/third_party/devtools/node_modules/lodash/_getWrapDetails.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_getWrapDetails.js
rename to src/third_party/devtools/node_modules/lodash/_getWrapDetails.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_hasPath.js b/src/third_party/devtools/node_modules/lodash/_hasPath.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_hasPath.js
rename to src/third_party/devtools/node_modules/lodash/_hasPath.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_hasUnicode.js b/src/third_party/devtools/node_modules/lodash/_hasUnicode.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_hasUnicode.js
rename to src/third_party/devtools/node_modules/lodash/_hasUnicode.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_hasUnicodeWord.js b/src/third_party/devtools/node_modules/lodash/_hasUnicodeWord.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_hasUnicodeWord.js
rename to src/third_party/devtools/node_modules/lodash/_hasUnicodeWord.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_hashClear.js b/src/third_party/devtools/node_modules/lodash/_hashClear.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_hashClear.js
rename to src/third_party/devtools/node_modules/lodash/_hashClear.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_hashDelete.js b/src/third_party/devtools/node_modules/lodash/_hashDelete.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_hashDelete.js
rename to src/third_party/devtools/node_modules/lodash/_hashDelete.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_hashGet.js b/src/third_party/devtools/node_modules/lodash/_hashGet.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_hashGet.js
rename to src/third_party/devtools/node_modules/lodash/_hashGet.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_hashHas.js b/src/third_party/devtools/node_modules/lodash/_hashHas.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_hashHas.js
rename to src/third_party/devtools/node_modules/lodash/_hashHas.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_hashSet.js b/src/third_party/devtools/node_modules/lodash/_hashSet.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_hashSet.js
rename to src/third_party/devtools/node_modules/lodash/_hashSet.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_initCloneArray.js b/src/third_party/devtools/node_modules/lodash/_initCloneArray.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_initCloneArray.js
rename to src/third_party/devtools/node_modules/lodash/_initCloneArray.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_initCloneByTag.js b/src/third_party/devtools/node_modules/lodash/_initCloneByTag.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_initCloneByTag.js
rename to src/third_party/devtools/node_modules/lodash/_initCloneByTag.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_initCloneObject.js b/src/third_party/devtools/node_modules/lodash/_initCloneObject.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_initCloneObject.js
rename to src/third_party/devtools/node_modules/lodash/_initCloneObject.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_insertWrapDetails.js b/src/third_party/devtools/node_modules/lodash/_insertWrapDetails.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_insertWrapDetails.js
rename to src/third_party/devtools/node_modules/lodash/_insertWrapDetails.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_isFlattenable.js b/src/third_party/devtools/node_modules/lodash/_isFlattenable.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_isFlattenable.js
rename to src/third_party/devtools/node_modules/lodash/_isFlattenable.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_isIndex.js b/src/third_party/devtools/node_modules/lodash/_isIndex.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_isIndex.js
rename to src/third_party/devtools/node_modules/lodash/_isIndex.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_isIterateeCall.js b/src/third_party/devtools/node_modules/lodash/_isIterateeCall.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_isIterateeCall.js
rename to src/third_party/devtools/node_modules/lodash/_isIterateeCall.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_isKey.js b/src/third_party/devtools/node_modules/lodash/_isKey.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_isKey.js
rename to src/third_party/devtools/node_modules/lodash/_isKey.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_isKeyable.js b/src/third_party/devtools/node_modules/lodash/_isKeyable.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_isKeyable.js
rename to src/third_party/devtools/node_modules/lodash/_isKeyable.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_isLaziable.js b/src/third_party/devtools/node_modules/lodash/_isLaziable.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_isLaziable.js
rename to src/third_party/devtools/node_modules/lodash/_isLaziable.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_isMaskable.js b/src/third_party/devtools/node_modules/lodash/_isMaskable.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_isMaskable.js
rename to src/third_party/devtools/node_modules/lodash/_isMaskable.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_isMasked.js b/src/third_party/devtools/node_modules/lodash/_isMasked.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_isMasked.js
rename to src/third_party/devtools/node_modules/lodash/_isMasked.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_isPrototype.js b/src/third_party/devtools/node_modules/lodash/_isPrototype.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_isPrototype.js
rename to src/third_party/devtools/node_modules/lodash/_isPrototype.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_isStrictComparable.js b/src/third_party/devtools/node_modules/lodash/_isStrictComparable.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_isStrictComparable.js
rename to src/third_party/devtools/node_modules/lodash/_isStrictComparable.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_iteratorToArray.js b/src/third_party/devtools/node_modules/lodash/_iteratorToArray.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_iteratorToArray.js
rename to src/third_party/devtools/node_modules/lodash/_iteratorToArray.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_lazyClone.js b/src/third_party/devtools/node_modules/lodash/_lazyClone.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_lazyClone.js
rename to src/third_party/devtools/node_modules/lodash/_lazyClone.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_lazyReverse.js b/src/third_party/devtools/node_modules/lodash/_lazyReverse.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_lazyReverse.js
rename to src/third_party/devtools/node_modules/lodash/_lazyReverse.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_lazyValue.js b/src/third_party/devtools/node_modules/lodash/_lazyValue.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_lazyValue.js
rename to src/third_party/devtools/node_modules/lodash/_lazyValue.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_listCacheClear.js b/src/third_party/devtools/node_modules/lodash/_listCacheClear.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_listCacheClear.js
rename to src/third_party/devtools/node_modules/lodash/_listCacheClear.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_listCacheDelete.js b/src/third_party/devtools/node_modules/lodash/_listCacheDelete.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_listCacheDelete.js
rename to src/third_party/devtools/node_modules/lodash/_listCacheDelete.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_listCacheGet.js b/src/third_party/devtools/node_modules/lodash/_listCacheGet.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_listCacheGet.js
rename to src/third_party/devtools/node_modules/lodash/_listCacheGet.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_listCacheHas.js b/src/third_party/devtools/node_modules/lodash/_listCacheHas.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_listCacheHas.js
rename to src/third_party/devtools/node_modules/lodash/_listCacheHas.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_listCacheSet.js b/src/third_party/devtools/node_modules/lodash/_listCacheSet.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_listCacheSet.js
rename to src/third_party/devtools/node_modules/lodash/_listCacheSet.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_mapCacheClear.js b/src/third_party/devtools/node_modules/lodash/_mapCacheClear.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_mapCacheClear.js
rename to src/third_party/devtools/node_modules/lodash/_mapCacheClear.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_mapCacheDelete.js b/src/third_party/devtools/node_modules/lodash/_mapCacheDelete.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_mapCacheDelete.js
rename to src/third_party/devtools/node_modules/lodash/_mapCacheDelete.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_mapCacheGet.js b/src/third_party/devtools/node_modules/lodash/_mapCacheGet.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_mapCacheGet.js
rename to src/third_party/devtools/node_modules/lodash/_mapCacheGet.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_mapCacheHas.js b/src/third_party/devtools/node_modules/lodash/_mapCacheHas.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_mapCacheHas.js
rename to src/third_party/devtools/node_modules/lodash/_mapCacheHas.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_mapCacheSet.js b/src/third_party/devtools/node_modules/lodash/_mapCacheSet.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_mapCacheSet.js
rename to src/third_party/devtools/node_modules/lodash/_mapCacheSet.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_mapToArray.js b/src/third_party/devtools/node_modules/lodash/_mapToArray.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_mapToArray.js
rename to src/third_party/devtools/node_modules/lodash/_mapToArray.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_matchesStrictComparable.js b/src/third_party/devtools/node_modules/lodash/_matchesStrictComparable.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_matchesStrictComparable.js
rename to src/third_party/devtools/node_modules/lodash/_matchesStrictComparable.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_memoizeCapped.js b/src/third_party/devtools/node_modules/lodash/_memoizeCapped.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_memoizeCapped.js
rename to src/third_party/devtools/node_modules/lodash/_memoizeCapped.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_mergeData.js b/src/third_party/devtools/node_modules/lodash/_mergeData.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_mergeData.js
rename to src/third_party/devtools/node_modules/lodash/_mergeData.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_metaMap.js b/src/third_party/devtools/node_modules/lodash/_metaMap.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_metaMap.js
rename to src/third_party/devtools/node_modules/lodash/_metaMap.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_nativeCreate.js b/src/third_party/devtools/node_modules/lodash/_nativeCreate.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_nativeCreate.js
rename to src/third_party/devtools/node_modules/lodash/_nativeCreate.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_nativeKeys.js b/src/third_party/devtools/node_modules/lodash/_nativeKeys.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_nativeKeys.js
rename to src/third_party/devtools/node_modules/lodash/_nativeKeys.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_nativeKeysIn.js b/src/third_party/devtools/node_modules/lodash/_nativeKeysIn.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_nativeKeysIn.js
rename to src/third_party/devtools/node_modules/lodash/_nativeKeysIn.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_nodeUtil.js b/src/third_party/devtools/node_modules/lodash/_nodeUtil.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_nodeUtil.js
rename to src/third_party/devtools/node_modules/lodash/_nodeUtil.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_objectToString.js b/src/third_party/devtools/node_modules/lodash/_objectToString.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_objectToString.js
rename to src/third_party/devtools/node_modules/lodash/_objectToString.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_overArg.js b/src/third_party/devtools/node_modules/lodash/_overArg.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_overArg.js
rename to src/third_party/devtools/node_modules/lodash/_overArg.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_overRest.js b/src/third_party/devtools/node_modules/lodash/_overRest.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_overRest.js
rename to src/third_party/devtools/node_modules/lodash/_overRest.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_parent.js b/src/third_party/devtools/node_modules/lodash/_parent.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_parent.js
rename to src/third_party/devtools/node_modules/lodash/_parent.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_reEscape.js b/src/third_party/devtools/node_modules/lodash/_reEscape.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_reEscape.js
rename to src/third_party/devtools/node_modules/lodash/_reEscape.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_reEvaluate.js b/src/third_party/devtools/node_modules/lodash/_reEvaluate.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_reEvaluate.js
rename to src/third_party/devtools/node_modules/lodash/_reEvaluate.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_reInterpolate.js b/src/third_party/devtools/node_modules/lodash/_reInterpolate.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_reInterpolate.js
rename to src/third_party/devtools/node_modules/lodash/_reInterpolate.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_realNames.js b/src/third_party/devtools/node_modules/lodash/_realNames.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_realNames.js
rename to src/third_party/devtools/node_modules/lodash/_realNames.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_reorder.js b/src/third_party/devtools/node_modules/lodash/_reorder.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_reorder.js
rename to src/third_party/devtools/node_modules/lodash/_reorder.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_replaceHolders.js b/src/third_party/devtools/node_modules/lodash/_replaceHolders.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_replaceHolders.js
rename to src/third_party/devtools/node_modules/lodash/_replaceHolders.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_root.js b/src/third_party/devtools/node_modules/lodash/_root.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_root.js
rename to src/third_party/devtools/node_modules/lodash/_root.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_safeGet.js b/src/third_party/devtools/node_modules/lodash/_safeGet.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_safeGet.js
rename to src/third_party/devtools/node_modules/lodash/_safeGet.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_setCacheAdd.js b/src/third_party/devtools/node_modules/lodash/_setCacheAdd.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_setCacheAdd.js
rename to src/third_party/devtools/node_modules/lodash/_setCacheAdd.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_setCacheHas.js b/src/third_party/devtools/node_modules/lodash/_setCacheHas.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_setCacheHas.js
rename to src/third_party/devtools/node_modules/lodash/_setCacheHas.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_setData.js b/src/third_party/devtools/node_modules/lodash/_setData.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_setData.js
rename to src/third_party/devtools/node_modules/lodash/_setData.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_setToArray.js b/src/third_party/devtools/node_modules/lodash/_setToArray.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_setToArray.js
rename to src/third_party/devtools/node_modules/lodash/_setToArray.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_setToPairs.js b/src/third_party/devtools/node_modules/lodash/_setToPairs.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_setToPairs.js
rename to src/third_party/devtools/node_modules/lodash/_setToPairs.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_setToString.js b/src/third_party/devtools/node_modules/lodash/_setToString.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_setToString.js
rename to src/third_party/devtools/node_modules/lodash/_setToString.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_setWrapToString.js b/src/third_party/devtools/node_modules/lodash/_setWrapToString.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_setWrapToString.js
rename to src/third_party/devtools/node_modules/lodash/_setWrapToString.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_shortOut.js b/src/third_party/devtools/node_modules/lodash/_shortOut.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_shortOut.js
rename to src/third_party/devtools/node_modules/lodash/_shortOut.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_shuffleSelf.js b/src/third_party/devtools/node_modules/lodash/_shuffleSelf.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_shuffleSelf.js
rename to src/third_party/devtools/node_modules/lodash/_shuffleSelf.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_stackClear.js b/src/third_party/devtools/node_modules/lodash/_stackClear.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_stackClear.js
rename to src/third_party/devtools/node_modules/lodash/_stackClear.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_stackDelete.js b/src/third_party/devtools/node_modules/lodash/_stackDelete.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_stackDelete.js
rename to src/third_party/devtools/node_modules/lodash/_stackDelete.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_stackGet.js b/src/third_party/devtools/node_modules/lodash/_stackGet.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_stackGet.js
rename to src/third_party/devtools/node_modules/lodash/_stackGet.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_stackHas.js b/src/third_party/devtools/node_modules/lodash/_stackHas.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_stackHas.js
rename to src/third_party/devtools/node_modules/lodash/_stackHas.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_stackSet.js b/src/third_party/devtools/node_modules/lodash/_stackSet.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_stackSet.js
rename to src/third_party/devtools/node_modules/lodash/_stackSet.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_strictIndexOf.js b/src/third_party/devtools/node_modules/lodash/_strictIndexOf.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_strictIndexOf.js
rename to src/third_party/devtools/node_modules/lodash/_strictIndexOf.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_strictLastIndexOf.js b/src/third_party/devtools/node_modules/lodash/_strictLastIndexOf.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_strictLastIndexOf.js
rename to src/third_party/devtools/node_modules/lodash/_strictLastIndexOf.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_stringSize.js b/src/third_party/devtools/node_modules/lodash/_stringSize.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_stringSize.js
rename to src/third_party/devtools/node_modules/lodash/_stringSize.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_stringToArray.js b/src/third_party/devtools/node_modules/lodash/_stringToArray.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_stringToArray.js
rename to src/third_party/devtools/node_modules/lodash/_stringToArray.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_stringToPath.js b/src/third_party/devtools/node_modules/lodash/_stringToPath.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_stringToPath.js
rename to src/third_party/devtools/node_modules/lodash/_stringToPath.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_toKey.js b/src/third_party/devtools/node_modules/lodash/_toKey.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_toKey.js
rename to src/third_party/devtools/node_modules/lodash/_toKey.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_toSource.js b/src/third_party/devtools/node_modules/lodash/_toSource.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_toSource.js
rename to src/third_party/devtools/node_modules/lodash/_toSource.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_unescapeHtmlChar.js b/src/third_party/devtools/node_modules/lodash/_unescapeHtmlChar.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_unescapeHtmlChar.js
rename to src/third_party/devtools/node_modules/lodash/_unescapeHtmlChar.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_unicodeSize.js b/src/third_party/devtools/node_modules/lodash/_unicodeSize.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_unicodeSize.js
rename to src/third_party/devtools/node_modules/lodash/_unicodeSize.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_unicodeToArray.js b/src/third_party/devtools/node_modules/lodash/_unicodeToArray.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_unicodeToArray.js
rename to src/third_party/devtools/node_modules/lodash/_unicodeToArray.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_unicodeWords.js b/src/third_party/devtools/node_modules/lodash/_unicodeWords.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_unicodeWords.js
rename to src/third_party/devtools/node_modules/lodash/_unicodeWords.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_updateWrapDetails.js b/src/third_party/devtools/node_modules/lodash/_updateWrapDetails.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_updateWrapDetails.js
rename to src/third_party/devtools/node_modules/lodash/_updateWrapDetails.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/_wrapperClone.js b/src/third_party/devtools/node_modules/lodash/_wrapperClone.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/_wrapperClone.js
rename to src/third_party/devtools/node_modules/lodash/_wrapperClone.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/add.js b/src/third_party/devtools/node_modules/lodash/add.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/add.js
rename to src/third_party/devtools/node_modules/lodash/add.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/after.js b/src/third_party/devtools/node_modules/lodash/after.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/after.js
rename to src/third_party/devtools/node_modules/lodash/after.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/array.js b/src/third_party/devtools/node_modules/lodash/array.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/array.js
rename to src/third_party/devtools/node_modules/lodash/array.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/ary.js b/src/third_party/devtools/node_modules/lodash/ary.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/ary.js
rename to src/third_party/devtools/node_modules/lodash/ary.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/assign.js b/src/third_party/devtools/node_modules/lodash/assign.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/assign.js
rename to src/third_party/devtools/node_modules/lodash/assign.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/assignIn.js b/src/third_party/devtools/node_modules/lodash/assignIn.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/assignIn.js
rename to src/third_party/devtools/node_modules/lodash/assignIn.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/assignInWith.js b/src/third_party/devtools/node_modules/lodash/assignInWith.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/assignInWith.js
rename to src/third_party/devtools/node_modules/lodash/assignInWith.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/assignWith.js b/src/third_party/devtools/node_modules/lodash/assignWith.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/assignWith.js
rename to src/third_party/devtools/node_modules/lodash/assignWith.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/at.js b/src/third_party/devtools/node_modules/lodash/at.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/at.js
rename to src/third_party/devtools/node_modules/lodash/at.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/attempt.js b/src/third_party/devtools/node_modules/lodash/attempt.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/attempt.js
rename to src/third_party/devtools/node_modules/lodash/attempt.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/before.js b/src/third_party/devtools/node_modules/lodash/before.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/before.js
rename to src/third_party/devtools/node_modules/lodash/before.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/bind.js b/src/third_party/devtools/node_modules/lodash/bind.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/bind.js
rename to src/third_party/devtools/node_modules/lodash/bind.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/bindAll.js b/src/third_party/devtools/node_modules/lodash/bindAll.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/bindAll.js
rename to src/third_party/devtools/node_modules/lodash/bindAll.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/bindKey.js b/src/third_party/devtools/node_modules/lodash/bindKey.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/bindKey.js
rename to src/third_party/devtools/node_modules/lodash/bindKey.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/camelCase.js b/src/third_party/devtools/node_modules/lodash/camelCase.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/camelCase.js
rename to src/third_party/devtools/node_modules/lodash/camelCase.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/capitalize.js b/src/third_party/devtools/node_modules/lodash/capitalize.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/capitalize.js
rename to src/third_party/devtools/node_modules/lodash/capitalize.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/castArray.js b/src/third_party/devtools/node_modules/lodash/castArray.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/castArray.js
rename to src/third_party/devtools/node_modules/lodash/castArray.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/ceil.js b/src/third_party/devtools/node_modules/lodash/ceil.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/ceil.js
rename to src/third_party/devtools/node_modules/lodash/ceil.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/chain.js b/src/third_party/devtools/node_modules/lodash/chain.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/chain.js
rename to src/third_party/devtools/node_modules/lodash/chain.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/chunk.js b/src/third_party/devtools/node_modules/lodash/chunk.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/chunk.js
rename to src/third_party/devtools/node_modules/lodash/chunk.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/clamp.js b/src/third_party/devtools/node_modules/lodash/clamp.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/clamp.js
rename to src/third_party/devtools/node_modules/lodash/clamp.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/clone.js b/src/third_party/devtools/node_modules/lodash/clone.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/clone.js
rename to src/third_party/devtools/node_modules/lodash/clone.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/cloneDeep.js b/src/third_party/devtools/node_modules/lodash/cloneDeep.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/cloneDeep.js
rename to src/third_party/devtools/node_modules/lodash/cloneDeep.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/cloneDeepWith.js b/src/third_party/devtools/node_modules/lodash/cloneDeepWith.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/cloneDeepWith.js
rename to src/third_party/devtools/node_modules/lodash/cloneDeepWith.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/cloneWith.js b/src/third_party/devtools/node_modules/lodash/cloneWith.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/cloneWith.js
rename to src/third_party/devtools/node_modules/lodash/cloneWith.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/collection.js b/src/third_party/devtools/node_modules/lodash/collection.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/collection.js
rename to src/third_party/devtools/node_modules/lodash/collection.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/commit.js b/src/third_party/devtools/node_modules/lodash/commit.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/commit.js
rename to src/third_party/devtools/node_modules/lodash/commit.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/compact.js b/src/third_party/devtools/node_modules/lodash/compact.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/compact.js
rename to src/third_party/devtools/node_modules/lodash/compact.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/concat.js b/src/third_party/devtools/node_modules/lodash/concat.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/concat.js
rename to src/third_party/devtools/node_modules/lodash/concat.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/cond.js b/src/third_party/devtools/node_modules/lodash/cond.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/cond.js
rename to src/third_party/devtools/node_modules/lodash/cond.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/conforms.js b/src/third_party/devtools/node_modules/lodash/conforms.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/conforms.js
rename to src/third_party/devtools/node_modules/lodash/conforms.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/conformsTo.js b/src/third_party/devtools/node_modules/lodash/conformsTo.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/conformsTo.js
rename to src/third_party/devtools/node_modules/lodash/conformsTo.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/constant.js b/src/third_party/devtools/node_modules/lodash/constant.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/constant.js
rename to src/third_party/devtools/node_modules/lodash/constant.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/core.js b/src/third_party/devtools/node_modules/lodash/core.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/core.js
rename to src/third_party/devtools/node_modules/lodash/core.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/core.min.js b/src/third_party/devtools/node_modules/lodash/core.min.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/core.min.js
rename to src/third_party/devtools/node_modules/lodash/core.min.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/countBy.js b/src/third_party/devtools/node_modules/lodash/countBy.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/countBy.js
rename to src/third_party/devtools/node_modules/lodash/countBy.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/create.js b/src/third_party/devtools/node_modules/lodash/create.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/create.js
rename to src/third_party/devtools/node_modules/lodash/create.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/curry.js b/src/third_party/devtools/node_modules/lodash/curry.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/curry.js
rename to src/third_party/devtools/node_modules/lodash/curry.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/curryRight.js b/src/third_party/devtools/node_modules/lodash/curryRight.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/curryRight.js
rename to src/third_party/devtools/node_modules/lodash/curryRight.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/date.js b/src/third_party/devtools/node_modules/lodash/date.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/date.js
rename to src/third_party/devtools/node_modules/lodash/date.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/debounce.js b/src/third_party/devtools/node_modules/lodash/debounce.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/debounce.js
rename to src/third_party/devtools/node_modules/lodash/debounce.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/deburr.js b/src/third_party/devtools/node_modules/lodash/deburr.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/deburr.js
rename to src/third_party/devtools/node_modules/lodash/deburr.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/defaultTo.js b/src/third_party/devtools/node_modules/lodash/defaultTo.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/defaultTo.js
rename to src/third_party/devtools/node_modules/lodash/defaultTo.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/defaults.js b/src/third_party/devtools/node_modules/lodash/defaults.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/defaults.js
rename to src/third_party/devtools/node_modules/lodash/defaults.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/defaultsDeep.js b/src/third_party/devtools/node_modules/lodash/defaultsDeep.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/defaultsDeep.js
rename to src/third_party/devtools/node_modules/lodash/defaultsDeep.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/defer.js b/src/third_party/devtools/node_modules/lodash/defer.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/defer.js
rename to src/third_party/devtools/node_modules/lodash/defer.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/delay.js b/src/third_party/devtools/node_modules/lodash/delay.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/delay.js
rename to src/third_party/devtools/node_modules/lodash/delay.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/difference.js b/src/third_party/devtools/node_modules/lodash/difference.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/difference.js
rename to src/third_party/devtools/node_modules/lodash/difference.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/differenceBy.js b/src/third_party/devtools/node_modules/lodash/differenceBy.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/differenceBy.js
rename to src/third_party/devtools/node_modules/lodash/differenceBy.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/differenceWith.js b/src/third_party/devtools/node_modules/lodash/differenceWith.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/differenceWith.js
rename to src/third_party/devtools/node_modules/lodash/differenceWith.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/divide.js b/src/third_party/devtools/node_modules/lodash/divide.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/divide.js
rename to src/third_party/devtools/node_modules/lodash/divide.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/drop.js b/src/third_party/devtools/node_modules/lodash/drop.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/drop.js
rename to src/third_party/devtools/node_modules/lodash/drop.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/dropRight.js b/src/third_party/devtools/node_modules/lodash/dropRight.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/dropRight.js
rename to src/third_party/devtools/node_modules/lodash/dropRight.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/dropRightWhile.js b/src/third_party/devtools/node_modules/lodash/dropRightWhile.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/dropRightWhile.js
rename to src/third_party/devtools/node_modules/lodash/dropRightWhile.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/dropWhile.js b/src/third_party/devtools/node_modules/lodash/dropWhile.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/dropWhile.js
rename to src/third_party/devtools/node_modules/lodash/dropWhile.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/each.js b/src/third_party/devtools/node_modules/lodash/each.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/each.js
rename to src/third_party/devtools/node_modules/lodash/each.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/eachRight.js b/src/third_party/devtools/node_modules/lodash/eachRight.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/eachRight.js
rename to src/third_party/devtools/node_modules/lodash/eachRight.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/endsWith.js b/src/third_party/devtools/node_modules/lodash/endsWith.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/endsWith.js
rename to src/third_party/devtools/node_modules/lodash/endsWith.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/entries.js b/src/third_party/devtools/node_modules/lodash/entries.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/entries.js
rename to src/third_party/devtools/node_modules/lodash/entries.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/entriesIn.js b/src/third_party/devtools/node_modules/lodash/entriesIn.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/entriesIn.js
rename to src/third_party/devtools/node_modules/lodash/entriesIn.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/eq.js b/src/third_party/devtools/node_modules/lodash/eq.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/eq.js
rename to src/third_party/devtools/node_modules/lodash/eq.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/escape.js b/src/third_party/devtools/node_modules/lodash/escape.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/escape.js
rename to src/third_party/devtools/node_modules/lodash/escape.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/escapeRegExp.js b/src/third_party/devtools/node_modules/lodash/escapeRegExp.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/escapeRegExp.js
rename to src/third_party/devtools/node_modules/lodash/escapeRegExp.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/every.js b/src/third_party/devtools/node_modules/lodash/every.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/every.js
rename to src/third_party/devtools/node_modules/lodash/every.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/extend.js b/src/third_party/devtools/node_modules/lodash/extend.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/extend.js
rename to src/third_party/devtools/node_modules/lodash/extend.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/extendWith.js b/src/third_party/devtools/node_modules/lodash/extendWith.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/extendWith.js
rename to src/third_party/devtools/node_modules/lodash/extendWith.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fill.js b/src/third_party/devtools/node_modules/lodash/fill.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fill.js
rename to src/third_party/devtools/node_modules/lodash/fill.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/filter.js b/src/third_party/devtools/node_modules/lodash/filter.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/filter.js
rename to src/third_party/devtools/node_modules/lodash/filter.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/find.js b/src/third_party/devtools/node_modules/lodash/find.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/find.js
rename to src/third_party/devtools/node_modules/lodash/find.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/findIndex.js b/src/third_party/devtools/node_modules/lodash/findIndex.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/findIndex.js
rename to src/third_party/devtools/node_modules/lodash/findIndex.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/findKey.js b/src/third_party/devtools/node_modules/lodash/findKey.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/findKey.js
rename to src/third_party/devtools/node_modules/lodash/findKey.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/findLast.js b/src/third_party/devtools/node_modules/lodash/findLast.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/findLast.js
rename to src/third_party/devtools/node_modules/lodash/findLast.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/findLastIndex.js b/src/third_party/devtools/node_modules/lodash/findLastIndex.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/findLastIndex.js
rename to src/third_party/devtools/node_modules/lodash/findLastIndex.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/findLastKey.js b/src/third_party/devtools/node_modules/lodash/findLastKey.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/findLastKey.js
rename to src/third_party/devtools/node_modules/lodash/findLastKey.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/first.js b/src/third_party/devtools/node_modules/lodash/first.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/first.js
rename to src/third_party/devtools/node_modules/lodash/first.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/flatMap.js b/src/third_party/devtools/node_modules/lodash/flatMap.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/flatMap.js
rename to src/third_party/devtools/node_modules/lodash/flatMap.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/flatMapDeep.js b/src/third_party/devtools/node_modules/lodash/flatMapDeep.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/flatMapDeep.js
rename to src/third_party/devtools/node_modules/lodash/flatMapDeep.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/flatMapDepth.js b/src/third_party/devtools/node_modules/lodash/flatMapDepth.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/flatMapDepth.js
rename to src/third_party/devtools/node_modules/lodash/flatMapDepth.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/flatten.js b/src/third_party/devtools/node_modules/lodash/flatten.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/flatten.js
rename to src/third_party/devtools/node_modules/lodash/flatten.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/flattenDeep.js b/src/third_party/devtools/node_modules/lodash/flattenDeep.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/flattenDeep.js
rename to src/third_party/devtools/node_modules/lodash/flattenDeep.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/flattenDepth.js b/src/third_party/devtools/node_modules/lodash/flattenDepth.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/flattenDepth.js
rename to src/third_party/devtools/node_modules/lodash/flattenDepth.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/flip.js b/src/third_party/devtools/node_modules/lodash/flip.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/flip.js
rename to src/third_party/devtools/node_modules/lodash/flip.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/floor.js b/src/third_party/devtools/node_modules/lodash/floor.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/floor.js
rename to src/third_party/devtools/node_modules/lodash/floor.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/flow.js b/src/third_party/devtools/node_modules/lodash/flow.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/flow.js
rename to src/third_party/devtools/node_modules/lodash/flow.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/flowRight.js b/src/third_party/devtools/node_modules/lodash/flowRight.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/flowRight.js
rename to src/third_party/devtools/node_modules/lodash/flowRight.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/forEach.js b/src/third_party/devtools/node_modules/lodash/forEach.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/forEach.js
rename to src/third_party/devtools/node_modules/lodash/forEach.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/forEachRight.js b/src/third_party/devtools/node_modules/lodash/forEachRight.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/forEachRight.js
rename to src/third_party/devtools/node_modules/lodash/forEachRight.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/forIn.js b/src/third_party/devtools/node_modules/lodash/forIn.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/forIn.js
rename to src/third_party/devtools/node_modules/lodash/forIn.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/forInRight.js b/src/third_party/devtools/node_modules/lodash/forInRight.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/forInRight.js
rename to src/third_party/devtools/node_modules/lodash/forInRight.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/forOwn.js b/src/third_party/devtools/node_modules/lodash/forOwn.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/forOwn.js
rename to src/third_party/devtools/node_modules/lodash/forOwn.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/forOwnRight.js b/src/third_party/devtools/node_modules/lodash/forOwnRight.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/forOwnRight.js
rename to src/third_party/devtools/node_modules/lodash/forOwnRight.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp.js b/src/third_party/devtools/node_modules/lodash/fp.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp.js
rename to src/third_party/devtools/node_modules/lodash/fp.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/F.js b/src/third_party/devtools/node_modules/lodash/fp/F.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/F.js
rename to src/third_party/devtools/node_modules/lodash/fp/F.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/T.js b/src/third_party/devtools/node_modules/lodash/fp/T.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/T.js
rename to src/third_party/devtools/node_modules/lodash/fp/T.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/__.js b/src/third_party/devtools/node_modules/lodash/fp/__.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/__.js
rename to src/third_party/devtools/node_modules/lodash/fp/__.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/_baseConvert.js b/src/third_party/devtools/node_modules/lodash/fp/_baseConvert.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/_baseConvert.js
rename to src/third_party/devtools/node_modules/lodash/fp/_baseConvert.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/_convertBrowser.js b/src/third_party/devtools/node_modules/lodash/fp/_convertBrowser.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/_convertBrowser.js
rename to src/third_party/devtools/node_modules/lodash/fp/_convertBrowser.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/_falseOptions.js b/src/third_party/devtools/node_modules/lodash/fp/_falseOptions.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/_falseOptions.js
rename to src/third_party/devtools/node_modules/lodash/fp/_falseOptions.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/_mapping.js b/src/third_party/devtools/node_modules/lodash/fp/_mapping.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/_mapping.js
rename to src/third_party/devtools/node_modules/lodash/fp/_mapping.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/_util.js b/src/third_party/devtools/node_modules/lodash/fp/_util.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/_util.js
rename to src/third_party/devtools/node_modules/lodash/fp/_util.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/add.js b/src/third_party/devtools/node_modules/lodash/fp/add.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/add.js
rename to src/third_party/devtools/node_modules/lodash/fp/add.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/after.js b/src/third_party/devtools/node_modules/lodash/fp/after.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/after.js
rename to src/third_party/devtools/node_modules/lodash/fp/after.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/all.js b/src/third_party/devtools/node_modules/lodash/fp/all.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/all.js
rename to src/third_party/devtools/node_modules/lodash/fp/all.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/allPass.js b/src/third_party/devtools/node_modules/lodash/fp/allPass.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/allPass.js
rename to src/third_party/devtools/node_modules/lodash/fp/allPass.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/always.js b/src/third_party/devtools/node_modules/lodash/fp/always.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/always.js
rename to src/third_party/devtools/node_modules/lodash/fp/always.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/any.js b/src/third_party/devtools/node_modules/lodash/fp/any.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/any.js
rename to src/third_party/devtools/node_modules/lodash/fp/any.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/anyPass.js b/src/third_party/devtools/node_modules/lodash/fp/anyPass.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/anyPass.js
rename to src/third_party/devtools/node_modules/lodash/fp/anyPass.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/apply.js b/src/third_party/devtools/node_modules/lodash/fp/apply.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/apply.js
rename to src/third_party/devtools/node_modules/lodash/fp/apply.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/array.js b/src/third_party/devtools/node_modules/lodash/fp/array.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/array.js
rename to src/third_party/devtools/node_modules/lodash/fp/array.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/ary.js b/src/third_party/devtools/node_modules/lodash/fp/ary.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/ary.js
rename to src/third_party/devtools/node_modules/lodash/fp/ary.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/assign.js b/src/third_party/devtools/node_modules/lodash/fp/assign.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/assign.js
rename to src/third_party/devtools/node_modules/lodash/fp/assign.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/assignAll.js b/src/third_party/devtools/node_modules/lodash/fp/assignAll.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/assignAll.js
rename to src/third_party/devtools/node_modules/lodash/fp/assignAll.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/assignAllWith.js b/src/third_party/devtools/node_modules/lodash/fp/assignAllWith.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/assignAllWith.js
rename to src/third_party/devtools/node_modules/lodash/fp/assignAllWith.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/assignIn.js b/src/third_party/devtools/node_modules/lodash/fp/assignIn.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/assignIn.js
rename to src/third_party/devtools/node_modules/lodash/fp/assignIn.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/assignInAll.js b/src/third_party/devtools/node_modules/lodash/fp/assignInAll.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/assignInAll.js
rename to src/third_party/devtools/node_modules/lodash/fp/assignInAll.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/assignInAllWith.js b/src/third_party/devtools/node_modules/lodash/fp/assignInAllWith.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/assignInAllWith.js
rename to src/third_party/devtools/node_modules/lodash/fp/assignInAllWith.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/assignInWith.js b/src/third_party/devtools/node_modules/lodash/fp/assignInWith.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/assignInWith.js
rename to src/third_party/devtools/node_modules/lodash/fp/assignInWith.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/assignWith.js b/src/third_party/devtools/node_modules/lodash/fp/assignWith.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/assignWith.js
rename to src/third_party/devtools/node_modules/lodash/fp/assignWith.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/assoc.js b/src/third_party/devtools/node_modules/lodash/fp/assoc.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/assoc.js
rename to src/third_party/devtools/node_modules/lodash/fp/assoc.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/assocPath.js b/src/third_party/devtools/node_modules/lodash/fp/assocPath.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/assocPath.js
rename to src/third_party/devtools/node_modules/lodash/fp/assocPath.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/at.js b/src/third_party/devtools/node_modules/lodash/fp/at.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/at.js
rename to src/third_party/devtools/node_modules/lodash/fp/at.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/attempt.js b/src/third_party/devtools/node_modules/lodash/fp/attempt.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/attempt.js
rename to src/third_party/devtools/node_modules/lodash/fp/attempt.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/before.js b/src/third_party/devtools/node_modules/lodash/fp/before.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/before.js
rename to src/third_party/devtools/node_modules/lodash/fp/before.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/bind.js b/src/third_party/devtools/node_modules/lodash/fp/bind.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/bind.js
rename to src/third_party/devtools/node_modules/lodash/fp/bind.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/bindAll.js b/src/third_party/devtools/node_modules/lodash/fp/bindAll.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/bindAll.js
rename to src/third_party/devtools/node_modules/lodash/fp/bindAll.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/bindKey.js b/src/third_party/devtools/node_modules/lodash/fp/bindKey.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/bindKey.js
rename to src/third_party/devtools/node_modules/lodash/fp/bindKey.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/camelCase.js b/src/third_party/devtools/node_modules/lodash/fp/camelCase.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/camelCase.js
rename to src/third_party/devtools/node_modules/lodash/fp/camelCase.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/capitalize.js b/src/third_party/devtools/node_modules/lodash/fp/capitalize.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/capitalize.js
rename to src/third_party/devtools/node_modules/lodash/fp/capitalize.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/castArray.js b/src/third_party/devtools/node_modules/lodash/fp/castArray.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/castArray.js
rename to src/third_party/devtools/node_modules/lodash/fp/castArray.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/ceil.js b/src/third_party/devtools/node_modules/lodash/fp/ceil.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/ceil.js
rename to src/third_party/devtools/node_modules/lodash/fp/ceil.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/chain.js b/src/third_party/devtools/node_modules/lodash/fp/chain.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/chain.js
rename to src/third_party/devtools/node_modules/lodash/fp/chain.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/chunk.js b/src/third_party/devtools/node_modules/lodash/fp/chunk.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/chunk.js
rename to src/third_party/devtools/node_modules/lodash/fp/chunk.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/clamp.js b/src/third_party/devtools/node_modules/lodash/fp/clamp.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/clamp.js
rename to src/third_party/devtools/node_modules/lodash/fp/clamp.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/clone.js b/src/third_party/devtools/node_modules/lodash/fp/clone.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/clone.js
rename to src/third_party/devtools/node_modules/lodash/fp/clone.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/cloneDeep.js b/src/third_party/devtools/node_modules/lodash/fp/cloneDeep.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/cloneDeep.js
rename to src/third_party/devtools/node_modules/lodash/fp/cloneDeep.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/cloneDeepWith.js b/src/third_party/devtools/node_modules/lodash/fp/cloneDeepWith.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/cloneDeepWith.js
rename to src/third_party/devtools/node_modules/lodash/fp/cloneDeepWith.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/cloneWith.js b/src/third_party/devtools/node_modules/lodash/fp/cloneWith.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/cloneWith.js
rename to src/third_party/devtools/node_modules/lodash/fp/cloneWith.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/collection.js b/src/third_party/devtools/node_modules/lodash/fp/collection.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/collection.js
rename to src/third_party/devtools/node_modules/lodash/fp/collection.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/commit.js b/src/third_party/devtools/node_modules/lodash/fp/commit.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/commit.js
rename to src/third_party/devtools/node_modules/lodash/fp/commit.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/compact.js b/src/third_party/devtools/node_modules/lodash/fp/compact.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/compact.js
rename to src/third_party/devtools/node_modules/lodash/fp/compact.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/complement.js b/src/third_party/devtools/node_modules/lodash/fp/complement.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/complement.js
rename to src/third_party/devtools/node_modules/lodash/fp/complement.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/compose.js b/src/third_party/devtools/node_modules/lodash/fp/compose.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/compose.js
rename to src/third_party/devtools/node_modules/lodash/fp/compose.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/concat.js b/src/third_party/devtools/node_modules/lodash/fp/concat.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/concat.js
rename to src/third_party/devtools/node_modules/lodash/fp/concat.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/cond.js b/src/third_party/devtools/node_modules/lodash/fp/cond.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/cond.js
rename to src/third_party/devtools/node_modules/lodash/fp/cond.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/conforms.js b/src/third_party/devtools/node_modules/lodash/fp/conforms.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/conforms.js
rename to src/third_party/devtools/node_modules/lodash/fp/conforms.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/conformsTo.js b/src/third_party/devtools/node_modules/lodash/fp/conformsTo.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/conformsTo.js
rename to src/third_party/devtools/node_modules/lodash/fp/conformsTo.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/constant.js b/src/third_party/devtools/node_modules/lodash/fp/constant.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/constant.js
rename to src/third_party/devtools/node_modules/lodash/fp/constant.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/contains.js b/src/third_party/devtools/node_modules/lodash/fp/contains.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/contains.js
rename to src/third_party/devtools/node_modules/lodash/fp/contains.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/convert.js b/src/third_party/devtools/node_modules/lodash/fp/convert.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/convert.js
rename to src/third_party/devtools/node_modules/lodash/fp/convert.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/countBy.js b/src/third_party/devtools/node_modules/lodash/fp/countBy.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/countBy.js
rename to src/third_party/devtools/node_modules/lodash/fp/countBy.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/create.js b/src/third_party/devtools/node_modules/lodash/fp/create.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/create.js
rename to src/third_party/devtools/node_modules/lodash/fp/create.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/curry.js b/src/third_party/devtools/node_modules/lodash/fp/curry.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/curry.js
rename to src/third_party/devtools/node_modules/lodash/fp/curry.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/curryN.js b/src/third_party/devtools/node_modules/lodash/fp/curryN.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/curryN.js
rename to src/third_party/devtools/node_modules/lodash/fp/curryN.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/curryRight.js b/src/third_party/devtools/node_modules/lodash/fp/curryRight.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/curryRight.js
rename to src/third_party/devtools/node_modules/lodash/fp/curryRight.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/curryRightN.js b/src/third_party/devtools/node_modules/lodash/fp/curryRightN.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/curryRightN.js
rename to src/third_party/devtools/node_modules/lodash/fp/curryRightN.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/date.js b/src/third_party/devtools/node_modules/lodash/fp/date.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/date.js
rename to src/third_party/devtools/node_modules/lodash/fp/date.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/debounce.js b/src/third_party/devtools/node_modules/lodash/fp/debounce.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/debounce.js
rename to src/third_party/devtools/node_modules/lodash/fp/debounce.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/deburr.js b/src/third_party/devtools/node_modules/lodash/fp/deburr.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/deburr.js
rename to src/third_party/devtools/node_modules/lodash/fp/deburr.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/defaultTo.js b/src/third_party/devtools/node_modules/lodash/fp/defaultTo.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/defaultTo.js
rename to src/third_party/devtools/node_modules/lodash/fp/defaultTo.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/defaults.js b/src/third_party/devtools/node_modules/lodash/fp/defaults.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/defaults.js
rename to src/third_party/devtools/node_modules/lodash/fp/defaults.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/defaultsAll.js b/src/third_party/devtools/node_modules/lodash/fp/defaultsAll.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/defaultsAll.js
rename to src/third_party/devtools/node_modules/lodash/fp/defaultsAll.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/defaultsDeep.js b/src/third_party/devtools/node_modules/lodash/fp/defaultsDeep.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/defaultsDeep.js
rename to src/third_party/devtools/node_modules/lodash/fp/defaultsDeep.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/defaultsDeepAll.js b/src/third_party/devtools/node_modules/lodash/fp/defaultsDeepAll.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/defaultsDeepAll.js
rename to src/third_party/devtools/node_modules/lodash/fp/defaultsDeepAll.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/defer.js b/src/third_party/devtools/node_modules/lodash/fp/defer.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/defer.js
rename to src/third_party/devtools/node_modules/lodash/fp/defer.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/delay.js b/src/third_party/devtools/node_modules/lodash/fp/delay.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/delay.js
rename to src/third_party/devtools/node_modules/lodash/fp/delay.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/difference.js b/src/third_party/devtools/node_modules/lodash/fp/difference.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/difference.js
rename to src/third_party/devtools/node_modules/lodash/fp/difference.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/differenceBy.js b/src/third_party/devtools/node_modules/lodash/fp/differenceBy.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/differenceBy.js
rename to src/third_party/devtools/node_modules/lodash/fp/differenceBy.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/differenceWith.js b/src/third_party/devtools/node_modules/lodash/fp/differenceWith.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/differenceWith.js
rename to src/third_party/devtools/node_modules/lodash/fp/differenceWith.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/dissoc.js b/src/third_party/devtools/node_modules/lodash/fp/dissoc.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/dissoc.js
rename to src/third_party/devtools/node_modules/lodash/fp/dissoc.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/dissocPath.js b/src/third_party/devtools/node_modules/lodash/fp/dissocPath.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/dissocPath.js
rename to src/third_party/devtools/node_modules/lodash/fp/dissocPath.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/divide.js b/src/third_party/devtools/node_modules/lodash/fp/divide.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/divide.js
rename to src/third_party/devtools/node_modules/lodash/fp/divide.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/drop.js b/src/third_party/devtools/node_modules/lodash/fp/drop.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/drop.js
rename to src/third_party/devtools/node_modules/lodash/fp/drop.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/dropLast.js b/src/third_party/devtools/node_modules/lodash/fp/dropLast.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/dropLast.js
rename to src/third_party/devtools/node_modules/lodash/fp/dropLast.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/dropLastWhile.js b/src/third_party/devtools/node_modules/lodash/fp/dropLastWhile.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/dropLastWhile.js
rename to src/third_party/devtools/node_modules/lodash/fp/dropLastWhile.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/dropRight.js b/src/third_party/devtools/node_modules/lodash/fp/dropRight.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/dropRight.js
rename to src/third_party/devtools/node_modules/lodash/fp/dropRight.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/dropRightWhile.js b/src/third_party/devtools/node_modules/lodash/fp/dropRightWhile.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/dropRightWhile.js
rename to src/third_party/devtools/node_modules/lodash/fp/dropRightWhile.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/dropWhile.js b/src/third_party/devtools/node_modules/lodash/fp/dropWhile.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/dropWhile.js
rename to src/third_party/devtools/node_modules/lodash/fp/dropWhile.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/each.js b/src/third_party/devtools/node_modules/lodash/fp/each.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/each.js
rename to src/third_party/devtools/node_modules/lodash/fp/each.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/eachRight.js b/src/third_party/devtools/node_modules/lodash/fp/eachRight.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/eachRight.js
rename to src/third_party/devtools/node_modules/lodash/fp/eachRight.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/endsWith.js b/src/third_party/devtools/node_modules/lodash/fp/endsWith.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/endsWith.js
rename to src/third_party/devtools/node_modules/lodash/fp/endsWith.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/entries.js b/src/third_party/devtools/node_modules/lodash/fp/entries.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/entries.js
rename to src/third_party/devtools/node_modules/lodash/fp/entries.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/entriesIn.js b/src/third_party/devtools/node_modules/lodash/fp/entriesIn.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/entriesIn.js
rename to src/third_party/devtools/node_modules/lodash/fp/entriesIn.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/eq.js b/src/third_party/devtools/node_modules/lodash/fp/eq.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/eq.js
rename to src/third_party/devtools/node_modules/lodash/fp/eq.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/equals.js b/src/third_party/devtools/node_modules/lodash/fp/equals.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/equals.js
rename to src/third_party/devtools/node_modules/lodash/fp/equals.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/escape.js b/src/third_party/devtools/node_modules/lodash/fp/escape.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/escape.js
rename to src/third_party/devtools/node_modules/lodash/fp/escape.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/escapeRegExp.js b/src/third_party/devtools/node_modules/lodash/fp/escapeRegExp.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/escapeRegExp.js
rename to src/third_party/devtools/node_modules/lodash/fp/escapeRegExp.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/every.js b/src/third_party/devtools/node_modules/lodash/fp/every.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/every.js
rename to src/third_party/devtools/node_modules/lodash/fp/every.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/extend.js b/src/third_party/devtools/node_modules/lodash/fp/extend.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/extend.js
rename to src/third_party/devtools/node_modules/lodash/fp/extend.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/extendAll.js b/src/third_party/devtools/node_modules/lodash/fp/extendAll.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/extendAll.js
rename to src/third_party/devtools/node_modules/lodash/fp/extendAll.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/extendAllWith.js b/src/third_party/devtools/node_modules/lodash/fp/extendAllWith.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/extendAllWith.js
rename to src/third_party/devtools/node_modules/lodash/fp/extendAllWith.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/extendWith.js b/src/third_party/devtools/node_modules/lodash/fp/extendWith.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/extendWith.js
rename to src/third_party/devtools/node_modules/lodash/fp/extendWith.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/fill.js b/src/third_party/devtools/node_modules/lodash/fp/fill.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/fill.js
rename to src/third_party/devtools/node_modules/lodash/fp/fill.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/filter.js b/src/third_party/devtools/node_modules/lodash/fp/filter.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/filter.js
rename to src/third_party/devtools/node_modules/lodash/fp/filter.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/find.js b/src/third_party/devtools/node_modules/lodash/fp/find.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/find.js
rename to src/third_party/devtools/node_modules/lodash/fp/find.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/findFrom.js b/src/third_party/devtools/node_modules/lodash/fp/findFrom.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/findFrom.js
rename to src/third_party/devtools/node_modules/lodash/fp/findFrom.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/findIndex.js b/src/third_party/devtools/node_modules/lodash/fp/findIndex.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/findIndex.js
rename to src/third_party/devtools/node_modules/lodash/fp/findIndex.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/findIndexFrom.js b/src/third_party/devtools/node_modules/lodash/fp/findIndexFrom.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/findIndexFrom.js
rename to src/third_party/devtools/node_modules/lodash/fp/findIndexFrom.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/findKey.js b/src/third_party/devtools/node_modules/lodash/fp/findKey.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/findKey.js
rename to src/third_party/devtools/node_modules/lodash/fp/findKey.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/findLast.js b/src/third_party/devtools/node_modules/lodash/fp/findLast.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/findLast.js
rename to src/third_party/devtools/node_modules/lodash/fp/findLast.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/findLastFrom.js b/src/third_party/devtools/node_modules/lodash/fp/findLastFrom.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/findLastFrom.js
rename to src/third_party/devtools/node_modules/lodash/fp/findLastFrom.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/findLastIndex.js b/src/third_party/devtools/node_modules/lodash/fp/findLastIndex.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/findLastIndex.js
rename to src/third_party/devtools/node_modules/lodash/fp/findLastIndex.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/findLastIndexFrom.js b/src/third_party/devtools/node_modules/lodash/fp/findLastIndexFrom.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/findLastIndexFrom.js
rename to src/third_party/devtools/node_modules/lodash/fp/findLastIndexFrom.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/findLastKey.js b/src/third_party/devtools/node_modules/lodash/fp/findLastKey.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/findLastKey.js
rename to src/third_party/devtools/node_modules/lodash/fp/findLastKey.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/first.js b/src/third_party/devtools/node_modules/lodash/fp/first.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/first.js
rename to src/third_party/devtools/node_modules/lodash/fp/first.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/flatMap.js b/src/third_party/devtools/node_modules/lodash/fp/flatMap.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/flatMap.js
rename to src/third_party/devtools/node_modules/lodash/fp/flatMap.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/flatMapDeep.js b/src/third_party/devtools/node_modules/lodash/fp/flatMapDeep.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/flatMapDeep.js
rename to src/third_party/devtools/node_modules/lodash/fp/flatMapDeep.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/flatMapDepth.js b/src/third_party/devtools/node_modules/lodash/fp/flatMapDepth.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/flatMapDepth.js
rename to src/third_party/devtools/node_modules/lodash/fp/flatMapDepth.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/flatten.js b/src/third_party/devtools/node_modules/lodash/fp/flatten.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/flatten.js
rename to src/third_party/devtools/node_modules/lodash/fp/flatten.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/flattenDeep.js b/src/third_party/devtools/node_modules/lodash/fp/flattenDeep.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/flattenDeep.js
rename to src/third_party/devtools/node_modules/lodash/fp/flattenDeep.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/flattenDepth.js b/src/third_party/devtools/node_modules/lodash/fp/flattenDepth.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/flattenDepth.js
rename to src/third_party/devtools/node_modules/lodash/fp/flattenDepth.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/flip.js b/src/third_party/devtools/node_modules/lodash/fp/flip.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/flip.js
rename to src/third_party/devtools/node_modules/lodash/fp/flip.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/floor.js b/src/third_party/devtools/node_modules/lodash/fp/floor.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/floor.js
rename to src/third_party/devtools/node_modules/lodash/fp/floor.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/flow.js b/src/third_party/devtools/node_modules/lodash/fp/flow.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/flow.js
rename to src/third_party/devtools/node_modules/lodash/fp/flow.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/flowRight.js b/src/third_party/devtools/node_modules/lodash/fp/flowRight.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/flowRight.js
rename to src/third_party/devtools/node_modules/lodash/fp/flowRight.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/forEach.js b/src/third_party/devtools/node_modules/lodash/fp/forEach.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/forEach.js
rename to src/third_party/devtools/node_modules/lodash/fp/forEach.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/forEachRight.js b/src/third_party/devtools/node_modules/lodash/fp/forEachRight.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/forEachRight.js
rename to src/third_party/devtools/node_modules/lodash/fp/forEachRight.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/forIn.js b/src/third_party/devtools/node_modules/lodash/fp/forIn.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/forIn.js
rename to src/third_party/devtools/node_modules/lodash/fp/forIn.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/forInRight.js b/src/third_party/devtools/node_modules/lodash/fp/forInRight.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/forInRight.js
rename to src/third_party/devtools/node_modules/lodash/fp/forInRight.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/forOwn.js b/src/third_party/devtools/node_modules/lodash/fp/forOwn.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/forOwn.js
rename to src/third_party/devtools/node_modules/lodash/fp/forOwn.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/forOwnRight.js b/src/third_party/devtools/node_modules/lodash/fp/forOwnRight.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/forOwnRight.js
rename to src/third_party/devtools/node_modules/lodash/fp/forOwnRight.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/fromPairs.js b/src/third_party/devtools/node_modules/lodash/fp/fromPairs.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/fromPairs.js
rename to src/third_party/devtools/node_modules/lodash/fp/fromPairs.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/function.js b/src/third_party/devtools/node_modules/lodash/fp/function.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/function.js
rename to src/third_party/devtools/node_modules/lodash/fp/function.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/functions.js b/src/third_party/devtools/node_modules/lodash/fp/functions.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/functions.js
rename to src/third_party/devtools/node_modules/lodash/fp/functions.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/functionsIn.js b/src/third_party/devtools/node_modules/lodash/fp/functionsIn.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/functionsIn.js
rename to src/third_party/devtools/node_modules/lodash/fp/functionsIn.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/get.js b/src/third_party/devtools/node_modules/lodash/fp/get.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/get.js
rename to src/third_party/devtools/node_modules/lodash/fp/get.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/getOr.js b/src/third_party/devtools/node_modules/lodash/fp/getOr.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/getOr.js
rename to src/third_party/devtools/node_modules/lodash/fp/getOr.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/groupBy.js b/src/third_party/devtools/node_modules/lodash/fp/groupBy.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/groupBy.js
rename to src/third_party/devtools/node_modules/lodash/fp/groupBy.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/gt.js b/src/third_party/devtools/node_modules/lodash/fp/gt.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/gt.js
rename to src/third_party/devtools/node_modules/lodash/fp/gt.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/gte.js b/src/third_party/devtools/node_modules/lodash/fp/gte.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/gte.js
rename to src/third_party/devtools/node_modules/lodash/fp/gte.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/has.js b/src/third_party/devtools/node_modules/lodash/fp/has.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/has.js
rename to src/third_party/devtools/node_modules/lodash/fp/has.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/hasIn.js b/src/third_party/devtools/node_modules/lodash/fp/hasIn.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/hasIn.js
rename to src/third_party/devtools/node_modules/lodash/fp/hasIn.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/head.js b/src/third_party/devtools/node_modules/lodash/fp/head.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/head.js
rename to src/third_party/devtools/node_modules/lodash/fp/head.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/identical.js b/src/third_party/devtools/node_modules/lodash/fp/identical.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/identical.js
rename to src/third_party/devtools/node_modules/lodash/fp/identical.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/identity.js b/src/third_party/devtools/node_modules/lodash/fp/identity.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/identity.js
rename to src/third_party/devtools/node_modules/lodash/fp/identity.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/inRange.js b/src/third_party/devtools/node_modules/lodash/fp/inRange.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/inRange.js
rename to src/third_party/devtools/node_modules/lodash/fp/inRange.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/includes.js b/src/third_party/devtools/node_modules/lodash/fp/includes.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/includes.js
rename to src/third_party/devtools/node_modules/lodash/fp/includes.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/includesFrom.js b/src/third_party/devtools/node_modules/lodash/fp/includesFrom.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/includesFrom.js
rename to src/third_party/devtools/node_modules/lodash/fp/includesFrom.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/indexBy.js b/src/third_party/devtools/node_modules/lodash/fp/indexBy.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/indexBy.js
rename to src/third_party/devtools/node_modules/lodash/fp/indexBy.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/indexOf.js b/src/third_party/devtools/node_modules/lodash/fp/indexOf.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/indexOf.js
rename to src/third_party/devtools/node_modules/lodash/fp/indexOf.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/indexOfFrom.js b/src/third_party/devtools/node_modules/lodash/fp/indexOfFrom.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/indexOfFrom.js
rename to src/third_party/devtools/node_modules/lodash/fp/indexOfFrom.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/init.js b/src/third_party/devtools/node_modules/lodash/fp/init.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/init.js
rename to src/third_party/devtools/node_modules/lodash/fp/init.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/initial.js b/src/third_party/devtools/node_modules/lodash/fp/initial.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/initial.js
rename to src/third_party/devtools/node_modules/lodash/fp/initial.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/intersection.js b/src/third_party/devtools/node_modules/lodash/fp/intersection.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/intersection.js
rename to src/third_party/devtools/node_modules/lodash/fp/intersection.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/intersectionBy.js b/src/third_party/devtools/node_modules/lodash/fp/intersectionBy.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/intersectionBy.js
rename to src/third_party/devtools/node_modules/lodash/fp/intersectionBy.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/intersectionWith.js b/src/third_party/devtools/node_modules/lodash/fp/intersectionWith.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/intersectionWith.js
rename to src/third_party/devtools/node_modules/lodash/fp/intersectionWith.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/invert.js b/src/third_party/devtools/node_modules/lodash/fp/invert.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/invert.js
rename to src/third_party/devtools/node_modules/lodash/fp/invert.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/invertBy.js b/src/third_party/devtools/node_modules/lodash/fp/invertBy.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/invertBy.js
rename to src/third_party/devtools/node_modules/lodash/fp/invertBy.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/invertObj.js b/src/third_party/devtools/node_modules/lodash/fp/invertObj.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/invertObj.js
rename to src/third_party/devtools/node_modules/lodash/fp/invertObj.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/invoke.js b/src/third_party/devtools/node_modules/lodash/fp/invoke.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/invoke.js
rename to src/third_party/devtools/node_modules/lodash/fp/invoke.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/invokeArgs.js b/src/third_party/devtools/node_modules/lodash/fp/invokeArgs.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/invokeArgs.js
rename to src/third_party/devtools/node_modules/lodash/fp/invokeArgs.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/invokeArgsMap.js b/src/third_party/devtools/node_modules/lodash/fp/invokeArgsMap.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/invokeArgsMap.js
rename to src/third_party/devtools/node_modules/lodash/fp/invokeArgsMap.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/invokeMap.js b/src/third_party/devtools/node_modules/lodash/fp/invokeMap.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/invokeMap.js
rename to src/third_party/devtools/node_modules/lodash/fp/invokeMap.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/isArguments.js b/src/third_party/devtools/node_modules/lodash/fp/isArguments.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/isArguments.js
rename to src/third_party/devtools/node_modules/lodash/fp/isArguments.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/isArray.js b/src/third_party/devtools/node_modules/lodash/fp/isArray.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/isArray.js
rename to src/third_party/devtools/node_modules/lodash/fp/isArray.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/isArrayBuffer.js b/src/third_party/devtools/node_modules/lodash/fp/isArrayBuffer.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/isArrayBuffer.js
rename to src/third_party/devtools/node_modules/lodash/fp/isArrayBuffer.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/isArrayLike.js b/src/third_party/devtools/node_modules/lodash/fp/isArrayLike.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/isArrayLike.js
rename to src/third_party/devtools/node_modules/lodash/fp/isArrayLike.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/isArrayLikeObject.js b/src/third_party/devtools/node_modules/lodash/fp/isArrayLikeObject.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/isArrayLikeObject.js
rename to src/third_party/devtools/node_modules/lodash/fp/isArrayLikeObject.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/isBoolean.js b/src/third_party/devtools/node_modules/lodash/fp/isBoolean.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/isBoolean.js
rename to src/third_party/devtools/node_modules/lodash/fp/isBoolean.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/isBuffer.js b/src/third_party/devtools/node_modules/lodash/fp/isBuffer.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/isBuffer.js
rename to src/third_party/devtools/node_modules/lodash/fp/isBuffer.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/isDate.js b/src/third_party/devtools/node_modules/lodash/fp/isDate.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/isDate.js
rename to src/third_party/devtools/node_modules/lodash/fp/isDate.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/isElement.js b/src/third_party/devtools/node_modules/lodash/fp/isElement.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/isElement.js
rename to src/third_party/devtools/node_modules/lodash/fp/isElement.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/isEmpty.js b/src/third_party/devtools/node_modules/lodash/fp/isEmpty.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/isEmpty.js
rename to src/third_party/devtools/node_modules/lodash/fp/isEmpty.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/isEqual.js b/src/third_party/devtools/node_modules/lodash/fp/isEqual.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/isEqual.js
rename to src/third_party/devtools/node_modules/lodash/fp/isEqual.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/isEqualWith.js b/src/third_party/devtools/node_modules/lodash/fp/isEqualWith.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/isEqualWith.js
rename to src/third_party/devtools/node_modules/lodash/fp/isEqualWith.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/isError.js b/src/third_party/devtools/node_modules/lodash/fp/isError.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/isError.js
rename to src/third_party/devtools/node_modules/lodash/fp/isError.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/isFinite.js b/src/third_party/devtools/node_modules/lodash/fp/isFinite.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/isFinite.js
rename to src/third_party/devtools/node_modules/lodash/fp/isFinite.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/isFunction.js b/src/third_party/devtools/node_modules/lodash/fp/isFunction.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/isFunction.js
rename to src/third_party/devtools/node_modules/lodash/fp/isFunction.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/isInteger.js b/src/third_party/devtools/node_modules/lodash/fp/isInteger.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/isInteger.js
rename to src/third_party/devtools/node_modules/lodash/fp/isInteger.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/isLength.js b/src/third_party/devtools/node_modules/lodash/fp/isLength.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/isLength.js
rename to src/third_party/devtools/node_modules/lodash/fp/isLength.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/isMap.js b/src/third_party/devtools/node_modules/lodash/fp/isMap.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/isMap.js
rename to src/third_party/devtools/node_modules/lodash/fp/isMap.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/isMatch.js b/src/third_party/devtools/node_modules/lodash/fp/isMatch.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/isMatch.js
rename to src/third_party/devtools/node_modules/lodash/fp/isMatch.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/isMatchWith.js b/src/third_party/devtools/node_modules/lodash/fp/isMatchWith.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/isMatchWith.js
rename to src/third_party/devtools/node_modules/lodash/fp/isMatchWith.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/isNaN.js b/src/third_party/devtools/node_modules/lodash/fp/isNaN.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/isNaN.js
rename to src/third_party/devtools/node_modules/lodash/fp/isNaN.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/isNative.js b/src/third_party/devtools/node_modules/lodash/fp/isNative.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/isNative.js
rename to src/third_party/devtools/node_modules/lodash/fp/isNative.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/isNil.js b/src/third_party/devtools/node_modules/lodash/fp/isNil.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/isNil.js
rename to src/third_party/devtools/node_modules/lodash/fp/isNil.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/isNull.js b/src/third_party/devtools/node_modules/lodash/fp/isNull.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/isNull.js
rename to src/third_party/devtools/node_modules/lodash/fp/isNull.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/isNumber.js b/src/third_party/devtools/node_modules/lodash/fp/isNumber.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/isNumber.js
rename to src/third_party/devtools/node_modules/lodash/fp/isNumber.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/isObject.js b/src/third_party/devtools/node_modules/lodash/fp/isObject.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/isObject.js
rename to src/third_party/devtools/node_modules/lodash/fp/isObject.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/isObjectLike.js b/src/third_party/devtools/node_modules/lodash/fp/isObjectLike.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/isObjectLike.js
rename to src/third_party/devtools/node_modules/lodash/fp/isObjectLike.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/isPlainObject.js b/src/third_party/devtools/node_modules/lodash/fp/isPlainObject.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/isPlainObject.js
rename to src/third_party/devtools/node_modules/lodash/fp/isPlainObject.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/isRegExp.js b/src/third_party/devtools/node_modules/lodash/fp/isRegExp.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/isRegExp.js
rename to src/third_party/devtools/node_modules/lodash/fp/isRegExp.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/isSafeInteger.js b/src/third_party/devtools/node_modules/lodash/fp/isSafeInteger.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/isSafeInteger.js
rename to src/third_party/devtools/node_modules/lodash/fp/isSafeInteger.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/isSet.js b/src/third_party/devtools/node_modules/lodash/fp/isSet.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/isSet.js
rename to src/third_party/devtools/node_modules/lodash/fp/isSet.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/isString.js b/src/third_party/devtools/node_modules/lodash/fp/isString.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/isString.js
rename to src/third_party/devtools/node_modules/lodash/fp/isString.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/isSymbol.js b/src/third_party/devtools/node_modules/lodash/fp/isSymbol.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/isSymbol.js
rename to src/third_party/devtools/node_modules/lodash/fp/isSymbol.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/isTypedArray.js b/src/third_party/devtools/node_modules/lodash/fp/isTypedArray.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/isTypedArray.js
rename to src/third_party/devtools/node_modules/lodash/fp/isTypedArray.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/isUndefined.js b/src/third_party/devtools/node_modules/lodash/fp/isUndefined.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/isUndefined.js
rename to src/third_party/devtools/node_modules/lodash/fp/isUndefined.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/isWeakMap.js b/src/third_party/devtools/node_modules/lodash/fp/isWeakMap.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/isWeakMap.js
rename to src/third_party/devtools/node_modules/lodash/fp/isWeakMap.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/isWeakSet.js b/src/third_party/devtools/node_modules/lodash/fp/isWeakSet.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/isWeakSet.js
rename to src/third_party/devtools/node_modules/lodash/fp/isWeakSet.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/iteratee.js b/src/third_party/devtools/node_modules/lodash/fp/iteratee.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/iteratee.js
rename to src/third_party/devtools/node_modules/lodash/fp/iteratee.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/join.js b/src/third_party/devtools/node_modules/lodash/fp/join.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/join.js
rename to src/third_party/devtools/node_modules/lodash/fp/join.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/juxt.js b/src/third_party/devtools/node_modules/lodash/fp/juxt.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/juxt.js
rename to src/third_party/devtools/node_modules/lodash/fp/juxt.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/kebabCase.js b/src/third_party/devtools/node_modules/lodash/fp/kebabCase.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/kebabCase.js
rename to src/third_party/devtools/node_modules/lodash/fp/kebabCase.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/keyBy.js b/src/third_party/devtools/node_modules/lodash/fp/keyBy.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/keyBy.js
rename to src/third_party/devtools/node_modules/lodash/fp/keyBy.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/keys.js b/src/third_party/devtools/node_modules/lodash/fp/keys.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/keys.js
rename to src/third_party/devtools/node_modules/lodash/fp/keys.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/keysIn.js b/src/third_party/devtools/node_modules/lodash/fp/keysIn.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/keysIn.js
rename to src/third_party/devtools/node_modules/lodash/fp/keysIn.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/lang.js b/src/third_party/devtools/node_modules/lodash/fp/lang.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/lang.js
rename to src/third_party/devtools/node_modules/lodash/fp/lang.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/last.js b/src/third_party/devtools/node_modules/lodash/fp/last.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/last.js
rename to src/third_party/devtools/node_modules/lodash/fp/last.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/lastIndexOf.js b/src/third_party/devtools/node_modules/lodash/fp/lastIndexOf.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/lastIndexOf.js
rename to src/third_party/devtools/node_modules/lodash/fp/lastIndexOf.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/lastIndexOfFrom.js b/src/third_party/devtools/node_modules/lodash/fp/lastIndexOfFrom.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/lastIndexOfFrom.js
rename to src/third_party/devtools/node_modules/lodash/fp/lastIndexOfFrom.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/lowerCase.js b/src/third_party/devtools/node_modules/lodash/fp/lowerCase.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/lowerCase.js
rename to src/third_party/devtools/node_modules/lodash/fp/lowerCase.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/lowerFirst.js b/src/third_party/devtools/node_modules/lodash/fp/lowerFirst.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/lowerFirst.js
rename to src/third_party/devtools/node_modules/lodash/fp/lowerFirst.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/lt.js b/src/third_party/devtools/node_modules/lodash/fp/lt.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/lt.js
rename to src/third_party/devtools/node_modules/lodash/fp/lt.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/lte.js b/src/third_party/devtools/node_modules/lodash/fp/lte.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/lte.js
rename to src/third_party/devtools/node_modules/lodash/fp/lte.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/map.js b/src/third_party/devtools/node_modules/lodash/fp/map.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/map.js
rename to src/third_party/devtools/node_modules/lodash/fp/map.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/mapKeys.js b/src/third_party/devtools/node_modules/lodash/fp/mapKeys.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/mapKeys.js
rename to src/third_party/devtools/node_modules/lodash/fp/mapKeys.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/mapValues.js b/src/third_party/devtools/node_modules/lodash/fp/mapValues.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/mapValues.js
rename to src/third_party/devtools/node_modules/lodash/fp/mapValues.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/matches.js b/src/third_party/devtools/node_modules/lodash/fp/matches.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/matches.js
rename to src/third_party/devtools/node_modules/lodash/fp/matches.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/matchesProperty.js b/src/third_party/devtools/node_modules/lodash/fp/matchesProperty.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/matchesProperty.js
rename to src/third_party/devtools/node_modules/lodash/fp/matchesProperty.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/math.js b/src/third_party/devtools/node_modules/lodash/fp/math.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/math.js
rename to src/third_party/devtools/node_modules/lodash/fp/math.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/max.js b/src/third_party/devtools/node_modules/lodash/fp/max.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/max.js
rename to src/third_party/devtools/node_modules/lodash/fp/max.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/maxBy.js b/src/third_party/devtools/node_modules/lodash/fp/maxBy.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/maxBy.js
rename to src/third_party/devtools/node_modules/lodash/fp/maxBy.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/mean.js b/src/third_party/devtools/node_modules/lodash/fp/mean.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/mean.js
rename to src/third_party/devtools/node_modules/lodash/fp/mean.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/meanBy.js b/src/third_party/devtools/node_modules/lodash/fp/meanBy.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/meanBy.js
rename to src/third_party/devtools/node_modules/lodash/fp/meanBy.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/memoize.js b/src/third_party/devtools/node_modules/lodash/fp/memoize.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/memoize.js
rename to src/third_party/devtools/node_modules/lodash/fp/memoize.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/merge.js b/src/third_party/devtools/node_modules/lodash/fp/merge.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/merge.js
rename to src/third_party/devtools/node_modules/lodash/fp/merge.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/mergeAll.js b/src/third_party/devtools/node_modules/lodash/fp/mergeAll.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/mergeAll.js
rename to src/third_party/devtools/node_modules/lodash/fp/mergeAll.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/mergeAllWith.js b/src/third_party/devtools/node_modules/lodash/fp/mergeAllWith.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/mergeAllWith.js
rename to src/third_party/devtools/node_modules/lodash/fp/mergeAllWith.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/mergeWith.js b/src/third_party/devtools/node_modules/lodash/fp/mergeWith.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/mergeWith.js
rename to src/third_party/devtools/node_modules/lodash/fp/mergeWith.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/method.js b/src/third_party/devtools/node_modules/lodash/fp/method.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/method.js
rename to src/third_party/devtools/node_modules/lodash/fp/method.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/methodOf.js b/src/third_party/devtools/node_modules/lodash/fp/methodOf.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/methodOf.js
rename to src/third_party/devtools/node_modules/lodash/fp/methodOf.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/min.js b/src/third_party/devtools/node_modules/lodash/fp/min.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/min.js
rename to src/third_party/devtools/node_modules/lodash/fp/min.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/minBy.js b/src/third_party/devtools/node_modules/lodash/fp/minBy.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/minBy.js
rename to src/third_party/devtools/node_modules/lodash/fp/minBy.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/mixin.js b/src/third_party/devtools/node_modules/lodash/fp/mixin.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/mixin.js
rename to src/third_party/devtools/node_modules/lodash/fp/mixin.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/multiply.js b/src/third_party/devtools/node_modules/lodash/fp/multiply.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/multiply.js
rename to src/third_party/devtools/node_modules/lodash/fp/multiply.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/nAry.js b/src/third_party/devtools/node_modules/lodash/fp/nAry.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/nAry.js
rename to src/third_party/devtools/node_modules/lodash/fp/nAry.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/negate.js b/src/third_party/devtools/node_modules/lodash/fp/negate.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/negate.js
rename to src/third_party/devtools/node_modules/lodash/fp/negate.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/next.js b/src/third_party/devtools/node_modules/lodash/fp/next.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/next.js
rename to src/third_party/devtools/node_modules/lodash/fp/next.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/noop.js b/src/third_party/devtools/node_modules/lodash/fp/noop.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/noop.js
rename to src/third_party/devtools/node_modules/lodash/fp/noop.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/now.js b/src/third_party/devtools/node_modules/lodash/fp/now.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/now.js
rename to src/third_party/devtools/node_modules/lodash/fp/now.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/nth.js b/src/third_party/devtools/node_modules/lodash/fp/nth.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/nth.js
rename to src/third_party/devtools/node_modules/lodash/fp/nth.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/nthArg.js b/src/third_party/devtools/node_modules/lodash/fp/nthArg.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/nthArg.js
rename to src/third_party/devtools/node_modules/lodash/fp/nthArg.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/number.js b/src/third_party/devtools/node_modules/lodash/fp/number.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/number.js
rename to src/third_party/devtools/node_modules/lodash/fp/number.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/object.js b/src/third_party/devtools/node_modules/lodash/fp/object.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/object.js
rename to src/third_party/devtools/node_modules/lodash/fp/object.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/omit.js b/src/third_party/devtools/node_modules/lodash/fp/omit.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/omit.js
rename to src/third_party/devtools/node_modules/lodash/fp/omit.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/omitAll.js b/src/third_party/devtools/node_modules/lodash/fp/omitAll.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/omitAll.js
rename to src/third_party/devtools/node_modules/lodash/fp/omitAll.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/omitBy.js b/src/third_party/devtools/node_modules/lodash/fp/omitBy.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/omitBy.js
rename to src/third_party/devtools/node_modules/lodash/fp/omitBy.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/once.js b/src/third_party/devtools/node_modules/lodash/fp/once.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/once.js
rename to src/third_party/devtools/node_modules/lodash/fp/once.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/orderBy.js b/src/third_party/devtools/node_modules/lodash/fp/orderBy.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/orderBy.js
rename to src/third_party/devtools/node_modules/lodash/fp/orderBy.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/over.js b/src/third_party/devtools/node_modules/lodash/fp/over.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/over.js
rename to src/third_party/devtools/node_modules/lodash/fp/over.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/overArgs.js b/src/third_party/devtools/node_modules/lodash/fp/overArgs.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/overArgs.js
rename to src/third_party/devtools/node_modules/lodash/fp/overArgs.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/overEvery.js b/src/third_party/devtools/node_modules/lodash/fp/overEvery.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/overEvery.js
rename to src/third_party/devtools/node_modules/lodash/fp/overEvery.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/overSome.js b/src/third_party/devtools/node_modules/lodash/fp/overSome.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/overSome.js
rename to src/third_party/devtools/node_modules/lodash/fp/overSome.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/pad.js b/src/third_party/devtools/node_modules/lodash/fp/pad.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/pad.js
rename to src/third_party/devtools/node_modules/lodash/fp/pad.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/padChars.js b/src/third_party/devtools/node_modules/lodash/fp/padChars.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/padChars.js
rename to src/third_party/devtools/node_modules/lodash/fp/padChars.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/padCharsEnd.js b/src/third_party/devtools/node_modules/lodash/fp/padCharsEnd.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/padCharsEnd.js
rename to src/third_party/devtools/node_modules/lodash/fp/padCharsEnd.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/padCharsStart.js b/src/third_party/devtools/node_modules/lodash/fp/padCharsStart.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/padCharsStart.js
rename to src/third_party/devtools/node_modules/lodash/fp/padCharsStart.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/padEnd.js b/src/third_party/devtools/node_modules/lodash/fp/padEnd.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/padEnd.js
rename to src/third_party/devtools/node_modules/lodash/fp/padEnd.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/padStart.js b/src/third_party/devtools/node_modules/lodash/fp/padStart.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/padStart.js
rename to src/third_party/devtools/node_modules/lodash/fp/padStart.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/parseInt.js b/src/third_party/devtools/node_modules/lodash/fp/parseInt.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/parseInt.js
rename to src/third_party/devtools/node_modules/lodash/fp/parseInt.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/partial.js b/src/third_party/devtools/node_modules/lodash/fp/partial.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/partial.js
rename to src/third_party/devtools/node_modules/lodash/fp/partial.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/partialRight.js b/src/third_party/devtools/node_modules/lodash/fp/partialRight.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/partialRight.js
rename to src/third_party/devtools/node_modules/lodash/fp/partialRight.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/partition.js b/src/third_party/devtools/node_modules/lodash/fp/partition.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/partition.js
rename to src/third_party/devtools/node_modules/lodash/fp/partition.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/path.js b/src/third_party/devtools/node_modules/lodash/fp/path.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/path.js
rename to src/third_party/devtools/node_modules/lodash/fp/path.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/pathEq.js b/src/third_party/devtools/node_modules/lodash/fp/pathEq.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/pathEq.js
rename to src/third_party/devtools/node_modules/lodash/fp/pathEq.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/pathOr.js b/src/third_party/devtools/node_modules/lodash/fp/pathOr.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/pathOr.js
rename to src/third_party/devtools/node_modules/lodash/fp/pathOr.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/paths.js b/src/third_party/devtools/node_modules/lodash/fp/paths.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/paths.js
rename to src/third_party/devtools/node_modules/lodash/fp/paths.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/pick.js b/src/third_party/devtools/node_modules/lodash/fp/pick.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/pick.js
rename to src/third_party/devtools/node_modules/lodash/fp/pick.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/pickAll.js b/src/third_party/devtools/node_modules/lodash/fp/pickAll.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/pickAll.js
rename to src/third_party/devtools/node_modules/lodash/fp/pickAll.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/pickBy.js b/src/third_party/devtools/node_modules/lodash/fp/pickBy.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/pickBy.js
rename to src/third_party/devtools/node_modules/lodash/fp/pickBy.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/pipe.js b/src/third_party/devtools/node_modules/lodash/fp/pipe.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/pipe.js
rename to src/third_party/devtools/node_modules/lodash/fp/pipe.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/placeholder.js b/src/third_party/devtools/node_modules/lodash/fp/placeholder.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/placeholder.js
rename to src/third_party/devtools/node_modules/lodash/fp/placeholder.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/plant.js b/src/third_party/devtools/node_modules/lodash/fp/plant.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/plant.js
rename to src/third_party/devtools/node_modules/lodash/fp/plant.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/pluck.js b/src/third_party/devtools/node_modules/lodash/fp/pluck.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/pluck.js
rename to src/third_party/devtools/node_modules/lodash/fp/pluck.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/prop.js b/src/third_party/devtools/node_modules/lodash/fp/prop.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/prop.js
rename to src/third_party/devtools/node_modules/lodash/fp/prop.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/propEq.js b/src/third_party/devtools/node_modules/lodash/fp/propEq.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/propEq.js
rename to src/third_party/devtools/node_modules/lodash/fp/propEq.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/propOr.js b/src/third_party/devtools/node_modules/lodash/fp/propOr.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/propOr.js
rename to src/third_party/devtools/node_modules/lodash/fp/propOr.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/property.js b/src/third_party/devtools/node_modules/lodash/fp/property.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/property.js
rename to src/third_party/devtools/node_modules/lodash/fp/property.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/propertyOf.js b/src/third_party/devtools/node_modules/lodash/fp/propertyOf.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/propertyOf.js
rename to src/third_party/devtools/node_modules/lodash/fp/propertyOf.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/props.js b/src/third_party/devtools/node_modules/lodash/fp/props.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/props.js
rename to src/third_party/devtools/node_modules/lodash/fp/props.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/pull.js b/src/third_party/devtools/node_modules/lodash/fp/pull.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/pull.js
rename to src/third_party/devtools/node_modules/lodash/fp/pull.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/pullAll.js b/src/third_party/devtools/node_modules/lodash/fp/pullAll.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/pullAll.js
rename to src/third_party/devtools/node_modules/lodash/fp/pullAll.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/pullAllBy.js b/src/third_party/devtools/node_modules/lodash/fp/pullAllBy.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/pullAllBy.js
rename to src/third_party/devtools/node_modules/lodash/fp/pullAllBy.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/pullAllWith.js b/src/third_party/devtools/node_modules/lodash/fp/pullAllWith.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/pullAllWith.js
rename to src/third_party/devtools/node_modules/lodash/fp/pullAllWith.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/pullAt.js b/src/third_party/devtools/node_modules/lodash/fp/pullAt.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/pullAt.js
rename to src/third_party/devtools/node_modules/lodash/fp/pullAt.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/random.js b/src/third_party/devtools/node_modules/lodash/fp/random.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/random.js
rename to src/third_party/devtools/node_modules/lodash/fp/random.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/range.js b/src/third_party/devtools/node_modules/lodash/fp/range.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/range.js
rename to src/third_party/devtools/node_modules/lodash/fp/range.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/rangeRight.js b/src/third_party/devtools/node_modules/lodash/fp/rangeRight.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/rangeRight.js
rename to src/third_party/devtools/node_modules/lodash/fp/rangeRight.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/rangeStep.js b/src/third_party/devtools/node_modules/lodash/fp/rangeStep.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/rangeStep.js
rename to src/third_party/devtools/node_modules/lodash/fp/rangeStep.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/rangeStepRight.js b/src/third_party/devtools/node_modules/lodash/fp/rangeStepRight.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/rangeStepRight.js
rename to src/third_party/devtools/node_modules/lodash/fp/rangeStepRight.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/rearg.js b/src/third_party/devtools/node_modules/lodash/fp/rearg.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/rearg.js
rename to src/third_party/devtools/node_modules/lodash/fp/rearg.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/reduce.js b/src/third_party/devtools/node_modules/lodash/fp/reduce.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/reduce.js
rename to src/third_party/devtools/node_modules/lodash/fp/reduce.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/reduceRight.js b/src/third_party/devtools/node_modules/lodash/fp/reduceRight.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/reduceRight.js
rename to src/third_party/devtools/node_modules/lodash/fp/reduceRight.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/reject.js b/src/third_party/devtools/node_modules/lodash/fp/reject.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/reject.js
rename to src/third_party/devtools/node_modules/lodash/fp/reject.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/remove.js b/src/third_party/devtools/node_modules/lodash/fp/remove.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/remove.js
rename to src/third_party/devtools/node_modules/lodash/fp/remove.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/repeat.js b/src/third_party/devtools/node_modules/lodash/fp/repeat.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/repeat.js
rename to src/third_party/devtools/node_modules/lodash/fp/repeat.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/replace.js b/src/third_party/devtools/node_modules/lodash/fp/replace.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/replace.js
rename to src/third_party/devtools/node_modules/lodash/fp/replace.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/rest.js b/src/third_party/devtools/node_modules/lodash/fp/rest.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/rest.js
rename to src/third_party/devtools/node_modules/lodash/fp/rest.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/restFrom.js b/src/third_party/devtools/node_modules/lodash/fp/restFrom.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/restFrom.js
rename to src/third_party/devtools/node_modules/lodash/fp/restFrom.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/result.js b/src/third_party/devtools/node_modules/lodash/fp/result.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/result.js
rename to src/third_party/devtools/node_modules/lodash/fp/result.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/reverse.js b/src/third_party/devtools/node_modules/lodash/fp/reverse.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/reverse.js
rename to src/third_party/devtools/node_modules/lodash/fp/reverse.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/round.js b/src/third_party/devtools/node_modules/lodash/fp/round.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/round.js
rename to src/third_party/devtools/node_modules/lodash/fp/round.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/sample.js b/src/third_party/devtools/node_modules/lodash/fp/sample.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/sample.js
rename to src/third_party/devtools/node_modules/lodash/fp/sample.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/sampleSize.js b/src/third_party/devtools/node_modules/lodash/fp/sampleSize.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/sampleSize.js
rename to src/third_party/devtools/node_modules/lodash/fp/sampleSize.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/seq.js b/src/third_party/devtools/node_modules/lodash/fp/seq.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/seq.js
rename to src/third_party/devtools/node_modules/lodash/fp/seq.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/set.js b/src/third_party/devtools/node_modules/lodash/fp/set.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/set.js
rename to src/third_party/devtools/node_modules/lodash/fp/set.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/setWith.js b/src/third_party/devtools/node_modules/lodash/fp/setWith.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/setWith.js
rename to src/third_party/devtools/node_modules/lodash/fp/setWith.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/shuffle.js b/src/third_party/devtools/node_modules/lodash/fp/shuffle.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/shuffle.js
rename to src/third_party/devtools/node_modules/lodash/fp/shuffle.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/size.js b/src/third_party/devtools/node_modules/lodash/fp/size.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/size.js
rename to src/third_party/devtools/node_modules/lodash/fp/size.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/slice.js b/src/third_party/devtools/node_modules/lodash/fp/slice.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/slice.js
rename to src/third_party/devtools/node_modules/lodash/fp/slice.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/snakeCase.js b/src/third_party/devtools/node_modules/lodash/fp/snakeCase.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/snakeCase.js
rename to src/third_party/devtools/node_modules/lodash/fp/snakeCase.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/some.js b/src/third_party/devtools/node_modules/lodash/fp/some.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/some.js
rename to src/third_party/devtools/node_modules/lodash/fp/some.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/sortBy.js b/src/third_party/devtools/node_modules/lodash/fp/sortBy.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/sortBy.js
rename to src/third_party/devtools/node_modules/lodash/fp/sortBy.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/sortedIndex.js b/src/third_party/devtools/node_modules/lodash/fp/sortedIndex.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/sortedIndex.js
rename to src/third_party/devtools/node_modules/lodash/fp/sortedIndex.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/sortedIndexBy.js b/src/third_party/devtools/node_modules/lodash/fp/sortedIndexBy.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/sortedIndexBy.js
rename to src/third_party/devtools/node_modules/lodash/fp/sortedIndexBy.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/sortedIndexOf.js b/src/third_party/devtools/node_modules/lodash/fp/sortedIndexOf.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/sortedIndexOf.js
rename to src/third_party/devtools/node_modules/lodash/fp/sortedIndexOf.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/sortedLastIndex.js b/src/third_party/devtools/node_modules/lodash/fp/sortedLastIndex.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/sortedLastIndex.js
rename to src/third_party/devtools/node_modules/lodash/fp/sortedLastIndex.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/sortedLastIndexBy.js b/src/third_party/devtools/node_modules/lodash/fp/sortedLastIndexBy.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/sortedLastIndexBy.js
rename to src/third_party/devtools/node_modules/lodash/fp/sortedLastIndexBy.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/sortedLastIndexOf.js b/src/third_party/devtools/node_modules/lodash/fp/sortedLastIndexOf.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/sortedLastIndexOf.js
rename to src/third_party/devtools/node_modules/lodash/fp/sortedLastIndexOf.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/sortedUniq.js b/src/third_party/devtools/node_modules/lodash/fp/sortedUniq.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/sortedUniq.js
rename to src/third_party/devtools/node_modules/lodash/fp/sortedUniq.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/sortedUniqBy.js b/src/third_party/devtools/node_modules/lodash/fp/sortedUniqBy.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/sortedUniqBy.js
rename to src/third_party/devtools/node_modules/lodash/fp/sortedUniqBy.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/split.js b/src/third_party/devtools/node_modules/lodash/fp/split.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/split.js
rename to src/third_party/devtools/node_modules/lodash/fp/split.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/spread.js b/src/third_party/devtools/node_modules/lodash/fp/spread.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/spread.js
rename to src/third_party/devtools/node_modules/lodash/fp/spread.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/spreadFrom.js b/src/third_party/devtools/node_modules/lodash/fp/spreadFrom.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/spreadFrom.js
rename to src/third_party/devtools/node_modules/lodash/fp/spreadFrom.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/startCase.js b/src/third_party/devtools/node_modules/lodash/fp/startCase.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/startCase.js
rename to src/third_party/devtools/node_modules/lodash/fp/startCase.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/startsWith.js b/src/third_party/devtools/node_modules/lodash/fp/startsWith.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/startsWith.js
rename to src/third_party/devtools/node_modules/lodash/fp/startsWith.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/string.js b/src/third_party/devtools/node_modules/lodash/fp/string.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/string.js
rename to src/third_party/devtools/node_modules/lodash/fp/string.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/stubArray.js b/src/third_party/devtools/node_modules/lodash/fp/stubArray.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/stubArray.js
rename to src/third_party/devtools/node_modules/lodash/fp/stubArray.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/stubFalse.js b/src/third_party/devtools/node_modules/lodash/fp/stubFalse.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/stubFalse.js
rename to src/third_party/devtools/node_modules/lodash/fp/stubFalse.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/stubObject.js b/src/third_party/devtools/node_modules/lodash/fp/stubObject.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/stubObject.js
rename to src/third_party/devtools/node_modules/lodash/fp/stubObject.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/stubString.js b/src/third_party/devtools/node_modules/lodash/fp/stubString.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/stubString.js
rename to src/third_party/devtools/node_modules/lodash/fp/stubString.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/stubTrue.js b/src/third_party/devtools/node_modules/lodash/fp/stubTrue.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/stubTrue.js
rename to src/third_party/devtools/node_modules/lodash/fp/stubTrue.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/subtract.js b/src/third_party/devtools/node_modules/lodash/fp/subtract.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/subtract.js
rename to src/third_party/devtools/node_modules/lodash/fp/subtract.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/sum.js b/src/third_party/devtools/node_modules/lodash/fp/sum.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/sum.js
rename to src/third_party/devtools/node_modules/lodash/fp/sum.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/sumBy.js b/src/third_party/devtools/node_modules/lodash/fp/sumBy.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/sumBy.js
rename to src/third_party/devtools/node_modules/lodash/fp/sumBy.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/symmetricDifference.js b/src/third_party/devtools/node_modules/lodash/fp/symmetricDifference.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/symmetricDifference.js
rename to src/third_party/devtools/node_modules/lodash/fp/symmetricDifference.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/symmetricDifferenceBy.js b/src/third_party/devtools/node_modules/lodash/fp/symmetricDifferenceBy.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/symmetricDifferenceBy.js
rename to src/third_party/devtools/node_modules/lodash/fp/symmetricDifferenceBy.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/symmetricDifferenceWith.js b/src/third_party/devtools/node_modules/lodash/fp/symmetricDifferenceWith.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/symmetricDifferenceWith.js
rename to src/third_party/devtools/node_modules/lodash/fp/symmetricDifferenceWith.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/tail.js b/src/third_party/devtools/node_modules/lodash/fp/tail.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/tail.js
rename to src/third_party/devtools/node_modules/lodash/fp/tail.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/take.js b/src/third_party/devtools/node_modules/lodash/fp/take.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/take.js
rename to src/third_party/devtools/node_modules/lodash/fp/take.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/takeLast.js b/src/third_party/devtools/node_modules/lodash/fp/takeLast.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/takeLast.js
rename to src/third_party/devtools/node_modules/lodash/fp/takeLast.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/takeLastWhile.js b/src/third_party/devtools/node_modules/lodash/fp/takeLastWhile.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/takeLastWhile.js
rename to src/third_party/devtools/node_modules/lodash/fp/takeLastWhile.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/takeRight.js b/src/third_party/devtools/node_modules/lodash/fp/takeRight.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/takeRight.js
rename to src/third_party/devtools/node_modules/lodash/fp/takeRight.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/takeRightWhile.js b/src/third_party/devtools/node_modules/lodash/fp/takeRightWhile.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/takeRightWhile.js
rename to src/third_party/devtools/node_modules/lodash/fp/takeRightWhile.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/takeWhile.js b/src/third_party/devtools/node_modules/lodash/fp/takeWhile.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/takeWhile.js
rename to src/third_party/devtools/node_modules/lodash/fp/takeWhile.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/tap.js b/src/third_party/devtools/node_modules/lodash/fp/tap.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/tap.js
rename to src/third_party/devtools/node_modules/lodash/fp/tap.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/template.js b/src/third_party/devtools/node_modules/lodash/fp/template.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/template.js
rename to src/third_party/devtools/node_modules/lodash/fp/template.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/templateSettings.js b/src/third_party/devtools/node_modules/lodash/fp/templateSettings.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/templateSettings.js
rename to src/third_party/devtools/node_modules/lodash/fp/templateSettings.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/throttle.js b/src/third_party/devtools/node_modules/lodash/fp/throttle.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/throttle.js
rename to src/third_party/devtools/node_modules/lodash/fp/throttle.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/thru.js b/src/third_party/devtools/node_modules/lodash/fp/thru.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/thru.js
rename to src/third_party/devtools/node_modules/lodash/fp/thru.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/times.js b/src/third_party/devtools/node_modules/lodash/fp/times.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/times.js
rename to src/third_party/devtools/node_modules/lodash/fp/times.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/toArray.js b/src/third_party/devtools/node_modules/lodash/fp/toArray.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/toArray.js
rename to src/third_party/devtools/node_modules/lodash/fp/toArray.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/toFinite.js b/src/third_party/devtools/node_modules/lodash/fp/toFinite.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/toFinite.js
rename to src/third_party/devtools/node_modules/lodash/fp/toFinite.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/toInteger.js b/src/third_party/devtools/node_modules/lodash/fp/toInteger.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/toInteger.js
rename to src/third_party/devtools/node_modules/lodash/fp/toInteger.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/toIterator.js b/src/third_party/devtools/node_modules/lodash/fp/toIterator.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/toIterator.js
rename to src/third_party/devtools/node_modules/lodash/fp/toIterator.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/toJSON.js b/src/third_party/devtools/node_modules/lodash/fp/toJSON.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/toJSON.js
rename to src/third_party/devtools/node_modules/lodash/fp/toJSON.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/toLength.js b/src/third_party/devtools/node_modules/lodash/fp/toLength.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/toLength.js
rename to src/third_party/devtools/node_modules/lodash/fp/toLength.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/toLower.js b/src/third_party/devtools/node_modules/lodash/fp/toLower.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/toLower.js
rename to src/third_party/devtools/node_modules/lodash/fp/toLower.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/toNumber.js b/src/third_party/devtools/node_modules/lodash/fp/toNumber.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/toNumber.js
rename to src/third_party/devtools/node_modules/lodash/fp/toNumber.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/toPairs.js b/src/third_party/devtools/node_modules/lodash/fp/toPairs.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/toPairs.js
rename to src/third_party/devtools/node_modules/lodash/fp/toPairs.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/toPairsIn.js b/src/third_party/devtools/node_modules/lodash/fp/toPairsIn.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/toPairsIn.js
rename to src/third_party/devtools/node_modules/lodash/fp/toPairsIn.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/toPath.js b/src/third_party/devtools/node_modules/lodash/fp/toPath.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/toPath.js
rename to src/third_party/devtools/node_modules/lodash/fp/toPath.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/toPlainObject.js b/src/third_party/devtools/node_modules/lodash/fp/toPlainObject.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/toPlainObject.js
rename to src/third_party/devtools/node_modules/lodash/fp/toPlainObject.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/toSafeInteger.js b/src/third_party/devtools/node_modules/lodash/fp/toSafeInteger.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/toSafeInteger.js
rename to src/third_party/devtools/node_modules/lodash/fp/toSafeInteger.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/toString.js b/src/third_party/devtools/node_modules/lodash/fp/toString.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/toString.js
rename to src/third_party/devtools/node_modules/lodash/fp/toString.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/toUpper.js b/src/third_party/devtools/node_modules/lodash/fp/toUpper.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/toUpper.js
rename to src/third_party/devtools/node_modules/lodash/fp/toUpper.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/transform.js b/src/third_party/devtools/node_modules/lodash/fp/transform.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/transform.js
rename to src/third_party/devtools/node_modules/lodash/fp/transform.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/trim.js b/src/third_party/devtools/node_modules/lodash/fp/trim.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/trim.js
rename to src/third_party/devtools/node_modules/lodash/fp/trim.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/trimChars.js b/src/third_party/devtools/node_modules/lodash/fp/trimChars.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/trimChars.js
rename to src/third_party/devtools/node_modules/lodash/fp/trimChars.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/trimCharsEnd.js b/src/third_party/devtools/node_modules/lodash/fp/trimCharsEnd.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/trimCharsEnd.js
rename to src/third_party/devtools/node_modules/lodash/fp/trimCharsEnd.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/trimCharsStart.js b/src/third_party/devtools/node_modules/lodash/fp/trimCharsStart.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/trimCharsStart.js
rename to src/third_party/devtools/node_modules/lodash/fp/trimCharsStart.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/trimEnd.js b/src/third_party/devtools/node_modules/lodash/fp/trimEnd.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/trimEnd.js
rename to src/third_party/devtools/node_modules/lodash/fp/trimEnd.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/trimStart.js b/src/third_party/devtools/node_modules/lodash/fp/trimStart.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/trimStart.js
rename to src/third_party/devtools/node_modules/lodash/fp/trimStart.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/truncate.js b/src/third_party/devtools/node_modules/lodash/fp/truncate.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/truncate.js
rename to src/third_party/devtools/node_modules/lodash/fp/truncate.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/unapply.js b/src/third_party/devtools/node_modules/lodash/fp/unapply.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/unapply.js
rename to src/third_party/devtools/node_modules/lodash/fp/unapply.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/unary.js b/src/third_party/devtools/node_modules/lodash/fp/unary.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/unary.js
rename to src/third_party/devtools/node_modules/lodash/fp/unary.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/unescape.js b/src/third_party/devtools/node_modules/lodash/fp/unescape.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/unescape.js
rename to src/third_party/devtools/node_modules/lodash/fp/unescape.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/union.js b/src/third_party/devtools/node_modules/lodash/fp/union.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/union.js
rename to src/third_party/devtools/node_modules/lodash/fp/union.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/unionBy.js b/src/third_party/devtools/node_modules/lodash/fp/unionBy.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/unionBy.js
rename to src/third_party/devtools/node_modules/lodash/fp/unionBy.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/unionWith.js b/src/third_party/devtools/node_modules/lodash/fp/unionWith.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/unionWith.js
rename to src/third_party/devtools/node_modules/lodash/fp/unionWith.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/uniq.js b/src/third_party/devtools/node_modules/lodash/fp/uniq.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/uniq.js
rename to src/third_party/devtools/node_modules/lodash/fp/uniq.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/uniqBy.js b/src/third_party/devtools/node_modules/lodash/fp/uniqBy.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/uniqBy.js
rename to src/third_party/devtools/node_modules/lodash/fp/uniqBy.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/uniqWith.js b/src/third_party/devtools/node_modules/lodash/fp/uniqWith.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/uniqWith.js
rename to src/third_party/devtools/node_modules/lodash/fp/uniqWith.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/uniqueId.js b/src/third_party/devtools/node_modules/lodash/fp/uniqueId.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/uniqueId.js
rename to src/third_party/devtools/node_modules/lodash/fp/uniqueId.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/unnest.js b/src/third_party/devtools/node_modules/lodash/fp/unnest.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/unnest.js
rename to src/third_party/devtools/node_modules/lodash/fp/unnest.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/unset.js b/src/third_party/devtools/node_modules/lodash/fp/unset.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/unset.js
rename to src/third_party/devtools/node_modules/lodash/fp/unset.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/unzip.js b/src/third_party/devtools/node_modules/lodash/fp/unzip.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/unzip.js
rename to src/third_party/devtools/node_modules/lodash/fp/unzip.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/unzipWith.js b/src/third_party/devtools/node_modules/lodash/fp/unzipWith.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/unzipWith.js
rename to src/third_party/devtools/node_modules/lodash/fp/unzipWith.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/update.js b/src/third_party/devtools/node_modules/lodash/fp/update.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/update.js
rename to src/third_party/devtools/node_modules/lodash/fp/update.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/updateWith.js b/src/third_party/devtools/node_modules/lodash/fp/updateWith.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/updateWith.js
rename to src/third_party/devtools/node_modules/lodash/fp/updateWith.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/upperCase.js b/src/third_party/devtools/node_modules/lodash/fp/upperCase.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/upperCase.js
rename to src/third_party/devtools/node_modules/lodash/fp/upperCase.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/upperFirst.js b/src/third_party/devtools/node_modules/lodash/fp/upperFirst.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/upperFirst.js
rename to src/third_party/devtools/node_modules/lodash/fp/upperFirst.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/useWith.js b/src/third_party/devtools/node_modules/lodash/fp/useWith.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/useWith.js
rename to src/third_party/devtools/node_modules/lodash/fp/useWith.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/util.js b/src/third_party/devtools/node_modules/lodash/fp/util.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/util.js
rename to src/third_party/devtools/node_modules/lodash/fp/util.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/value.js b/src/third_party/devtools/node_modules/lodash/fp/value.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/value.js
rename to src/third_party/devtools/node_modules/lodash/fp/value.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/valueOf.js b/src/third_party/devtools/node_modules/lodash/fp/valueOf.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/valueOf.js
rename to src/third_party/devtools/node_modules/lodash/fp/valueOf.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/values.js b/src/third_party/devtools/node_modules/lodash/fp/values.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/values.js
rename to src/third_party/devtools/node_modules/lodash/fp/values.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/valuesIn.js b/src/third_party/devtools/node_modules/lodash/fp/valuesIn.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/valuesIn.js
rename to src/third_party/devtools/node_modules/lodash/fp/valuesIn.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/where.js b/src/third_party/devtools/node_modules/lodash/fp/where.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/where.js
rename to src/third_party/devtools/node_modules/lodash/fp/where.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/whereEq.js b/src/third_party/devtools/node_modules/lodash/fp/whereEq.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/whereEq.js
rename to src/third_party/devtools/node_modules/lodash/fp/whereEq.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/without.js b/src/third_party/devtools/node_modules/lodash/fp/without.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/without.js
rename to src/third_party/devtools/node_modules/lodash/fp/without.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/words.js b/src/third_party/devtools/node_modules/lodash/fp/words.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/words.js
rename to src/third_party/devtools/node_modules/lodash/fp/words.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/wrap.js b/src/third_party/devtools/node_modules/lodash/fp/wrap.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/wrap.js
rename to src/third_party/devtools/node_modules/lodash/fp/wrap.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/wrapperAt.js b/src/third_party/devtools/node_modules/lodash/fp/wrapperAt.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/wrapperAt.js
rename to src/third_party/devtools/node_modules/lodash/fp/wrapperAt.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/wrapperChain.js b/src/third_party/devtools/node_modules/lodash/fp/wrapperChain.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/wrapperChain.js
rename to src/third_party/devtools/node_modules/lodash/fp/wrapperChain.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/wrapperLodash.js b/src/third_party/devtools/node_modules/lodash/fp/wrapperLodash.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/wrapperLodash.js
rename to src/third_party/devtools/node_modules/lodash/fp/wrapperLodash.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/wrapperReverse.js b/src/third_party/devtools/node_modules/lodash/fp/wrapperReverse.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/wrapperReverse.js
rename to src/third_party/devtools/node_modules/lodash/fp/wrapperReverse.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/wrapperValue.js b/src/third_party/devtools/node_modules/lodash/fp/wrapperValue.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/wrapperValue.js
rename to src/third_party/devtools/node_modules/lodash/fp/wrapperValue.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/xor.js b/src/third_party/devtools/node_modules/lodash/fp/xor.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/xor.js
rename to src/third_party/devtools/node_modules/lodash/fp/xor.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/xorBy.js b/src/third_party/devtools/node_modules/lodash/fp/xorBy.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/xorBy.js
rename to src/third_party/devtools/node_modules/lodash/fp/xorBy.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/xorWith.js b/src/third_party/devtools/node_modules/lodash/fp/xorWith.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/xorWith.js
rename to src/third_party/devtools/node_modules/lodash/fp/xorWith.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/zip.js b/src/third_party/devtools/node_modules/lodash/fp/zip.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/zip.js
rename to src/third_party/devtools/node_modules/lodash/fp/zip.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/zipAll.js b/src/third_party/devtools/node_modules/lodash/fp/zipAll.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/zipAll.js
rename to src/third_party/devtools/node_modules/lodash/fp/zipAll.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/zipObj.js b/src/third_party/devtools/node_modules/lodash/fp/zipObj.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/zipObj.js
rename to src/third_party/devtools/node_modules/lodash/fp/zipObj.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/zipObject.js b/src/third_party/devtools/node_modules/lodash/fp/zipObject.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/zipObject.js
rename to src/third_party/devtools/node_modules/lodash/fp/zipObject.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/zipObjectDeep.js b/src/third_party/devtools/node_modules/lodash/fp/zipObjectDeep.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/zipObjectDeep.js
rename to src/third_party/devtools/node_modules/lodash/fp/zipObjectDeep.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fp/zipWith.js b/src/third_party/devtools/node_modules/lodash/fp/zipWith.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fp/zipWith.js
rename to src/third_party/devtools/node_modules/lodash/fp/zipWith.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/fromPairs.js b/src/third_party/devtools/node_modules/lodash/fromPairs.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/fromPairs.js
rename to src/third_party/devtools/node_modules/lodash/fromPairs.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/function.js b/src/third_party/devtools/node_modules/lodash/function.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/function.js
rename to src/third_party/devtools/node_modules/lodash/function.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/functions.js b/src/third_party/devtools/node_modules/lodash/functions.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/functions.js
rename to src/third_party/devtools/node_modules/lodash/functions.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/functionsIn.js b/src/third_party/devtools/node_modules/lodash/functionsIn.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/functionsIn.js
rename to src/third_party/devtools/node_modules/lodash/functionsIn.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/get.js b/src/third_party/devtools/node_modules/lodash/get.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/get.js
rename to src/third_party/devtools/node_modules/lodash/get.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/groupBy.js b/src/third_party/devtools/node_modules/lodash/groupBy.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/groupBy.js
rename to src/third_party/devtools/node_modules/lodash/groupBy.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/gt.js b/src/third_party/devtools/node_modules/lodash/gt.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/gt.js
rename to src/third_party/devtools/node_modules/lodash/gt.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/gte.js b/src/third_party/devtools/node_modules/lodash/gte.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/gte.js
rename to src/third_party/devtools/node_modules/lodash/gte.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/has.js b/src/third_party/devtools/node_modules/lodash/has.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/has.js
rename to src/third_party/devtools/node_modules/lodash/has.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/hasIn.js b/src/third_party/devtools/node_modules/lodash/hasIn.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/hasIn.js
rename to src/third_party/devtools/node_modules/lodash/hasIn.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/head.js b/src/third_party/devtools/node_modules/lodash/head.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/head.js
rename to src/third_party/devtools/node_modules/lodash/head.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/identity.js b/src/third_party/devtools/node_modules/lodash/identity.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/identity.js
rename to src/third_party/devtools/node_modules/lodash/identity.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/inRange.js b/src/third_party/devtools/node_modules/lodash/inRange.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/inRange.js
rename to src/third_party/devtools/node_modules/lodash/inRange.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/includes.js b/src/third_party/devtools/node_modules/lodash/includes.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/includes.js
rename to src/third_party/devtools/node_modules/lodash/includes.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/index.js b/src/third_party/devtools/node_modules/lodash/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/index.js
rename to src/third_party/devtools/node_modules/lodash/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/indexOf.js b/src/third_party/devtools/node_modules/lodash/indexOf.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/indexOf.js
rename to src/third_party/devtools/node_modules/lodash/indexOf.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/initial.js b/src/third_party/devtools/node_modules/lodash/initial.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/initial.js
rename to src/third_party/devtools/node_modules/lodash/initial.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/intersection.js b/src/third_party/devtools/node_modules/lodash/intersection.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/intersection.js
rename to src/third_party/devtools/node_modules/lodash/intersection.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/intersectionBy.js b/src/third_party/devtools/node_modules/lodash/intersectionBy.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/intersectionBy.js
rename to src/third_party/devtools/node_modules/lodash/intersectionBy.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/intersectionWith.js b/src/third_party/devtools/node_modules/lodash/intersectionWith.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/intersectionWith.js
rename to src/third_party/devtools/node_modules/lodash/intersectionWith.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/invert.js b/src/third_party/devtools/node_modules/lodash/invert.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/invert.js
rename to src/third_party/devtools/node_modules/lodash/invert.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/invertBy.js b/src/third_party/devtools/node_modules/lodash/invertBy.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/invertBy.js
rename to src/third_party/devtools/node_modules/lodash/invertBy.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/invoke.js b/src/third_party/devtools/node_modules/lodash/invoke.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/invoke.js
rename to src/third_party/devtools/node_modules/lodash/invoke.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/invokeMap.js b/src/third_party/devtools/node_modules/lodash/invokeMap.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/invokeMap.js
rename to src/third_party/devtools/node_modules/lodash/invokeMap.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/isArguments.js b/src/third_party/devtools/node_modules/lodash/isArguments.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/isArguments.js
rename to src/third_party/devtools/node_modules/lodash/isArguments.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/isArray.js b/src/third_party/devtools/node_modules/lodash/isArray.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/isArray.js
rename to src/third_party/devtools/node_modules/lodash/isArray.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/isArrayBuffer.js b/src/third_party/devtools/node_modules/lodash/isArrayBuffer.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/isArrayBuffer.js
rename to src/third_party/devtools/node_modules/lodash/isArrayBuffer.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/isArrayLike.js b/src/third_party/devtools/node_modules/lodash/isArrayLike.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/isArrayLike.js
rename to src/third_party/devtools/node_modules/lodash/isArrayLike.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/isArrayLikeObject.js b/src/third_party/devtools/node_modules/lodash/isArrayLikeObject.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/isArrayLikeObject.js
rename to src/third_party/devtools/node_modules/lodash/isArrayLikeObject.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/isBoolean.js b/src/third_party/devtools/node_modules/lodash/isBoolean.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/isBoolean.js
rename to src/third_party/devtools/node_modules/lodash/isBoolean.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/isBuffer.js b/src/third_party/devtools/node_modules/lodash/isBuffer.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/isBuffer.js
rename to src/third_party/devtools/node_modules/lodash/isBuffer.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/isDate.js b/src/third_party/devtools/node_modules/lodash/isDate.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/isDate.js
rename to src/third_party/devtools/node_modules/lodash/isDate.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/isElement.js b/src/third_party/devtools/node_modules/lodash/isElement.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/isElement.js
rename to src/third_party/devtools/node_modules/lodash/isElement.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/isEmpty.js b/src/third_party/devtools/node_modules/lodash/isEmpty.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/isEmpty.js
rename to src/third_party/devtools/node_modules/lodash/isEmpty.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/isEqual.js b/src/third_party/devtools/node_modules/lodash/isEqual.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/isEqual.js
rename to src/third_party/devtools/node_modules/lodash/isEqual.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/isEqualWith.js b/src/third_party/devtools/node_modules/lodash/isEqualWith.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/isEqualWith.js
rename to src/third_party/devtools/node_modules/lodash/isEqualWith.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/isError.js b/src/third_party/devtools/node_modules/lodash/isError.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/isError.js
rename to src/third_party/devtools/node_modules/lodash/isError.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/isFinite.js b/src/third_party/devtools/node_modules/lodash/isFinite.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/isFinite.js
rename to src/third_party/devtools/node_modules/lodash/isFinite.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/isFunction.js b/src/third_party/devtools/node_modules/lodash/isFunction.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/isFunction.js
rename to src/third_party/devtools/node_modules/lodash/isFunction.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/isInteger.js b/src/third_party/devtools/node_modules/lodash/isInteger.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/isInteger.js
rename to src/third_party/devtools/node_modules/lodash/isInteger.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/isLength.js b/src/third_party/devtools/node_modules/lodash/isLength.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/isLength.js
rename to src/third_party/devtools/node_modules/lodash/isLength.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/isMap.js b/src/third_party/devtools/node_modules/lodash/isMap.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/isMap.js
rename to src/third_party/devtools/node_modules/lodash/isMap.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/isMatch.js b/src/third_party/devtools/node_modules/lodash/isMatch.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/isMatch.js
rename to src/third_party/devtools/node_modules/lodash/isMatch.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/isMatchWith.js b/src/third_party/devtools/node_modules/lodash/isMatchWith.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/isMatchWith.js
rename to src/third_party/devtools/node_modules/lodash/isMatchWith.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/isNaN.js b/src/third_party/devtools/node_modules/lodash/isNaN.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/isNaN.js
rename to src/third_party/devtools/node_modules/lodash/isNaN.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/isNative.js b/src/third_party/devtools/node_modules/lodash/isNative.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/isNative.js
rename to src/third_party/devtools/node_modules/lodash/isNative.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/isNil.js b/src/third_party/devtools/node_modules/lodash/isNil.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/isNil.js
rename to src/third_party/devtools/node_modules/lodash/isNil.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/isNull.js b/src/third_party/devtools/node_modules/lodash/isNull.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/isNull.js
rename to src/third_party/devtools/node_modules/lodash/isNull.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/isNumber.js b/src/third_party/devtools/node_modules/lodash/isNumber.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/isNumber.js
rename to src/third_party/devtools/node_modules/lodash/isNumber.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/isObject.js b/src/third_party/devtools/node_modules/lodash/isObject.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/isObject.js
rename to src/third_party/devtools/node_modules/lodash/isObject.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/isObjectLike.js b/src/third_party/devtools/node_modules/lodash/isObjectLike.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/isObjectLike.js
rename to src/third_party/devtools/node_modules/lodash/isObjectLike.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/isPlainObject.js b/src/third_party/devtools/node_modules/lodash/isPlainObject.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/isPlainObject.js
rename to src/third_party/devtools/node_modules/lodash/isPlainObject.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/isRegExp.js b/src/third_party/devtools/node_modules/lodash/isRegExp.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/isRegExp.js
rename to src/third_party/devtools/node_modules/lodash/isRegExp.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/isSafeInteger.js b/src/third_party/devtools/node_modules/lodash/isSafeInteger.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/isSafeInteger.js
rename to src/third_party/devtools/node_modules/lodash/isSafeInteger.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/isSet.js b/src/third_party/devtools/node_modules/lodash/isSet.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/isSet.js
rename to src/third_party/devtools/node_modules/lodash/isSet.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/isString.js b/src/third_party/devtools/node_modules/lodash/isString.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/isString.js
rename to src/third_party/devtools/node_modules/lodash/isString.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/isSymbol.js b/src/third_party/devtools/node_modules/lodash/isSymbol.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/isSymbol.js
rename to src/third_party/devtools/node_modules/lodash/isSymbol.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/isTypedArray.js b/src/third_party/devtools/node_modules/lodash/isTypedArray.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/isTypedArray.js
rename to src/third_party/devtools/node_modules/lodash/isTypedArray.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/isUndefined.js b/src/third_party/devtools/node_modules/lodash/isUndefined.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/isUndefined.js
rename to src/third_party/devtools/node_modules/lodash/isUndefined.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/isWeakMap.js b/src/third_party/devtools/node_modules/lodash/isWeakMap.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/isWeakMap.js
rename to src/third_party/devtools/node_modules/lodash/isWeakMap.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/isWeakSet.js b/src/third_party/devtools/node_modules/lodash/isWeakSet.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/isWeakSet.js
rename to src/third_party/devtools/node_modules/lodash/isWeakSet.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/iteratee.js b/src/third_party/devtools/node_modules/lodash/iteratee.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/iteratee.js
rename to src/third_party/devtools/node_modules/lodash/iteratee.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/join.js b/src/third_party/devtools/node_modules/lodash/join.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/join.js
rename to src/third_party/devtools/node_modules/lodash/join.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/kebabCase.js b/src/third_party/devtools/node_modules/lodash/kebabCase.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/kebabCase.js
rename to src/third_party/devtools/node_modules/lodash/kebabCase.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/keyBy.js b/src/third_party/devtools/node_modules/lodash/keyBy.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/keyBy.js
rename to src/third_party/devtools/node_modules/lodash/keyBy.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/keys.js b/src/third_party/devtools/node_modules/lodash/keys.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/keys.js
rename to src/third_party/devtools/node_modules/lodash/keys.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/keysIn.js b/src/third_party/devtools/node_modules/lodash/keysIn.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/keysIn.js
rename to src/third_party/devtools/node_modules/lodash/keysIn.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/lang.js b/src/third_party/devtools/node_modules/lodash/lang.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/lang.js
rename to src/third_party/devtools/node_modules/lodash/lang.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/last.js b/src/third_party/devtools/node_modules/lodash/last.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/last.js
rename to src/third_party/devtools/node_modules/lodash/last.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/lastIndexOf.js b/src/third_party/devtools/node_modules/lodash/lastIndexOf.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/lastIndexOf.js
rename to src/third_party/devtools/node_modules/lodash/lastIndexOf.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/lodash.js b/src/third_party/devtools/node_modules/lodash/lodash.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/lodash.js
rename to src/third_party/devtools/node_modules/lodash/lodash.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/lodash.min.js b/src/third_party/devtools/node_modules/lodash/lodash.min.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/lodash.min.js
rename to src/third_party/devtools/node_modules/lodash/lodash.min.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/lowerCase.js b/src/third_party/devtools/node_modules/lodash/lowerCase.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/lowerCase.js
rename to src/third_party/devtools/node_modules/lodash/lowerCase.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/lowerFirst.js b/src/third_party/devtools/node_modules/lodash/lowerFirst.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/lowerFirst.js
rename to src/third_party/devtools/node_modules/lodash/lowerFirst.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/lt.js b/src/third_party/devtools/node_modules/lodash/lt.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/lt.js
rename to src/third_party/devtools/node_modules/lodash/lt.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/lte.js b/src/third_party/devtools/node_modules/lodash/lte.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/lte.js
rename to src/third_party/devtools/node_modules/lodash/lte.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/map.js b/src/third_party/devtools/node_modules/lodash/map.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/map.js
rename to src/third_party/devtools/node_modules/lodash/map.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/mapKeys.js b/src/third_party/devtools/node_modules/lodash/mapKeys.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/mapKeys.js
rename to src/third_party/devtools/node_modules/lodash/mapKeys.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/mapValues.js b/src/third_party/devtools/node_modules/lodash/mapValues.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/mapValues.js
rename to src/third_party/devtools/node_modules/lodash/mapValues.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/matches.js b/src/third_party/devtools/node_modules/lodash/matches.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/matches.js
rename to src/third_party/devtools/node_modules/lodash/matches.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/matchesProperty.js b/src/third_party/devtools/node_modules/lodash/matchesProperty.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/matchesProperty.js
rename to src/third_party/devtools/node_modules/lodash/matchesProperty.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/math.js b/src/third_party/devtools/node_modules/lodash/math.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/math.js
rename to src/third_party/devtools/node_modules/lodash/math.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/max.js b/src/third_party/devtools/node_modules/lodash/max.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/max.js
rename to src/third_party/devtools/node_modules/lodash/max.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/maxBy.js b/src/third_party/devtools/node_modules/lodash/maxBy.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/maxBy.js
rename to src/third_party/devtools/node_modules/lodash/maxBy.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/mean.js b/src/third_party/devtools/node_modules/lodash/mean.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/mean.js
rename to src/third_party/devtools/node_modules/lodash/mean.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/meanBy.js b/src/third_party/devtools/node_modules/lodash/meanBy.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/meanBy.js
rename to src/third_party/devtools/node_modules/lodash/meanBy.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/memoize.js b/src/third_party/devtools/node_modules/lodash/memoize.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/memoize.js
rename to src/third_party/devtools/node_modules/lodash/memoize.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/merge.js b/src/third_party/devtools/node_modules/lodash/merge.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/merge.js
rename to src/third_party/devtools/node_modules/lodash/merge.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/mergeWith.js b/src/third_party/devtools/node_modules/lodash/mergeWith.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/mergeWith.js
rename to src/third_party/devtools/node_modules/lodash/mergeWith.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/method.js b/src/third_party/devtools/node_modules/lodash/method.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/method.js
rename to src/third_party/devtools/node_modules/lodash/method.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/methodOf.js b/src/third_party/devtools/node_modules/lodash/methodOf.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/methodOf.js
rename to src/third_party/devtools/node_modules/lodash/methodOf.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/min.js b/src/third_party/devtools/node_modules/lodash/min.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/min.js
rename to src/third_party/devtools/node_modules/lodash/min.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/minBy.js b/src/third_party/devtools/node_modules/lodash/minBy.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/minBy.js
rename to src/third_party/devtools/node_modules/lodash/minBy.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/mixin.js b/src/third_party/devtools/node_modules/lodash/mixin.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/mixin.js
rename to src/third_party/devtools/node_modules/lodash/mixin.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/multiply.js b/src/third_party/devtools/node_modules/lodash/multiply.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/multiply.js
rename to src/third_party/devtools/node_modules/lodash/multiply.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/negate.js b/src/third_party/devtools/node_modules/lodash/negate.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/negate.js
rename to src/third_party/devtools/node_modules/lodash/negate.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/next.js b/src/third_party/devtools/node_modules/lodash/next.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/next.js
rename to src/third_party/devtools/node_modules/lodash/next.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/noop.js b/src/third_party/devtools/node_modules/lodash/noop.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/noop.js
rename to src/third_party/devtools/node_modules/lodash/noop.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/now.js b/src/third_party/devtools/node_modules/lodash/now.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/now.js
rename to src/third_party/devtools/node_modules/lodash/now.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/nth.js b/src/third_party/devtools/node_modules/lodash/nth.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/nth.js
rename to src/third_party/devtools/node_modules/lodash/nth.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/nthArg.js b/src/third_party/devtools/node_modules/lodash/nthArg.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/nthArg.js
rename to src/third_party/devtools/node_modules/lodash/nthArg.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/number.js b/src/third_party/devtools/node_modules/lodash/number.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/number.js
rename to src/third_party/devtools/node_modules/lodash/number.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/object.js b/src/third_party/devtools/node_modules/lodash/object.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/object.js
rename to src/third_party/devtools/node_modules/lodash/object.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/omit.js b/src/third_party/devtools/node_modules/lodash/omit.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/omit.js
rename to src/third_party/devtools/node_modules/lodash/omit.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/omitBy.js b/src/third_party/devtools/node_modules/lodash/omitBy.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/omitBy.js
rename to src/third_party/devtools/node_modules/lodash/omitBy.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/once.js b/src/third_party/devtools/node_modules/lodash/once.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/once.js
rename to src/third_party/devtools/node_modules/lodash/once.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/orderBy.js b/src/third_party/devtools/node_modules/lodash/orderBy.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/orderBy.js
rename to src/third_party/devtools/node_modules/lodash/orderBy.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/over.js b/src/third_party/devtools/node_modules/lodash/over.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/over.js
rename to src/third_party/devtools/node_modules/lodash/over.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/overArgs.js b/src/third_party/devtools/node_modules/lodash/overArgs.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/overArgs.js
rename to src/third_party/devtools/node_modules/lodash/overArgs.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/overEvery.js b/src/third_party/devtools/node_modules/lodash/overEvery.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/overEvery.js
rename to src/third_party/devtools/node_modules/lodash/overEvery.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/overSome.js b/src/third_party/devtools/node_modules/lodash/overSome.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/overSome.js
rename to src/third_party/devtools/node_modules/lodash/overSome.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/package.json b/src/third_party/devtools/node_modules/lodash/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/package.json
rename to src/third_party/devtools/node_modules/lodash/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/pad.js b/src/third_party/devtools/node_modules/lodash/pad.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/pad.js
rename to src/third_party/devtools/node_modules/lodash/pad.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/padEnd.js b/src/third_party/devtools/node_modules/lodash/padEnd.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/padEnd.js
rename to src/third_party/devtools/node_modules/lodash/padEnd.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/padStart.js b/src/third_party/devtools/node_modules/lodash/padStart.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/padStart.js
rename to src/third_party/devtools/node_modules/lodash/padStart.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/parseInt.js b/src/third_party/devtools/node_modules/lodash/parseInt.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/parseInt.js
rename to src/third_party/devtools/node_modules/lodash/parseInt.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/partial.js b/src/third_party/devtools/node_modules/lodash/partial.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/partial.js
rename to src/third_party/devtools/node_modules/lodash/partial.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/partialRight.js b/src/third_party/devtools/node_modules/lodash/partialRight.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/partialRight.js
rename to src/third_party/devtools/node_modules/lodash/partialRight.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/partition.js b/src/third_party/devtools/node_modules/lodash/partition.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/partition.js
rename to src/third_party/devtools/node_modules/lodash/partition.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/pick.js b/src/third_party/devtools/node_modules/lodash/pick.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/pick.js
rename to src/third_party/devtools/node_modules/lodash/pick.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/pickBy.js b/src/third_party/devtools/node_modules/lodash/pickBy.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/pickBy.js
rename to src/third_party/devtools/node_modules/lodash/pickBy.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/plant.js b/src/third_party/devtools/node_modules/lodash/plant.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/plant.js
rename to src/third_party/devtools/node_modules/lodash/plant.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/property.js b/src/third_party/devtools/node_modules/lodash/property.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/property.js
rename to src/third_party/devtools/node_modules/lodash/property.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/propertyOf.js b/src/third_party/devtools/node_modules/lodash/propertyOf.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/propertyOf.js
rename to src/third_party/devtools/node_modules/lodash/propertyOf.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/pull.js b/src/third_party/devtools/node_modules/lodash/pull.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/pull.js
rename to src/third_party/devtools/node_modules/lodash/pull.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/pullAll.js b/src/third_party/devtools/node_modules/lodash/pullAll.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/pullAll.js
rename to src/third_party/devtools/node_modules/lodash/pullAll.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/pullAllBy.js b/src/third_party/devtools/node_modules/lodash/pullAllBy.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/pullAllBy.js
rename to src/third_party/devtools/node_modules/lodash/pullAllBy.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/pullAllWith.js b/src/third_party/devtools/node_modules/lodash/pullAllWith.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/pullAllWith.js
rename to src/third_party/devtools/node_modules/lodash/pullAllWith.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/pullAt.js b/src/third_party/devtools/node_modules/lodash/pullAt.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/pullAt.js
rename to src/third_party/devtools/node_modules/lodash/pullAt.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/random.js b/src/third_party/devtools/node_modules/lodash/random.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/random.js
rename to src/third_party/devtools/node_modules/lodash/random.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/range.js b/src/third_party/devtools/node_modules/lodash/range.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/range.js
rename to src/third_party/devtools/node_modules/lodash/range.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/rangeRight.js b/src/third_party/devtools/node_modules/lodash/rangeRight.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/rangeRight.js
rename to src/third_party/devtools/node_modules/lodash/rangeRight.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/rearg.js b/src/third_party/devtools/node_modules/lodash/rearg.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/rearg.js
rename to src/third_party/devtools/node_modules/lodash/rearg.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/reduce.js b/src/third_party/devtools/node_modules/lodash/reduce.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/reduce.js
rename to src/third_party/devtools/node_modules/lodash/reduce.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/reduceRight.js b/src/third_party/devtools/node_modules/lodash/reduceRight.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/reduceRight.js
rename to src/third_party/devtools/node_modules/lodash/reduceRight.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/reject.js b/src/third_party/devtools/node_modules/lodash/reject.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/reject.js
rename to src/third_party/devtools/node_modules/lodash/reject.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/remove.js b/src/third_party/devtools/node_modules/lodash/remove.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/remove.js
rename to src/third_party/devtools/node_modules/lodash/remove.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/repeat.js b/src/third_party/devtools/node_modules/lodash/repeat.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/repeat.js
rename to src/third_party/devtools/node_modules/lodash/repeat.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/replace.js b/src/third_party/devtools/node_modules/lodash/replace.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/replace.js
rename to src/third_party/devtools/node_modules/lodash/replace.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/rest.js b/src/third_party/devtools/node_modules/lodash/rest.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/rest.js
rename to src/third_party/devtools/node_modules/lodash/rest.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/result.js b/src/third_party/devtools/node_modules/lodash/result.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/result.js
rename to src/third_party/devtools/node_modules/lodash/result.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/reverse.js b/src/third_party/devtools/node_modules/lodash/reverse.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/reverse.js
rename to src/third_party/devtools/node_modules/lodash/reverse.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/round.js b/src/third_party/devtools/node_modules/lodash/round.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/round.js
rename to src/third_party/devtools/node_modules/lodash/round.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/sample.js b/src/third_party/devtools/node_modules/lodash/sample.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/sample.js
rename to src/third_party/devtools/node_modules/lodash/sample.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/sampleSize.js b/src/third_party/devtools/node_modules/lodash/sampleSize.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/sampleSize.js
rename to src/third_party/devtools/node_modules/lodash/sampleSize.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/seq.js b/src/third_party/devtools/node_modules/lodash/seq.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/seq.js
rename to src/third_party/devtools/node_modules/lodash/seq.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/set.js b/src/third_party/devtools/node_modules/lodash/set.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/set.js
rename to src/third_party/devtools/node_modules/lodash/set.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/setWith.js b/src/third_party/devtools/node_modules/lodash/setWith.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/setWith.js
rename to src/third_party/devtools/node_modules/lodash/setWith.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/shuffle.js b/src/third_party/devtools/node_modules/lodash/shuffle.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/shuffle.js
rename to src/third_party/devtools/node_modules/lodash/shuffle.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/size.js b/src/third_party/devtools/node_modules/lodash/size.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/size.js
rename to src/third_party/devtools/node_modules/lodash/size.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/slice.js b/src/third_party/devtools/node_modules/lodash/slice.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/slice.js
rename to src/third_party/devtools/node_modules/lodash/slice.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/snakeCase.js b/src/third_party/devtools/node_modules/lodash/snakeCase.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/snakeCase.js
rename to src/third_party/devtools/node_modules/lodash/snakeCase.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/some.js b/src/third_party/devtools/node_modules/lodash/some.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/some.js
rename to src/third_party/devtools/node_modules/lodash/some.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/sortBy.js b/src/third_party/devtools/node_modules/lodash/sortBy.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/sortBy.js
rename to src/third_party/devtools/node_modules/lodash/sortBy.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/sortedIndex.js b/src/third_party/devtools/node_modules/lodash/sortedIndex.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/sortedIndex.js
rename to src/third_party/devtools/node_modules/lodash/sortedIndex.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/sortedIndexBy.js b/src/third_party/devtools/node_modules/lodash/sortedIndexBy.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/sortedIndexBy.js
rename to src/third_party/devtools/node_modules/lodash/sortedIndexBy.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/sortedIndexOf.js b/src/third_party/devtools/node_modules/lodash/sortedIndexOf.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/sortedIndexOf.js
rename to src/third_party/devtools/node_modules/lodash/sortedIndexOf.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/sortedLastIndex.js b/src/third_party/devtools/node_modules/lodash/sortedLastIndex.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/sortedLastIndex.js
rename to src/third_party/devtools/node_modules/lodash/sortedLastIndex.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/sortedLastIndexBy.js b/src/third_party/devtools/node_modules/lodash/sortedLastIndexBy.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/sortedLastIndexBy.js
rename to src/third_party/devtools/node_modules/lodash/sortedLastIndexBy.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/sortedLastIndexOf.js b/src/third_party/devtools/node_modules/lodash/sortedLastIndexOf.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/sortedLastIndexOf.js
rename to src/third_party/devtools/node_modules/lodash/sortedLastIndexOf.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/sortedUniq.js b/src/third_party/devtools/node_modules/lodash/sortedUniq.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/sortedUniq.js
rename to src/third_party/devtools/node_modules/lodash/sortedUniq.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/sortedUniqBy.js b/src/third_party/devtools/node_modules/lodash/sortedUniqBy.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/sortedUniqBy.js
rename to src/third_party/devtools/node_modules/lodash/sortedUniqBy.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/split.js b/src/third_party/devtools/node_modules/lodash/split.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/split.js
rename to src/third_party/devtools/node_modules/lodash/split.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/spread.js b/src/third_party/devtools/node_modules/lodash/spread.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/spread.js
rename to src/third_party/devtools/node_modules/lodash/spread.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/startCase.js b/src/third_party/devtools/node_modules/lodash/startCase.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/startCase.js
rename to src/third_party/devtools/node_modules/lodash/startCase.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/startsWith.js b/src/third_party/devtools/node_modules/lodash/startsWith.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/startsWith.js
rename to src/third_party/devtools/node_modules/lodash/startsWith.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/string.js b/src/third_party/devtools/node_modules/lodash/string.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/string.js
rename to src/third_party/devtools/node_modules/lodash/string.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/stubArray.js b/src/third_party/devtools/node_modules/lodash/stubArray.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/stubArray.js
rename to src/third_party/devtools/node_modules/lodash/stubArray.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/stubFalse.js b/src/third_party/devtools/node_modules/lodash/stubFalse.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/stubFalse.js
rename to src/third_party/devtools/node_modules/lodash/stubFalse.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/stubObject.js b/src/third_party/devtools/node_modules/lodash/stubObject.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/stubObject.js
rename to src/third_party/devtools/node_modules/lodash/stubObject.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/stubString.js b/src/third_party/devtools/node_modules/lodash/stubString.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/stubString.js
rename to src/third_party/devtools/node_modules/lodash/stubString.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/stubTrue.js b/src/third_party/devtools/node_modules/lodash/stubTrue.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/stubTrue.js
rename to src/third_party/devtools/node_modules/lodash/stubTrue.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/subtract.js b/src/third_party/devtools/node_modules/lodash/subtract.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/subtract.js
rename to src/third_party/devtools/node_modules/lodash/subtract.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/sum.js b/src/third_party/devtools/node_modules/lodash/sum.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/sum.js
rename to src/third_party/devtools/node_modules/lodash/sum.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/sumBy.js b/src/third_party/devtools/node_modules/lodash/sumBy.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/sumBy.js
rename to src/third_party/devtools/node_modules/lodash/sumBy.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/tail.js b/src/third_party/devtools/node_modules/lodash/tail.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/tail.js
rename to src/third_party/devtools/node_modules/lodash/tail.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/take.js b/src/third_party/devtools/node_modules/lodash/take.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/take.js
rename to src/third_party/devtools/node_modules/lodash/take.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/takeRight.js b/src/third_party/devtools/node_modules/lodash/takeRight.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/takeRight.js
rename to src/third_party/devtools/node_modules/lodash/takeRight.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/takeRightWhile.js b/src/third_party/devtools/node_modules/lodash/takeRightWhile.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/takeRightWhile.js
rename to src/third_party/devtools/node_modules/lodash/takeRightWhile.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/takeWhile.js b/src/third_party/devtools/node_modules/lodash/takeWhile.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/takeWhile.js
rename to src/third_party/devtools/node_modules/lodash/takeWhile.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/tap.js b/src/third_party/devtools/node_modules/lodash/tap.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/tap.js
rename to src/third_party/devtools/node_modules/lodash/tap.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/template.js b/src/third_party/devtools/node_modules/lodash/template.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/template.js
rename to src/third_party/devtools/node_modules/lodash/template.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/templateSettings.js b/src/third_party/devtools/node_modules/lodash/templateSettings.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/templateSettings.js
rename to src/third_party/devtools/node_modules/lodash/templateSettings.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/throttle.js b/src/third_party/devtools/node_modules/lodash/throttle.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/throttle.js
rename to src/third_party/devtools/node_modules/lodash/throttle.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/thru.js b/src/third_party/devtools/node_modules/lodash/thru.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/thru.js
rename to src/third_party/devtools/node_modules/lodash/thru.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/times.js b/src/third_party/devtools/node_modules/lodash/times.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/times.js
rename to src/third_party/devtools/node_modules/lodash/times.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/toArray.js b/src/third_party/devtools/node_modules/lodash/toArray.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/toArray.js
rename to src/third_party/devtools/node_modules/lodash/toArray.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/toFinite.js b/src/third_party/devtools/node_modules/lodash/toFinite.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/toFinite.js
rename to src/third_party/devtools/node_modules/lodash/toFinite.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/toInteger.js b/src/third_party/devtools/node_modules/lodash/toInteger.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/toInteger.js
rename to src/third_party/devtools/node_modules/lodash/toInteger.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/toIterator.js b/src/third_party/devtools/node_modules/lodash/toIterator.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/toIterator.js
rename to src/third_party/devtools/node_modules/lodash/toIterator.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/toJSON.js b/src/third_party/devtools/node_modules/lodash/toJSON.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/toJSON.js
rename to src/third_party/devtools/node_modules/lodash/toJSON.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/toLength.js b/src/third_party/devtools/node_modules/lodash/toLength.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/toLength.js
rename to src/third_party/devtools/node_modules/lodash/toLength.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/toLower.js b/src/third_party/devtools/node_modules/lodash/toLower.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/toLower.js
rename to src/third_party/devtools/node_modules/lodash/toLower.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/toNumber.js b/src/third_party/devtools/node_modules/lodash/toNumber.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/toNumber.js
rename to src/third_party/devtools/node_modules/lodash/toNumber.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/toPairs.js b/src/third_party/devtools/node_modules/lodash/toPairs.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/toPairs.js
rename to src/third_party/devtools/node_modules/lodash/toPairs.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/toPairsIn.js b/src/third_party/devtools/node_modules/lodash/toPairsIn.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/toPairsIn.js
rename to src/third_party/devtools/node_modules/lodash/toPairsIn.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/toPath.js b/src/third_party/devtools/node_modules/lodash/toPath.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/toPath.js
rename to src/third_party/devtools/node_modules/lodash/toPath.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/toPlainObject.js b/src/third_party/devtools/node_modules/lodash/toPlainObject.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/toPlainObject.js
rename to src/third_party/devtools/node_modules/lodash/toPlainObject.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/toSafeInteger.js b/src/third_party/devtools/node_modules/lodash/toSafeInteger.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/toSafeInteger.js
rename to src/third_party/devtools/node_modules/lodash/toSafeInteger.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/toString.js b/src/third_party/devtools/node_modules/lodash/toString.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/toString.js
rename to src/third_party/devtools/node_modules/lodash/toString.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/toUpper.js b/src/third_party/devtools/node_modules/lodash/toUpper.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/toUpper.js
rename to src/third_party/devtools/node_modules/lodash/toUpper.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/transform.js b/src/third_party/devtools/node_modules/lodash/transform.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/transform.js
rename to src/third_party/devtools/node_modules/lodash/transform.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/trim.js b/src/third_party/devtools/node_modules/lodash/trim.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/trim.js
rename to src/third_party/devtools/node_modules/lodash/trim.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/trimEnd.js b/src/third_party/devtools/node_modules/lodash/trimEnd.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/trimEnd.js
rename to src/third_party/devtools/node_modules/lodash/trimEnd.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/trimStart.js b/src/third_party/devtools/node_modules/lodash/trimStart.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/trimStart.js
rename to src/third_party/devtools/node_modules/lodash/trimStart.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/truncate.js b/src/third_party/devtools/node_modules/lodash/truncate.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/truncate.js
rename to src/third_party/devtools/node_modules/lodash/truncate.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/unary.js b/src/third_party/devtools/node_modules/lodash/unary.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/unary.js
rename to src/third_party/devtools/node_modules/lodash/unary.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/unescape.js b/src/third_party/devtools/node_modules/lodash/unescape.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/unescape.js
rename to src/third_party/devtools/node_modules/lodash/unescape.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/union.js b/src/third_party/devtools/node_modules/lodash/union.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/union.js
rename to src/third_party/devtools/node_modules/lodash/union.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/unionBy.js b/src/third_party/devtools/node_modules/lodash/unionBy.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/unionBy.js
rename to src/third_party/devtools/node_modules/lodash/unionBy.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/unionWith.js b/src/third_party/devtools/node_modules/lodash/unionWith.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/unionWith.js
rename to src/third_party/devtools/node_modules/lodash/unionWith.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/uniq.js b/src/third_party/devtools/node_modules/lodash/uniq.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/uniq.js
rename to src/third_party/devtools/node_modules/lodash/uniq.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/uniqBy.js b/src/third_party/devtools/node_modules/lodash/uniqBy.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/uniqBy.js
rename to src/third_party/devtools/node_modules/lodash/uniqBy.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/uniqWith.js b/src/third_party/devtools/node_modules/lodash/uniqWith.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/uniqWith.js
rename to src/third_party/devtools/node_modules/lodash/uniqWith.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/uniqueId.js b/src/third_party/devtools/node_modules/lodash/uniqueId.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/uniqueId.js
rename to src/third_party/devtools/node_modules/lodash/uniqueId.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/unset.js b/src/third_party/devtools/node_modules/lodash/unset.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/unset.js
rename to src/third_party/devtools/node_modules/lodash/unset.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/unzip.js b/src/third_party/devtools/node_modules/lodash/unzip.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/unzip.js
rename to src/third_party/devtools/node_modules/lodash/unzip.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/unzipWith.js b/src/third_party/devtools/node_modules/lodash/unzipWith.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/unzipWith.js
rename to src/third_party/devtools/node_modules/lodash/unzipWith.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/update.js b/src/third_party/devtools/node_modules/lodash/update.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/update.js
rename to src/third_party/devtools/node_modules/lodash/update.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/updateWith.js b/src/third_party/devtools/node_modules/lodash/updateWith.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/updateWith.js
rename to src/third_party/devtools/node_modules/lodash/updateWith.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/upperCase.js b/src/third_party/devtools/node_modules/lodash/upperCase.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/upperCase.js
rename to src/third_party/devtools/node_modules/lodash/upperCase.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/upperFirst.js b/src/third_party/devtools/node_modules/lodash/upperFirst.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/upperFirst.js
rename to src/third_party/devtools/node_modules/lodash/upperFirst.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/util.js b/src/third_party/devtools/node_modules/lodash/util.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/util.js
rename to src/third_party/devtools/node_modules/lodash/util.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/value.js b/src/third_party/devtools/node_modules/lodash/value.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/value.js
rename to src/third_party/devtools/node_modules/lodash/value.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/valueOf.js b/src/third_party/devtools/node_modules/lodash/valueOf.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/valueOf.js
rename to src/third_party/devtools/node_modules/lodash/valueOf.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/values.js b/src/third_party/devtools/node_modules/lodash/values.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/values.js
rename to src/third_party/devtools/node_modules/lodash/values.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/valuesIn.js b/src/third_party/devtools/node_modules/lodash/valuesIn.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/valuesIn.js
rename to src/third_party/devtools/node_modules/lodash/valuesIn.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/without.js b/src/third_party/devtools/node_modules/lodash/without.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/without.js
rename to src/third_party/devtools/node_modules/lodash/without.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/words.js b/src/third_party/devtools/node_modules/lodash/words.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/words.js
rename to src/third_party/devtools/node_modules/lodash/words.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/wrap.js b/src/third_party/devtools/node_modules/lodash/wrap.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/wrap.js
rename to src/third_party/devtools/node_modules/lodash/wrap.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/wrapperAt.js b/src/third_party/devtools/node_modules/lodash/wrapperAt.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/wrapperAt.js
rename to src/third_party/devtools/node_modules/lodash/wrapperAt.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/wrapperChain.js b/src/third_party/devtools/node_modules/lodash/wrapperChain.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/wrapperChain.js
rename to src/third_party/devtools/node_modules/lodash/wrapperChain.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/wrapperLodash.js b/src/third_party/devtools/node_modules/lodash/wrapperLodash.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/wrapperLodash.js
rename to src/third_party/devtools/node_modules/lodash/wrapperLodash.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/wrapperReverse.js b/src/third_party/devtools/node_modules/lodash/wrapperReverse.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/wrapperReverse.js
rename to src/third_party/devtools/node_modules/lodash/wrapperReverse.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/wrapperValue.js b/src/third_party/devtools/node_modules/lodash/wrapperValue.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/wrapperValue.js
rename to src/third_party/devtools/node_modules/lodash/wrapperValue.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/xor.js b/src/third_party/devtools/node_modules/lodash/xor.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/xor.js
rename to src/third_party/devtools/node_modules/lodash/xor.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/xorBy.js b/src/third_party/devtools/node_modules/lodash/xorBy.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/xorBy.js
rename to src/third_party/devtools/node_modules/lodash/xorBy.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/xorWith.js b/src/third_party/devtools/node_modules/lodash/xorWith.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/xorWith.js
rename to src/third_party/devtools/node_modules/lodash/xorWith.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/zip.js b/src/third_party/devtools/node_modules/lodash/zip.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/zip.js
rename to src/third_party/devtools/node_modules/lodash/zip.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/zipObject.js b/src/third_party/devtools/node_modules/lodash/zipObject.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/zipObject.js
rename to src/third_party/devtools/node_modules/lodash/zipObject.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/zipObjectDeep.js b/src/third_party/devtools/node_modules/lodash/zipObjectDeep.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/zipObjectDeep.js
rename to src/third_party/devtools/node_modules/lodash/zipObjectDeep.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lodash/zipWith.js b/src/third_party/devtools/node_modules/lodash/zipWith.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lodash/zipWith.js
rename to src/third_party/devtools/node_modules/lodash/zipWith.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/log-symbols/browser.js b/src/third_party/devtools/node_modules/log-symbols/browser.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/log-symbols/browser.js
rename to src/third_party/devtools/node_modules/log-symbols/browser.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/log-symbols/index.js b/src/third_party/devtools/node_modules/log-symbols/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/log-symbols/index.js
rename to src/third_party/devtools/node_modules/log-symbols/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/log-symbols/license b/src/third_party/devtools/node_modules/log-symbols/license
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/log-symbols/license
rename to src/third_party/devtools/node_modules/log-symbols/license
diff --git a/src/cobalt/debug/remote/devtools/node_modules/log-symbols/package.json b/src/third_party/devtools/node_modules/log-symbols/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/log-symbols/package.json
rename to src/third_party/devtools/node_modules/log-symbols/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/log-symbols/readme.md b/src/third_party/devtools/node_modules/log-symbols/readme.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/log-symbols/readme.md
rename to src/third_party/devtools/node_modules/log-symbols/readme.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/log4js/CHANGELOG.md b/src/third_party/devtools/node_modules/log4js/CHANGELOG.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/log4js/CHANGELOG.md
rename to src/third_party/devtools/node_modules/log4js/CHANGELOG.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/log4js/LICENSE b/src/third_party/devtools/node_modules/log4js/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/log4js/LICENSE
rename to src/third_party/devtools/node_modules/log4js/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/log4js/README.md b/src/third_party/devtools/node_modules/log4js/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/log4js/README.md
rename to src/third_party/devtools/node_modules/log4js/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/log4js/lib/LoggingEvent.js b/src/third_party/devtools/node_modules/log4js/lib/LoggingEvent.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/log4js/lib/LoggingEvent.js
rename to src/third_party/devtools/node_modules/log4js/lib/LoggingEvent.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/log4js/lib/appenders/adapters.js b/src/third_party/devtools/node_modules/log4js/lib/appenders/adapters.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/log4js/lib/appenders/adapters.js
rename to src/third_party/devtools/node_modules/log4js/lib/appenders/adapters.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/log4js/lib/appenders/categoryFilter.js b/src/third_party/devtools/node_modules/log4js/lib/appenders/categoryFilter.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/log4js/lib/appenders/categoryFilter.js
rename to src/third_party/devtools/node_modules/log4js/lib/appenders/categoryFilter.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/log4js/lib/appenders/console.js b/src/third_party/devtools/node_modules/log4js/lib/appenders/console.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/log4js/lib/appenders/console.js
rename to src/third_party/devtools/node_modules/log4js/lib/appenders/console.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/log4js/lib/appenders/dateFile.js b/src/third_party/devtools/node_modules/log4js/lib/appenders/dateFile.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/log4js/lib/appenders/dateFile.js
rename to src/third_party/devtools/node_modules/log4js/lib/appenders/dateFile.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/log4js/lib/appenders/file.js b/src/third_party/devtools/node_modules/log4js/lib/appenders/file.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/log4js/lib/appenders/file.js
rename to src/third_party/devtools/node_modules/log4js/lib/appenders/file.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/log4js/lib/appenders/fileSync.js b/src/third_party/devtools/node_modules/log4js/lib/appenders/fileSync.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/log4js/lib/appenders/fileSync.js
rename to src/third_party/devtools/node_modules/log4js/lib/appenders/fileSync.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/log4js/lib/appenders/index.js b/src/third_party/devtools/node_modules/log4js/lib/appenders/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/log4js/lib/appenders/index.js
rename to src/third_party/devtools/node_modules/log4js/lib/appenders/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/log4js/lib/appenders/logLevelFilter.js b/src/third_party/devtools/node_modules/log4js/lib/appenders/logLevelFilter.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/log4js/lib/appenders/logLevelFilter.js
rename to src/third_party/devtools/node_modules/log4js/lib/appenders/logLevelFilter.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/log4js/lib/appenders/multiFile.js b/src/third_party/devtools/node_modules/log4js/lib/appenders/multiFile.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/log4js/lib/appenders/multiFile.js
rename to src/third_party/devtools/node_modules/log4js/lib/appenders/multiFile.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/log4js/lib/appenders/multiprocess.js b/src/third_party/devtools/node_modules/log4js/lib/appenders/multiprocess.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/log4js/lib/appenders/multiprocess.js
rename to src/third_party/devtools/node_modules/log4js/lib/appenders/multiprocess.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/log4js/lib/appenders/noLogFilter.js b/src/third_party/devtools/node_modules/log4js/lib/appenders/noLogFilter.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/log4js/lib/appenders/noLogFilter.js
rename to src/third_party/devtools/node_modules/log4js/lib/appenders/noLogFilter.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/log4js/lib/appenders/recording.js b/src/third_party/devtools/node_modules/log4js/lib/appenders/recording.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/log4js/lib/appenders/recording.js
rename to src/third_party/devtools/node_modules/log4js/lib/appenders/recording.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/log4js/lib/appenders/stderr.js b/src/third_party/devtools/node_modules/log4js/lib/appenders/stderr.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/log4js/lib/appenders/stderr.js
rename to src/third_party/devtools/node_modules/log4js/lib/appenders/stderr.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/log4js/lib/appenders/stdout.js b/src/third_party/devtools/node_modules/log4js/lib/appenders/stdout.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/log4js/lib/appenders/stdout.js
rename to src/third_party/devtools/node_modules/log4js/lib/appenders/stdout.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/log4js/lib/appenders/tcp-server.js b/src/third_party/devtools/node_modules/log4js/lib/appenders/tcp-server.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/log4js/lib/appenders/tcp-server.js
rename to src/third_party/devtools/node_modules/log4js/lib/appenders/tcp-server.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/log4js/lib/appenders/tcp.js b/src/third_party/devtools/node_modules/log4js/lib/appenders/tcp.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/log4js/lib/appenders/tcp.js
rename to src/third_party/devtools/node_modules/log4js/lib/appenders/tcp.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/log4js/lib/categories.js b/src/third_party/devtools/node_modules/log4js/lib/categories.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/log4js/lib/categories.js
rename to src/third_party/devtools/node_modules/log4js/lib/categories.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/log4js/lib/clustering.js b/src/third_party/devtools/node_modules/log4js/lib/clustering.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/log4js/lib/clustering.js
rename to src/third_party/devtools/node_modules/log4js/lib/clustering.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/log4js/lib/configuration.js b/src/third_party/devtools/node_modules/log4js/lib/configuration.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/log4js/lib/configuration.js
rename to src/third_party/devtools/node_modules/log4js/lib/configuration.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/log4js/lib/connect-logger.js b/src/third_party/devtools/node_modules/log4js/lib/connect-logger.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/log4js/lib/connect-logger.js
rename to src/third_party/devtools/node_modules/log4js/lib/connect-logger.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/log4js/lib/layouts.js b/src/third_party/devtools/node_modules/log4js/lib/layouts.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/log4js/lib/layouts.js
rename to src/third_party/devtools/node_modules/log4js/lib/layouts.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/log4js/lib/levels.js b/src/third_party/devtools/node_modules/log4js/lib/levels.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/log4js/lib/levels.js
rename to src/third_party/devtools/node_modules/log4js/lib/levels.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/log4js/lib/log4js.js b/src/third_party/devtools/node_modules/log4js/lib/log4js.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/log4js/lib/log4js.js
rename to src/third_party/devtools/node_modules/log4js/lib/log4js.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/log4js/lib/logger.js b/src/third_party/devtools/node_modules/log4js/lib/logger.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/log4js/lib/logger.js
rename to src/third_party/devtools/node_modules/log4js/lib/logger.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/log4js/package.json b/src/third_party/devtools/node_modules/log4js/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/log4js/package.json
rename to src/third_party/devtools/node_modules/log4js/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/log4js/types/log4js.d.ts b/src/third_party/devtools/node_modules/log4js/types/log4js.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/log4js/types/log4js.d.ts
rename to src/third_party/devtools/node_modules/log4js/types/log4js.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/log4js/types/test.ts b/src/third_party/devtools/node_modules/log4js/types/test.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/log4js/types/test.ts
rename to src/third_party/devtools/node_modules/log4js/types/test.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/log4js/types/tsconfig.json b/src/third_party/devtools/node_modules/log4js/types/tsconfig.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/log4js/types/tsconfig.json
rename to src/third_party/devtools/node_modules/log4js/types/tsconfig.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/loud-rejection/api.js b/src/third_party/devtools/node_modules/loud-rejection/api.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/loud-rejection/api.js
rename to src/third_party/devtools/node_modules/loud-rejection/api.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/loud-rejection/index.js b/src/third_party/devtools/node_modules/loud-rejection/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/loud-rejection/index.js
rename to src/third_party/devtools/node_modules/loud-rejection/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/loud-rejection/license b/src/third_party/devtools/node_modules/loud-rejection/license
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/loud-rejection/license
rename to src/third_party/devtools/node_modules/loud-rejection/license
diff --git a/src/cobalt/debug/remote/devtools/node_modules/loud-rejection/package.json b/src/third_party/devtools/node_modules/loud-rejection/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/loud-rejection/package.json
rename to src/third_party/devtools/node_modules/loud-rejection/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/loud-rejection/readme.md b/src/third_party/devtools/node_modules/loud-rejection/readme.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/loud-rejection/readme.md
rename to src/third_party/devtools/node_modules/loud-rejection/readme.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/loud-rejection/register.js b/src/third_party/devtools/node_modules/loud-rejection/register.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/loud-rejection/register.js
rename to src/third_party/devtools/node_modules/loud-rejection/register.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lru-cache/LICENSE b/src/third_party/devtools/node_modules/lru-cache/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lru-cache/LICENSE
rename to src/third_party/devtools/node_modules/lru-cache/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lru-cache/README.md b/src/third_party/devtools/node_modules/lru-cache/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lru-cache/README.md
rename to src/third_party/devtools/node_modules/lru-cache/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lru-cache/index.js b/src/third_party/devtools/node_modules/lru-cache/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lru-cache/index.js
rename to src/third_party/devtools/node_modules/lru-cache/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/lru-cache/package.json b/src/third_party/devtools/node_modules/lru-cache/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/lru-cache/package.json
rename to src/third_party/devtools/node_modules/lru-cache/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/make-dir/index.d.ts b/src/third_party/devtools/node_modules/make-dir/index.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/make-dir/index.d.ts
rename to src/third_party/devtools/node_modules/make-dir/index.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/make-dir/index.js b/src/third_party/devtools/node_modules/make-dir/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/make-dir/index.js
rename to src/third_party/devtools/node_modules/make-dir/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/make-dir/license b/src/third_party/devtools/node_modules/make-dir/license
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/make-dir/license
rename to src/third_party/devtools/node_modules/make-dir/license
diff --git a/src/cobalt/debug/remote/devtools/node_modules/make-dir/package.json b/src/third_party/devtools/node_modules/make-dir/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/make-dir/package.json
rename to src/third_party/devtools/node_modules/make-dir/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/make-dir/readme.md b/src/third_party/devtools/node_modules/make-dir/readme.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/make-dir/readme.md
rename to src/third_party/devtools/node_modules/make-dir/readme.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/map-age-cleaner/dist/index.d.ts b/src/third_party/devtools/node_modules/map-age-cleaner/dist/index.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/map-age-cleaner/dist/index.d.ts
rename to src/third_party/devtools/node_modules/map-age-cleaner/dist/index.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/map-age-cleaner/dist/index.js b/src/third_party/devtools/node_modules/map-age-cleaner/dist/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/map-age-cleaner/dist/index.js
rename to src/third_party/devtools/node_modules/map-age-cleaner/dist/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/map-age-cleaner/license b/src/third_party/devtools/node_modules/map-age-cleaner/license
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/map-age-cleaner/license
rename to src/third_party/devtools/node_modules/map-age-cleaner/license
diff --git a/src/cobalt/debug/remote/devtools/node_modules/map-age-cleaner/package.json b/src/third_party/devtools/node_modules/map-age-cleaner/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/map-age-cleaner/package.json
rename to src/third_party/devtools/node_modules/map-age-cleaner/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/map-age-cleaner/readme.md b/src/third_party/devtools/node_modules/map-age-cleaner/readme.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/map-age-cleaner/readme.md
rename to src/third_party/devtools/node_modules/map-age-cleaner/readme.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/map-obj/index.js b/src/third_party/devtools/node_modules/map-obj/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/map-obj/index.js
rename to src/third_party/devtools/node_modules/map-obj/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/map-obj/license b/src/third_party/devtools/node_modules/map-obj/license
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/map-obj/license
rename to src/third_party/devtools/node_modules/map-obj/license
diff --git a/src/cobalt/debug/remote/devtools/node_modules/map-obj/package.json b/src/third_party/devtools/node_modules/map-obj/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/map-obj/package.json
rename to src/third_party/devtools/node_modules/map-obj/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/map-obj/readme.md b/src/third_party/devtools/node_modules/map-obj/readme.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/map-obj/readme.md
rename to src/third_party/devtools/node_modules/map-obj/readme.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/md5.js/LICENSE b/src/third_party/devtools/node_modules/md5.js/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/md5.js/LICENSE
rename to src/third_party/devtools/node_modules/md5.js/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/md5.js/README.md b/src/third_party/devtools/node_modules/md5.js/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/md5.js/README.md
rename to src/third_party/devtools/node_modules/md5.js/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/md5.js/index.js b/src/third_party/devtools/node_modules/md5.js/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/md5.js/index.js
rename to src/third_party/devtools/node_modules/md5.js/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/md5.js/package.json b/src/third_party/devtools/node_modules/md5.js/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/md5.js/package.json
rename to src/third_party/devtools/node_modules/md5.js/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/media-typer/HISTORY.md b/src/third_party/devtools/node_modules/media-typer/HISTORY.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/media-typer/HISTORY.md
rename to src/third_party/devtools/node_modules/media-typer/HISTORY.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/media-typer/LICENSE b/src/third_party/devtools/node_modules/media-typer/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/media-typer/LICENSE
rename to src/third_party/devtools/node_modules/media-typer/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/media-typer/README.md b/src/third_party/devtools/node_modules/media-typer/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/media-typer/README.md
rename to src/third_party/devtools/node_modules/media-typer/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/media-typer/index.js b/src/third_party/devtools/node_modules/media-typer/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/media-typer/index.js
rename to src/third_party/devtools/node_modules/media-typer/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/media-typer/package.json b/src/third_party/devtools/node_modules/media-typer/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/media-typer/package.json
rename to src/third_party/devtools/node_modules/media-typer/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mem/index.d.ts b/src/third_party/devtools/node_modules/mem/index.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mem/index.d.ts
rename to src/third_party/devtools/node_modules/mem/index.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mem/index.js b/src/third_party/devtools/node_modules/mem/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mem/index.js
rename to src/third_party/devtools/node_modules/mem/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mem/license b/src/third_party/devtools/node_modules/mem/license
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mem/license
rename to src/third_party/devtools/node_modules/mem/license
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mem/node_modules/mimic-fn/index.d.ts b/src/third_party/devtools/node_modules/mem/node_modules/mimic-fn/index.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mem/node_modules/mimic-fn/index.d.ts
rename to src/third_party/devtools/node_modules/mem/node_modules/mimic-fn/index.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mem/node_modules/mimic-fn/index.js b/src/third_party/devtools/node_modules/mem/node_modules/mimic-fn/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mem/node_modules/mimic-fn/index.js
rename to src/third_party/devtools/node_modules/mem/node_modules/mimic-fn/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mem/node_modules/mimic-fn/license b/src/third_party/devtools/node_modules/mem/node_modules/mimic-fn/license
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mem/node_modules/mimic-fn/license
rename to src/third_party/devtools/node_modules/mem/node_modules/mimic-fn/license
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mem/node_modules/mimic-fn/package.json b/src/third_party/devtools/node_modules/mem/node_modules/mimic-fn/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mem/node_modules/mimic-fn/package.json
rename to src/third_party/devtools/node_modules/mem/node_modules/mimic-fn/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mem/node_modules/mimic-fn/readme.md b/src/third_party/devtools/node_modules/mem/node_modules/mimic-fn/readme.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mem/node_modules/mimic-fn/readme.md
rename to src/third_party/devtools/node_modules/mem/node_modules/mimic-fn/readme.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mem/package.json b/src/third_party/devtools/node_modules/mem/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mem/package.json
rename to src/third_party/devtools/node_modules/mem/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mem/readme.md b/src/third_party/devtools/node_modules/mem/readme.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mem/readme.md
rename to src/third_party/devtools/node_modules/mem/readme.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/meow/index.js b/src/third_party/devtools/node_modules/meow/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/meow/index.js
rename to src/third_party/devtools/node_modules/meow/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/meow/license b/src/third_party/devtools/node_modules/meow/license
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/meow/license
rename to src/third_party/devtools/node_modules/meow/license
diff --git a/src/cobalt/debug/remote/devtools/node_modules/meow/node_modules/minimist/.travis.yml b/src/third_party/devtools/node_modules/meow/node_modules/minimist/.travis.yml
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/meow/node_modules/minimist/.travis.yml
rename to src/third_party/devtools/node_modules/meow/node_modules/minimist/.travis.yml
diff --git a/src/cobalt/debug/remote/devtools/node_modules/meow/node_modules/minimist/LICENSE b/src/third_party/devtools/node_modules/meow/node_modules/minimist/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/meow/node_modules/minimist/LICENSE
rename to src/third_party/devtools/node_modules/meow/node_modules/minimist/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/meow/node_modules/minimist/example/parse.js b/src/third_party/devtools/node_modules/meow/node_modules/minimist/example/parse.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/meow/node_modules/minimist/example/parse.js
rename to src/third_party/devtools/node_modules/meow/node_modules/minimist/example/parse.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/meow/node_modules/minimist/index.js b/src/third_party/devtools/node_modules/meow/node_modules/minimist/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/meow/node_modules/minimist/index.js
rename to src/third_party/devtools/node_modules/meow/node_modules/minimist/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/meow/node_modules/minimist/package.json b/src/third_party/devtools/node_modules/meow/node_modules/minimist/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/meow/node_modules/minimist/package.json
rename to src/third_party/devtools/node_modules/meow/node_modules/minimist/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/meow/node_modules/minimist/readme.markdown b/src/third_party/devtools/node_modules/meow/node_modules/minimist/readme.markdown
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/meow/node_modules/minimist/readme.markdown
rename to src/third_party/devtools/node_modules/meow/node_modules/minimist/readme.markdown
diff --git a/src/cobalt/debug/remote/devtools/node_modules/meow/node_modules/minimist/test/all_bool.js b/src/third_party/devtools/node_modules/meow/node_modules/minimist/test/all_bool.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/meow/node_modules/minimist/test/all_bool.js
rename to src/third_party/devtools/node_modules/meow/node_modules/minimist/test/all_bool.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/meow/node_modules/minimist/test/bool.js b/src/third_party/devtools/node_modules/meow/node_modules/minimist/test/bool.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/meow/node_modules/minimist/test/bool.js
rename to src/third_party/devtools/node_modules/meow/node_modules/minimist/test/bool.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/meow/node_modules/minimist/test/dash.js b/src/third_party/devtools/node_modules/meow/node_modules/minimist/test/dash.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/meow/node_modules/minimist/test/dash.js
rename to src/third_party/devtools/node_modules/meow/node_modules/minimist/test/dash.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/meow/node_modules/minimist/test/default_bool.js b/src/third_party/devtools/node_modules/meow/node_modules/minimist/test/default_bool.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/meow/node_modules/minimist/test/default_bool.js
rename to src/third_party/devtools/node_modules/meow/node_modules/minimist/test/default_bool.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/meow/node_modules/minimist/test/dotted.js b/src/third_party/devtools/node_modules/meow/node_modules/minimist/test/dotted.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/meow/node_modules/minimist/test/dotted.js
rename to src/third_party/devtools/node_modules/meow/node_modules/minimist/test/dotted.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/meow/node_modules/minimist/test/kv_short.js b/src/third_party/devtools/node_modules/meow/node_modules/minimist/test/kv_short.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/meow/node_modules/minimist/test/kv_short.js
rename to src/third_party/devtools/node_modules/meow/node_modules/minimist/test/kv_short.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/meow/node_modules/minimist/test/long.js b/src/third_party/devtools/node_modules/meow/node_modules/minimist/test/long.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/meow/node_modules/minimist/test/long.js
rename to src/third_party/devtools/node_modules/meow/node_modules/minimist/test/long.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/meow/node_modules/minimist/test/num.js b/src/third_party/devtools/node_modules/meow/node_modules/minimist/test/num.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/meow/node_modules/minimist/test/num.js
rename to src/third_party/devtools/node_modules/meow/node_modules/minimist/test/num.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/meow/node_modules/minimist/test/parse.js b/src/third_party/devtools/node_modules/meow/node_modules/minimist/test/parse.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/meow/node_modules/minimist/test/parse.js
rename to src/third_party/devtools/node_modules/meow/node_modules/minimist/test/parse.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/meow/node_modules/minimist/test/parse_modified.js b/src/third_party/devtools/node_modules/meow/node_modules/minimist/test/parse_modified.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/meow/node_modules/minimist/test/parse_modified.js
rename to src/third_party/devtools/node_modules/meow/node_modules/minimist/test/parse_modified.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/meow/node_modules/minimist/test/short.js b/src/third_party/devtools/node_modules/meow/node_modules/minimist/test/short.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/meow/node_modules/minimist/test/short.js
rename to src/third_party/devtools/node_modules/meow/node_modules/minimist/test/short.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/meow/node_modules/minimist/test/stop_early.js b/src/third_party/devtools/node_modules/meow/node_modules/minimist/test/stop_early.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/meow/node_modules/minimist/test/stop_early.js
rename to src/third_party/devtools/node_modules/meow/node_modules/minimist/test/stop_early.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/meow/node_modules/minimist/test/unknown.js b/src/third_party/devtools/node_modules/meow/node_modules/minimist/test/unknown.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/meow/node_modules/minimist/test/unknown.js
rename to src/third_party/devtools/node_modules/meow/node_modules/minimist/test/unknown.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/meow/node_modules/minimist/test/whitespace.js b/src/third_party/devtools/node_modules/meow/node_modules/minimist/test/whitespace.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/meow/node_modules/minimist/test/whitespace.js
rename to src/third_party/devtools/node_modules/meow/node_modules/minimist/test/whitespace.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/meow/package.json b/src/third_party/devtools/node_modules/meow/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/meow/package.json
rename to src/third_party/devtools/node_modules/meow/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/meow/readme.md b/src/third_party/devtools/node_modules/meow/readme.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/meow/readme.md
rename to src/third_party/devtools/node_modules/meow/readme.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/miller-rabin/.npmignore b/src/third_party/devtools/node_modules/miller-rabin/.npmignore
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/miller-rabin/.npmignore
rename to src/third_party/devtools/node_modules/miller-rabin/.npmignore
diff --git a/src/cobalt/debug/remote/devtools/node_modules/miller-rabin/1.js b/src/third_party/devtools/node_modules/miller-rabin/1.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/miller-rabin/1.js
rename to src/third_party/devtools/node_modules/miller-rabin/1.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/miller-rabin/README.md b/src/third_party/devtools/node_modules/miller-rabin/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/miller-rabin/README.md
rename to src/third_party/devtools/node_modules/miller-rabin/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/miller-rabin/bin/miller-rabin b/src/third_party/devtools/node_modules/miller-rabin/bin/miller-rabin
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/miller-rabin/bin/miller-rabin
rename to src/third_party/devtools/node_modules/miller-rabin/bin/miller-rabin
diff --git a/src/cobalt/debug/remote/devtools/node_modules/miller-rabin/lib/mr.js b/src/third_party/devtools/node_modules/miller-rabin/lib/mr.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/miller-rabin/lib/mr.js
rename to src/third_party/devtools/node_modules/miller-rabin/lib/mr.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/miller-rabin/package.json b/src/third_party/devtools/node_modules/miller-rabin/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/miller-rabin/package.json
rename to src/third_party/devtools/node_modules/miller-rabin/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/miller-rabin/test.js b/src/third_party/devtools/node_modules/miller-rabin/test.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/miller-rabin/test.js
rename to src/third_party/devtools/node_modules/miller-rabin/test.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/miller-rabin/test/api-test.js b/src/third_party/devtools/node_modules/miller-rabin/test/api-test.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/miller-rabin/test/api-test.js
rename to src/third_party/devtools/node_modules/miller-rabin/test/api-test.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mime-db/HISTORY.md b/src/third_party/devtools/node_modules/mime-db/HISTORY.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mime-db/HISTORY.md
rename to src/third_party/devtools/node_modules/mime-db/HISTORY.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mime-db/LICENSE b/src/third_party/devtools/node_modules/mime-db/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mime-db/LICENSE
rename to src/third_party/devtools/node_modules/mime-db/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mime-db/README.md b/src/third_party/devtools/node_modules/mime-db/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mime-db/README.md
rename to src/third_party/devtools/node_modules/mime-db/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mime-db/db.json b/src/third_party/devtools/node_modules/mime-db/db.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mime-db/db.json
rename to src/third_party/devtools/node_modules/mime-db/db.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mime-db/index.js b/src/third_party/devtools/node_modules/mime-db/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mime-db/index.js
rename to src/third_party/devtools/node_modules/mime-db/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mime-db/package.json b/src/third_party/devtools/node_modules/mime-db/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mime-db/package.json
rename to src/third_party/devtools/node_modules/mime-db/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mime-types/HISTORY.md b/src/third_party/devtools/node_modules/mime-types/HISTORY.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mime-types/HISTORY.md
rename to src/third_party/devtools/node_modules/mime-types/HISTORY.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mime-types/LICENSE b/src/third_party/devtools/node_modules/mime-types/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mime-types/LICENSE
rename to src/third_party/devtools/node_modules/mime-types/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mime-types/README.md b/src/third_party/devtools/node_modules/mime-types/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mime-types/README.md
rename to src/third_party/devtools/node_modules/mime-types/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mime-types/index.js b/src/third_party/devtools/node_modules/mime-types/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mime-types/index.js
rename to src/third_party/devtools/node_modules/mime-types/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mime-types/package.json b/src/third_party/devtools/node_modules/mime-types/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mime-types/package.json
rename to src/third_party/devtools/node_modules/mime-types/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mime/.eslintrc.json b/src/third_party/devtools/node_modules/mime/.eslintrc.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mime/.eslintrc.json
rename to src/third_party/devtools/node_modules/mime/.eslintrc.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mime/.github/ISSUE_TEMPLATE.md b/src/third_party/devtools/node_modules/mime/.github/ISSUE_TEMPLATE.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mime/.github/ISSUE_TEMPLATE.md
rename to src/third_party/devtools/node_modules/mime/.github/ISSUE_TEMPLATE.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mime/.github/PULL_REQUEST_TEMPLATE.md b/src/third_party/devtools/node_modules/mime/.github/PULL_REQUEST_TEMPLATE.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mime/.github/PULL_REQUEST_TEMPLATE.md
rename to src/third_party/devtools/node_modules/mime/.github/PULL_REQUEST_TEMPLATE.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mime/.travis.yml b/src/third_party/devtools/node_modules/mime/.travis.yml
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mime/.travis.yml
rename to src/third_party/devtools/node_modules/mime/.travis.yml
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mime/CHANGELOG.md b/src/third_party/devtools/node_modules/mime/CHANGELOG.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mime/CHANGELOG.md
rename to src/third_party/devtools/node_modules/mime/CHANGELOG.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mime/CONTRIBUTING.md b/src/third_party/devtools/node_modules/mime/CONTRIBUTING.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mime/CONTRIBUTING.md
rename to src/third_party/devtools/node_modules/mime/CONTRIBUTING.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mime/LICENSE b/src/third_party/devtools/node_modules/mime/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mime/LICENSE
rename to src/third_party/devtools/node_modules/mime/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mime/Mime.js b/src/third_party/devtools/node_modules/mime/Mime.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mime/Mime.js
rename to src/third_party/devtools/node_modules/mime/Mime.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mime/README.md b/src/third_party/devtools/node_modules/mime/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mime/README.md
rename to src/third_party/devtools/node_modules/mime/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mime/cli.js b/src/third_party/devtools/node_modules/mime/cli.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mime/cli.js
rename to src/third_party/devtools/node_modules/mime/cli.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mime/index.js b/src/third_party/devtools/node_modules/mime/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mime/index.js
rename to src/third_party/devtools/node_modules/mime/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mime/lite.js b/src/third_party/devtools/node_modules/mime/lite.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mime/lite.js
rename to src/third_party/devtools/node_modules/mime/lite.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mime/package.json b/src/third_party/devtools/node_modules/mime/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mime/package.json
rename to src/third_party/devtools/node_modules/mime/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mime/src/README_js.md b/src/third_party/devtools/node_modules/mime/src/README_js.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mime/src/README_js.md
rename to src/third_party/devtools/node_modules/mime/src/README_js.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mime/src/benchmark.js b/src/third_party/devtools/node_modules/mime/src/benchmark.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mime/src/benchmark.js
rename to src/third_party/devtools/node_modules/mime/src/benchmark.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mime/src/build.js b/src/third_party/devtools/node_modules/mime/src/build.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mime/src/build.js
rename to src/third_party/devtools/node_modules/mime/src/build.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mime/src/test.js b/src/third_party/devtools/node_modules/mime/src/test.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mime/src/test.js
rename to src/third_party/devtools/node_modules/mime/src/test.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mime/types/other.js b/src/third_party/devtools/node_modules/mime/types/other.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mime/types/other.js
rename to src/third_party/devtools/node_modules/mime/types/other.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mime/types/standard.js b/src/third_party/devtools/node_modules/mime/types/standard.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mime/types/standard.js
rename to src/third_party/devtools/node_modules/mime/types/standard.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mimic-fn/LICENSE b/src/third_party/devtools/node_modules/mimic-fn/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mimic-fn/LICENSE
rename to src/third_party/devtools/node_modules/mimic-fn/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mimic-fn/index.js b/src/third_party/devtools/node_modules/mimic-fn/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mimic-fn/index.js
rename to src/third_party/devtools/node_modules/mimic-fn/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mimic-fn/package.json b/src/third_party/devtools/node_modules/mimic-fn/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mimic-fn/package.json
rename to src/third_party/devtools/node_modules/mimic-fn/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mimic-fn/readme.md b/src/third_party/devtools/node_modules/mimic-fn/readme.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mimic-fn/readme.md
rename to src/third_party/devtools/node_modules/mimic-fn/readme.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/minimalistic-assert/LICENSE b/src/third_party/devtools/node_modules/minimalistic-assert/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/minimalistic-assert/LICENSE
rename to src/third_party/devtools/node_modules/minimalistic-assert/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/minimalistic-assert/index.js b/src/third_party/devtools/node_modules/minimalistic-assert/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/minimalistic-assert/index.js
rename to src/third_party/devtools/node_modules/minimalistic-assert/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/minimalistic-assert/package.json b/src/third_party/devtools/node_modules/minimalistic-assert/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/minimalistic-assert/package.json
rename to src/third_party/devtools/node_modules/minimalistic-assert/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/minimalistic-assert/readme.md b/src/third_party/devtools/node_modules/minimalistic-assert/readme.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/minimalistic-assert/readme.md
rename to src/third_party/devtools/node_modules/minimalistic-assert/readme.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/minimalistic-crypto-utils/.npmignore b/src/third_party/devtools/node_modules/minimalistic-crypto-utils/.npmignore
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/minimalistic-crypto-utils/.npmignore
rename to src/third_party/devtools/node_modules/minimalistic-crypto-utils/.npmignore
diff --git a/src/cobalt/debug/remote/devtools/node_modules/minimalistic-crypto-utils/.travis.yml b/src/third_party/devtools/node_modules/minimalistic-crypto-utils/.travis.yml
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/minimalistic-crypto-utils/.travis.yml
rename to src/third_party/devtools/node_modules/minimalistic-crypto-utils/.travis.yml
diff --git a/src/cobalt/debug/remote/devtools/node_modules/minimalistic-crypto-utils/README.md b/src/third_party/devtools/node_modules/minimalistic-crypto-utils/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/minimalistic-crypto-utils/README.md
rename to src/third_party/devtools/node_modules/minimalistic-crypto-utils/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/minimalistic-crypto-utils/lib/utils.js b/src/third_party/devtools/node_modules/minimalistic-crypto-utils/lib/utils.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/minimalistic-crypto-utils/lib/utils.js
rename to src/third_party/devtools/node_modules/minimalistic-crypto-utils/lib/utils.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/minimalistic-crypto-utils/package.json b/src/third_party/devtools/node_modules/minimalistic-crypto-utils/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/minimalistic-crypto-utils/package.json
rename to src/third_party/devtools/node_modules/minimalistic-crypto-utils/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/minimalistic-crypto-utils/test/utils-test.js b/src/third_party/devtools/node_modules/minimalistic-crypto-utils/test/utils-test.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/minimalistic-crypto-utils/test/utils-test.js
rename to src/third_party/devtools/node_modules/minimalistic-crypto-utils/test/utils-test.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/minimatch/LICENSE b/src/third_party/devtools/node_modules/minimatch/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/minimatch/LICENSE
rename to src/third_party/devtools/node_modules/minimatch/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/minimatch/README.md b/src/third_party/devtools/node_modules/minimatch/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/minimatch/README.md
rename to src/third_party/devtools/node_modules/minimatch/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/minimatch/minimatch.js b/src/third_party/devtools/node_modules/minimatch/minimatch.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/minimatch/minimatch.js
rename to src/third_party/devtools/node_modules/minimatch/minimatch.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/minimatch/package.json b/src/third_party/devtools/node_modules/minimatch/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/minimatch/package.json
rename to src/third_party/devtools/node_modules/minimatch/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/minimist/.travis.yml b/src/third_party/devtools/node_modules/minimist/.travis.yml
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/minimist/.travis.yml
rename to src/third_party/devtools/node_modules/minimist/.travis.yml
diff --git a/src/cobalt/debug/remote/devtools/node_modules/minimist/LICENSE b/src/third_party/devtools/node_modules/minimist/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/minimist/LICENSE
rename to src/third_party/devtools/node_modules/minimist/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/minimist/example/parse.js b/src/third_party/devtools/node_modules/minimist/example/parse.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/minimist/example/parse.js
rename to src/third_party/devtools/node_modules/minimist/example/parse.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/minimist/index.js b/src/third_party/devtools/node_modules/minimist/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/minimist/index.js
rename to src/third_party/devtools/node_modules/minimist/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/minimist/package.json b/src/third_party/devtools/node_modules/minimist/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/minimist/package.json
rename to src/third_party/devtools/node_modules/minimist/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/minimist/readme.markdown b/src/third_party/devtools/node_modules/minimist/readme.markdown
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/minimist/readme.markdown
rename to src/third_party/devtools/node_modules/minimist/readme.markdown
diff --git a/src/cobalt/debug/remote/devtools/node_modules/minimist/test/dash.js b/src/third_party/devtools/node_modules/minimist/test/dash.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/minimist/test/dash.js
rename to src/third_party/devtools/node_modules/minimist/test/dash.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/minimist/test/default_bool.js b/src/third_party/devtools/node_modules/minimist/test/default_bool.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/minimist/test/default_bool.js
rename to src/third_party/devtools/node_modules/minimist/test/default_bool.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/minimist/test/dotted.js b/src/third_party/devtools/node_modules/minimist/test/dotted.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/minimist/test/dotted.js
rename to src/third_party/devtools/node_modules/minimist/test/dotted.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/minimist/test/long.js b/src/third_party/devtools/node_modules/minimist/test/long.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/minimist/test/long.js
rename to src/third_party/devtools/node_modules/minimist/test/long.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/minimist/test/parse.js b/src/third_party/devtools/node_modules/minimist/test/parse.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/minimist/test/parse.js
rename to src/third_party/devtools/node_modules/minimist/test/parse.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/minimist/test/parse_modified.js b/src/third_party/devtools/node_modules/minimist/test/parse_modified.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/minimist/test/parse_modified.js
rename to src/third_party/devtools/node_modules/minimist/test/parse_modified.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/minimist/test/short.js b/src/third_party/devtools/node_modules/minimist/test/short.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/minimist/test/short.js
rename to src/third_party/devtools/node_modules/minimist/test/short.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/minimist/test/whitespace.js b/src/third_party/devtools/node_modules/minimist/test/whitespace.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/minimist/test/whitespace.js
rename to src/third_party/devtools/node_modules/minimist/test/whitespace.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mkdirp/.travis.yml b/src/third_party/devtools/node_modules/mkdirp/.travis.yml
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mkdirp/.travis.yml
rename to src/third_party/devtools/node_modules/mkdirp/.travis.yml
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mkdirp/LICENSE b/src/third_party/devtools/node_modules/mkdirp/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mkdirp/LICENSE
rename to src/third_party/devtools/node_modules/mkdirp/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mkdirp/bin/cmd.js b/src/third_party/devtools/node_modules/mkdirp/bin/cmd.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mkdirp/bin/cmd.js
rename to src/third_party/devtools/node_modules/mkdirp/bin/cmd.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mkdirp/bin/usage.txt b/src/third_party/devtools/node_modules/mkdirp/bin/usage.txt
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mkdirp/bin/usage.txt
rename to src/third_party/devtools/node_modules/mkdirp/bin/usage.txt
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mkdirp/examples/pow.js b/src/third_party/devtools/node_modules/mkdirp/examples/pow.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mkdirp/examples/pow.js
rename to src/third_party/devtools/node_modules/mkdirp/examples/pow.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mkdirp/index.js b/src/third_party/devtools/node_modules/mkdirp/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mkdirp/index.js
rename to src/third_party/devtools/node_modules/mkdirp/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mkdirp/package.json b/src/third_party/devtools/node_modules/mkdirp/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mkdirp/package.json
rename to src/third_party/devtools/node_modules/mkdirp/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mkdirp/readme.markdown b/src/third_party/devtools/node_modules/mkdirp/readme.markdown
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mkdirp/readme.markdown
rename to src/third_party/devtools/node_modules/mkdirp/readme.markdown
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mkdirp/test/chmod.js b/src/third_party/devtools/node_modules/mkdirp/test/chmod.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mkdirp/test/chmod.js
rename to src/third_party/devtools/node_modules/mkdirp/test/chmod.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mkdirp/test/clobber.js b/src/third_party/devtools/node_modules/mkdirp/test/clobber.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mkdirp/test/clobber.js
rename to src/third_party/devtools/node_modules/mkdirp/test/clobber.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mkdirp/test/mkdirp.js b/src/third_party/devtools/node_modules/mkdirp/test/mkdirp.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mkdirp/test/mkdirp.js
rename to src/third_party/devtools/node_modules/mkdirp/test/mkdirp.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mkdirp/test/opts_fs.js b/src/third_party/devtools/node_modules/mkdirp/test/opts_fs.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mkdirp/test/opts_fs.js
rename to src/third_party/devtools/node_modules/mkdirp/test/opts_fs.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mkdirp/test/opts_fs_sync.js b/src/third_party/devtools/node_modules/mkdirp/test/opts_fs_sync.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mkdirp/test/opts_fs_sync.js
rename to src/third_party/devtools/node_modules/mkdirp/test/opts_fs_sync.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mkdirp/test/perm.js b/src/third_party/devtools/node_modules/mkdirp/test/perm.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mkdirp/test/perm.js
rename to src/third_party/devtools/node_modules/mkdirp/test/perm.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mkdirp/test/perm_sync.js b/src/third_party/devtools/node_modules/mkdirp/test/perm_sync.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mkdirp/test/perm_sync.js
rename to src/third_party/devtools/node_modules/mkdirp/test/perm_sync.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mkdirp/test/race.js b/src/third_party/devtools/node_modules/mkdirp/test/race.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mkdirp/test/race.js
rename to src/third_party/devtools/node_modules/mkdirp/test/race.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mkdirp/test/rel.js b/src/third_party/devtools/node_modules/mkdirp/test/rel.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mkdirp/test/rel.js
rename to src/third_party/devtools/node_modules/mkdirp/test/rel.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mkdirp/test/return.js b/src/third_party/devtools/node_modules/mkdirp/test/return.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mkdirp/test/return.js
rename to src/third_party/devtools/node_modules/mkdirp/test/return.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mkdirp/test/return_sync.js b/src/third_party/devtools/node_modules/mkdirp/test/return_sync.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mkdirp/test/return_sync.js
rename to src/third_party/devtools/node_modules/mkdirp/test/return_sync.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mkdirp/test/root.js b/src/third_party/devtools/node_modules/mkdirp/test/root.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mkdirp/test/root.js
rename to src/third_party/devtools/node_modules/mkdirp/test/root.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mkdirp/test/sync.js b/src/third_party/devtools/node_modules/mkdirp/test/sync.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mkdirp/test/sync.js
rename to src/third_party/devtools/node_modules/mkdirp/test/sync.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mkdirp/test/umask.js b/src/third_party/devtools/node_modules/mkdirp/test/umask.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mkdirp/test/umask.js
rename to src/third_party/devtools/node_modules/mkdirp/test/umask.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mkdirp/test/umask_sync.js b/src/third_party/devtools/node_modules/mkdirp/test/umask_sync.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mkdirp/test/umask_sync.js
rename to src/third_party/devtools/node_modules/mkdirp/test/umask_sync.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mocha/CHANGELOG.md b/src/third_party/devtools/node_modules/mocha/CHANGELOG.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mocha/CHANGELOG.md
rename to src/third_party/devtools/node_modules/mocha/CHANGELOG.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mocha/LICENSE b/src/third_party/devtools/node_modules/mocha/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mocha/LICENSE
rename to src/third_party/devtools/node_modules/mocha/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mocha/README.md b/src/third_party/devtools/node_modules/mocha/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mocha/README.md
rename to src/third_party/devtools/node_modules/mocha/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mocha/assets/growl/error.png b/src/third_party/devtools/node_modules/mocha/assets/growl/error.png
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mocha/assets/growl/error.png
rename to src/third_party/devtools/node_modules/mocha/assets/growl/error.png
Binary files differ
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mocha/assets/growl/ok.png b/src/third_party/devtools/node_modules/mocha/assets/growl/ok.png
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mocha/assets/growl/ok.png
rename to src/third_party/devtools/node_modules/mocha/assets/growl/ok.png
Binary files differ
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mocha/bin/_mocha b/src/third_party/devtools/node_modules/mocha/bin/_mocha
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mocha/bin/_mocha
rename to src/third_party/devtools/node_modules/mocha/bin/_mocha
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mocha/bin/mocha b/src/third_party/devtools/node_modules/mocha/bin/mocha
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mocha/bin/mocha
rename to src/third_party/devtools/node_modules/mocha/bin/mocha
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mocha/bin/options.js b/src/third_party/devtools/node_modules/mocha/bin/options.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mocha/bin/options.js
rename to src/third_party/devtools/node_modules/mocha/bin/options.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mocha/browser-entry.js b/src/third_party/devtools/node_modules/mocha/browser-entry.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mocha/browser-entry.js
rename to src/third_party/devtools/node_modules/mocha/browser-entry.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mocha/index.js b/src/third_party/devtools/node_modules/mocha/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mocha/index.js
rename to src/third_party/devtools/node_modules/mocha/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mocha/lib/browser/growl.js b/src/third_party/devtools/node_modules/mocha/lib/browser/growl.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mocha/lib/browser/growl.js
rename to src/third_party/devtools/node_modules/mocha/lib/browser/growl.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mocha/lib/browser/progress.js b/src/third_party/devtools/node_modules/mocha/lib/browser/progress.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mocha/lib/browser/progress.js
rename to src/third_party/devtools/node_modules/mocha/lib/browser/progress.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mocha/lib/browser/template.html b/src/third_party/devtools/node_modules/mocha/lib/browser/template.html
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mocha/lib/browser/template.html
rename to src/third_party/devtools/node_modules/mocha/lib/browser/template.html
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mocha/lib/browser/tty.js b/src/third_party/devtools/node_modules/mocha/lib/browser/tty.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mocha/lib/browser/tty.js
rename to src/third_party/devtools/node_modules/mocha/lib/browser/tty.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mocha/lib/cli/cli.js b/src/third_party/devtools/node_modules/mocha/lib/cli/cli.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mocha/lib/cli/cli.js
rename to src/third_party/devtools/node_modules/mocha/lib/cli/cli.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mocha/lib/cli/collect-files.js b/src/third_party/devtools/node_modules/mocha/lib/cli/collect-files.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mocha/lib/cli/collect-files.js
rename to src/third_party/devtools/node_modules/mocha/lib/cli/collect-files.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mocha/lib/cli/commands.js b/src/third_party/devtools/node_modules/mocha/lib/cli/commands.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mocha/lib/cli/commands.js
rename to src/third_party/devtools/node_modules/mocha/lib/cli/commands.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mocha/lib/cli/config.js b/src/third_party/devtools/node_modules/mocha/lib/cli/config.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mocha/lib/cli/config.js
rename to src/third_party/devtools/node_modules/mocha/lib/cli/config.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mocha/lib/cli/index.js b/src/third_party/devtools/node_modules/mocha/lib/cli/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mocha/lib/cli/index.js
rename to src/third_party/devtools/node_modules/mocha/lib/cli/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mocha/lib/cli/init.js b/src/third_party/devtools/node_modules/mocha/lib/cli/init.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mocha/lib/cli/init.js
rename to src/third_party/devtools/node_modules/mocha/lib/cli/init.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mocha/lib/cli/node-flags.js b/src/third_party/devtools/node_modules/mocha/lib/cli/node-flags.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mocha/lib/cli/node-flags.js
rename to src/third_party/devtools/node_modules/mocha/lib/cli/node-flags.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mocha/lib/cli/one-and-dones.js b/src/third_party/devtools/node_modules/mocha/lib/cli/one-and-dones.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mocha/lib/cli/one-and-dones.js
rename to src/third_party/devtools/node_modules/mocha/lib/cli/one-and-dones.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mocha/lib/cli/options.js b/src/third_party/devtools/node_modules/mocha/lib/cli/options.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mocha/lib/cli/options.js
rename to src/third_party/devtools/node_modules/mocha/lib/cli/options.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mocha/lib/cli/run-helpers.js b/src/third_party/devtools/node_modules/mocha/lib/cli/run-helpers.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mocha/lib/cli/run-helpers.js
rename to src/third_party/devtools/node_modules/mocha/lib/cli/run-helpers.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mocha/lib/cli/run-option-metadata.js b/src/third_party/devtools/node_modules/mocha/lib/cli/run-option-metadata.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mocha/lib/cli/run-option-metadata.js
rename to src/third_party/devtools/node_modules/mocha/lib/cli/run-option-metadata.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mocha/lib/cli/run.js b/src/third_party/devtools/node_modules/mocha/lib/cli/run.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mocha/lib/cli/run.js
rename to src/third_party/devtools/node_modules/mocha/lib/cli/run.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mocha/lib/cli/watch-run.js b/src/third_party/devtools/node_modules/mocha/lib/cli/watch-run.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mocha/lib/cli/watch-run.js
rename to src/third_party/devtools/node_modules/mocha/lib/cli/watch-run.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mocha/lib/context.js b/src/third_party/devtools/node_modules/mocha/lib/context.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mocha/lib/context.js
rename to src/third_party/devtools/node_modules/mocha/lib/context.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mocha/lib/errors.js b/src/third_party/devtools/node_modules/mocha/lib/errors.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mocha/lib/errors.js
rename to src/third_party/devtools/node_modules/mocha/lib/errors.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mocha/lib/growl.js b/src/third_party/devtools/node_modules/mocha/lib/growl.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mocha/lib/growl.js
rename to src/third_party/devtools/node_modules/mocha/lib/growl.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mocha/lib/hook.js b/src/third_party/devtools/node_modules/mocha/lib/hook.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mocha/lib/hook.js
rename to src/third_party/devtools/node_modules/mocha/lib/hook.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mocha/lib/interfaces/bdd.js b/src/third_party/devtools/node_modules/mocha/lib/interfaces/bdd.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mocha/lib/interfaces/bdd.js
rename to src/third_party/devtools/node_modules/mocha/lib/interfaces/bdd.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mocha/lib/interfaces/common.js b/src/third_party/devtools/node_modules/mocha/lib/interfaces/common.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mocha/lib/interfaces/common.js
rename to src/third_party/devtools/node_modules/mocha/lib/interfaces/common.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mocha/lib/interfaces/exports.js b/src/third_party/devtools/node_modules/mocha/lib/interfaces/exports.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mocha/lib/interfaces/exports.js
rename to src/third_party/devtools/node_modules/mocha/lib/interfaces/exports.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mocha/lib/interfaces/index.js b/src/third_party/devtools/node_modules/mocha/lib/interfaces/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mocha/lib/interfaces/index.js
rename to src/third_party/devtools/node_modules/mocha/lib/interfaces/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mocha/lib/interfaces/qunit.js b/src/third_party/devtools/node_modules/mocha/lib/interfaces/qunit.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mocha/lib/interfaces/qunit.js
rename to src/third_party/devtools/node_modules/mocha/lib/interfaces/qunit.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mocha/lib/interfaces/tdd.js b/src/third_party/devtools/node_modules/mocha/lib/interfaces/tdd.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mocha/lib/interfaces/tdd.js
rename to src/third_party/devtools/node_modules/mocha/lib/interfaces/tdd.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mocha/lib/mocha.js b/src/third_party/devtools/node_modules/mocha/lib/mocha.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mocha/lib/mocha.js
rename to src/third_party/devtools/node_modules/mocha/lib/mocha.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mocha/lib/mocharc.json b/src/third_party/devtools/node_modules/mocha/lib/mocharc.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mocha/lib/mocharc.json
rename to src/third_party/devtools/node_modules/mocha/lib/mocharc.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mocha/lib/pending.js b/src/third_party/devtools/node_modules/mocha/lib/pending.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mocha/lib/pending.js
rename to src/third_party/devtools/node_modules/mocha/lib/pending.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mocha/lib/reporters/base.js b/src/third_party/devtools/node_modules/mocha/lib/reporters/base.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mocha/lib/reporters/base.js
rename to src/third_party/devtools/node_modules/mocha/lib/reporters/base.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mocha/lib/reporters/doc.js b/src/third_party/devtools/node_modules/mocha/lib/reporters/doc.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mocha/lib/reporters/doc.js
rename to src/third_party/devtools/node_modules/mocha/lib/reporters/doc.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mocha/lib/reporters/dot.js b/src/third_party/devtools/node_modules/mocha/lib/reporters/dot.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mocha/lib/reporters/dot.js
rename to src/third_party/devtools/node_modules/mocha/lib/reporters/dot.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mocha/lib/reporters/html.js b/src/third_party/devtools/node_modules/mocha/lib/reporters/html.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mocha/lib/reporters/html.js
rename to src/third_party/devtools/node_modules/mocha/lib/reporters/html.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mocha/lib/reporters/index.js b/src/third_party/devtools/node_modules/mocha/lib/reporters/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mocha/lib/reporters/index.js
rename to src/third_party/devtools/node_modules/mocha/lib/reporters/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mocha/lib/reporters/json-stream.js b/src/third_party/devtools/node_modules/mocha/lib/reporters/json-stream.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mocha/lib/reporters/json-stream.js
rename to src/third_party/devtools/node_modules/mocha/lib/reporters/json-stream.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mocha/lib/reporters/json.js b/src/third_party/devtools/node_modules/mocha/lib/reporters/json.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mocha/lib/reporters/json.js
rename to src/third_party/devtools/node_modules/mocha/lib/reporters/json.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mocha/lib/reporters/landing.js b/src/third_party/devtools/node_modules/mocha/lib/reporters/landing.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mocha/lib/reporters/landing.js
rename to src/third_party/devtools/node_modules/mocha/lib/reporters/landing.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mocha/lib/reporters/list.js b/src/third_party/devtools/node_modules/mocha/lib/reporters/list.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mocha/lib/reporters/list.js
rename to src/third_party/devtools/node_modules/mocha/lib/reporters/list.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mocha/lib/reporters/markdown.js b/src/third_party/devtools/node_modules/mocha/lib/reporters/markdown.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mocha/lib/reporters/markdown.js
rename to src/third_party/devtools/node_modules/mocha/lib/reporters/markdown.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mocha/lib/reporters/min.js b/src/third_party/devtools/node_modules/mocha/lib/reporters/min.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mocha/lib/reporters/min.js
rename to src/third_party/devtools/node_modules/mocha/lib/reporters/min.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mocha/lib/reporters/nyan.js b/src/third_party/devtools/node_modules/mocha/lib/reporters/nyan.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mocha/lib/reporters/nyan.js
rename to src/third_party/devtools/node_modules/mocha/lib/reporters/nyan.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mocha/lib/reporters/progress.js b/src/third_party/devtools/node_modules/mocha/lib/reporters/progress.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mocha/lib/reporters/progress.js
rename to src/third_party/devtools/node_modules/mocha/lib/reporters/progress.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mocha/lib/reporters/spec.js b/src/third_party/devtools/node_modules/mocha/lib/reporters/spec.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mocha/lib/reporters/spec.js
rename to src/third_party/devtools/node_modules/mocha/lib/reporters/spec.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mocha/lib/reporters/tap.js b/src/third_party/devtools/node_modules/mocha/lib/reporters/tap.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mocha/lib/reporters/tap.js
rename to src/third_party/devtools/node_modules/mocha/lib/reporters/tap.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mocha/lib/reporters/xunit.js b/src/third_party/devtools/node_modules/mocha/lib/reporters/xunit.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mocha/lib/reporters/xunit.js
rename to src/third_party/devtools/node_modules/mocha/lib/reporters/xunit.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mocha/lib/runnable.js b/src/third_party/devtools/node_modules/mocha/lib/runnable.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mocha/lib/runnable.js
rename to src/third_party/devtools/node_modules/mocha/lib/runnable.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mocha/lib/runner.js b/src/third_party/devtools/node_modules/mocha/lib/runner.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mocha/lib/runner.js
rename to src/third_party/devtools/node_modules/mocha/lib/runner.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mocha/lib/stats-collector.js b/src/third_party/devtools/node_modules/mocha/lib/stats-collector.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mocha/lib/stats-collector.js
rename to src/third_party/devtools/node_modules/mocha/lib/stats-collector.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mocha/lib/suite.js b/src/third_party/devtools/node_modules/mocha/lib/suite.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mocha/lib/suite.js
rename to src/third_party/devtools/node_modules/mocha/lib/suite.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mocha/lib/test.js b/src/third_party/devtools/node_modules/mocha/lib/test.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mocha/lib/test.js
rename to src/third_party/devtools/node_modules/mocha/lib/test.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mocha/lib/utils.js b/src/third_party/devtools/node_modules/mocha/lib/utils.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mocha/lib/utils.js
rename to src/third_party/devtools/node_modules/mocha/lib/utils.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mocha/mocha.css b/src/third_party/devtools/node_modules/mocha/mocha.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mocha/mocha.css
rename to src/third_party/devtools/node_modules/mocha/mocha.css
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mocha/mocha.js b/src/third_party/devtools/node_modules/mocha/mocha.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mocha/mocha.js
rename to src/third_party/devtools/node_modules/mocha/mocha.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mocha/node_modules/ansi-colors/LICENSE b/src/third_party/devtools/node_modules/mocha/node_modules/ansi-colors/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mocha/node_modules/ansi-colors/LICENSE
rename to src/third_party/devtools/node_modules/mocha/node_modules/ansi-colors/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mocha/node_modules/ansi-colors/README.md b/src/third_party/devtools/node_modules/mocha/node_modules/ansi-colors/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mocha/node_modules/ansi-colors/README.md
rename to src/third_party/devtools/node_modules/mocha/node_modules/ansi-colors/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mocha/node_modules/ansi-colors/index.js b/src/third_party/devtools/node_modules/mocha/node_modules/ansi-colors/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mocha/node_modules/ansi-colors/index.js
rename to src/third_party/devtools/node_modules/mocha/node_modules/ansi-colors/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mocha/node_modules/ansi-colors/package.json b/src/third_party/devtools/node_modules/mocha/node_modules/ansi-colors/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mocha/node_modules/ansi-colors/package.json
rename to src/third_party/devtools/node_modules/mocha/node_modules/ansi-colors/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mocha/node_modules/ansi-colors/symbols.js b/src/third_party/devtools/node_modules/mocha/node_modules/ansi-colors/symbols.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mocha/node_modules/ansi-colors/symbols.js
rename to src/third_party/devtools/node_modules/mocha/node_modules/ansi-colors/symbols.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mocha/node_modules/ansi-colors/types/index.d.ts b/src/third_party/devtools/node_modules/mocha/node_modules/ansi-colors/types/index.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mocha/node_modules/ansi-colors/types/index.d.ts
rename to src/third_party/devtools/node_modules/mocha/node_modules/ansi-colors/types/index.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mocha/node_modules/debug/CHANGELOG.md b/src/third_party/devtools/node_modules/mocha/node_modules/debug/CHANGELOG.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mocha/node_modules/debug/CHANGELOG.md
rename to src/third_party/devtools/node_modules/mocha/node_modules/debug/CHANGELOG.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mocha/node_modules/debug/LICENSE b/src/third_party/devtools/node_modules/mocha/node_modules/debug/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mocha/node_modules/debug/LICENSE
rename to src/third_party/devtools/node_modules/mocha/node_modules/debug/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mocha/node_modules/debug/README.md b/src/third_party/devtools/node_modules/mocha/node_modules/debug/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mocha/node_modules/debug/README.md
rename to src/third_party/devtools/node_modules/mocha/node_modules/debug/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mocha/node_modules/debug/dist/debug.js b/src/third_party/devtools/node_modules/mocha/node_modules/debug/dist/debug.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mocha/node_modules/debug/dist/debug.js
rename to src/third_party/devtools/node_modules/mocha/node_modules/debug/dist/debug.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mocha/node_modules/debug/node.js b/src/third_party/devtools/node_modules/mocha/node_modules/debug/node.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mocha/node_modules/debug/node.js
rename to src/third_party/devtools/node_modules/mocha/node_modules/debug/node.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mocha/node_modules/debug/package.json b/src/third_party/devtools/node_modules/mocha/node_modules/debug/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mocha/node_modules/debug/package.json
rename to src/third_party/devtools/node_modules/mocha/node_modules/debug/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mocha/node_modules/debug/src/browser.js b/src/third_party/devtools/node_modules/mocha/node_modules/debug/src/browser.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mocha/node_modules/debug/src/browser.js
rename to src/third_party/devtools/node_modules/mocha/node_modules/debug/src/browser.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mocha/node_modules/debug/src/common.js b/src/third_party/devtools/node_modules/mocha/node_modules/debug/src/common.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mocha/node_modules/debug/src/common.js
rename to src/third_party/devtools/node_modules/mocha/node_modules/debug/src/common.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mocha/node_modules/debug/src/index.js b/src/third_party/devtools/node_modules/mocha/node_modules/debug/src/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mocha/node_modules/debug/src/index.js
rename to src/third_party/devtools/node_modules/mocha/node_modules/debug/src/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mocha/node_modules/debug/src/node.js b/src/third_party/devtools/node_modules/mocha/node_modules/debug/src/node.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mocha/node_modules/debug/src/node.js
rename to src/third_party/devtools/node_modules/mocha/node_modules/debug/src/node.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mocha/node_modules/diff/CONTRIBUTING.md b/src/third_party/devtools/node_modules/mocha/node_modules/diff/CONTRIBUTING.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mocha/node_modules/diff/CONTRIBUTING.md
rename to src/third_party/devtools/node_modules/mocha/node_modules/diff/CONTRIBUTING.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mocha/node_modules/diff/LICENSE b/src/third_party/devtools/node_modules/mocha/node_modules/diff/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mocha/node_modules/diff/LICENSE
rename to src/third_party/devtools/node_modules/mocha/node_modules/diff/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mocha/node_modules/diff/README.md b/src/third_party/devtools/node_modules/mocha/node_modules/diff/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mocha/node_modules/diff/README.md
rename to src/third_party/devtools/node_modules/mocha/node_modules/diff/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mocha/node_modules/diff/dist/diff.js b/src/third_party/devtools/node_modules/mocha/node_modules/diff/dist/diff.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mocha/node_modules/diff/dist/diff.js
rename to src/third_party/devtools/node_modules/mocha/node_modules/diff/dist/diff.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mocha/node_modules/diff/dist/diff.min.js b/src/third_party/devtools/node_modules/mocha/node_modules/diff/dist/diff.min.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mocha/node_modules/diff/dist/diff.min.js
rename to src/third_party/devtools/node_modules/mocha/node_modules/diff/dist/diff.min.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mocha/node_modules/diff/lib/convert/dmp.js b/src/third_party/devtools/node_modules/mocha/node_modules/diff/lib/convert/dmp.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mocha/node_modules/diff/lib/convert/dmp.js
rename to src/third_party/devtools/node_modules/mocha/node_modules/diff/lib/convert/dmp.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mocha/node_modules/diff/lib/convert/xml.js b/src/third_party/devtools/node_modules/mocha/node_modules/diff/lib/convert/xml.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mocha/node_modules/diff/lib/convert/xml.js
rename to src/third_party/devtools/node_modules/mocha/node_modules/diff/lib/convert/xml.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mocha/node_modules/diff/lib/diff/array.js b/src/third_party/devtools/node_modules/mocha/node_modules/diff/lib/diff/array.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mocha/node_modules/diff/lib/diff/array.js
rename to src/third_party/devtools/node_modules/mocha/node_modules/diff/lib/diff/array.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mocha/node_modules/diff/lib/diff/base.js b/src/third_party/devtools/node_modules/mocha/node_modules/diff/lib/diff/base.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mocha/node_modules/diff/lib/diff/base.js
rename to src/third_party/devtools/node_modules/mocha/node_modules/diff/lib/diff/base.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mocha/node_modules/diff/lib/diff/character.js b/src/third_party/devtools/node_modules/mocha/node_modules/diff/lib/diff/character.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mocha/node_modules/diff/lib/diff/character.js
rename to src/third_party/devtools/node_modules/mocha/node_modules/diff/lib/diff/character.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mocha/node_modules/diff/lib/diff/css.js b/src/third_party/devtools/node_modules/mocha/node_modules/diff/lib/diff/css.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mocha/node_modules/diff/lib/diff/css.js
rename to src/third_party/devtools/node_modules/mocha/node_modules/diff/lib/diff/css.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mocha/node_modules/diff/lib/diff/json.js b/src/third_party/devtools/node_modules/mocha/node_modules/diff/lib/diff/json.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mocha/node_modules/diff/lib/diff/json.js
rename to src/third_party/devtools/node_modules/mocha/node_modules/diff/lib/diff/json.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mocha/node_modules/diff/lib/diff/line.js b/src/third_party/devtools/node_modules/mocha/node_modules/diff/lib/diff/line.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mocha/node_modules/diff/lib/diff/line.js
rename to src/third_party/devtools/node_modules/mocha/node_modules/diff/lib/diff/line.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mocha/node_modules/diff/lib/diff/sentence.js b/src/third_party/devtools/node_modules/mocha/node_modules/diff/lib/diff/sentence.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mocha/node_modules/diff/lib/diff/sentence.js
rename to src/third_party/devtools/node_modules/mocha/node_modules/diff/lib/diff/sentence.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mocha/node_modules/diff/lib/diff/word.js b/src/third_party/devtools/node_modules/mocha/node_modules/diff/lib/diff/word.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mocha/node_modules/diff/lib/diff/word.js
rename to src/third_party/devtools/node_modules/mocha/node_modules/diff/lib/diff/word.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mocha/node_modules/diff/lib/index.js b/src/third_party/devtools/node_modules/mocha/node_modules/diff/lib/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mocha/node_modules/diff/lib/index.js
rename to src/third_party/devtools/node_modules/mocha/node_modules/diff/lib/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mocha/node_modules/diff/lib/patch/apply.js b/src/third_party/devtools/node_modules/mocha/node_modules/diff/lib/patch/apply.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mocha/node_modules/diff/lib/patch/apply.js
rename to src/third_party/devtools/node_modules/mocha/node_modules/diff/lib/patch/apply.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mocha/node_modules/diff/lib/patch/create.js b/src/third_party/devtools/node_modules/mocha/node_modules/diff/lib/patch/create.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mocha/node_modules/diff/lib/patch/create.js
rename to src/third_party/devtools/node_modules/mocha/node_modules/diff/lib/patch/create.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mocha/node_modules/diff/lib/patch/merge.js b/src/third_party/devtools/node_modules/mocha/node_modules/diff/lib/patch/merge.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mocha/node_modules/diff/lib/patch/merge.js
rename to src/third_party/devtools/node_modules/mocha/node_modules/diff/lib/patch/merge.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mocha/node_modules/diff/lib/patch/parse.js b/src/third_party/devtools/node_modules/mocha/node_modules/diff/lib/patch/parse.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mocha/node_modules/diff/lib/patch/parse.js
rename to src/third_party/devtools/node_modules/mocha/node_modules/diff/lib/patch/parse.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mocha/node_modules/diff/lib/util/array.js b/src/third_party/devtools/node_modules/mocha/node_modules/diff/lib/util/array.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mocha/node_modules/diff/lib/util/array.js
rename to src/third_party/devtools/node_modules/mocha/node_modules/diff/lib/util/array.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mocha/node_modules/diff/lib/util/distance-iterator.js b/src/third_party/devtools/node_modules/mocha/node_modules/diff/lib/util/distance-iterator.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mocha/node_modules/diff/lib/util/distance-iterator.js
rename to src/third_party/devtools/node_modules/mocha/node_modules/diff/lib/util/distance-iterator.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mocha/node_modules/diff/lib/util/params.js b/src/third_party/devtools/node_modules/mocha/node_modules/diff/lib/util/params.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mocha/node_modules/diff/lib/util/params.js
rename to src/third_party/devtools/node_modules/mocha/node_modules/diff/lib/util/params.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mocha/node_modules/diff/package.json b/src/third_party/devtools/node_modules/mocha/node_modules/diff/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mocha/node_modules/diff/package.json
rename to src/third_party/devtools/node_modules/mocha/node_modules/diff/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mocha/node_modules/diff/release-notes.md b/src/third_party/devtools/node_modules/mocha/node_modules/diff/release-notes.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mocha/node_modules/diff/release-notes.md
rename to src/third_party/devtools/node_modules/mocha/node_modules/diff/release-notes.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mocha/node_modules/diff/runtime.js b/src/third_party/devtools/node_modules/mocha/node_modules/diff/runtime.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mocha/node_modules/diff/runtime.js
rename to src/third_party/devtools/node_modules/mocha/node_modules/diff/runtime.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mocha/node_modules/diff/yarn.lock b/src/third_party/devtools/node_modules/mocha/node_modules/diff/yarn.lock
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mocha/node_modules/diff/yarn.lock
rename to src/third_party/devtools/node_modules/mocha/node_modules/diff/yarn.lock
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mocha/node_modules/find-up/index.js b/src/third_party/devtools/node_modules/mocha/node_modules/find-up/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mocha/node_modules/find-up/index.js
rename to src/third_party/devtools/node_modules/mocha/node_modules/find-up/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mocha/node_modules/find-up/license b/src/third_party/devtools/node_modules/mocha/node_modules/find-up/license
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mocha/node_modules/find-up/license
rename to src/third_party/devtools/node_modules/mocha/node_modules/find-up/license
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mocha/node_modules/find-up/package.json b/src/third_party/devtools/node_modules/mocha/node_modules/find-up/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mocha/node_modules/find-up/package.json
rename to src/third_party/devtools/node_modules/mocha/node_modules/find-up/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mocha/node_modules/find-up/readme.md b/src/third_party/devtools/node_modules/mocha/node_modules/find-up/readme.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mocha/node_modules/find-up/readme.md
rename to src/third_party/devtools/node_modules/mocha/node_modules/find-up/readme.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mocha/node_modules/glob/LICENSE b/src/third_party/devtools/node_modules/mocha/node_modules/glob/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mocha/node_modules/glob/LICENSE
rename to src/third_party/devtools/node_modules/mocha/node_modules/glob/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mocha/node_modules/glob/README.md b/src/third_party/devtools/node_modules/mocha/node_modules/glob/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mocha/node_modules/glob/README.md
rename to src/third_party/devtools/node_modules/mocha/node_modules/glob/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mocha/node_modules/glob/changelog.md b/src/third_party/devtools/node_modules/mocha/node_modules/glob/changelog.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mocha/node_modules/glob/changelog.md
rename to src/third_party/devtools/node_modules/mocha/node_modules/glob/changelog.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mocha/node_modules/glob/common.js b/src/third_party/devtools/node_modules/mocha/node_modules/glob/common.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mocha/node_modules/glob/common.js
rename to src/third_party/devtools/node_modules/mocha/node_modules/glob/common.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mocha/node_modules/glob/glob.js b/src/third_party/devtools/node_modules/mocha/node_modules/glob/glob.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mocha/node_modules/glob/glob.js
rename to src/third_party/devtools/node_modules/mocha/node_modules/glob/glob.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mocha/node_modules/glob/package.json b/src/third_party/devtools/node_modules/mocha/node_modules/glob/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mocha/node_modules/glob/package.json
rename to src/third_party/devtools/node_modules/mocha/node_modules/glob/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mocha/node_modules/glob/sync.js b/src/third_party/devtools/node_modules/mocha/node_modules/glob/sync.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mocha/node_modules/glob/sync.js
rename to src/third_party/devtools/node_modules/mocha/node_modules/glob/sync.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mocha/node_modules/ms/index.js b/src/third_party/devtools/node_modules/mocha/node_modules/ms/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mocha/node_modules/ms/index.js
rename to src/third_party/devtools/node_modules/mocha/node_modules/ms/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mocha/node_modules/ms/license.md b/src/third_party/devtools/node_modules/mocha/node_modules/ms/license.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mocha/node_modules/ms/license.md
rename to src/third_party/devtools/node_modules/mocha/node_modules/ms/license.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mocha/node_modules/ms/package.json b/src/third_party/devtools/node_modules/mocha/node_modules/ms/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mocha/node_modules/ms/package.json
rename to src/third_party/devtools/node_modules/mocha/node_modules/ms/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mocha/node_modules/ms/readme.md b/src/third_party/devtools/node_modules/mocha/node_modules/ms/readme.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mocha/node_modules/ms/readme.md
rename to src/third_party/devtools/node_modules/mocha/node_modules/ms/readme.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mocha/node_modules/supports-color/browser.js b/src/third_party/devtools/node_modules/mocha/node_modules/supports-color/browser.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mocha/node_modules/supports-color/browser.js
rename to src/third_party/devtools/node_modules/mocha/node_modules/supports-color/browser.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mocha/node_modules/supports-color/index.js b/src/third_party/devtools/node_modules/mocha/node_modules/supports-color/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mocha/node_modules/supports-color/index.js
rename to src/third_party/devtools/node_modules/mocha/node_modules/supports-color/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mocha/node_modules/supports-color/license b/src/third_party/devtools/node_modules/mocha/node_modules/supports-color/license
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mocha/node_modules/supports-color/license
rename to src/third_party/devtools/node_modules/mocha/node_modules/supports-color/license
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mocha/node_modules/supports-color/package.json b/src/third_party/devtools/node_modules/mocha/node_modules/supports-color/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mocha/node_modules/supports-color/package.json
rename to src/third_party/devtools/node_modules/mocha/node_modules/supports-color/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mocha/node_modules/supports-color/readme.md b/src/third_party/devtools/node_modules/mocha/node_modules/supports-color/readme.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mocha/node_modules/supports-color/readme.md
rename to src/third_party/devtools/node_modules/mocha/node_modules/supports-color/readme.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mocha/package.json b/src/third_party/devtools/node_modules/mocha/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mocha/package.json
rename to src/third_party/devtools/node_modules/mocha/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/ms/index.js b/src/third_party/devtools/node_modules/ms/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/ms/index.js
rename to src/third_party/devtools/node_modules/ms/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/ms/license.md b/src/third_party/devtools/node_modules/ms/license.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/ms/license.md
rename to src/third_party/devtools/node_modules/ms/license.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/ms/package.json b/src/third_party/devtools/node_modules/ms/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/ms/package.json
rename to src/third_party/devtools/node_modules/ms/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/ms/readme.md b/src/third_party/devtools/node_modules/ms/readme.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/ms/readme.md
rename to src/third_party/devtools/node_modules/ms/readme.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mute-stream/.nyc_output/33508.json b/src/third_party/devtools/node_modules/mute-stream/.nyc_output/33508.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mute-stream/.nyc_output/33508.json
rename to src/third_party/devtools/node_modules/mute-stream/.nyc_output/33508.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mute-stream/.nyc_output/33510.json b/src/third_party/devtools/node_modules/mute-stream/.nyc_output/33510.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mute-stream/.nyc_output/33510.json
rename to src/third_party/devtools/node_modules/mute-stream/.nyc_output/33510.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mute-stream/.travis.yml b/src/third_party/devtools/node_modules/mute-stream/.travis.yml
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mute-stream/.travis.yml
rename to src/third_party/devtools/node_modules/mute-stream/.travis.yml
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mute-stream/LICENSE b/src/third_party/devtools/node_modules/mute-stream/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mute-stream/LICENSE
rename to src/third_party/devtools/node_modules/mute-stream/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mute-stream/README.md b/src/third_party/devtools/node_modules/mute-stream/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mute-stream/README.md
rename to src/third_party/devtools/node_modules/mute-stream/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mute-stream/coverage/lcov-report/__root__/index.html b/src/third_party/devtools/node_modules/mute-stream/coverage/lcov-report/__root__/index.html
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mute-stream/coverage/lcov-report/__root__/index.html
rename to src/third_party/devtools/node_modules/mute-stream/coverage/lcov-report/__root__/index.html
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mute-stream/coverage/lcov-report/__root__/mute.js.html b/src/third_party/devtools/node_modules/mute-stream/coverage/lcov-report/__root__/mute.js.html
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mute-stream/coverage/lcov-report/__root__/mute.js.html
rename to src/third_party/devtools/node_modules/mute-stream/coverage/lcov-report/__root__/mute.js.html
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mute-stream/coverage/lcov-report/base.css b/src/third_party/devtools/node_modules/mute-stream/coverage/lcov-report/base.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mute-stream/coverage/lcov-report/base.css
rename to src/third_party/devtools/node_modules/mute-stream/coverage/lcov-report/base.css
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mute-stream/coverage/lcov-report/index.html b/src/third_party/devtools/node_modules/mute-stream/coverage/lcov-report/index.html
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mute-stream/coverage/lcov-report/index.html
rename to src/third_party/devtools/node_modules/mute-stream/coverage/lcov-report/index.html
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mute-stream/coverage/lcov-report/prettify.css b/src/third_party/devtools/node_modules/mute-stream/coverage/lcov-report/prettify.css
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mute-stream/coverage/lcov-report/prettify.css
rename to src/third_party/devtools/node_modules/mute-stream/coverage/lcov-report/prettify.css
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mute-stream/coverage/lcov-report/prettify.js b/src/third_party/devtools/node_modules/mute-stream/coverage/lcov-report/prettify.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mute-stream/coverage/lcov-report/prettify.js
rename to src/third_party/devtools/node_modules/mute-stream/coverage/lcov-report/prettify.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mute-stream/coverage/lcov-report/sort-arrow-sprite.png b/src/third_party/devtools/node_modules/mute-stream/coverage/lcov-report/sort-arrow-sprite.png
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mute-stream/coverage/lcov-report/sort-arrow-sprite.png
rename to src/third_party/devtools/node_modules/mute-stream/coverage/lcov-report/sort-arrow-sprite.png
Binary files differ
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mute-stream/coverage/lcov-report/sorter.js b/src/third_party/devtools/node_modules/mute-stream/coverage/lcov-report/sorter.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mute-stream/coverage/lcov-report/sorter.js
rename to src/third_party/devtools/node_modules/mute-stream/coverage/lcov-report/sorter.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mute-stream/coverage/lcov.info b/src/third_party/devtools/node_modules/mute-stream/coverage/lcov.info
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mute-stream/coverage/lcov.info
rename to src/third_party/devtools/node_modules/mute-stream/coverage/lcov.info
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mute-stream/mute.js b/src/third_party/devtools/node_modules/mute-stream/mute.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mute-stream/mute.js
rename to src/third_party/devtools/node_modules/mute-stream/mute.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mute-stream/package.json b/src/third_party/devtools/node_modules/mute-stream/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mute-stream/package.json
rename to src/third_party/devtools/node_modules/mute-stream/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/mute-stream/test/basic.js b/src/third_party/devtools/node_modules/mute-stream/test/basic.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/mute-stream/test/basic.js
rename to src/third_party/devtools/node_modules/mute-stream/test/basic.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/natural-compare/README.md b/src/third_party/devtools/node_modules/natural-compare/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/natural-compare/README.md
rename to src/third_party/devtools/node_modules/natural-compare/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/natural-compare/index.js b/src/third_party/devtools/node_modules/natural-compare/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/natural-compare/index.js
rename to src/third_party/devtools/node_modules/natural-compare/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/natural-compare/package.json b/src/third_party/devtools/node_modules/natural-compare/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/natural-compare/package.json
rename to src/third_party/devtools/node_modules/natural-compare/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/negotiator/HISTORY.md b/src/third_party/devtools/node_modules/negotiator/HISTORY.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/negotiator/HISTORY.md
rename to src/third_party/devtools/node_modules/negotiator/HISTORY.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/negotiator/LICENSE b/src/third_party/devtools/node_modules/negotiator/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/negotiator/LICENSE
rename to src/third_party/devtools/node_modules/negotiator/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/negotiator/README.md b/src/third_party/devtools/node_modules/negotiator/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/negotiator/README.md
rename to src/third_party/devtools/node_modules/negotiator/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/negotiator/index.js b/src/third_party/devtools/node_modules/negotiator/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/negotiator/index.js
rename to src/third_party/devtools/node_modules/negotiator/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/negotiator/lib/charset.js b/src/third_party/devtools/node_modules/negotiator/lib/charset.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/negotiator/lib/charset.js
rename to src/third_party/devtools/node_modules/negotiator/lib/charset.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/negotiator/lib/encoding.js b/src/third_party/devtools/node_modules/negotiator/lib/encoding.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/negotiator/lib/encoding.js
rename to src/third_party/devtools/node_modules/negotiator/lib/encoding.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/negotiator/lib/language.js b/src/third_party/devtools/node_modules/negotiator/lib/language.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/negotiator/lib/language.js
rename to src/third_party/devtools/node_modules/negotiator/lib/language.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/negotiator/lib/mediaType.js b/src/third_party/devtools/node_modules/negotiator/lib/mediaType.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/negotiator/lib/mediaType.js
rename to src/third_party/devtools/node_modules/negotiator/lib/mediaType.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/negotiator/package.json b/src/third_party/devtools/node_modules/negotiator/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/negotiator/package.json
rename to src/third_party/devtools/node_modules/negotiator/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/neo-async/LICENSE b/src/third_party/devtools/node_modules/neo-async/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/neo-async/LICENSE
rename to src/third_party/devtools/node_modules/neo-async/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/neo-async/README.md b/src/third_party/devtools/node_modules/neo-async/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/neo-async/README.md
rename to src/third_party/devtools/node_modules/neo-async/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/neo-async/all.js b/src/third_party/devtools/node_modules/neo-async/all.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/neo-async/all.js
rename to src/third_party/devtools/node_modules/neo-async/all.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/neo-async/allLimit.js b/src/third_party/devtools/node_modules/neo-async/allLimit.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/neo-async/allLimit.js
rename to src/third_party/devtools/node_modules/neo-async/allLimit.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/neo-async/allSeries.js b/src/third_party/devtools/node_modules/neo-async/allSeries.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/neo-async/allSeries.js
rename to src/third_party/devtools/node_modules/neo-async/allSeries.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/neo-async/angelFall.js b/src/third_party/devtools/node_modules/neo-async/angelFall.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/neo-async/angelFall.js
rename to src/third_party/devtools/node_modules/neo-async/angelFall.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/neo-async/any.js b/src/third_party/devtools/node_modules/neo-async/any.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/neo-async/any.js
rename to src/third_party/devtools/node_modules/neo-async/any.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/neo-async/anyLimit.js b/src/third_party/devtools/node_modules/neo-async/anyLimit.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/neo-async/anyLimit.js
rename to src/third_party/devtools/node_modules/neo-async/anyLimit.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/neo-async/anySeries.js b/src/third_party/devtools/node_modules/neo-async/anySeries.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/neo-async/anySeries.js
rename to src/third_party/devtools/node_modules/neo-async/anySeries.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/neo-async/apply.js b/src/third_party/devtools/node_modules/neo-async/apply.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/neo-async/apply.js
rename to src/third_party/devtools/node_modules/neo-async/apply.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/neo-async/applyEach.js b/src/third_party/devtools/node_modules/neo-async/applyEach.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/neo-async/applyEach.js
rename to src/third_party/devtools/node_modules/neo-async/applyEach.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/neo-async/applyEachSeries.js b/src/third_party/devtools/node_modules/neo-async/applyEachSeries.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/neo-async/applyEachSeries.js
rename to src/third_party/devtools/node_modules/neo-async/applyEachSeries.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/neo-async/async.js b/src/third_party/devtools/node_modules/neo-async/async.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/neo-async/async.js
rename to src/third_party/devtools/node_modules/neo-async/async.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/neo-async/async.min.js b/src/third_party/devtools/node_modules/neo-async/async.min.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/neo-async/async.min.js
rename to src/third_party/devtools/node_modules/neo-async/async.min.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/neo-async/asyncify.js b/src/third_party/devtools/node_modules/neo-async/asyncify.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/neo-async/asyncify.js
rename to src/third_party/devtools/node_modules/neo-async/asyncify.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/neo-async/auto.js b/src/third_party/devtools/node_modules/neo-async/auto.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/neo-async/auto.js
rename to src/third_party/devtools/node_modules/neo-async/auto.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/neo-async/autoInject.js b/src/third_party/devtools/node_modules/neo-async/autoInject.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/neo-async/autoInject.js
rename to src/third_party/devtools/node_modules/neo-async/autoInject.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/neo-async/cargo.js b/src/third_party/devtools/node_modules/neo-async/cargo.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/neo-async/cargo.js
rename to src/third_party/devtools/node_modules/neo-async/cargo.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/neo-async/compose.js b/src/third_party/devtools/node_modules/neo-async/compose.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/neo-async/compose.js
rename to src/third_party/devtools/node_modules/neo-async/compose.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/neo-async/concat.js b/src/third_party/devtools/node_modules/neo-async/concat.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/neo-async/concat.js
rename to src/third_party/devtools/node_modules/neo-async/concat.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/neo-async/concatLimit.js b/src/third_party/devtools/node_modules/neo-async/concatLimit.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/neo-async/concatLimit.js
rename to src/third_party/devtools/node_modules/neo-async/concatLimit.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/neo-async/concatSeries.js b/src/third_party/devtools/node_modules/neo-async/concatSeries.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/neo-async/concatSeries.js
rename to src/third_party/devtools/node_modules/neo-async/concatSeries.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/neo-async/constant.js b/src/third_party/devtools/node_modules/neo-async/constant.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/neo-async/constant.js
rename to src/third_party/devtools/node_modules/neo-async/constant.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/neo-async/createLogger.js b/src/third_party/devtools/node_modules/neo-async/createLogger.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/neo-async/createLogger.js
rename to src/third_party/devtools/node_modules/neo-async/createLogger.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/neo-async/detect.js b/src/third_party/devtools/node_modules/neo-async/detect.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/neo-async/detect.js
rename to src/third_party/devtools/node_modules/neo-async/detect.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/neo-async/detectLimit.js b/src/third_party/devtools/node_modules/neo-async/detectLimit.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/neo-async/detectLimit.js
rename to src/third_party/devtools/node_modules/neo-async/detectLimit.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/neo-async/detectSeries.js b/src/third_party/devtools/node_modules/neo-async/detectSeries.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/neo-async/detectSeries.js
rename to src/third_party/devtools/node_modules/neo-async/detectSeries.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/neo-async/dir.js b/src/third_party/devtools/node_modules/neo-async/dir.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/neo-async/dir.js
rename to src/third_party/devtools/node_modules/neo-async/dir.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/neo-async/doDuring.js b/src/third_party/devtools/node_modules/neo-async/doDuring.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/neo-async/doDuring.js
rename to src/third_party/devtools/node_modules/neo-async/doDuring.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/neo-async/doUntil.js b/src/third_party/devtools/node_modules/neo-async/doUntil.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/neo-async/doUntil.js
rename to src/third_party/devtools/node_modules/neo-async/doUntil.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/neo-async/doWhilst.js b/src/third_party/devtools/node_modules/neo-async/doWhilst.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/neo-async/doWhilst.js
rename to src/third_party/devtools/node_modules/neo-async/doWhilst.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/neo-async/during.js b/src/third_party/devtools/node_modules/neo-async/during.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/neo-async/during.js
rename to src/third_party/devtools/node_modules/neo-async/during.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/neo-async/each.js b/src/third_party/devtools/node_modules/neo-async/each.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/neo-async/each.js
rename to src/third_party/devtools/node_modules/neo-async/each.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/neo-async/eachLimit.js b/src/third_party/devtools/node_modules/neo-async/eachLimit.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/neo-async/eachLimit.js
rename to src/third_party/devtools/node_modules/neo-async/eachLimit.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/neo-async/eachOf.js b/src/third_party/devtools/node_modules/neo-async/eachOf.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/neo-async/eachOf.js
rename to src/third_party/devtools/node_modules/neo-async/eachOf.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/neo-async/eachOfLimit.js b/src/third_party/devtools/node_modules/neo-async/eachOfLimit.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/neo-async/eachOfLimit.js
rename to src/third_party/devtools/node_modules/neo-async/eachOfLimit.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/neo-async/eachOfSeries.js b/src/third_party/devtools/node_modules/neo-async/eachOfSeries.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/neo-async/eachOfSeries.js
rename to src/third_party/devtools/node_modules/neo-async/eachOfSeries.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/neo-async/eachSeries.js b/src/third_party/devtools/node_modules/neo-async/eachSeries.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/neo-async/eachSeries.js
rename to src/third_party/devtools/node_modules/neo-async/eachSeries.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/neo-async/ensureAsync.js b/src/third_party/devtools/node_modules/neo-async/ensureAsync.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/neo-async/ensureAsync.js
rename to src/third_party/devtools/node_modules/neo-async/ensureAsync.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/neo-async/every.js b/src/third_party/devtools/node_modules/neo-async/every.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/neo-async/every.js
rename to src/third_party/devtools/node_modules/neo-async/every.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/neo-async/everyLimit.js b/src/third_party/devtools/node_modules/neo-async/everyLimit.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/neo-async/everyLimit.js
rename to src/third_party/devtools/node_modules/neo-async/everyLimit.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/neo-async/everySeries.js b/src/third_party/devtools/node_modules/neo-async/everySeries.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/neo-async/everySeries.js
rename to src/third_party/devtools/node_modules/neo-async/everySeries.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/neo-async/fast.js b/src/third_party/devtools/node_modules/neo-async/fast.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/neo-async/fast.js
rename to src/third_party/devtools/node_modules/neo-async/fast.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/neo-async/filter.js b/src/third_party/devtools/node_modules/neo-async/filter.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/neo-async/filter.js
rename to src/third_party/devtools/node_modules/neo-async/filter.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/neo-async/filterLimit.js b/src/third_party/devtools/node_modules/neo-async/filterLimit.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/neo-async/filterLimit.js
rename to src/third_party/devtools/node_modules/neo-async/filterLimit.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/neo-async/filterSeries.js b/src/third_party/devtools/node_modules/neo-async/filterSeries.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/neo-async/filterSeries.js
rename to src/third_party/devtools/node_modules/neo-async/filterSeries.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/neo-async/find.js b/src/third_party/devtools/node_modules/neo-async/find.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/neo-async/find.js
rename to src/third_party/devtools/node_modules/neo-async/find.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/neo-async/findLimit.js b/src/third_party/devtools/node_modules/neo-async/findLimit.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/neo-async/findLimit.js
rename to src/third_party/devtools/node_modules/neo-async/findLimit.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/neo-async/findSeries.js b/src/third_party/devtools/node_modules/neo-async/findSeries.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/neo-async/findSeries.js
rename to src/third_party/devtools/node_modules/neo-async/findSeries.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/neo-async/foldl.js b/src/third_party/devtools/node_modules/neo-async/foldl.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/neo-async/foldl.js
rename to src/third_party/devtools/node_modules/neo-async/foldl.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/neo-async/foldr.js b/src/third_party/devtools/node_modules/neo-async/foldr.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/neo-async/foldr.js
rename to src/third_party/devtools/node_modules/neo-async/foldr.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/neo-async/forEach.js b/src/third_party/devtools/node_modules/neo-async/forEach.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/neo-async/forEach.js
rename to src/third_party/devtools/node_modules/neo-async/forEach.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/neo-async/forEachLimit.js b/src/third_party/devtools/node_modules/neo-async/forEachLimit.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/neo-async/forEachLimit.js
rename to src/third_party/devtools/node_modules/neo-async/forEachLimit.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/neo-async/forEachOf.js b/src/third_party/devtools/node_modules/neo-async/forEachOf.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/neo-async/forEachOf.js
rename to src/third_party/devtools/node_modules/neo-async/forEachOf.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/neo-async/forEachOfLimit.js b/src/third_party/devtools/node_modules/neo-async/forEachOfLimit.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/neo-async/forEachOfLimit.js
rename to src/third_party/devtools/node_modules/neo-async/forEachOfLimit.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/neo-async/forEachOfSeries.js b/src/third_party/devtools/node_modules/neo-async/forEachOfSeries.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/neo-async/forEachOfSeries.js
rename to src/third_party/devtools/node_modules/neo-async/forEachOfSeries.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/neo-async/forEachSeries.js b/src/third_party/devtools/node_modules/neo-async/forEachSeries.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/neo-async/forEachSeries.js
rename to src/third_party/devtools/node_modules/neo-async/forEachSeries.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/neo-async/forever.js b/src/third_party/devtools/node_modules/neo-async/forever.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/neo-async/forever.js
rename to src/third_party/devtools/node_modules/neo-async/forever.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/neo-async/groupBy.js b/src/third_party/devtools/node_modules/neo-async/groupBy.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/neo-async/groupBy.js
rename to src/third_party/devtools/node_modules/neo-async/groupBy.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/neo-async/groupByLimit.js b/src/third_party/devtools/node_modules/neo-async/groupByLimit.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/neo-async/groupByLimit.js
rename to src/third_party/devtools/node_modules/neo-async/groupByLimit.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/neo-async/groupBySeries.js b/src/third_party/devtools/node_modules/neo-async/groupBySeries.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/neo-async/groupBySeries.js
rename to src/third_party/devtools/node_modules/neo-async/groupBySeries.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/neo-async/inject.js b/src/third_party/devtools/node_modules/neo-async/inject.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/neo-async/inject.js
rename to src/third_party/devtools/node_modules/neo-async/inject.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/neo-async/iterator.js b/src/third_party/devtools/node_modules/neo-async/iterator.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/neo-async/iterator.js
rename to src/third_party/devtools/node_modules/neo-async/iterator.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/neo-async/log.js b/src/third_party/devtools/node_modules/neo-async/log.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/neo-async/log.js
rename to src/third_party/devtools/node_modules/neo-async/log.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/neo-async/map.js b/src/third_party/devtools/node_modules/neo-async/map.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/neo-async/map.js
rename to src/third_party/devtools/node_modules/neo-async/map.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/neo-async/mapLimit.js b/src/third_party/devtools/node_modules/neo-async/mapLimit.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/neo-async/mapLimit.js
rename to src/third_party/devtools/node_modules/neo-async/mapLimit.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/neo-async/mapSeries.js b/src/third_party/devtools/node_modules/neo-async/mapSeries.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/neo-async/mapSeries.js
rename to src/third_party/devtools/node_modules/neo-async/mapSeries.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/neo-async/mapValues.js b/src/third_party/devtools/node_modules/neo-async/mapValues.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/neo-async/mapValues.js
rename to src/third_party/devtools/node_modules/neo-async/mapValues.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/neo-async/mapValuesLimit.js b/src/third_party/devtools/node_modules/neo-async/mapValuesLimit.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/neo-async/mapValuesLimit.js
rename to src/third_party/devtools/node_modules/neo-async/mapValuesLimit.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/neo-async/mapValuesSeries.js b/src/third_party/devtools/node_modules/neo-async/mapValuesSeries.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/neo-async/mapValuesSeries.js
rename to src/third_party/devtools/node_modules/neo-async/mapValuesSeries.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/neo-async/memoize.js b/src/third_party/devtools/node_modules/neo-async/memoize.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/neo-async/memoize.js
rename to src/third_party/devtools/node_modules/neo-async/memoize.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/neo-async/nextTick.js b/src/third_party/devtools/node_modules/neo-async/nextTick.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/neo-async/nextTick.js
rename to src/third_party/devtools/node_modules/neo-async/nextTick.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/neo-async/omit.js b/src/third_party/devtools/node_modules/neo-async/omit.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/neo-async/omit.js
rename to src/third_party/devtools/node_modules/neo-async/omit.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/neo-async/omitLimit.js b/src/third_party/devtools/node_modules/neo-async/omitLimit.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/neo-async/omitLimit.js
rename to src/third_party/devtools/node_modules/neo-async/omitLimit.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/neo-async/omitSeries.js b/src/third_party/devtools/node_modules/neo-async/omitSeries.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/neo-async/omitSeries.js
rename to src/third_party/devtools/node_modules/neo-async/omitSeries.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/neo-async/package.json b/src/third_party/devtools/node_modules/neo-async/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/neo-async/package.json
rename to src/third_party/devtools/node_modules/neo-async/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/neo-async/parallel.js b/src/third_party/devtools/node_modules/neo-async/parallel.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/neo-async/parallel.js
rename to src/third_party/devtools/node_modules/neo-async/parallel.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/neo-async/parallelLimit.js b/src/third_party/devtools/node_modules/neo-async/parallelLimit.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/neo-async/parallelLimit.js
rename to src/third_party/devtools/node_modules/neo-async/parallelLimit.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/neo-async/pick.js b/src/third_party/devtools/node_modules/neo-async/pick.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/neo-async/pick.js
rename to src/third_party/devtools/node_modules/neo-async/pick.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/neo-async/pickLimit.js b/src/third_party/devtools/node_modules/neo-async/pickLimit.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/neo-async/pickLimit.js
rename to src/third_party/devtools/node_modules/neo-async/pickLimit.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/neo-async/pickSeries.js b/src/third_party/devtools/node_modules/neo-async/pickSeries.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/neo-async/pickSeries.js
rename to src/third_party/devtools/node_modules/neo-async/pickSeries.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/neo-async/priorityQueue.js b/src/third_party/devtools/node_modules/neo-async/priorityQueue.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/neo-async/priorityQueue.js
rename to src/third_party/devtools/node_modules/neo-async/priorityQueue.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/neo-async/queue.js b/src/third_party/devtools/node_modules/neo-async/queue.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/neo-async/queue.js
rename to src/third_party/devtools/node_modules/neo-async/queue.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/neo-async/race.js b/src/third_party/devtools/node_modules/neo-async/race.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/neo-async/race.js
rename to src/third_party/devtools/node_modules/neo-async/race.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/neo-async/reduce.js b/src/third_party/devtools/node_modules/neo-async/reduce.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/neo-async/reduce.js
rename to src/third_party/devtools/node_modules/neo-async/reduce.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/neo-async/reduceRight.js b/src/third_party/devtools/node_modules/neo-async/reduceRight.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/neo-async/reduceRight.js
rename to src/third_party/devtools/node_modules/neo-async/reduceRight.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/neo-async/reflect.js b/src/third_party/devtools/node_modules/neo-async/reflect.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/neo-async/reflect.js
rename to src/third_party/devtools/node_modules/neo-async/reflect.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/neo-async/reflectAll.js b/src/third_party/devtools/node_modules/neo-async/reflectAll.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/neo-async/reflectAll.js
rename to src/third_party/devtools/node_modules/neo-async/reflectAll.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/neo-async/reject.js b/src/third_party/devtools/node_modules/neo-async/reject.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/neo-async/reject.js
rename to src/third_party/devtools/node_modules/neo-async/reject.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/neo-async/rejectLimit.js b/src/third_party/devtools/node_modules/neo-async/rejectLimit.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/neo-async/rejectLimit.js
rename to src/third_party/devtools/node_modules/neo-async/rejectLimit.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/neo-async/rejectSeries.js b/src/third_party/devtools/node_modules/neo-async/rejectSeries.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/neo-async/rejectSeries.js
rename to src/third_party/devtools/node_modules/neo-async/rejectSeries.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/neo-async/retry.js b/src/third_party/devtools/node_modules/neo-async/retry.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/neo-async/retry.js
rename to src/third_party/devtools/node_modules/neo-async/retry.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/neo-async/retryable.js b/src/third_party/devtools/node_modules/neo-async/retryable.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/neo-async/retryable.js
rename to src/third_party/devtools/node_modules/neo-async/retryable.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/neo-async/safe.js b/src/third_party/devtools/node_modules/neo-async/safe.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/neo-async/safe.js
rename to src/third_party/devtools/node_modules/neo-async/safe.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/neo-async/select.js b/src/third_party/devtools/node_modules/neo-async/select.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/neo-async/select.js
rename to src/third_party/devtools/node_modules/neo-async/select.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/neo-async/selectLimit.js b/src/third_party/devtools/node_modules/neo-async/selectLimit.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/neo-async/selectLimit.js
rename to src/third_party/devtools/node_modules/neo-async/selectLimit.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/neo-async/selectSeries.js b/src/third_party/devtools/node_modules/neo-async/selectSeries.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/neo-async/selectSeries.js
rename to src/third_party/devtools/node_modules/neo-async/selectSeries.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/neo-async/seq.js b/src/third_party/devtools/node_modules/neo-async/seq.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/neo-async/seq.js
rename to src/third_party/devtools/node_modules/neo-async/seq.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/neo-async/series.js b/src/third_party/devtools/node_modules/neo-async/series.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/neo-async/series.js
rename to src/third_party/devtools/node_modules/neo-async/series.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/neo-async/setImmediate.js b/src/third_party/devtools/node_modules/neo-async/setImmediate.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/neo-async/setImmediate.js
rename to src/third_party/devtools/node_modules/neo-async/setImmediate.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/neo-async/some.js b/src/third_party/devtools/node_modules/neo-async/some.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/neo-async/some.js
rename to src/third_party/devtools/node_modules/neo-async/some.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/neo-async/someLimit.js b/src/third_party/devtools/node_modules/neo-async/someLimit.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/neo-async/someLimit.js
rename to src/third_party/devtools/node_modules/neo-async/someLimit.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/neo-async/someSeries.js b/src/third_party/devtools/node_modules/neo-async/someSeries.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/neo-async/someSeries.js
rename to src/third_party/devtools/node_modules/neo-async/someSeries.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/neo-async/sortBy.js b/src/third_party/devtools/node_modules/neo-async/sortBy.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/neo-async/sortBy.js
rename to src/third_party/devtools/node_modules/neo-async/sortBy.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/neo-async/sortByLimit.js b/src/third_party/devtools/node_modules/neo-async/sortByLimit.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/neo-async/sortByLimit.js
rename to src/third_party/devtools/node_modules/neo-async/sortByLimit.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/neo-async/sortBySeries.js b/src/third_party/devtools/node_modules/neo-async/sortBySeries.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/neo-async/sortBySeries.js
rename to src/third_party/devtools/node_modules/neo-async/sortBySeries.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/neo-async/timeout.js b/src/third_party/devtools/node_modules/neo-async/timeout.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/neo-async/timeout.js
rename to src/third_party/devtools/node_modules/neo-async/timeout.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/neo-async/times.js b/src/third_party/devtools/node_modules/neo-async/times.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/neo-async/times.js
rename to src/third_party/devtools/node_modules/neo-async/times.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/neo-async/timesLimit.js b/src/third_party/devtools/node_modules/neo-async/timesLimit.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/neo-async/timesLimit.js
rename to src/third_party/devtools/node_modules/neo-async/timesLimit.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/neo-async/timesSeries.js b/src/third_party/devtools/node_modules/neo-async/timesSeries.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/neo-async/timesSeries.js
rename to src/third_party/devtools/node_modules/neo-async/timesSeries.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/neo-async/transform.js b/src/third_party/devtools/node_modules/neo-async/transform.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/neo-async/transform.js
rename to src/third_party/devtools/node_modules/neo-async/transform.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/neo-async/transformLimit.js b/src/third_party/devtools/node_modules/neo-async/transformLimit.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/neo-async/transformLimit.js
rename to src/third_party/devtools/node_modules/neo-async/transformLimit.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/neo-async/transformSeries.js b/src/third_party/devtools/node_modules/neo-async/transformSeries.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/neo-async/transformSeries.js
rename to src/third_party/devtools/node_modules/neo-async/transformSeries.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/neo-async/tryEach.js b/src/third_party/devtools/node_modules/neo-async/tryEach.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/neo-async/tryEach.js
rename to src/third_party/devtools/node_modules/neo-async/tryEach.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/neo-async/unmemoize.js b/src/third_party/devtools/node_modules/neo-async/unmemoize.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/neo-async/unmemoize.js
rename to src/third_party/devtools/node_modules/neo-async/unmemoize.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/neo-async/until.js b/src/third_party/devtools/node_modules/neo-async/until.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/neo-async/until.js
rename to src/third_party/devtools/node_modules/neo-async/until.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/neo-async/waterfall.js b/src/third_party/devtools/node_modules/neo-async/waterfall.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/neo-async/waterfall.js
rename to src/third_party/devtools/node_modules/neo-async/waterfall.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/neo-async/whilst.js b/src/third_party/devtools/node_modules/neo-async/whilst.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/neo-async/whilst.js
rename to src/third_party/devtools/node_modules/neo-async/whilst.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/neo-async/wrapSync.js b/src/third_party/devtools/node_modules/neo-async/wrapSync.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/neo-async/wrapSync.js
rename to src/third_party/devtools/node_modules/neo-async/wrapSync.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/nice-try/CHANGELOG.md b/src/third_party/devtools/node_modules/nice-try/CHANGELOG.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/nice-try/CHANGELOG.md
rename to src/third_party/devtools/node_modules/nice-try/CHANGELOG.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/nice-try/LICENSE b/src/third_party/devtools/node_modules/nice-try/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/nice-try/LICENSE
rename to src/third_party/devtools/node_modules/nice-try/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/nice-try/README.md b/src/third_party/devtools/node_modules/nice-try/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/nice-try/README.md
rename to src/third_party/devtools/node_modules/nice-try/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/nice-try/package.json b/src/third_party/devtools/node_modules/nice-try/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/nice-try/package.json
rename to src/third_party/devtools/node_modules/nice-try/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/nice-try/src/index.js b/src/third_party/devtools/node_modules/nice-try/src/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/nice-try/src/index.js
rename to src/third_party/devtools/node_modules/nice-try/src/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/node-environment-flags/README.md b/src/third_party/devtools/node_modules/node-environment-flags/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/node-environment-flags/README.md
rename to src/third_party/devtools/node_modules/node-environment-flags/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/node-environment-flags/flags.json b/src/third_party/devtools/node_modules/node-environment-flags/flags.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/node-environment-flags/flags.json
rename to src/third_party/devtools/node_modules/node-environment-flags/flags.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/node-environment-flags/implementation.js b/src/third_party/devtools/node_modules/node-environment-flags/implementation.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/node-environment-flags/implementation.js
rename to src/third_party/devtools/node_modules/node-environment-flags/implementation.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/node-environment-flags/index.js b/src/third_party/devtools/node_modules/node-environment-flags/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/node-environment-flags/index.js
rename to src/third_party/devtools/node_modules/node-environment-flags/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/node-environment-flags/package.json b/src/third_party/devtools/node_modules/node-environment-flags/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/node-environment-flags/package.json
rename to src/third_party/devtools/node_modules/node-environment-flags/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/node-environment-flags/polyfill.js b/src/third_party/devtools/node_modules/node-environment-flags/polyfill.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/node-environment-flags/polyfill.js
rename to src/third_party/devtools/node_modules/node-environment-flags/polyfill.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/node-environment-flags/shim.js b/src/third_party/devtools/node_modules/node-environment-flags/shim.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/node-environment-flags/shim.js
rename to src/third_party/devtools/node_modules/node-environment-flags/shim.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/nopt/.npmignore b/src/third_party/devtools/node_modules/nopt/.npmignore
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/nopt/.npmignore
rename to src/third_party/devtools/node_modules/nopt/.npmignore
diff --git a/src/cobalt/debug/remote/devtools/node_modules/nopt/.travis.yml b/src/third_party/devtools/node_modules/nopt/.travis.yml
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/nopt/.travis.yml
rename to src/third_party/devtools/node_modules/nopt/.travis.yml
diff --git a/src/cobalt/debug/remote/devtools/node_modules/nopt/LICENSE b/src/third_party/devtools/node_modules/nopt/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/nopt/LICENSE
rename to src/third_party/devtools/node_modules/nopt/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/nopt/README.md b/src/third_party/devtools/node_modules/nopt/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/nopt/README.md
rename to src/third_party/devtools/node_modules/nopt/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/nopt/bin/nopt.js b/src/third_party/devtools/node_modules/nopt/bin/nopt.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/nopt/bin/nopt.js
rename to src/third_party/devtools/node_modules/nopt/bin/nopt.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/nopt/examples/my-program.js b/src/third_party/devtools/node_modules/nopt/examples/my-program.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/nopt/examples/my-program.js
rename to src/third_party/devtools/node_modules/nopt/examples/my-program.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/nopt/lib/nopt.js b/src/third_party/devtools/node_modules/nopt/lib/nopt.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/nopt/lib/nopt.js
rename to src/third_party/devtools/node_modules/nopt/lib/nopt.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/nopt/package.json b/src/third_party/devtools/node_modules/nopt/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/nopt/package.json
rename to src/third_party/devtools/node_modules/nopt/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/nopt/test/basic.js b/src/third_party/devtools/node_modules/nopt/test/basic.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/nopt/test/basic.js
rename to src/third_party/devtools/node_modules/nopt/test/basic.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/AUTHORS b/src/third_party/devtools/node_modules/normalize-package-data/AUTHORS
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/AUTHORS
rename to src/third_party/devtools/node_modules/normalize-package-data/AUTHORS
diff --git a/src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/LICENSE b/src/third_party/devtools/node_modules/normalize-package-data/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/LICENSE
rename to src/third_party/devtools/node_modules/normalize-package-data/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/README.md b/src/third_party/devtools/node_modules/normalize-package-data/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/README.md
rename to src/third_party/devtools/node_modules/normalize-package-data/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/lib/extract_description.js b/src/third_party/devtools/node_modules/normalize-package-data/lib/extract_description.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/lib/extract_description.js
rename to src/third_party/devtools/node_modules/normalize-package-data/lib/extract_description.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/lib/fixer.js b/src/third_party/devtools/node_modules/normalize-package-data/lib/fixer.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/lib/fixer.js
rename to src/third_party/devtools/node_modules/normalize-package-data/lib/fixer.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/lib/make_warning.js b/src/third_party/devtools/node_modules/normalize-package-data/lib/make_warning.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/lib/make_warning.js
rename to src/third_party/devtools/node_modules/normalize-package-data/lib/make_warning.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/lib/normalize.js b/src/third_party/devtools/node_modules/normalize-package-data/lib/normalize.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/lib/normalize.js
rename to src/third_party/devtools/node_modules/normalize-package-data/lib/normalize.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/lib/safe_format.js b/src/third_party/devtools/node_modules/normalize-package-data/lib/safe_format.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/lib/safe_format.js
rename to src/third_party/devtools/node_modules/normalize-package-data/lib/safe_format.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/lib/typos.json b/src/third_party/devtools/node_modules/normalize-package-data/lib/typos.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/lib/typos.json
rename to src/third_party/devtools/node_modules/normalize-package-data/lib/typos.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/lib/warning_messages.json b/src/third_party/devtools/node_modules/normalize-package-data/lib/warning_messages.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/lib/warning_messages.json
rename to src/third_party/devtools/node_modules/normalize-package-data/lib/warning_messages.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/.editorconfig b/src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/.editorconfig
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/.editorconfig
rename to src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/.editorconfig
diff --git a/src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/.eslintignore b/src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/.eslintignore
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/.eslintignore
rename to src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/.eslintignore
diff --git a/src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/.eslintrc b/src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/.eslintrc
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/.eslintrc
rename to src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/.eslintrc
diff --git a/src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/.travis.yml b/src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/.travis.yml
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/.travis.yml
rename to src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/.travis.yml
diff --git a/src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/LICENSE b/src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/LICENSE
rename to src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/appveyor.yml b/src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/appveyor.yml
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/appveyor.yml
rename to src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/appveyor.yml
diff --git a/src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/example/async.js b/src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/example/async.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/example/async.js
rename to src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/example/async.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/example/sync.js b/src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/example/sync.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/example/sync.js
rename to src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/example/sync.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/index.js b/src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/index.js
rename to src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/lib/async.js b/src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/lib/async.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/lib/async.js
rename to src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/lib/async.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/lib/caller.js b/src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/lib/caller.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/lib/caller.js
rename to src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/lib/caller.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/lib/core.js b/src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/lib/core.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/lib/core.js
rename to src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/lib/core.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/lib/core.json b/src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/lib/core.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/lib/core.json
rename to src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/lib/core.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/lib/node-modules-paths.js b/src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/lib/node-modules-paths.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/lib/node-modules-paths.js
rename to src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/lib/node-modules-paths.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/lib/normalize-options.js b/src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/lib/normalize-options.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/lib/normalize-options.js
rename to src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/lib/normalize-options.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/lib/sync.js b/src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/lib/sync.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/lib/sync.js
rename to src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/lib/sync.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/package.json b/src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/package.json
rename to src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/readme.markdown b/src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/readme.markdown
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/readme.markdown
rename to src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/readme.markdown
diff --git a/src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/test/.eslintrc b/src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/test/.eslintrc
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/test/.eslintrc
rename to src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/test/.eslintrc
diff --git a/src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/test/core.js b/src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/test/core.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/test/core.js
rename to src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/test/core.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/test/dotdot.js b/src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/test/dotdot.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/test/dotdot.js
rename to src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/test/dotdot.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/test/dotdot/abc/index.js b/src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/test/dotdot/abc/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/test/dotdot/abc/index.js
rename to src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/test/dotdot/abc/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/test/dotdot/index.js b/src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/test/dotdot/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/test/dotdot/index.js
rename to src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/test/dotdot/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/test/faulty_basedir.js b/src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/test/faulty_basedir.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/test/faulty_basedir.js
rename to src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/test/faulty_basedir.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/test/filter.js b/src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/test/filter.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/test/filter.js
rename to src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/test/filter.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/test/filter_sync.js b/src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/test/filter_sync.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/test/filter_sync.js
rename to src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/test/filter_sync.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/test/mock.js b/src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/test/mock.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/test/mock.js
rename to src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/test/mock.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/test/mock_sync.js b/src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/test/mock_sync.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/test/mock_sync.js
rename to src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/test/mock_sync.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/test/module_dir.js b/src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/test/module_dir.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/test/module_dir.js
rename to src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/test/module_dir.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/test/module_dir/xmodules/aaa/index.js b/src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/test/module_dir/xmodules/aaa/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/test/module_dir/xmodules/aaa/index.js
rename to src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/test/module_dir/xmodules/aaa/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/test/module_dir/ymodules/aaa/index.js b/src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/test/module_dir/ymodules/aaa/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/test/module_dir/ymodules/aaa/index.js
rename to src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/test/module_dir/ymodules/aaa/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/test/module_dir/zmodules/bbb/main.js b/src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/test/module_dir/zmodules/bbb/main.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/test/module_dir/zmodules/bbb/main.js
rename to src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/test/module_dir/zmodules/bbb/main.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/test/module_dir/zmodules/bbb/package.json b/src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/test/module_dir/zmodules/bbb/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/test/module_dir/zmodules/bbb/package.json
rename to src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/test/module_dir/zmodules/bbb/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/test/node-modules-paths.js b/src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/test/node-modules-paths.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/test/node-modules-paths.js
rename to src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/test/node-modules-paths.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/test/node_path.js b/src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/test/node_path.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/test/node_path.js
rename to src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/test/node_path.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/test/node_path/x/aaa/index.js b/src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/test/node_path/x/aaa/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/test/node_path/x/aaa/index.js
rename to src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/test/node_path/x/aaa/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/test/node_path/x/ccc/index.js b/src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/test/node_path/x/ccc/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/test/node_path/x/ccc/index.js
rename to src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/test/node_path/x/ccc/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/test/node_path/y/bbb/index.js b/src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/test/node_path/y/bbb/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/test/node_path/y/bbb/index.js
rename to src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/test/node_path/y/bbb/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/test/node_path/y/ccc/index.js b/src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/test/node_path/y/ccc/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/test/node_path/y/ccc/index.js
rename to src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/test/node_path/y/ccc/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/test/nonstring.js b/src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/test/nonstring.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/test/nonstring.js
rename to src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/test/nonstring.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/test/pathfilter.js b/src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/test/pathfilter.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/test/pathfilter.js
rename to src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/test/pathfilter.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/test/pathfilter/deep_ref/main.js b/src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/test/pathfilter/deep_ref/main.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/test/pathfilter/deep_ref/main.js
rename to src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/test/pathfilter/deep_ref/main.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/test/precedence.js b/src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/test/precedence.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/test/precedence.js
rename to src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/test/precedence.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/test/precedence/aaa.js b/src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/test/precedence/aaa.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/test/precedence/aaa.js
rename to src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/test/precedence/aaa.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/test/precedence/aaa/index.js b/src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/test/precedence/aaa/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/test/precedence/aaa/index.js
rename to src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/test/precedence/aaa/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/test/precedence/aaa/main.js b/src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/test/precedence/aaa/main.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/test/precedence/aaa/main.js
rename to src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/test/precedence/aaa/main.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/test/precedence/bbb.js b/src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/test/precedence/bbb.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/test/precedence/bbb.js
rename to src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/test/precedence/bbb.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/test/precedence/bbb/main.js b/src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/test/precedence/bbb/main.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/test/precedence/bbb/main.js
rename to src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/test/precedence/bbb/main.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/test/resolver.js b/src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/test/resolver.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/test/resolver.js
rename to src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/test/resolver.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/test/resolver/baz/doom.js b/src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/test/resolver/baz/doom.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/test/resolver/baz/doom.js
rename to src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/test/resolver/baz/doom.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/test/resolver/baz/package.json b/src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/test/resolver/baz/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/test/resolver/baz/package.json
rename to src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/test/resolver/baz/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/test/resolver/baz/quux.js b/src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/test/resolver/baz/quux.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/test/resolver/baz/quux.js
rename to src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/test/resolver/baz/quux.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/test/resolver/browser_field/a.js b/src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/test/resolver/browser_field/a.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/test/resolver/browser_field/a.js
rename to src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/test/resolver/browser_field/a.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/test/resolver/browser_field/b.js b/src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/test/resolver/browser_field/b.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/test/resolver/browser_field/b.js
rename to src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/test/resolver/browser_field/b.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/test/resolver/browser_field/package.json b/src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/test/resolver/browser_field/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/test/resolver/browser_field/package.json
rename to src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/test/resolver/browser_field/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/test/resolver/cup.coffee b/src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/test/resolver/cup.coffee
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/test/resolver/cup.coffee
rename to src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/test/resolver/cup.coffee
diff --git a/src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/test/resolver/dot_main/index.js b/src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/test/resolver/dot_main/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/test/resolver/dot_main/index.js
rename to src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/test/resolver/dot_main/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/test/resolver/dot_main/package.json b/src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/test/resolver/dot_main/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/test/resolver/dot_main/package.json
rename to src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/test/resolver/dot_main/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/test/resolver/dot_slash_main/index.js b/src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/test/resolver/dot_slash_main/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/test/resolver/dot_slash_main/index.js
rename to src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/test/resolver/dot_slash_main/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/test/resolver/dot_slash_main/package.json b/src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/test/resolver/dot_slash_main/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/test/resolver/dot_slash_main/package.json
rename to src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/test/resolver/dot_slash_main/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/test/resolver/foo.js b/src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/test/resolver/foo.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/test/resolver/foo.js
rename to src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/test/resolver/foo.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/test/resolver/incorrect_main/index.js b/src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/test/resolver/incorrect_main/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/test/resolver/incorrect_main/index.js
rename to src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/test/resolver/incorrect_main/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/test/resolver/incorrect_main/package.json b/src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/test/resolver/incorrect_main/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/test/resolver/incorrect_main/package.json
rename to src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/test/resolver/incorrect_main/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/test/resolver/invalid_main/package.json b/src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/test/resolver/invalid_main/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/test/resolver/invalid_main/package.json
rename to src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/test/resolver/invalid_main/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/test/resolver/mug.coffee b/src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/test/resolver/mug.coffee
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/test/resolver/mug.coffee
rename to src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/test/resolver/mug.coffee
diff --git a/src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/test/resolver/mug.js b/src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/test/resolver/mug.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/test/resolver/mug.js
rename to src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/test/resolver/mug.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/test/resolver/multirepo/lerna.json b/src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/test/resolver/multirepo/lerna.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/test/resolver/multirepo/lerna.json
rename to src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/test/resolver/multirepo/lerna.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/test/resolver/multirepo/package.json b/src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/test/resolver/multirepo/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/test/resolver/multirepo/package.json
rename to src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/test/resolver/multirepo/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/test/resolver/multirepo/packages/package-a/index.js b/src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/test/resolver/multirepo/packages/package-a/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/test/resolver/multirepo/packages/package-a/index.js
rename to src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/test/resolver/multirepo/packages/package-a/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/test/resolver/multirepo/packages/package-a/package.json b/src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/test/resolver/multirepo/packages/package-a/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/test/resolver/multirepo/packages/package-a/package.json
rename to src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/test/resolver/multirepo/packages/package-a/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/test/resolver/multirepo/packages/package-b/index.js b/src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/test/resolver/multirepo/packages/package-b/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/test/resolver/multirepo/packages/package-b/index.js
rename to src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/test/resolver/multirepo/packages/package-b/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/test/resolver/multirepo/packages/package-b/package.json b/src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/test/resolver/multirepo/packages/package-b/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/test/resolver/multirepo/packages/package-b/package.json
rename to src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/test/resolver/multirepo/packages/package-b/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/test/resolver/nested_symlinks/mylib/async.js b/src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/test/resolver/nested_symlinks/mylib/async.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/test/resolver/nested_symlinks/mylib/async.js
rename to src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/test/resolver/nested_symlinks/mylib/async.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/test/resolver/nested_symlinks/mylib/package.json b/src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/test/resolver/nested_symlinks/mylib/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/test/resolver/nested_symlinks/mylib/package.json
rename to src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/test/resolver/nested_symlinks/mylib/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/test/resolver/nested_symlinks/mylib/sync.js b/src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/test/resolver/nested_symlinks/mylib/sync.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/test/resolver/nested_symlinks/mylib/sync.js
rename to src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/test/resolver/nested_symlinks/mylib/sync.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/test/resolver/other_path/lib/other-lib.js b/src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/test/resolver/other_path/lib/other-lib.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/test/resolver/other_path/lib/other-lib.js
rename to src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/test/resolver/other_path/lib/other-lib.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/test/resolver/other_path/root.js b/src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/test/resolver/other_path/root.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/test/resolver/other_path/root.js
rename to src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/test/resolver/other_path/root.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/test/resolver/quux/foo/index.js b/src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/test/resolver/quux/foo/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/test/resolver/quux/foo/index.js
rename to src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/test/resolver/quux/foo/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/test/resolver/same_names/foo.js b/src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/test/resolver/same_names/foo.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/test/resolver/same_names/foo.js
rename to src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/test/resolver/same_names/foo.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/test/resolver/same_names/foo/index.js b/src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/test/resolver/same_names/foo/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/test/resolver/same_names/foo/index.js
rename to src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/test/resolver/same_names/foo/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/test/resolver/symlinked/_/node_modules/foo.js b/src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/test/resolver/symlinked/_/node_modules/foo.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/test/resolver/symlinked/_/node_modules/foo.js
rename to src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/test/resolver/symlinked/_/node_modules/foo.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/test/resolver/symlinked/_/symlink_target/.gitkeep b/src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/test/resolver/symlinked/_/symlink_target/.gitkeep
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/test/resolver/symlinked/_/symlink_target/.gitkeep
rename to src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/test/resolver/symlinked/_/symlink_target/.gitkeep
diff --git a/src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/test/resolver/symlinked/package/bar.js b/src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/test/resolver/symlinked/package/bar.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/test/resolver/symlinked/package/bar.js
rename to src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/test/resolver/symlinked/package/bar.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/test/resolver/symlinked/package/package.json b/src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/test/resolver/symlinked/package/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/test/resolver/symlinked/package/package.json
rename to src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/test/resolver/symlinked/package/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/test/resolver/without_basedir/main.js b/src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/test/resolver/without_basedir/main.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/test/resolver/without_basedir/main.js
rename to src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/test/resolver/without_basedir/main.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/test/resolver_sync.js b/src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/test/resolver_sync.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/test/resolver_sync.js
rename to src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/test/resolver_sync.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/test/shadowed_core.js b/src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/test/shadowed_core.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/test/shadowed_core.js
rename to src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/test/shadowed_core.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/test/shadowed_core/node_modules/util/index.js b/src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/test/shadowed_core/node_modules/util/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/test/shadowed_core/node_modules/util/index.js
rename to src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/test/shadowed_core/node_modules/util/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/test/subdirs.js b/src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/test/subdirs.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/test/subdirs.js
rename to src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/test/subdirs.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/test/symlinks.js b/src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/test/symlinks.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/node_modules/resolve/test/symlinks.js
rename to src/third_party/devtools/node_modules/normalize-package-data/node_modules/resolve/test/symlinks.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/package.json b/src/third_party/devtools/node_modules/normalize-package-data/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/normalize-package-data/package.json
rename to src/third_party/devtools/node_modules/normalize-package-data/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/normalize-path/LICENSE b/src/third_party/devtools/node_modules/normalize-path/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/normalize-path/LICENSE
rename to src/third_party/devtools/node_modules/normalize-path/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/normalize-path/README.md b/src/third_party/devtools/node_modules/normalize-path/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/normalize-path/README.md
rename to src/third_party/devtools/node_modules/normalize-path/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/normalize-path/index.js b/src/third_party/devtools/node_modules/normalize-path/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/normalize-path/index.js
rename to src/third_party/devtools/node_modules/normalize-path/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/normalize-path/package.json b/src/third_party/devtools/node_modules/normalize-path/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/normalize-path/package.json
rename to src/third_party/devtools/node_modules/normalize-path/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/npm-run-path/index.js b/src/third_party/devtools/node_modules/npm-run-path/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/npm-run-path/index.js
rename to src/third_party/devtools/node_modules/npm-run-path/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/npm-run-path/license b/src/third_party/devtools/node_modules/npm-run-path/license
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/npm-run-path/license
rename to src/third_party/devtools/node_modules/npm-run-path/license
diff --git a/src/cobalt/debug/remote/devtools/node_modules/npm-run-path/package.json b/src/third_party/devtools/node_modules/npm-run-path/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/npm-run-path/package.json
rename to src/third_party/devtools/node_modules/npm-run-path/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/npm-run-path/readme.md b/src/third_party/devtools/node_modules/npm-run-path/readme.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/npm-run-path/readme.md
rename to src/third_party/devtools/node_modules/npm-run-path/readme.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/number-is-nan/index.js b/src/third_party/devtools/node_modules/number-is-nan/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/number-is-nan/index.js
rename to src/third_party/devtools/node_modules/number-is-nan/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/number-is-nan/license b/src/third_party/devtools/node_modules/number-is-nan/license
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/number-is-nan/license
rename to src/third_party/devtools/node_modules/number-is-nan/license
diff --git a/src/cobalt/debug/remote/devtools/node_modules/number-is-nan/package.json b/src/third_party/devtools/node_modules/number-is-nan/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/number-is-nan/package.json
rename to src/third_party/devtools/node_modules/number-is-nan/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/number-is-nan/readme.md b/src/third_party/devtools/node_modules/number-is-nan/readme.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/number-is-nan/readme.md
rename to src/third_party/devtools/node_modules/number-is-nan/readme.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/object-assign/index.js b/src/third_party/devtools/node_modules/object-assign/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/object-assign/index.js
rename to src/third_party/devtools/node_modules/object-assign/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/object-assign/license b/src/third_party/devtools/node_modules/object-assign/license
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/object-assign/license
rename to src/third_party/devtools/node_modules/object-assign/license
diff --git a/src/cobalt/debug/remote/devtools/node_modules/object-assign/package.json b/src/third_party/devtools/node_modules/object-assign/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/object-assign/package.json
rename to src/third_party/devtools/node_modules/object-assign/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/object-assign/readme.md b/src/third_party/devtools/node_modules/object-assign/readme.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/object-assign/readme.md
rename to src/third_party/devtools/node_modules/object-assign/readme.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/object-component/.npmignore b/src/third_party/devtools/node_modules/object-component/.npmignore
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/object-component/.npmignore
rename to src/third_party/devtools/node_modules/object-component/.npmignore
diff --git a/src/cobalt/debug/remote/devtools/node_modules/object-component/History.md b/src/third_party/devtools/node_modules/object-component/History.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/object-component/History.md
rename to src/third_party/devtools/node_modules/object-component/History.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/object-component/Makefile b/src/third_party/devtools/node_modules/object-component/Makefile
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/object-component/Makefile
rename to src/third_party/devtools/node_modules/object-component/Makefile
diff --git a/src/cobalt/debug/remote/devtools/node_modules/object-component/Readme.md b/src/third_party/devtools/node_modules/object-component/Readme.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/object-component/Readme.md
rename to src/third_party/devtools/node_modules/object-component/Readme.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/object-component/component.json b/src/third_party/devtools/node_modules/object-component/component.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/object-component/component.json
rename to src/third_party/devtools/node_modules/object-component/component.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/object-component/index.js b/src/third_party/devtools/node_modules/object-component/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/object-component/index.js
rename to src/third_party/devtools/node_modules/object-component/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/object-component/package.json b/src/third_party/devtools/node_modules/object-component/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/object-component/package.json
rename to src/third_party/devtools/node_modules/object-component/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/object-component/test/object.js b/src/third_party/devtools/node_modules/object-component/test/object.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/object-component/test/object.js
rename to src/third_party/devtools/node_modules/object-component/test/object.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/object-inspect/.nycrc b/src/third_party/devtools/node_modules/object-inspect/.nycrc
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/object-inspect/.nycrc
rename to src/third_party/devtools/node_modules/object-inspect/.nycrc
diff --git a/src/cobalt/debug/remote/devtools/node_modules/object-inspect/.travis.yml b/src/third_party/devtools/node_modules/object-inspect/.travis.yml
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/object-inspect/.travis.yml
rename to src/third_party/devtools/node_modules/object-inspect/.travis.yml
diff --git a/src/cobalt/debug/remote/devtools/node_modules/object-inspect/LICENSE b/src/third_party/devtools/node_modules/object-inspect/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/object-inspect/LICENSE
rename to src/third_party/devtools/node_modules/object-inspect/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/object-inspect/example/all.js b/src/third_party/devtools/node_modules/object-inspect/example/all.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/object-inspect/example/all.js
rename to src/third_party/devtools/node_modules/object-inspect/example/all.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/object-inspect/example/circular.js b/src/third_party/devtools/node_modules/object-inspect/example/circular.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/object-inspect/example/circular.js
rename to src/third_party/devtools/node_modules/object-inspect/example/circular.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/object-inspect/example/fn.js b/src/third_party/devtools/node_modules/object-inspect/example/fn.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/object-inspect/example/fn.js
rename to src/third_party/devtools/node_modules/object-inspect/example/fn.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/object-inspect/example/inspect.js b/src/third_party/devtools/node_modules/object-inspect/example/inspect.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/object-inspect/example/inspect.js
rename to src/third_party/devtools/node_modules/object-inspect/example/inspect.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/object-inspect/index.js b/src/third_party/devtools/node_modules/object-inspect/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/object-inspect/index.js
rename to src/third_party/devtools/node_modules/object-inspect/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/object-inspect/package.json b/src/third_party/devtools/node_modules/object-inspect/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/object-inspect/package.json
rename to src/third_party/devtools/node_modules/object-inspect/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/object-inspect/readme.markdown b/src/third_party/devtools/node_modules/object-inspect/readme.markdown
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/object-inspect/readme.markdown
rename to src/third_party/devtools/node_modules/object-inspect/readme.markdown
diff --git a/src/cobalt/debug/remote/devtools/node_modules/object-inspect/test-core-js.js b/src/third_party/devtools/node_modules/object-inspect/test-core-js.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/object-inspect/test-core-js.js
rename to src/third_party/devtools/node_modules/object-inspect/test-core-js.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/object-inspect/test/bigint.js b/src/third_party/devtools/node_modules/object-inspect/test/bigint.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/object-inspect/test/bigint.js
rename to src/third_party/devtools/node_modules/object-inspect/test/bigint.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/object-inspect/test/browser/dom.js b/src/third_party/devtools/node_modules/object-inspect/test/browser/dom.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/object-inspect/test/browser/dom.js
rename to src/third_party/devtools/node_modules/object-inspect/test/browser/dom.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/object-inspect/test/circular.js b/src/third_party/devtools/node_modules/object-inspect/test/circular.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/object-inspect/test/circular.js
rename to src/third_party/devtools/node_modules/object-inspect/test/circular.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/object-inspect/test/deep.js b/src/third_party/devtools/node_modules/object-inspect/test/deep.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/object-inspect/test/deep.js
rename to src/third_party/devtools/node_modules/object-inspect/test/deep.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/object-inspect/test/element.js b/src/third_party/devtools/node_modules/object-inspect/test/element.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/object-inspect/test/element.js
rename to src/third_party/devtools/node_modules/object-inspect/test/element.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/object-inspect/test/err.js b/src/third_party/devtools/node_modules/object-inspect/test/err.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/object-inspect/test/err.js
rename to src/third_party/devtools/node_modules/object-inspect/test/err.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/object-inspect/test/fn.js b/src/third_party/devtools/node_modules/object-inspect/test/fn.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/object-inspect/test/fn.js
rename to src/third_party/devtools/node_modules/object-inspect/test/fn.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/object-inspect/test/has.js b/src/third_party/devtools/node_modules/object-inspect/test/has.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/object-inspect/test/has.js
rename to src/third_party/devtools/node_modules/object-inspect/test/has.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/object-inspect/test/holes.js b/src/third_party/devtools/node_modules/object-inspect/test/holes.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/object-inspect/test/holes.js
rename to src/third_party/devtools/node_modules/object-inspect/test/holes.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/object-inspect/test/inspect.js b/src/third_party/devtools/node_modules/object-inspect/test/inspect.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/object-inspect/test/inspect.js
rename to src/third_party/devtools/node_modules/object-inspect/test/inspect.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/object-inspect/test/lowbyte.js b/src/third_party/devtools/node_modules/object-inspect/test/lowbyte.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/object-inspect/test/lowbyte.js
rename to src/third_party/devtools/node_modules/object-inspect/test/lowbyte.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/object-inspect/test/number.js b/src/third_party/devtools/node_modules/object-inspect/test/number.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/object-inspect/test/number.js
rename to src/third_party/devtools/node_modules/object-inspect/test/number.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/object-inspect/test/quoteStyle.js b/src/third_party/devtools/node_modules/object-inspect/test/quoteStyle.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/object-inspect/test/quoteStyle.js
rename to src/third_party/devtools/node_modules/object-inspect/test/quoteStyle.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/object-inspect/test/undef.js b/src/third_party/devtools/node_modules/object-inspect/test/undef.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/object-inspect/test/undef.js
rename to src/third_party/devtools/node_modules/object-inspect/test/undef.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/object-inspect/test/values.js b/src/third_party/devtools/node_modules/object-inspect/test/values.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/object-inspect/test/values.js
rename to src/third_party/devtools/node_modules/object-inspect/test/values.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/object-inspect/util.inspect.js b/src/third_party/devtools/node_modules/object-inspect/util.inspect.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/object-inspect/util.inspect.js
rename to src/third_party/devtools/node_modules/object-inspect/util.inspect.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/object-is/.jscs.json b/src/third_party/devtools/node_modules/object-is/.jscs.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/object-is/.jscs.json
rename to src/third_party/devtools/node_modules/object-is/.jscs.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/object-is/.npmignore b/src/third_party/devtools/node_modules/object-is/.npmignore
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/object-is/.npmignore
rename to src/third_party/devtools/node_modules/object-is/.npmignore
diff --git a/src/cobalt/debug/remote/devtools/node_modules/object-is/.travis.yml b/src/third_party/devtools/node_modules/object-is/.travis.yml
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/object-is/.travis.yml
rename to src/third_party/devtools/node_modules/object-is/.travis.yml
diff --git a/src/cobalt/debug/remote/devtools/node_modules/object-is/LICENSE b/src/third_party/devtools/node_modules/object-is/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/object-is/LICENSE
rename to src/third_party/devtools/node_modules/object-is/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/object-is/README.md b/src/third_party/devtools/node_modules/object-is/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/object-is/README.md
rename to src/third_party/devtools/node_modules/object-is/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/object-is/index.js b/src/third_party/devtools/node_modules/object-is/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/object-is/index.js
rename to src/third_party/devtools/node_modules/object-is/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/object-is/package.json b/src/third_party/devtools/node_modules/object-is/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/object-is/package.json
rename to src/third_party/devtools/node_modules/object-is/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/object-is/test.js b/src/third_party/devtools/node_modules/object-is/test.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/object-is/test.js
rename to src/third_party/devtools/node_modules/object-is/test.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/object-keys/.editorconfig b/src/third_party/devtools/node_modules/object-keys/.editorconfig
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/object-keys/.editorconfig
rename to src/third_party/devtools/node_modules/object-keys/.editorconfig
diff --git a/src/cobalt/debug/remote/devtools/node_modules/object-keys/.eslintrc b/src/third_party/devtools/node_modules/object-keys/.eslintrc
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/object-keys/.eslintrc
rename to src/third_party/devtools/node_modules/object-keys/.eslintrc
diff --git a/src/cobalt/debug/remote/devtools/node_modules/object-keys/.travis.yml b/src/third_party/devtools/node_modules/object-keys/.travis.yml
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/object-keys/.travis.yml
rename to src/third_party/devtools/node_modules/object-keys/.travis.yml
diff --git a/src/cobalt/debug/remote/devtools/node_modules/object-keys/CHANGELOG.md b/src/third_party/devtools/node_modules/object-keys/CHANGELOG.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/object-keys/CHANGELOG.md
rename to src/third_party/devtools/node_modules/object-keys/CHANGELOG.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/object-keys/LICENSE b/src/third_party/devtools/node_modules/object-keys/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/object-keys/LICENSE
rename to src/third_party/devtools/node_modules/object-keys/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/object-keys/README.md b/src/third_party/devtools/node_modules/object-keys/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/object-keys/README.md
rename to src/third_party/devtools/node_modules/object-keys/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/object-keys/implementation.js b/src/third_party/devtools/node_modules/object-keys/implementation.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/object-keys/implementation.js
rename to src/third_party/devtools/node_modules/object-keys/implementation.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/object-keys/index.js b/src/third_party/devtools/node_modules/object-keys/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/object-keys/index.js
rename to src/third_party/devtools/node_modules/object-keys/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/object-keys/isArguments.js b/src/third_party/devtools/node_modules/object-keys/isArguments.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/object-keys/isArguments.js
rename to src/third_party/devtools/node_modules/object-keys/isArguments.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/object-keys/package.json b/src/third_party/devtools/node_modules/object-keys/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/object-keys/package.json
rename to src/third_party/devtools/node_modules/object-keys/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/object-keys/test/index.js b/src/third_party/devtools/node_modules/object-keys/test/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/object-keys/test/index.js
rename to src/third_party/devtools/node_modules/object-keys/test/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/object.assign/.editorconfig b/src/third_party/devtools/node_modules/object.assign/.editorconfig
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/object.assign/.editorconfig
rename to src/third_party/devtools/node_modules/object.assign/.editorconfig
diff --git a/src/cobalt/debug/remote/devtools/node_modules/object.assign/.eslintrc b/src/third_party/devtools/node_modules/object.assign/.eslintrc
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/object.assign/.eslintrc
rename to src/third_party/devtools/node_modules/object.assign/.eslintrc
diff --git a/src/cobalt/debug/remote/devtools/node_modules/object.assign/CHANGELOG.md b/src/third_party/devtools/node_modules/object.assign/CHANGELOG.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/object.assign/CHANGELOG.md
rename to src/third_party/devtools/node_modules/object.assign/CHANGELOG.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/object.assign/LICENSE b/src/third_party/devtools/node_modules/object.assign/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/object.assign/LICENSE
rename to src/third_party/devtools/node_modules/object.assign/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/object.assign/README.md b/src/third_party/devtools/node_modules/object.assign/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/object.assign/README.md
rename to src/third_party/devtools/node_modules/object.assign/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/object.assign/auto.js b/src/third_party/devtools/node_modules/object.assign/auto.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/object.assign/auto.js
rename to src/third_party/devtools/node_modules/object.assign/auto.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/object.assign/dist/browser.js b/src/third_party/devtools/node_modules/object.assign/dist/browser.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/object.assign/dist/browser.js
rename to src/third_party/devtools/node_modules/object.assign/dist/browser.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/object.assign/hasSymbols.js b/src/third_party/devtools/node_modules/object.assign/hasSymbols.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/object.assign/hasSymbols.js
rename to src/third_party/devtools/node_modules/object.assign/hasSymbols.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/object.assign/implementation.js b/src/third_party/devtools/node_modules/object.assign/implementation.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/object.assign/implementation.js
rename to src/third_party/devtools/node_modules/object.assign/implementation.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/object.assign/index.js b/src/third_party/devtools/node_modules/object.assign/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/object.assign/index.js
rename to src/third_party/devtools/node_modules/object.assign/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/object.assign/package.json b/src/third_party/devtools/node_modules/object.assign/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/object.assign/package.json
rename to src/third_party/devtools/node_modules/object.assign/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/object.assign/polyfill.js b/src/third_party/devtools/node_modules/object.assign/polyfill.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/object.assign/polyfill.js
rename to src/third_party/devtools/node_modules/object.assign/polyfill.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/object.assign/shim.js b/src/third_party/devtools/node_modules/object.assign/shim.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/object.assign/shim.js
rename to src/third_party/devtools/node_modules/object.assign/shim.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/object.assign/test.sh b/src/third_party/devtools/node_modules/object.assign/test.sh
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/object.assign/test.sh
rename to src/third_party/devtools/node_modules/object.assign/test.sh
diff --git a/src/cobalt/debug/remote/devtools/node_modules/object.assign/test/.eslintrc b/src/third_party/devtools/node_modules/object.assign/test/.eslintrc
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/object.assign/test/.eslintrc
rename to src/third_party/devtools/node_modules/object.assign/test/.eslintrc
diff --git a/src/cobalt/debug/remote/devtools/node_modules/object.assign/test/index.js b/src/third_party/devtools/node_modules/object.assign/test/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/object.assign/test/index.js
rename to src/third_party/devtools/node_modules/object.assign/test/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/object.assign/test/native.js b/src/third_party/devtools/node_modules/object.assign/test/native.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/object.assign/test/native.js
rename to src/third_party/devtools/node_modules/object.assign/test/native.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/object.assign/test/shimmed.js b/src/third_party/devtools/node_modules/object.assign/test/shimmed.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/object.assign/test/shimmed.js
rename to src/third_party/devtools/node_modules/object.assign/test/shimmed.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/object.assign/test/tests.js b/src/third_party/devtools/node_modules/object.assign/test/tests.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/object.assign/test/tests.js
rename to src/third_party/devtools/node_modules/object.assign/test/tests.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/object.entries/.editorconfig b/src/third_party/devtools/node_modules/object.entries/.editorconfig
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/object.entries/.editorconfig
rename to src/third_party/devtools/node_modules/object.entries/.editorconfig
diff --git a/src/cobalt/debug/remote/devtools/node_modules/object.entries/.eslintrc b/src/third_party/devtools/node_modules/object.entries/.eslintrc
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/object.entries/.eslintrc
rename to src/third_party/devtools/node_modules/object.entries/.eslintrc
diff --git a/src/cobalt/debug/remote/devtools/node_modules/object.entries/.travis.yml b/src/third_party/devtools/node_modules/object.entries/.travis.yml
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/object.entries/.travis.yml
rename to src/third_party/devtools/node_modules/object.entries/.travis.yml
diff --git a/src/cobalt/debug/remote/devtools/node_modules/object.entries/CHANGELOG.md b/src/third_party/devtools/node_modules/object.entries/CHANGELOG.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/object.entries/CHANGELOG.md
rename to src/third_party/devtools/node_modules/object.entries/CHANGELOG.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/object.entries/LICENSE b/src/third_party/devtools/node_modules/object.entries/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/object.entries/LICENSE
rename to src/third_party/devtools/node_modules/object.entries/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/object.entries/README.md b/src/third_party/devtools/node_modules/object.entries/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/object.entries/README.md
rename to src/third_party/devtools/node_modules/object.entries/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/object.entries/auto.js b/src/third_party/devtools/node_modules/object.entries/auto.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/object.entries/auto.js
rename to src/third_party/devtools/node_modules/object.entries/auto.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/object.entries/implementation.js b/src/third_party/devtools/node_modules/object.entries/implementation.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/object.entries/implementation.js
rename to src/third_party/devtools/node_modules/object.entries/implementation.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/object.entries/index.js b/src/third_party/devtools/node_modules/object.entries/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/object.entries/index.js
rename to src/third_party/devtools/node_modules/object.entries/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/object.entries/package.json b/src/third_party/devtools/node_modules/object.entries/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/object.entries/package.json
rename to src/third_party/devtools/node_modules/object.entries/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/object.entries/polyfill.js b/src/third_party/devtools/node_modules/object.entries/polyfill.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/object.entries/polyfill.js
rename to src/third_party/devtools/node_modules/object.entries/polyfill.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/object.entries/shim.js b/src/third_party/devtools/node_modules/object.entries/shim.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/object.entries/shim.js
rename to src/third_party/devtools/node_modules/object.entries/shim.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/object.entries/test/.eslintrc b/src/third_party/devtools/node_modules/object.entries/test/.eslintrc
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/object.entries/test/.eslintrc
rename to src/third_party/devtools/node_modules/object.entries/test/.eslintrc
diff --git a/src/cobalt/debug/remote/devtools/node_modules/object.entries/test/index.js b/src/third_party/devtools/node_modules/object.entries/test/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/object.entries/test/index.js
rename to src/third_party/devtools/node_modules/object.entries/test/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/object.entries/test/shimmed.js b/src/third_party/devtools/node_modules/object.entries/test/shimmed.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/object.entries/test/shimmed.js
rename to src/third_party/devtools/node_modules/object.entries/test/shimmed.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/object.entries/test/tests.js b/src/third_party/devtools/node_modules/object.entries/test/tests.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/object.entries/test/tests.js
rename to src/third_party/devtools/node_modules/object.entries/test/tests.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/object.getownpropertydescriptors/.editorconfig b/src/third_party/devtools/node_modules/object.getownpropertydescriptors/.editorconfig
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/object.getownpropertydescriptors/.editorconfig
rename to src/third_party/devtools/node_modules/object.getownpropertydescriptors/.editorconfig
diff --git a/src/cobalt/debug/remote/devtools/node_modules/object.getownpropertydescriptors/.eslintrc b/src/third_party/devtools/node_modules/object.getownpropertydescriptors/.eslintrc
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/object.getownpropertydescriptors/.eslintrc
rename to src/third_party/devtools/node_modules/object.getownpropertydescriptors/.eslintrc
diff --git a/src/cobalt/debug/remote/devtools/node_modules/object.getownpropertydescriptors/.jscs.json b/src/third_party/devtools/node_modules/object.getownpropertydescriptors/.jscs.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/object.getownpropertydescriptors/.jscs.json
rename to src/third_party/devtools/node_modules/object.getownpropertydescriptors/.jscs.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/object.getownpropertydescriptors/.npmignore b/src/third_party/devtools/node_modules/object.getownpropertydescriptors/.npmignore
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/object.getownpropertydescriptors/.npmignore
rename to src/third_party/devtools/node_modules/object.getownpropertydescriptors/.npmignore
diff --git a/src/cobalt/debug/remote/devtools/node_modules/object.getownpropertydescriptors/.travis.yml b/src/third_party/devtools/node_modules/object.getownpropertydescriptors/.travis.yml
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/object.getownpropertydescriptors/.travis.yml
rename to src/third_party/devtools/node_modules/object.getownpropertydescriptors/.travis.yml
diff --git a/src/cobalt/debug/remote/devtools/node_modules/object.getownpropertydescriptors/CHANGELOG.md b/src/third_party/devtools/node_modules/object.getownpropertydescriptors/CHANGELOG.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/object.getownpropertydescriptors/CHANGELOG.md
rename to src/third_party/devtools/node_modules/object.getownpropertydescriptors/CHANGELOG.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/object.getownpropertydescriptors/LICENSE b/src/third_party/devtools/node_modules/object.getownpropertydescriptors/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/object.getownpropertydescriptors/LICENSE
rename to src/third_party/devtools/node_modules/object.getownpropertydescriptors/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/object.getownpropertydescriptors/Makefile b/src/third_party/devtools/node_modules/object.getownpropertydescriptors/Makefile
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/object.getownpropertydescriptors/Makefile
rename to src/third_party/devtools/node_modules/object.getownpropertydescriptors/Makefile
diff --git a/src/cobalt/debug/remote/devtools/node_modules/object.getownpropertydescriptors/README.md b/src/third_party/devtools/node_modules/object.getownpropertydescriptors/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/object.getownpropertydescriptors/README.md
rename to src/third_party/devtools/node_modules/object.getownpropertydescriptors/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/object.getownpropertydescriptors/implementation.js b/src/third_party/devtools/node_modules/object.getownpropertydescriptors/implementation.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/object.getownpropertydescriptors/implementation.js
rename to src/third_party/devtools/node_modules/object.getownpropertydescriptors/implementation.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/object.getownpropertydescriptors/index.js b/src/third_party/devtools/node_modules/object.getownpropertydescriptors/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/object.getownpropertydescriptors/index.js
rename to src/third_party/devtools/node_modules/object.getownpropertydescriptors/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/object.getownpropertydescriptors/package.json b/src/third_party/devtools/node_modules/object.getownpropertydescriptors/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/object.getownpropertydescriptors/package.json
rename to src/third_party/devtools/node_modules/object.getownpropertydescriptors/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/object.getownpropertydescriptors/polyfill.js b/src/third_party/devtools/node_modules/object.getownpropertydescriptors/polyfill.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/object.getownpropertydescriptors/polyfill.js
rename to src/third_party/devtools/node_modules/object.getownpropertydescriptors/polyfill.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/object.getownpropertydescriptors/shim.js b/src/third_party/devtools/node_modules/object.getownpropertydescriptors/shim.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/object.getownpropertydescriptors/shim.js
rename to src/third_party/devtools/node_modules/object.getownpropertydescriptors/shim.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/object.getownpropertydescriptors/test/.eslintrc b/src/third_party/devtools/node_modules/object.getownpropertydescriptors/test/.eslintrc
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/object.getownpropertydescriptors/test/.eslintrc
rename to src/third_party/devtools/node_modules/object.getownpropertydescriptors/test/.eslintrc
diff --git a/src/cobalt/debug/remote/devtools/node_modules/object.getownpropertydescriptors/test/index.js b/src/third_party/devtools/node_modules/object.getownpropertydescriptors/test/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/object.getownpropertydescriptors/test/index.js
rename to src/third_party/devtools/node_modules/object.getownpropertydescriptors/test/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/object.getownpropertydescriptors/test/shimmed.js b/src/third_party/devtools/node_modules/object.getownpropertydescriptors/test/shimmed.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/object.getownpropertydescriptors/test/shimmed.js
rename to src/third_party/devtools/node_modules/object.getownpropertydescriptors/test/shimmed.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/object.getownpropertydescriptors/test/tests.js b/src/third_party/devtools/node_modules/object.getownpropertydescriptors/test/tests.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/object.getownpropertydescriptors/test/tests.js
rename to src/third_party/devtools/node_modules/object.getownpropertydescriptors/test/tests.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/on-finished/HISTORY.md b/src/third_party/devtools/node_modules/on-finished/HISTORY.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/on-finished/HISTORY.md
rename to src/third_party/devtools/node_modules/on-finished/HISTORY.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/on-finished/LICENSE b/src/third_party/devtools/node_modules/on-finished/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/on-finished/LICENSE
rename to src/third_party/devtools/node_modules/on-finished/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/on-finished/README.md b/src/third_party/devtools/node_modules/on-finished/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/on-finished/README.md
rename to src/third_party/devtools/node_modules/on-finished/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/on-finished/index.js b/src/third_party/devtools/node_modules/on-finished/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/on-finished/index.js
rename to src/third_party/devtools/node_modules/on-finished/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/on-finished/package.json b/src/third_party/devtools/node_modules/on-finished/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/on-finished/package.json
rename to src/third_party/devtools/node_modules/on-finished/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/once/LICENSE b/src/third_party/devtools/node_modules/once/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/once/LICENSE
rename to src/third_party/devtools/node_modules/once/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/once/README.md b/src/third_party/devtools/node_modules/once/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/once/README.md
rename to src/third_party/devtools/node_modules/once/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/once/once.js b/src/third_party/devtools/node_modules/once/once.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/once/once.js
rename to src/third_party/devtools/node_modules/once/once.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/once/package.json b/src/third_party/devtools/node_modules/once/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/once/package.json
rename to src/third_party/devtools/node_modules/once/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/onetime/LICENSE b/src/third_party/devtools/node_modules/onetime/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/onetime/LICENSE
rename to src/third_party/devtools/node_modules/onetime/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/onetime/index.js b/src/third_party/devtools/node_modules/onetime/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/onetime/index.js
rename to src/third_party/devtools/node_modules/onetime/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/onetime/package.json b/src/third_party/devtools/node_modules/onetime/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/onetime/package.json
rename to src/third_party/devtools/node_modules/onetime/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/onetime/readme.md b/src/third_party/devtools/node_modules/onetime/readme.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/onetime/readme.md
rename to src/third_party/devtools/node_modules/onetime/readme.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/optimist/.travis.yml b/src/third_party/devtools/node_modules/optimist/.travis.yml
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/optimist/.travis.yml
rename to src/third_party/devtools/node_modules/optimist/.travis.yml
diff --git a/src/cobalt/debug/remote/devtools/node_modules/optimist/LICENSE b/src/third_party/devtools/node_modules/optimist/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/optimist/LICENSE
rename to src/third_party/devtools/node_modules/optimist/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/optimist/example/bool.js b/src/third_party/devtools/node_modules/optimist/example/bool.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/optimist/example/bool.js
rename to src/third_party/devtools/node_modules/optimist/example/bool.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/optimist/example/boolean_double.js b/src/third_party/devtools/node_modules/optimist/example/boolean_double.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/optimist/example/boolean_double.js
rename to src/third_party/devtools/node_modules/optimist/example/boolean_double.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/optimist/example/boolean_single.js b/src/third_party/devtools/node_modules/optimist/example/boolean_single.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/optimist/example/boolean_single.js
rename to src/third_party/devtools/node_modules/optimist/example/boolean_single.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/optimist/example/default_hash.js b/src/third_party/devtools/node_modules/optimist/example/default_hash.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/optimist/example/default_hash.js
rename to src/third_party/devtools/node_modules/optimist/example/default_hash.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/optimist/example/default_singles.js b/src/third_party/devtools/node_modules/optimist/example/default_singles.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/optimist/example/default_singles.js
rename to src/third_party/devtools/node_modules/optimist/example/default_singles.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/optimist/example/divide.js b/src/third_party/devtools/node_modules/optimist/example/divide.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/optimist/example/divide.js
rename to src/third_party/devtools/node_modules/optimist/example/divide.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/optimist/example/line_count.js b/src/third_party/devtools/node_modules/optimist/example/line_count.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/optimist/example/line_count.js
rename to src/third_party/devtools/node_modules/optimist/example/line_count.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/optimist/example/line_count_options.js b/src/third_party/devtools/node_modules/optimist/example/line_count_options.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/optimist/example/line_count_options.js
rename to src/third_party/devtools/node_modules/optimist/example/line_count_options.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/optimist/example/line_count_wrap.js b/src/third_party/devtools/node_modules/optimist/example/line_count_wrap.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/optimist/example/line_count_wrap.js
rename to src/third_party/devtools/node_modules/optimist/example/line_count_wrap.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/optimist/example/nonopt.js b/src/third_party/devtools/node_modules/optimist/example/nonopt.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/optimist/example/nonopt.js
rename to src/third_party/devtools/node_modules/optimist/example/nonopt.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/optimist/example/reflect.js b/src/third_party/devtools/node_modules/optimist/example/reflect.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/optimist/example/reflect.js
rename to src/third_party/devtools/node_modules/optimist/example/reflect.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/optimist/example/short.js b/src/third_party/devtools/node_modules/optimist/example/short.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/optimist/example/short.js
rename to src/third_party/devtools/node_modules/optimist/example/short.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/optimist/example/string.js b/src/third_party/devtools/node_modules/optimist/example/string.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/optimist/example/string.js
rename to src/third_party/devtools/node_modules/optimist/example/string.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/optimist/example/usage-options.js b/src/third_party/devtools/node_modules/optimist/example/usage-options.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/optimist/example/usage-options.js
rename to src/third_party/devtools/node_modules/optimist/example/usage-options.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/optimist/example/xup.js b/src/third_party/devtools/node_modules/optimist/example/xup.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/optimist/example/xup.js
rename to src/third_party/devtools/node_modules/optimist/example/xup.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/optimist/index.js b/src/third_party/devtools/node_modules/optimist/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/optimist/index.js
rename to src/third_party/devtools/node_modules/optimist/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/optimist/node_modules/wordwrap/LICENSE b/src/third_party/devtools/node_modules/optimist/node_modules/wordwrap/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/optimist/node_modules/wordwrap/LICENSE
rename to src/third_party/devtools/node_modules/optimist/node_modules/wordwrap/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/optimist/node_modules/wordwrap/README.markdown b/src/third_party/devtools/node_modules/optimist/node_modules/wordwrap/README.markdown
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/optimist/node_modules/wordwrap/README.markdown
rename to src/third_party/devtools/node_modules/optimist/node_modules/wordwrap/README.markdown
diff --git a/src/cobalt/debug/remote/devtools/node_modules/optimist/node_modules/wordwrap/example/center.js b/src/third_party/devtools/node_modules/optimist/node_modules/wordwrap/example/center.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/optimist/node_modules/wordwrap/example/center.js
rename to src/third_party/devtools/node_modules/optimist/node_modules/wordwrap/example/center.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/optimist/node_modules/wordwrap/example/meat.js b/src/third_party/devtools/node_modules/optimist/node_modules/wordwrap/example/meat.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/optimist/node_modules/wordwrap/example/meat.js
rename to src/third_party/devtools/node_modules/optimist/node_modules/wordwrap/example/meat.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/optimist/node_modules/wordwrap/index.js b/src/third_party/devtools/node_modules/optimist/node_modules/wordwrap/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/optimist/node_modules/wordwrap/index.js
rename to src/third_party/devtools/node_modules/optimist/node_modules/wordwrap/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/optimist/node_modules/wordwrap/package.json b/src/third_party/devtools/node_modules/optimist/node_modules/wordwrap/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/optimist/node_modules/wordwrap/package.json
rename to src/third_party/devtools/node_modules/optimist/node_modules/wordwrap/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/optimist/node_modules/wordwrap/test/break.js b/src/third_party/devtools/node_modules/optimist/node_modules/wordwrap/test/break.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/optimist/node_modules/wordwrap/test/break.js
rename to src/third_party/devtools/node_modules/optimist/node_modules/wordwrap/test/break.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/optimist/node_modules/wordwrap/test/idleness.txt b/src/third_party/devtools/node_modules/optimist/node_modules/wordwrap/test/idleness.txt
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/optimist/node_modules/wordwrap/test/idleness.txt
rename to src/third_party/devtools/node_modules/optimist/node_modules/wordwrap/test/idleness.txt
diff --git a/src/cobalt/debug/remote/devtools/node_modules/optimist/node_modules/wordwrap/test/wrap.js b/src/third_party/devtools/node_modules/optimist/node_modules/wordwrap/test/wrap.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/optimist/node_modules/wordwrap/test/wrap.js
rename to src/third_party/devtools/node_modules/optimist/node_modules/wordwrap/test/wrap.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/optimist/package.json b/src/third_party/devtools/node_modules/optimist/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/optimist/package.json
rename to src/third_party/devtools/node_modules/optimist/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/optimist/readme.markdown b/src/third_party/devtools/node_modules/optimist/readme.markdown
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/optimist/readme.markdown
rename to src/third_party/devtools/node_modules/optimist/readme.markdown
diff --git a/src/cobalt/debug/remote/devtools/node_modules/optimist/test/_.js b/src/third_party/devtools/node_modules/optimist/test/_.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/optimist/test/_.js
rename to src/third_party/devtools/node_modules/optimist/test/_.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/optimist/test/_/argv.js b/src/third_party/devtools/node_modules/optimist/test/_/argv.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/optimist/test/_/argv.js
rename to src/third_party/devtools/node_modules/optimist/test/_/argv.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/optimist/test/_/bin.js b/src/third_party/devtools/node_modules/optimist/test/_/bin.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/optimist/test/_/bin.js
rename to src/third_party/devtools/node_modules/optimist/test/_/bin.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/optimist/test/dash.js b/src/third_party/devtools/node_modules/optimist/test/dash.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/optimist/test/dash.js
rename to src/third_party/devtools/node_modules/optimist/test/dash.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/optimist/test/parse.js b/src/third_party/devtools/node_modules/optimist/test/parse.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/optimist/test/parse.js
rename to src/third_party/devtools/node_modules/optimist/test/parse.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/optimist/test/parse_modified.js b/src/third_party/devtools/node_modules/optimist/test/parse_modified.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/optimist/test/parse_modified.js
rename to src/third_party/devtools/node_modules/optimist/test/parse_modified.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/optimist/test/short.js b/src/third_party/devtools/node_modules/optimist/test/short.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/optimist/test/short.js
rename to src/third_party/devtools/node_modules/optimist/test/short.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/optimist/test/usage.js b/src/third_party/devtools/node_modules/optimist/test/usage.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/optimist/test/usage.js
rename to src/third_party/devtools/node_modules/optimist/test/usage.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/optimist/test/whitespace.js b/src/third_party/devtools/node_modules/optimist/test/whitespace.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/optimist/test/whitespace.js
rename to src/third_party/devtools/node_modules/optimist/test/whitespace.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/optionator/CHANGELOG.md b/src/third_party/devtools/node_modules/optionator/CHANGELOG.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/optionator/CHANGELOG.md
rename to src/third_party/devtools/node_modules/optionator/CHANGELOG.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/optionator/LICENSE b/src/third_party/devtools/node_modules/optionator/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/optionator/LICENSE
rename to src/third_party/devtools/node_modules/optionator/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/optionator/README.md b/src/third_party/devtools/node_modules/optionator/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/optionator/README.md
rename to src/third_party/devtools/node_modules/optionator/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/optionator/lib/help.js b/src/third_party/devtools/node_modules/optionator/lib/help.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/optionator/lib/help.js
rename to src/third_party/devtools/node_modules/optionator/lib/help.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/optionator/lib/index.js b/src/third_party/devtools/node_modules/optionator/lib/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/optionator/lib/index.js
rename to src/third_party/devtools/node_modules/optionator/lib/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/optionator/lib/util.js b/src/third_party/devtools/node_modules/optionator/lib/util.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/optionator/lib/util.js
rename to src/third_party/devtools/node_modules/optionator/lib/util.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/optionator/package.json b/src/third_party/devtools/node_modules/optionator/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/optionator/package.json
rename to src/third_party/devtools/node_modules/optionator/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/os-browserify/.npmignore b/src/third_party/devtools/node_modules/os-browserify/.npmignore
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/os-browserify/.npmignore
rename to src/third_party/devtools/node_modules/os-browserify/.npmignore
diff --git a/src/cobalt/debug/remote/devtools/node_modules/os-browserify/LICENSE b/src/third_party/devtools/node_modules/os-browserify/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/os-browserify/LICENSE
rename to src/third_party/devtools/node_modules/os-browserify/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/os-browserify/README.md b/src/third_party/devtools/node_modules/os-browserify/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/os-browserify/README.md
rename to src/third_party/devtools/node_modules/os-browserify/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/os-browserify/browser.js b/src/third_party/devtools/node_modules/os-browserify/browser.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/os-browserify/browser.js
rename to src/third_party/devtools/node_modules/os-browserify/browser.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/os-browserify/main.js b/src/third_party/devtools/node_modules/os-browserify/main.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/os-browserify/main.js
rename to src/third_party/devtools/node_modules/os-browserify/main.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/os-browserify/package.json b/src/third_party/devtools/node_modules/os-browserify/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/os-browserify/package.json
rename to src/third_party/devtools/node_modules/os-browserify/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/os-homedir/index.js b/src/third_party/devtools/node_modules/os-homedir/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/os-homedir/index.js
rename to src/third_party/devtools/node_modules/os-homedir/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/os-homedir/license b/src/third_party/devtools/node_modules/os-homedir/license
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/os-homedir/license
rename to src/third_party/devtools/node_modules/os-homedir/license
diff --git a/src/cobalt/debug/remote/devtools/node_modules/os-homedir/package.json b/src/third_party/devtools/node_modules/os-homedir/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/os-homedir/package.json
rename to src/third_party/devtools/node_modules/os-homedir/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/os-homedir/readme.md b/src/third_party/devtools/node_modules/os-homedir/readme.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/os-homedir/readme.md
rename to src/third_party/devtools/node_modules/os-homedir/readme.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/os-locale/index.js b/src/third_party/devtools/node_modules/os-locale/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/os-locale/index.js
rename to src/third_party/devtools/node_modules/os-locale/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/os-locale/license b/src/third_party/devtools/node_modules/os-locale/license
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/os-locale/license
rename to src/third_party/devtools/node_modules/os-locale/license
diff --git a/src/cobalt/debug/remote/devtools/node_modules/os-locale/package.json b/src/third_party/devtools/node_modules/os-locale/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/os-locale/package.json
rename to src/third_party/devtools/node_modules/os-locale/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/os-locale/readme.md b/src/third_party/devtools/node_modules/os-locale/readme.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/os-locale/readme.md
rename to src/third_party/devtools/node_modules/os-locale/readme.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/os-tmpdir/LICENSE b/src/third_party/devtools/node_modules/os-tmpdir/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/os-tmpdir/LICENSE
rename to src/third_party/devtools/node_modules/os-tmpdir/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/os-tmpdir/index.js b/src/third_party/devtools/node_modules/os-tmpdir/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/os-tmpdir/index.js
rename to src/third_party/devtools/node_modules/os-tmpdir/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/os-tmpdir/package.json b/src/third_party/devtools/node_modules/os-tmpdir/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/os-tmpdir/package.json
rename to src/third_party/devtools/node_modules/os-tmpdir/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/os-tmpdir/readme.md b/src/third_party/devtools/node_modules/os-tmpdir/readme.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/os-tmpdir/readme.md
rename to src/third_party/devtools/node_modules/os-tmpdir/readme.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/osenv/LICENSE b/src/third_party/devtools/node_modules/osenv/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/osenv/LICENSE
rename to src/third_party/devtools/node_modules/osenv/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/osenv/README.md b/src/third_party/devtools/node_modules/osenv/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/osenv/README.md
rename to src/third_party/devtools/node_modules/osenv/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/osenv/osenv.js b/src/third_party/devtools/node_modules/osenv/osenv.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/osenv/osenv.js
rename to src/third_party/devtools/node_modules/osenv/osenv.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/osenv/package.json b/src/third_party/devtools/node_modules/osenv/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/osenv/package.json
rename to src/third_party/devtools/node_modules/osenv/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/p-defer/index.js b/src/third_party/devtools/node_modules/p-defer/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/p-defer/index.js
rename to src/third_party/devtools/node_modules/p-defer/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/p-defer/license b/src/third_party/devtools/node_modules/p-defer/license
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/p-defer/license
rename to src/third_party/devtools/node_modules/p-defer/license
diff --git a/src/cobalt/debug/remote/devtools/node_modules/p-defer/package.json b/src/third_party/devtools/node_modules/p-defer/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/p-defer/package.json
rename to src/third_party/devtools/node_modules/p-defer/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/p-defer/readme.md b/src/third_party/devtools/node_modules/p-defer/readme.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/p-defer/readme.md
rename to src/third_party/devtools/node_modules/p-defer/readme.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/p-finally/index.js b/src/third_party/devtools/node_modules/p-finally/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/p-finally/index.js
rename to src/third_party/devtools/node_modules/p-finally/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/p-finally/license b/src/third_party/devtools/node_modules/p-finally/license
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/p-finally/license
rename to src/third_party/devtools/node_modules/p-finally/license
diff --git a/src/cobalt/debug/remote/devtools/node_modules/p-finally/package.json b/src/third_party/devtools/node_modules/p-finally/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/p-finally/package.json
rename to src/third_party/devtools/node_modules/p-finally/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/p-finally/readme.md b/src/third_party/devtools/node_modules/p-finally/readme.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/p-finally/readme.md
rename to src/third_party/devtools/node_modules/p-finally/readme.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/p-is-promise/index.d.ts b/src/third_party/devtools/node_modules/p-is-promise/index.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/p-is-promise/index.d.ts
rename to src/third_party/devtools/node_modules/p-is-promise/index.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/p-is-promise/index.js b/src/third_party/devtools/node_modules/p-is-promise/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/p-is-promise/index.js
rename to src/third_party/devtools/node_modules/p-is-promise/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/p-is-promise/license b/src/third_party/devtools/node_modules/p-is-promise/license
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/p-is-promise/license
rename to src/third_party/devtools/node_modules/p-is-promise/license
diff --git a/src/cobalt/debug/remote/devtools/node_modules/p-is-promise/package.json b/src/third_party/devtools/node_modules/p-is-promise/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/p-is-promise/package.json
rename to src/third_party/devtools/node_modules/p-is-promise/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/p-is-promise/readme.md b/src/third_party/devtools/node_modules/p-is-promise/readme.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/p-is-promise/readme.md
rename to src/third_party/devtools/node_modules/p-is-promise/readme.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/p-limit/index.d.ts b/src/third_party/devtools/node_modules/p-limit/index.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/p-limit/index.d.ts
rename to src/third_party/devtools/node_modules/p-limit/index.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/p-limit/index.js b/src/third_party/devtools/node_modules/p-limit/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/p-limit/index.js
rename to src/third_party/devtools/node_modules/p-limit/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/p-limit/license b/src/third_party/devtools/node_modules/p-limit/license
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/p-limit/license
rename to src/third_party/devtools/node_modules/p-limit/license
diff --git a/src/cobalt/debug/remote/devtools/node_modules/p-limit/package.json b/src/third_party/devtools/node_modules/p-limit/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/p-limit/package.json
rename to src/third_party/devtools/node_modules/p-limit/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/p-limit/readme.md b/src/third_party/devtools/node_modules/p-limit/readme.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/p-limit/readme.md
rename to src/third_party/devtools/node_modules/p-limit/readme.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/p-locate/index.js b/src/third_party/devtools/node_modules/p-locate/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/p-locate/index.js
rename to src/third_party/devtools/node_modules/p-locate/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/p-locate/license b/src/third_party/devtools/node_modules/p-locate/license
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/p-locate/license
rename to src/third_party/devtools/node_modules/p-locate/license
diff --git a/src/cobalt/debug/remote/devtools/node_modules/p-locate/package.json b/src/third_party/devtools/node_modules/p-locate/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/p-locate/package.json
rename to src/third_party/devtools/node_modules/p-locate/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/p-locate/readme.md b/src/third_party/devtools/node_modules/p-locate/readme.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/p-locate/readme.md
rename to src/third_party/devtools/node_modules/p-locate/readme.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/p-try/index.d.ts b/src/third_party/devtools/node_modules/p-try/index.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/p-try/index.d.ts
rename to src/third_party/devtools/node_modules/p-try/index.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/p-try/index.js b/src/third_party/devtools/node_modules/p-try/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/p-try/index.js
rename to src/third_party/devtools/node_modules/p-try/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/p-try/license b/src/third_party/devtools/node_modules/p-try/license
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/p-try/license
rename to src/third_party/devtools/node_modules/p-try/license
diff --git a/src/cobalt/debug/remote/devtools/node_modules/p-try/package.json b/src/third_party/devtools/node_modules/p-try/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/p-try/package.json
rename to src/third_party/devtools/node_modules/p-try/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/p-try/readme.md b/src/third_party/devtools/node_modules/p-try/readme.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/p-try/readme.md
rename to src/third_party/devtools/node_modules/p-try/readme.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/pad/CHANGELOG.md b/src/third_party/devtools/node_modules/pad/CHANGELOG.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/pad/CHANGELOG.md
rename to src/third_party/devtools/node_modules/pad/CHANGELOG.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/pad/LICENSE b/src/third_party/devtools/node_modules/pad/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/pad/LICENSE
rename to src/third_party/devtools/node_modules/pad/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/pad/README.md b/src/third_party/devtools/node_modules/pad/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/pad/README.md
rename to src/third_party/devtools/node_modules/pad/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/pad/dist/pad.cjs.js b/src/third_party/devtools/node_modules/pad/dist/pad.cjs.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/pad/dist/pad.cjs.js
rename to src/third_party/devtools/node_modules/pad/dist/pad.cjs.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/pad/dist/pad.d.ts b/src/third_party/devtools/node_modules/pad/dist/pad.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/pad/dist/pad.d.ts
rename to src/third_party/devtools/node_modules/pad/dist/pad.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/pad/dist/pad.esm.js b/src/third_party/devtools/node_modules/pad/dist/pad.esm.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/pad/dist/pad.esm.js
rename to src/third_party/devtools/node_modules/pad/dist/pad.esm.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/pad/dist/pad.umd.js b/src/third_party/devtools/node_modules/pad/dist/pad.umd.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/pad/dist/pad.umd.js
rename to src/third_party/devtools/node_modules/pad/dist/pad.umd.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/pad/package.json b/src/third_party/devtools/node_modules/pad/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/pad/package.json
rename to src/third_party/devtools/node_modules/pad/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/pako/CHANGELOG.md b/src/third_party/devtools/node_modules/pako/CHANGELOG.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/pako/CHANGELOG.md
rename to src/third_party/devtools/node_modules/pako/CHANGELOG.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/pako/LICENSE b/src/third_party/devtools/node_modules/pako/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/pako/LICENSE
rename to src/third_party/devtools/node_modules/pako/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/pako/README.md b/src/third_party/devtools/node_modules/pako/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/pako/README.md
rename to src/third_party/devtools/node_modules/pako/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/pako/dist/pako.js b/src/third_party/devtools/node_modules/pako/dist/pako.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/pako/dist/pako.js
rename to src/third_party/devtools/node_modules/pako/dist/pako.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/pako/dist/pako.min.js b/src/third_party/devtools/node_modules/pako/dist/pako.min.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/pako/dist/pako.min.js
rename to src/third_party/devtools/node_modules/pako/dist/pako.min.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/pako/dist/pako_deflate.js b/src/third_party/devtools/node_modules/pako/dist/pako_deflate.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/pako/dist/pako_deflate.js
rename to src/third_party/devtools/node_modules/pako/dist/pako_deflate.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/pako/dist/pako_deflate.min.js b/src/third_party/devtools/node_modules/pako/dist/pako_deflate.min.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/pako/dist/pako_deflate.min.js
rename to src/third_party/devtools/node_modules/pako/dist/pako_deflate.min.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/pako/dist/pako_inflate.js b/src/third_party/devtools/node_modules/pako/dist/pako_inflate.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/pako/dist/pako_inflate.js
rename to src/third_party/devtools/node_modules/pako/dist/pako_inflate.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/pako/dist/pako_inflate.min.js b/src/third_party/devtools/node_modules/pako/dist/pako_inflate.min.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/pako/dist/pako_inflate.min.js
rename to src/third_party/devtools/node_modules/pako/dist/pako_inflate.min.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/pako/index.js b/src/third_party/devtools/node_modules/pako/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/pako/index.js
rename to src/third_party/devtools/node_modules/pako/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/pako/lib/deflate.js b/src/third_party/devtools/node_modules/pako/lib/deflate.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/pako/lib/deflate.js
rename to src/third_party/devtools/node_modules/pako/lib/deflate.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/pako/lib/inflate.js b/src/third_party/devtools/node_modules/pako/lib/inflate.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/pako/lib/inflate.js
rename to src/third_party/devtools/node_modules/pako/lib/inflate.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/pako/lib/utils/common.js b/src/third_party/devtools/node_modules/pako/lib/utils/common.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/pako/lib/utils/common.js
rename to src/third_party/devtools/node_modules/pako/lib/utils/common.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/pako/lib/utils/strings.js b/src/third_party/devtools/node_modules/pako/lib/utils/strings.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/pako/lib/utils/strings.js
rename to src/third_party/devtools/node_modules/pako/lib/utils/strings.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/pako/lib/zlib/README b/src/third_party/devtools/node_modules/pako/lib/zlib/README
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/pako/lib/zlib/README
rename to src/third_party/devtools/node_modules/pako/lib/zlib/README
diff --git a/src/cobalt/debug/remote/devtools/node_modules/pako/lib/zlib/adler32.js b/src/third_party/devtools/node_modules/pako/lib/zlib/adler32.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/pako/lib/zlib/adler32.js
rename to src/third_party/devtools/node_modules/pako/lib/zlib/adler32.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/pako/lib/zlib/constants.js b/src/third_party/devtools/node_modules/pako/lib/zlib/constants.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/pako/lib/zlib/constants.js
rename to src/third_party/devtools/node_modules/pako/lib/zlib/constants.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/pako/lib/zlib/crc32.js b/src/third_party/devtools/node_modules/pako/lib/zlib/crc32.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/pako/lib/zlib/crc32.js
rename to src/third_party/devtools/node_modules/pako/lib/zlib/crc32.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/pako/lib/zlib/deflate.js b/src/third_party/devtools/node_modules/pako/lib/zlib/deflate.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/pako/lib/zlib/deflate.js
rename to src/third_party/devtools/node_modules/pako/lib/zlib/deflate.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/pako/lib/zlib/gzheader.js b/src/third_party/devtools/node_modules/pako/lib/zlib/gzheader.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/pako/lib/zlib/gzheader.js
rename to src/third_party/devtools/node_modules/pako/lib/zlib/gzheader.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/pako/lib/zlib/inffast.js b/src/third_party/devtools/node_modules/pako/lib/zlib/inffast.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/pako/lib/zlib/inffast.js
rename to src/third_party/devtools/node_modules/pako/lib/zlib/inffast.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/pako/lib/zlib/inflate.js b/src/third_party/devtools/node_modules/pako/lib/zlib/inflate.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/pako/lib/zlib/inflate.js
rename to src/third_party/devtools/node_modules/pako/lib/zlib/inflate.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/pako/lib/zlib/inftrees.js b/src/third_party/devtools/node_modules/pako/lib/zlib/inftrees.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/pako/lib/zlib/inftrees.js
rename to src/third_party/devtools/node_modules/pako/lib/zlib/inftrees.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/pako/lib/zlib/messages.js b/src/third_party/devtools/node_modules/pako/lib/zlib/messages.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/pako/lib/zlib/messages.js
rename to src/third_party/devtools/node_modules/pako/lib/zlib/messages.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/pako/lib/zlib/trees.js b/src/third_party/devtools/node_modules/pako/lib/zlib/trees.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/pako/lib/zlib/trees.js
rename to src/third_party/devtools/node_modules/pako/lib/zlib/trees.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/pako/lib/zlib/zstream.js b/src/third_party/devtools/node_modules/pako/lib/zlib/zstream.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/pako/lib/zlib/zstream.js
rename to src/third_party/devtools/node_modules/pako/lib/zlib/zstream.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/pako/package.json b/src/third_party/devtools/node_modules/pako/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/pako/package.json
rename to src/third_party/devtools/node_modules/pako/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/parent-module/index.js b/src/third_party/devtools/node_modules/parent-module/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/parent-module/index.js
rename to src/third_party/devtools/node_modules/parent-module/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/parent-module/license b/src/third_party/devtools/node_modules/parent-module/license
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/parent-module/license
rename to src/third_party/devtools/node_modules/parent-module/license
diff --git a/src/cobalt/debug/remote/devtools/node_modules/parent-module/package.json b/src/third_party/devtools/node_modules/parent-module/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/parent-module/package.json
rename to src/third_party/devtools/node_modules/parent-module/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/parent-module/readme.md b/src/third_party/devtools/node_modules/parent-module/readme.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/parent-module/readme.md
rename to src/third_party/devtools/node_modules/parent-module/readme.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/parse-asn1/LICENSE b/src/third_party/devtools/node_modules/parse-asn1/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/parse-asn1/LICENSE
rename to src/third_party/devtools/node_modules/parse-asn1/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/parse-asn1/README.md b/src/third_party/devtools/node_modules/parse-asn1/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/parse-asn1/README.md
rename to src/third_party/devtools/node_modules/parse-asn1/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/parse-asn1/aesid.json b/src/third_party/devtools/node_modules/parse-asn1/aesid.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/parse-asn1/aesid.json
rename to src/third_party/devtools/node_modules/parse-asn1/aesid.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/parse-asn1/asn1.js b/src/third_party/devtools/node_modules/parse-asn1/asn1.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/parse-asn1/asn1.js
rename to src/third_party/devtools/node_modules/parse-asn1/asn1.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/parse-asn1/certificate.js b/src/third_party/devtools/node_modules/parse-asn1/certificate.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/parse-asn1/certificate.js
rename to src/third_party/devtools/node_modules/parse-asn1/certificate.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/parse-asn1/fixProc.js b/src/third_party/devtools/node_modules/parse-asn1/fixProc.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/parse-asn1/fixProc.js
rename to src/third_party/devtools/node_modules/parse-asn1/fixProc.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/parse-asn1/index.js b/src/third_party/devtools/node_modules/parse-asn1/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/parse-asn1/index.js
rename to src/third_party/devtools/node_modules/parse-asn1/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/parse-asn1/package.json b/src/third_party/devtools/node_modules/parse-asn1/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/parse-asn1/package.json
rename to src/third_party/devtools/node_modules/parse-asn1/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/parse-json/index.js b/src/third_party/devtools/node_modules/parse-json/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/parse-json/index.js
rename to src/third_party/devtools/node_modules/parse-json/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/parse-json/license b/src/third_party/devtools/node_modules/parse-json/license
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/parse-json/license
rename to src/third_party/devtools/node_modules/parse-json/license
diff --git a/src/cobalt/debug/remote/devtools/node_modules/parse-json/package.json b/src/third_party/devtools/node_modules/parse-json/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/parse-json/package.json
rename to src/third_party/devtools/node_modules/parse-json/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/parse-json/readme.md b/src/third_party/devtools/node_modules/parse-json/readme.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/parse-json/readme.md
rename to src/third_party/devtools/node_modules/parse-json/readme.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/parse-json/vendor/parse.js b/src/third_party/devtools/node_modules/parse-json/vendor/parse.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/parse-json/vendor/parse.js
rename to src/third_party/devtools/node_modules/parse-json/vendor/parse.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/parse-json/vendor/unicode.js b/src/third_party/devtools/node_modules/parse-json/vendor/unicode.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/parse-json/vendor/unicode.js
rename to src/third_party/devtools/node_modules/parse-json/vendor/unicode.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/parseqs/.npmignore b/src/third_party/devtools/node_modules/parseqs/.npmignore
similarity index 99%
rename from src/cobalt/debug/remote/devtools/node_modules/parseqs/.npmignore
rename to src/third_party/devtools/node_modules/parseqs/.npmignore
index 38920e1..0c3454b 100644
--- a/src/cobalt/debug/remote/devtools/node_modules/parseqs/.npmignore
+++ b/src/third_party/devtools/node_modules/parseqs/.npmignore
@@ -1,3 +1,3 @@
-.DS_Store

-node_modules

+.DS_Store
+node_modules
 npm-debug.log
\ No newline at end of file
diff --git a/src/cobalt/debug/remote/devtools/node_modules/parseqs/LICENSE b/src/third_party/devtools/node_modules/parseqs/LICENSE
similarity index 99%
rename from src/cobalt/debug/remote/devtools/node_modules/parseqs/LICENSE
rename to src/third_party/devtools/node_modules/parseqs/LICENSE
index 1472010..852cee8 100644
--- a/src/cobalt/debug/remote/devtools/node_modules/parseqs/LICENSE
+++ b/src/third_party/devtools/node_modules/parseqs/LICENSE
@@ -1,21 +1,21 @@
-The MIT License (MIT)

-

-Copyright (c) 2015 Gal Koren

-

-Permission is hereby granted, free of charge, to any person obtaining a copy

-of this software and associated documentation files (the "Software"), to deal

-in the Software without restriction, including without limitation the rights

-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell

-copies of the Software, and to permit persons to whom the Software is

-furnished to do so, subject to the following conditions:

-

-The above copyright notice and this permission notice shall be included in

-all copies or substantial portions of the Software.

-

-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR

-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,

-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE

-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER

-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,

-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN

-THE SOFTWARE.

+The MIT License (MIT)
+
+Copyright (c) 2015 Gal Koren
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
diff --git a/src/cobalt/debug/remote/devtools/node_modules/parseqs/Makefile b/src/third_party/devtools/node_modules/parseqs/Makefile
similarity index 99%
rename from src/cobalt/debug/remote/devtools/node_modules/parseqs/Makefile
rename to src/third_party/devtools/node_modules/parseqs/Makefile
index 2fbcce9..1d90629 100644
--- a/src/cobalt/debug/remote/devtools/node_modules/parseqs/Makefile
+++ b/src/third_party/devtools/node_modules/parseqs/Makefile
@@ -1,3 +1,3 @@
-

-test:

-	@./node_modules/.bin/mocha test.js

+
+test:
+	@./node_modules/.bin/mocha test.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/parseqs/README.md b/src/third_party/devtools/node_modules/parseqs/README.md
similarity index 99%
rename from src/cobalt/debug/remote/devtools/node_modules/parseqs/README.md
rename to src/third_party/devtools/node_modules/parseqs/README.md
index 8c3148a..5c03c55 100644
--- a/src/cobalt/debug/remote/devtools/node_modules/parseqs/README.md
+++ b/src/third_party/devtools/node_modules/parseqs/README.md
@@ -1 +1 @@
-Provides methods for converting an object into string representation, and vice versa.

+Provides methods for converting an object into string representation, and vice versa.
diff --git a/src/cobalt/debug/remote/devtools/node_modules/parseqs/index.js b/src/third_party/devtools/node_modules/parseqs/index.js
similarity index 99%
rename from src/cobalt/debug/remote/devtools/node_modules/parseqs/index.js
rename to src/third_party/devtools/node_modules/parseqs/index.js
index f8b486f..e0b366e 100644
--- a/src/cobalt/debug/remote/devtools/node_modules/parseqs/index.js
+++ b/src/third_party/devtools/node_modules/parseqs/index.js
@@ -1,37 +1,37 @@
-/**

- * Compiles a querystring

- * Returns string representation of the object

- *

- * @param {Object}

- * @api private

- */

-

-exports.encode = function (obj) {

-  var str = '';

-

-  for (var i in obj) {

-    if (obj.hasOwnProperty(i)) {

-      if (str.length) str += '&';

-      str += encodeURIComponent(i) + '=' + encodeURIComponent(obj[i]);

-    }

-  }

-

-  return str;

-};

-

-/**

- * Parses a simple querystring into an object

- *

- * @param {String} qs

- * @api private

- */

-

-exports.decode = function(qs){

-  var qry = {};

-  var pairs = qs.split('&');

-  for (var i = 0, l = pairs.length; i < l; i++) {

-    var pair = pairs[i].split('=');

-    qry[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1]);

-  }

-  return qry;

-};

+/**
+ * Compiles a querystring
+ * Returns string representation of the object
+ *
+ * @param {Object}
+ * @api private
+ */
+
+exports.encode = function (obj) {
+  var str = '';
+
+  for (var i in obj) {
+    if (obj.hasOwnProperty(i)) {
+      if (str.length) str += '&';
+      str += encodeURIComponent(i) + '=' + encodeURIComponent(obj[i]);
+    }
+  }
+
+  return str;
+};
+
+/**
+ * Parses a simple querystring into an object
+ *
+ * @param {String} qs
+ * @api private
+ */
+
+exports.decode = function(qs){
+  var qry = {};
+  var pairs = qs.split('&');
+  for (var i = 0, l = pairs.length; i < l; i++) {
+    var pair = pairs[i].split('=');
+    qry[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1]);
+  }
+  return qry;
+};
diff --git a/src/cobalt/debug/remote/devtools/node_modules/parseqs/package.json b/src/third_party/devtools/node_modules/parseqs/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/parseqs/package.json
rename to src/third_party/devtools/node_modules/parseqs/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/parseqs/test.js b/src/third_party/devtools/node_modules/parseqs/test.js
similarity index 99%
rename from src/cobalt/debug/remote/devtools/node_modules/parseqs/test.js
rename to src/third_party/devtools/node_modules/parseqs/test.js
index 362ae65..2ccb925 100644
--- a/src/cobalt/debug/remote/devtools/node_modules/parseqs/test.js
+++ b/src/third_party/devtools/node_modules/parseqs/test.js
@@ -1,27 +1,27 @@
-var assert = require('better-assert');

-var expect = require('expect.js');

-var util = require('./index.js');

-

-describe('querystring test suite', function(){

-	it('should parse a querystring and return an object', function () {

-		

-		// Single assignment

-		var queryObj = util.decode("foo=bar");

-		expect(queryObj.foo).to.be("bar");

-		

-		// Multiple assignments

-		queryObj = util.decode("france=paris&germany=berlin");

-		expect(queryObj.france).to.be("paris");

-		expect(queryObj.germany).to.be("berlin");

-		

-		// Assignments containing non-alphanumeric characters

-		queryObj = util.decode("india=new%20delhi");

-		expect(queryObj.india).to.be("new delhi");

-	});

-	

-	it('should construct a query string from an object', function () {

-		expect(util.encode({ a: 'b' })).to.be('a=b');

-		expect(util.encode({ a: 'b', c: 'd' })).to.be('a=b&c=d');

-		expect(util.encode({ a: 'b', c: 'tobi rocks' })).to.be('a=b&c=tobi%20rocks');

-	});

-});

+var assert = require('better-assert');
+var expect = require('expect.js');
+var util = require('./index.js');
+
+describe('querystring test suite', function(){
+	it('should parse a querystring and return an object', function () {
+		
+		// Single assignment
+		var queryObj = util.decode("foo=bar");
+		expect(queryObj.foo).to.be("bar");
+		
+		// Multiple assignments
+		queryObj = util.decode("france=paris&germany=berlin");
+		expect(queryObj.france).to.be("paris");
+		expect(queryObj.germany).to.be("berlin");
+		
+		// Assignments containing non-alphanumeric characters
+		queryObj = util.decode("india=new%20delhi");
+		expect(queryObj.india).to.be("new delhi");
+	});
+	
+	it('should construct a query string from an object', function () {
+		expect(util.encode({ a: 'b' })).to.be('a=b');
+		expect(util.encode({ a: 'b', c: 'd' })).to.be('a=b&c=d');
+		expect(util.encode({ a: 'b', c: 'tobi rocks' })).to.be('a=b&c=tobi%20rocks');
+	});
+});
diff --git a/src/cobalt/debug/remote/devtools/node_modules/parseuri/.npmignore b/src/third_party/devtools/node_modules/parseuri/.npmignore
similarity index 99%
rename from src/cobalt/debug/remote/devtools/node_modules/parseuri/.npmignore
rename to src/third_party/devtools/node_modules/parseuri/.npmignore
index 2bae02e..4da89cf 100644
--- a/src/cobalt/debug/remote/devtools/node_modules/parseuri/.npmignore
+++ b/src/third_party/devtools/node_modules/parseuri/.npmignore
@@ -1,2 +1,2 @@
-.DS_Store

+.DS_Store
 .node_modules/*
\ No newline at end of file
diff --git a/src/cobalt/debug/remote/devtools/node_modules/parseuri/History.md b/src/third_party/devtools/node_modules/parseuri/History.md
similarity index 99%
rename from src/cobalt/debug/remote/devtools/node_modules/parseuri/History.md
rename to src/third_party/devtools/node_modules/parseuri/History.md
index c198d2c..c33a1bf 100644
--- a/src/cobalt/debug/remote/devtools/node_modules/parseuri/History.md
+++ b/src/third_party/devtools/node_modules/parseuri/History.md
@@ -1,5 +1,5 @@
-

-n.n.n / 2014-02-09

-==================

-

- * parseuri first commit

+
+n.n.n / 2014-02-09
+==================
+
+ * parseuri first commit
diff --git a/src/cobalt/debug/remote/devtools/node_modules/parseuri/LICENSE b/src/third_party/devtools/node_modules/parseuri/LICENSE
similarity index 99%
rename from src/cobalt/debug/remote/devtools/node_modules/parseuri/LICENSE
rename to src/third_party/devtools/node_modules/parseuri/LICENSE
index 25556e8..c32368d 100644
--- a/src/cobalt/debug/remote/devtools/node_modules/parseuri/LICENSE
+++ b/src/third_party/devtools/node_modules/parseuri/LICENSE
@@ -1,21 +1,21 @@
-The MIT License (MIT)

-

-Copyright (c) 2014 Gal Koren

-

-Permission is hereby granted, free of charge, to any person obtaining a copy

-of this software and associated documentation files (the "Software"), to deal

-in the Software without restriction, including without limitation the rights

-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell

-copies of the Software, and to permit persons to whom the Software is

-furnished to do so, subject to the following conditions:

-

-The above copyright notice and this permission notice shall be included in

-all copies or substantial portions of the Software.

-

-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR

-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,

-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE

-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER

-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,

-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN

-THE SOFTWARE.

+The MIT License (MIT)
+
+Copyright (c) 2014 Gal Koren
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
diff --git a/src/cobalt/debug/remote/devtools/node_modules/parseqs/Makefile b/src/third_party/devtools/node_modules/parseuri/Makefile
similarity index 99%
copy from src/cobalt/debug/remote/devtools/node_modules/parseqs/Makefile
copy to src/third_party/devtools/node_modules/parseuri/Makefile
index 2fbcce9..1d90629 100644
--- a/src/cobalt/debug/remote/devtools/node_modules/parseqs/Makefile
+++ b/src/third_party/devtools/node_modules/parseuri/Makefile
@@ -1,3 +1,3 @@
-

-test:

-	@./node_modules/.bin/mocha test.js

+
+test:
+	@./node_modules/.bin/mocha test.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/parseuri/README.md b/src/third_party/devtools/node_modules/parseuri/README.md
similarity index 99%
rename from src/cobalt/debug/remote/devtools/node_modules/parseuri/README.md
rename to src/third_party/devtools/node_modules/parseuri/README.md
index f108180..5c663ed 100644
--- a/src/cobalt/debug/remote/devtools/node_modules/parseuri/README.md
+++ b/src/third_party/devtools/node_modules/parseuri/README.md
@@ -1,2 +1,2 @@
-# parseuri

-Module for parsing URI's in engine.io-client

+# parseuri
+Module for parsing URI's in engine.io-client
diff --git a/src/cobalt/debug/remote/devtools/node_modules/parseuri/index.js b/src/third_party/devtools/node_modules/parseuri/index.js
similarity index 99%
rename from src/cobalt/debug/remote/devtools/node_modules/parseuri/index.js
rename to src/third_party/devtools/node_modules/parseuri/index.js
index 88639d5..438d6e6 100644
--- a/src/cobalt/debug/remote/devtools/node_modules/parseuri/index.js
+++ b/src/third_party/devtools/node_modules/parseuri/index.js
@@ -1,39 +1,39 @@
-/**

- * Parses an URI

- *

- * @author Steven Levithan <stevenlevithan.com> (MIT license)

- * @api private

- */

-

-var re = /^(?:(?![^:@]+:[^:@\/]*@)(http|https|ws|wss):\/\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/;

-

-var parts = [

-    'source', 'protocol', 'authority', 'userInfo', 'user', 'password', 'host', 'port', 'relative', 'path', 'directory', 'file', 'query', 'anchor'

-];

-

-module.exports = function parseuri(str) {

-    var src = str,

-        b = str.indexOf('['),

-        e = str.indexOf(']');

-

-    if (b != -1 && e != -1) {

-        str = str.substring(0, b) + str.substring(b, e).replace(/:/g, ';') + str.substring(e, str.length);

-    }

-

-    var m = re.exec(str || ''),

-        uri = {},

-        i = 14;

-

-    while (i--) {

-        uri[parts[i]] = m[i] || '';

-    }

-

-    if (b != -1 && e != -1) {

-        uri.source = src;

-        uri.host = uri.host.substring(1, uri.host.length - 1).replace(/;/g, ':');

-        uri.authority = uri.authority.replace('[', '').replace(']', '').replace(/;/g, ':');

-        uri.ipv6uri = true;

-    }

-

-    return uri;

-};

+/**
+ * Parses an URI
+ *
+ * @author Steven Levithan <stevenlevithan.com> (MIT license)
+ * @api private
+ */
+
+var re = /^(?:(?![^:@]+:[^:@\/]*@)(http|https|ws|wss):\/\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/;
+
+var parts = [
+    'source', 'protocol', 'authority', 'userInfo', 'user', 'password', 'host', 'port', 'relative', 'path', 'directory', 'file', 'query', 'anchor'
+];
+
+module.exports = function parseuri(str) {
+    var src = str,
+        b = str.indexOf('['),
+        e = str.indexOf(']');
+
+    if (b != -1 && e != -1) {
+        str = str.substring(0, b) + str.substring(b, e).replace(/:/g, ';') + str.substring(e, str.length);
+    }
+
+    var m = re.exec(str || ''),
+        uri = {},
+        i = 14;
+
+    while (i--) {
+        uri[parts[i]] = m[i] || '';
+    }
+
+    if (b != -1 && e != -1) {
+        uri.source = src;
+        uri.host = uri.host.substring(1, uri.host.length - 1).replace(/;/g, ':');
+        uri.authority = uri.authority.replace('[', '').replace(']', '').replace(/;/g, ':');
+        uri.ipv6uri = true;
+    }
+
+    return uri;
+};
diff --git a/src/cobalt/debug/remote/devtools/node_modules/parseuri/package.json b/src/third_party/devtools/node_modules/parseuri/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/parseuri/package.json
rename to src/third_party/devtools/node_modules/parseuri/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/parseuri/test.js b/src/third_party/devtools/node_modules/parseuri/test.js
similarity index 99%
rename from src/cobalt/debug/remote/devtools/node_modules/parseuri/test.js
rename to src/third_party/devtools/node_modules/parseuri/test.js
index 01f5d8c..50a361d 100644
--- a/src/cobalt/debug/remote/devtools/node_modules/parseuri/test.js
+++ b/src/third_party/devtools/node_modules/parseuri/test.js
@@ -1,51 +1,51 @@
-var assert = require('better-assert');

-var expect = require('expect.js');

-var parseuri = require('./index.js');

-

-describe('my suite', function(){

-	it('should parse an uri', function () {

-    var http = parseuri('http://google.com')

-      , https = parseuri('https://www.google.com:80')

-      , query = parseuri('google.com:8080/foo/bar?foo=bar')

-      , localhost = parseuri('localhost:8080')

-      , ipv6 = parseuri('2001:0db8:85a3:0042:1000:8a2e:0370:7334')

-      , ipv6short = parseuri('2001:db8:85a3:42:1000:8a2e:370:7334')

-      , ipv6port = parseuri('2001:db8:85a3:42:1000:8a2e:370:7334:80')

-      , ipv6abbrev = parseuri('2001::7334:a:80')

-      , ipv6http = parseuri('http://[2001::7334:a]:80')

-      , ipv6query = parseuri('http://[2001::7334:a]:80/foo/bar?foo=bar')

-

-    expect(http.protocol).to.be('http');

-    expect(http.port).to.be('');

-    expect(http.host).to.be('google.com');

-    expect(https.protocol).to.be('https');

-    expect(https.port).to.be('80');

-    expect(https.host).to.be('www.google.com');

-    expect(query.port).to.be('8080');

-    expect(query.query).to.be('foo=bar');

-    expect(query.path).to.be('/foo/bar');

-    expect(query.relative).to.be('/foo/bar?foo=bar');

-    expect(localhost.protocol).to.be('');

-    expect(localhost.host).to.be('localhost');

-    expect(localhost.port).to.be('8080');

-    expect(ipv6.protocol).to.be('');

-    expect(ipv6.host).to.be('2001:0db8:85a3:0042:1000:8a2e:0370:7334');

-    expect(ipv6.port).to.be('');

-    expect(ipv6short.protocol).to.be('');

-    expect(ipv6short.host).to.be('2001:db8:85a3:42:1000:8a2e:370:7334');

-    expect(ipv6short.port).to.be('');

-    expect(ipv6port.protocol).to.be('');

-    expect(ipv6port.host).to.be('2001:db8:85a3:42:1000:8a2e:370:7334');

-    expect(ipv6port.port).to.be('80');

-    expect(ipv6abbrev.protocol).to.be('');

-    expect(ipv6abbrev.host).to.be('2001::7334:a:80');

-    expect(ipv6abbrev.port).to.be('');

-    expect(ipv6http.protocol).to.be('http');

-    expect(ipv6http.port).to.be('80');

-    expect(ipv6http.host).to.be('2001::7334:a');

-    expect(ipv6query.protocol).to.be('http');

-    expect(ipv6query.port).to.be('80');

-    expect(ipv6query.host).to.be('2001::7334:a');

-    expect(ipv6query.relative).to.be('/foo/bar?foo=bar');

-  });

-});

+var assert = require('better-assert');
+var expect = require('expect.js');
+var parseuri = require('./index.js');
+
+describe('my suite', function(){
+	it('should parse an uri', function () {
+    var http = parseuri('http://google.com')
+      , https = parseuri('https://www.google.com:80')
+      , query = parseuri('google.com:8080/foo/bar?foo=bar')
+      , localhost = parseuri('localhost:8080')
+      , ipv6 = parseuri('2001:0db8:85a3:0042:1000:8a2e:0370:7334')
+      , ipv6short = parseuri('2001:db8:85a3:42:1000:8a2e:370:7334')
+      , ipv6port = parseuri('2001:db8:85a3:42:1000:8a2e:370:7334:80')
+      , ipv6abbrev = parseuri('2001::7334:a:80')
+      , ipv6http = parseuri('http://[2001::7334:a]:80')
+      , ipv6query = parseuri('http://[2001::7334:a]:80/foo/bar?foo=bar')
+
+    expect(http.protocol).to.be('http');
+    expect(http.port).to.be('');
+    expect(http.host).to.be('google.com');
+    expect(https.protocol).to.be('https');
+    expect(https.port).to.be('80');
+    expect(https.host).to.be('www.google.com');
+    expect(query.port).to.be('8080');
+    expect(query.query).to.be('foo=bar');
+    expect(query.path).to.be('/foo/bar');
+    expect(query.relative).to.be('/foo/bar?foo=bar');
+    expect(localhost.protocol).to.be('');
+    expect(localhost.host).to.be('localhost');
+    expect(localhost.port).to.be('8080');
+    expect(ipv6.protocol).to.be('');
+    expect(ipv6.host).to.be('2001:0db8:85a3:0042:1000:8a2e:0370:7334');
+    expect(ipv6.port).to.be('');
+    expect(ipv6short.protocol).to.be('');
+    expect(ipv6short.host).to.be('2001:db8:85a3:42:1000:8a2e:370:7334');
+    expect(ipv6short.port).to.be('');
+    expect(ipv6port.protocol).to.be('');
+    expect(ipv6port.host).to.be('2001:db8:85a3:42:1000:8a2e:370:7334');
+    expect(ipv6port.port).to.be('80');
+    expect(ipv6abbrev.protocol).to.be('');
+    expect(ipv6abbrev.host).to.be('2001::7334:a:80');
+    expect(ipv6abbrev.port).to.be('');
+    expect(ipv6http.protocol).to.be('http');
+    expect(ipv6http.port).to.be('80');
+    expect(ipv6http.host).to.be('2001::7334:a');
+    expect(ipv6query.protocol).to.be('http');
+    expect(ipv6query.port).to.be('80');
+    expect(ipv6query.host).to.be('2001::7334:a');
+    expect(ipv6query.relative).to.be('/foo/bar?foo=bar');
+  });
+});
diff --git a/src/cobalt/debug/remote/devtools/node_modules/parseurl/HISTORY.md b/src/third_party/devtools/node_modules/parseurl/HISTORY.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/parseurl/HISTORY.md
rename to src/third_party/devtools/node_modules/parseurl/HISTORY.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/parseurl/LICENSE b/src/third_party/devtools/node_modules/parseurl/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/parseurl/LICENSE
rename to src/third_party/devtools/node_modules/parseurl/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/parseurl/README.md b/src/third_party/devtools/node_modules/parseurl/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/parseurl/README.md
rename to src/third_party/devtools/node_modules/parseurl/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/parseurl/index.js b/src/third_party/devtools/node_modules/parseurl/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/parseurl/index.js
rename to src/third_party/devtools/node_modules/parseurl/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/parseurl/package.json b/src/third_party/devtools/node_modules/parseurl/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/parseurl/package.json
rename to src/third_party/devtools/node_modules/parseurl/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/path-browserify/.travis.yml b/src/third_party/devtools/node_modules/path-browserify/.travis.yml
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/path-browserify/.travis.yml
rename to src/third_party/devtools/node_modules/path-browserify/.travis.yml
diff --git a/src/cobalt/debug/remote/devtools/node_modules/path-browserify/CHANGELOG.md b/src/third_party/devtools/node_modules/path-browserify/CHANGELOG.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/path-browserify/CHANGELOG.md
rename to src/third_party/devtools/node_modules/path-browserify/CHANGELOG.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/path-browserify/LICENSE b/src/third_party/devtools/node_modules/path-browserify/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/path-browserify/LICENSE
rename to src/third_party/devtools/node_modules/path-browserify/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/path-browserify/README.md b/src/third_party/devtools/node_modules/path-browserify/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/path-browserify/README.md
rename to src/third_party/devtools/node_modules/path-browserify/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/path-browserify/index.js b/src/third_party/devtools/node_modules/path-browserify/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/path-browserify/index.js
rename to src/third_party/devtools/node_modules/path-browserify/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/path-browserify/package.json b/src/third_party/devtools/node_modules/path-browserify/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/path-browserify/package.json
rename to src/third_party/devtools/node_modules/path-browserify/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/path-browserify/test/index.js b/src/third_party/devtools/node_modules/path-browserify/test/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/path-browserify/test/index.js
rename to src/third_party/devtools/node_modules/path-browserify/test/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/path-browserify/test/test-path-basename.js b/src/third_party/devtools/node_modules/path-browserify/test/test-path-basename.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/path-browserify/test/test-path-basename.js
rename to src/third_party/devtools/node_modules/path-browserify/test/test-path-basename.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/path-browserify/test/test-path-dirname.js b/src/third_party/devtools/node_modules/path-browserify/test/test-path-dirname.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/path-browserify/test/test-path-dirname.js
rename to src/third_party/devtools/node_modules/path-browserify/test/test-path-dirname.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/path-browserify/test/test-path-extname.js b/src/third_party/devtools/node_modules/path-browserify/test/test-path-extname.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/path-browserify/test/test-path-extname.js
rename to src/third_party/devtools/node_modules/path-browserify/test/test-path-extname.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/path-browserify/test/test-path-isabsolute.js b/src/third_party/devtools/node_modules/path-browserify/test/test-path-isabsolute.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/path-browserify/test/test-path-isabsolute.js
rename to src/third_party/devtools/node_modules/path-browserify/test/test-path-isabsolute.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/path-browserify/test/test-path-join.js b/src/third_party/devtools/node_modules/path-browserify/test/test-path-join.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/path-browserify/test/test-path-join.js
rename to src/third_party/devtools/node_modules/path-browserify/test/test-path-join.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/path-browserify/test/test-path-parse-format.js b/src/third_party/devtools/node_modules/path-browserify/test/test-path-parse-format.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/path-browserify/test/test-path-parse-format.js
rename to src/third_party/devtools/node_modules/path-browserify/test/test-path-parse-format.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/path-browserify/test/test-path-relative.js b/src/third_party/devtools/node_modules/path-browserify/test/test-path-relative.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/path-browserify/test/test-path-relative.js
rename to src/third_party/devtools/node_modules/path-browserify/test/test-path-relative.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/path-browserify/test/test-path-resolve.js b/src/third_party/devtools/node_modules/path-browserify/test/test-path-resolve.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/path-browserify/test/test-path-resolve.js
rename to src/third_party/devtools/node_modules/path-browserify/test/test-path-resolve.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/path-browserify/test/test-path-zero-length-strings.js b/src/third_party/devtools/node_modules/path-browserify/test/test-path-zero-length-strings.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/path-browserify/test/test-path-zero-length-strings.js
rename to src/third_party/devtools/node_modules/path-browserify/test/test-path-zero-length-strings.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/path-browserify/test/test-path.js b/src/third_party/devtools/node_modules/path-browserify/test/test-path.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/path-browserify/test/test-path.js
rename to src/third_party/devtools/node_modules/path-browserify/test/test-path.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/path-dirname/index.js b/src/third_party/devtools/node_modules/path-dirname/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/path-dirname/index.js
rename to src/third_party/devtools/node_modules/path-dirname/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/path-dirname/license b/src/third_party/devtools/node_modules/path-dirname/license
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/path-dirname/license
rename to src/third_party/devtools/node_modules/path-dirname/license
diff --git a/src/cobalt/debug/remote/devtools/node_modules/path-dirname/package.json b/src/third_party/devtools/node_modules/path-dirname/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/path-dirname/package.json
rename to src/third_party/devtools/node_modules/path-dirname/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/path-dirname/readme.md b/src/third_party/devtools/node_modules/path-dirname/readme.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/path-dirname/readme.md
rename to src/third_party/devtools/node_modules/path-dirname/readme.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/path-exists/index.js b/src/third_party/devtools/node_modules/path-exists/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/path-exists/index.js
rename to src/third_party/devtools/node_modules/path-exists/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/path-exists/license b/src/third_party/devtools/node_modules/path-exists/license
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/path-exists/license
rename to src/third_party/devtools/node_modules/path-exists/license
diff --git a/src/cobalt/debug/remote/devtools/node_modules/path-exists/package.json b/src/third_party/devtools/node_modules/path-exists/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/path-exists/package.json
rename to src/third_party/devtools/node_modules/path-exists/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/path-exists/readme.md b/src/third_party/devtools/node_modules/path-exists/readme.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/path-exists/readme.md
rename to src/third_party/devtools/node_modules/path-exists/readme.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/path-is-absolute/LICENSE b/src/third_party/devtools/node_modules/path-is-absolute/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/path-is-absolute/LICENSE
rename to src/third_party/devtools/node_modules/path-is-absolute/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/path-is-absolute/index.js b/src/third_party/devtools/node_modules/path-is-absolute/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/path-is-absolute/index.js
rename to src/third_party/devtools/node_modules/path-is-absolute/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/path-is-absolute/package.json b/src/third_party/devtools/node_modules/path-is-absolute/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/path-is-absolute/package.json
rename to src/third_party/devtools/node_modules/path-is-absolute/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/path-is-absolute/readme.md b/src/third_party/devtools/node_modules/path-is-absolute/readme.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/path-is-absolute/readme.md
rename to src/third_party/devtools/node_modules/path-is-absolute/readme.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/path-key/index.js b/src/third_party/devtools/node_modules/path-key/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/path-key/index.js
rename to src/third_party/devtools/node_modules/path-key/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/path-key/license b/src/third_party/devtools/node_modules/path-key/license
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/path-key/license
rename to src/third_party/devtools/node_modules/path-key/license
diff --git a/src/cobalt/debug/remote/devtools/node_modules/path-key/package.json b/src/third_party/devtools/node_modules/path-key/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/path-key/package.json
rename to src/third_party/devtools/node_modules/path-key/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/path-key/readme.md b/src/third_party/devtools/node_modules/path-key/readme.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/path-key/readme.md
rename to src/third_party/devtools/node_modules/path-key/readme.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/path-parse/.travis.yml b/src/third_party/devtools/node_modules/path-parse/.travis.yml
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/path-parse/.travis.yml
rename to src/third_party/devtools/node_modules/path-parse/.travis.yml
diff --git a/src/cobalt/debug/remote/devtools/node_modules/path-parse/LICENSE b/src/third_party/devtools/node_modules/path-parse/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/path-parse/LICENSE
rename to src/third_party/devtools/node_modules/path-parse/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/path-parse/README.md b/src/third_party/devtools/node_modules/path-parse/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/path-parse/README.md
rename to src/third_party/devtools/node_modules/path-parse/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/path-parse/index.js b/src/third_party/devtools/node_modules/path-parse/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/path-parse/index.js
rename to src/third_party/devtools/node_modules/path-parse/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/path-parse/package.json b/src/third_party/devtools/node_modules/path-parse/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/path-parse/package.json
rename to src/third_party/devtools/node_modules/path-parse/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/path-parse/test.js b/src/third_party/devtools/node_modules/path-parse/test.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/path-parse/test.js
rename to src/third_party/devtools/node_modules/path-parse/test.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/path-type/index.js b/src/third_party/devtools/node_modules/path-type/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/path-type/index.js
rename to src/third_party/devtools/node_modules/path-type/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/path-type/license b/src/third_party/devtools/node_modules/path-type/license
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/path-type/license
rename to src/third_party/devtools/node_modules/path-type/license
diff --git a/src/cobalt/debug/remote/devtools/node_modules/path-type/node_modules/pify/index.js b/src/third_party/devtools/node_modules/path-type/node_modules/pify/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/path-type/node_modules/pify/index.js
rename to src/third_party/devtools/node_modules/path-type/node_modules/pify/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/path-type/node_modules/pify/license b/src/third_party/devtools/node_modules/path-type/node_modules/pify/license
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/path-type/node_modules/pify/license
rename to src/third_party/devtools/node_modules/path-type/node_modules/pify/license
diff --git a/src/cobalt/debug/remote/devtools/node_modules/path-type/node_modules/pify/package.json b/src/third_party/devtools/node_modules/path-type/node_modules/pify/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/path-type/node_modules/pify/package.json
rename to src/third_party/devtools/node_modules/path-type/node_modules/pify/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/path-type/node_modules/pify/readme.md b/src/third_party/devtools/node_modules/path-type/node_modules/pify/readme.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/path-type/node_modules/pify/readme.md
rename to src/third_party/devtools/node_modules/path-type/node_modules/pify/readme.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/path-type/package.json b/src/third_party/devtools/node_modules/path-type/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/path-type/package.json
rename to src/third_party/devtools/node_modules/path-type/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/path-type/readme.md b/src/third_party/devtools/node_modules/path-type/readme.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/path-type/readme.md
rename to src/third_party/devtools/node_modules/path-type/readme.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/pathval/CHANGELOG.md b/src/third_party/devtools/node_modules/pathval/CHANGELOG.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/pathval/CHANGELOG.md
rename to src/third_party/devtools/node_modules/pathval/CHANGELOG.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/pathval/LICENSE b/src/third_party/devtools/node_modules/pathval/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/pathval/LICENSE
rename to src/third_party/devtools/node_modules/pathval/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/pathval/README.md b/src/third_party/devtools/node_modules/pathval/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/pathval/README.md
rename to src/third_party/devtools/node_modules/pathval/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/pathval/index.js b/src/third_party/devtools/node_modules/pathval/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/pathval/index.js
rename to src/third_party/devtools/node_modules/pathval/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/pathval/package.json b/src/third_party/devtools/node_modules/pathval/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/pathval/package.json
rename to src/third_party/devtools/node_modules/pathval/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/pathval/pathval.js b/src/third_party/devtools/node_modules/pathval/pathval.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/pathval/pathval.js
rename to src/third_party/devtools/node_modules/pathval/pathval.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/pbkdf2/LICENSE b/src/third_party/devtools/node_modules/pbkdf2/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/pbkdf2/LICENSE
rename to src/third_party/devtools/node_modules/pbkdf2/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/pbkdf2/README.md b/src/third_party/devtools/node_modules/pbkdf2/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/pbkdf2/README.md
rename to src/third_party/devtools/node_modules/pbkdf2/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/pbkdf2/browser.js b/src/third_party/devtools/node_modules/pbkdf2/browser.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/pbkdf2/browser.js
rename to src/third_party/devtools/node_modules/pbkdf2/browser.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/pbkdf2/index.js b/src/third_party/devtools/node_modules/pbkdf2/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/pbkdf2/index.js
rename to src/third_party/devtools/node_modules/pbkdf2/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/pbkdf2/lib/async.js b/src/third_party/devtools/node_modules/pbkdf2/lib/async.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/pbkdf2/lib/async.js
rename to src/third_party/devtools/node_modules/pbkdf2/lib/async.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/pbkdf2/lib/default-encoding.js b/src/third_party/devtools/node_modules/pbkdf2/lib/default-encoding.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/pbkdf2/lib/default-encoding.js
rename to src/third_party/devtools/node_modules/pbkdf2/lib/default-encoding.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/pbkdf2/lib/precondition.js b/src/third_party/devtools/node_modules/pbkdf2/lib/precondition.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/pbkdf2/lib/precondition.js
rename to src/third_party/devtools/node_modules/pbkdf2/lib/precondition.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/pbkdf2/lib/sync-browser.js b/src/third_party/devtools/node_modules/pbkdf2/lib/sync-browser.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/pbkdf2/lib/sync-browser.js
rename to src/third_party/devtools/node_modules/pbkdf2/lib/sync-browser.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/pbkdf2/lib/sync.js b/src/third_party/devtools/node_modules/pbkdf2/lib/sync.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/pbkdf2/lib/sync.js
rename to src/third_party/devtools/node_modules/pbkdf2/lib/sync.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/pbkdf2/package.json b/src/third_party/devtools/node_modules/pbkdf2/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/pbkdf2/package.json
rename to src/third_party/devtools/node_modules/pbkdf2/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/pend/LICENSE b/src/third_party/devtools/node_modules/pend/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/pend/LICENSE
rename to src/third_party/devtools/node_modules/pend/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/pend/README.md b/src/third_party/devtools/node_modules/pend/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/pend/README.md
rename to src/third_party/devtools/node_modules/pend/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/pend/index.js b/src/third_party/devtools/node_modules/pend/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/pend/index.js
rename to src/third_party/devtools/node_modules/pend/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/pend/package.json b/src/third_party/devtools/node_modules/pend/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/pend/package.json
rename to src/third_party/devtools/node_modules/pend/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/pend/test.js b/src/third_party/devtools/node_modules/pend/test.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/pend/test.js
rename to src/third_party/devtools/node_modules/pend/test.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/picomatch/CHANGELOG.md b/src/third_party/devtools/node_modules/picomatch/CHANGELOG.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/picomatch/CHANGELOG.md
rename to src/third_party/devtools/node_modules/picomatch/CHANGELOG.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/picomatch/LICENSE b/src/third_party/devtools/node_modules/picomatch/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/picomatch/LICENSE
rename to src/third_party/devtools/node_modules/picomatch/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/picomatch/README.md b/src/third_party/devtools/node_modules/picomatch/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/picomatch/README.md
rename to src/third_party/devtools/node_modules/picomatch/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/picomatch/index.js b/src/third_party/devtools/node_modules/picomatch/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/picomatch/index.js
rename to src/third_party/devtools/node_modules/picomatch/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/picomatch/lib/constants.js b/src/third_party/devtools/node_modules/picomatch/lib/constants.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/picomatch/lib/constants.js
rename to src/third_party/devtools/node_modules/picomatch/lib/constants.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/picomatch/lib/parse.js b/src/third_party/devtools/node_modules/picomatch/lib/parse.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/picomatch/lib/parse.js
rename to src/third_party/devtools/node_modules/picomatch/lib/parse.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/picomatch/lib/picomatch.js b/src/third_party/devtools/node_modules/picomatch/lib/picomatch.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/picomatch/lib/picomatch.js
rename to src/third_party/devtools/node_modules/picomatch/lib/picomatch.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/picomatch/lib/scan.js b/src/third_party/devtools/node_modules/picomatch/lib/scan.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/picomatch/lib/scan.js
rename to src/third_party/devtools/node_modules/picomatch/lib/scan.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/picomatch/lib/utils.js b/src/third_party/devtools/node_modules/picomatch/lib/utils.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/picomatch/lib/utils.js
rename to src/third_party/devtools/node_modules/picomatch/lib/utils.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/picomatch/package.json b/src/third_party/devtools/node_modules/picomatch/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/picomatch/package.json
rename to src/third_party/devtools/node_modules/picomatch/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/pify/index.js b/src/third_party/devtools/node_modules/pify/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/pify/index.js
rename to src/third_party/devtools/node_modules/pify/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/pify/license b/src/third_party/devtools/node_modules/pify/license
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/pify/license
rename to src/third_party/devtools/node_modules/pify/license
diff --git a/src/cobalt/debug/remote/devtools/node_modules/pify/package.json b/src/third_party/devtools/node_modules/pify/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/pify/package.json
rename to src/third_party/devtools/node_modules/pify/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/pify/readme.md b/src/third_party/devtools/node_modules/pify/readme.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/pify/readme.md
rename to src/third_party/devtools/node_modules/pify/readme.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/pinkie-promise/index.js b/src/third_party/devtools/node_modules/pinkie-promise/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/pinkie-promise/index.js
rename to src/third_party/devtools/node_modules/pinkie-promise/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/pinkie-promise/license b/src/third_party/devtools/node_modules/pinkie-promise/license
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/pinkie-promise/license
rename to src/third_party/devtools/node_modules/pinkie-promise/license
diff --git a/src/cobalt/debug/remote/devtools/node_modules/pinkie-promise/package.json b/src/third_party/devtools/node_modules/pinkie-promise/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/pinkie-promise/package.json
rename to src/third_party/devtools/node_modules/pinkie-promise/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/pinkie-promise/readme.md b/src/third_party/devtools/node_modules/pinkie-promise/readme.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/pinkie-promise/readme.md
rename to src/third_party/devtools/node_modules/pinkie-promise/readme.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/pinkie/index.js b/src/third_party/devtools/node_modules/pinkie/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/pinkie/index.js
rename to src/third_party/devtools/node_modules/pinkie/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/pinkie/license b/src/third_party/devtools/node_modules/pinkie/license
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/pinkie/license
rename to src/third_party/devtools/node_modules/pinkie/license
diff --git a/src/cobalt/debug/remote/devtools/node_modules/pinkie/package.json b/src/third_party/devtools/node_modules/pinkie/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/pinkie/package.json
rename to src/third_party/devtools/node_modules/pinkie/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/pinkie/readme.md b/src/third_party/devtools/node_modules/pinkie/readme.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/pinkie/readme.md
rename to src/third_party/devtools/node_modules/pinkie/readme.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/plugin-error/LICENSE b/src/third_party/devtools/node_modules/plugin-error/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/plugin-error/LICENSE
rename to src/third_party/devtools/node_modules/plugin-error/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/plugin-error/README.md b/src/third_party/devtools/node_modules/plugin-error/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/plugin-error/README.md
rename to src/third_party/devtools/node_modules/plugin-error/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/plugin-error/index.d.ts b/src/third_party/devtools/node_modules/plugin-error/index.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/plugin-error/index.d.ts
rename to src/third_party/devtools/node_modules/plugin-error/index.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/plugin-error/index.js b/src/third_party/devtools/node_modules/plugin-error/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/plugin-error/index.js
rename to src/third_party/devtools/node_modules/plugin-error/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/plugin-error/package.json b/src/third_party/devtools/node_modules/plugin-error/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/plugin-error/package.json
rename to src/third_party/devtools/node_modules/plugin-error/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/prelude-ls/CHANGELOG.md b/src/third_party/devtools/node_modules/prelude-ls/CHANGELOG.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/prelude-ls/CHANGELOG.md
rename to src/third_party/devtools/node_modules/prelude-ls/CHANGELOG.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/prelude-ls/LICENSE b/src/third_party/devtools/node_modules/prelude-ls/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/prelude-ls/LICENSE
rename to src/third_party/devtools/node_modules/prelude-ls/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/prelude-ls/README.md b/src/third_party/devtools/node_modules/prelude-ls/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/prelude-ls/README.md
rename to src/third_party/devtools/node_modules/prelude-ls/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/prelude-ls/lib/Func.js b/src/third_party/devtools/node_modules/prelude-ls/lib/Func.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/prelude-ls/lib/Func.js
rename to src/third_party/devtools/node_modules/prelude-ls/lib/Func.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/prelude-ls/lib/List.js b/src/third_party/devtools/node_modules/prelude-ls/lib/List.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/prelude-ls/lib/List.js
rename to src/third_party/devtools/node_modules/prelude-ls/lib/List.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/prelude-ls/lib/Num.js b/src/third_party/devtools/node_modules/prelude-ls/lib/Num.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/prelude-ls/lib/Num.js
rename to src/third_party/devtools/node_modules/prelude-ls/lib/Num.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/prelude-ls/lib/Obj.js b/src/third_party/devtools/node_modules/prelude-ls/lib/Obj.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/prelude-ls/lib/Obj.js
rename to src/third_party/devtools/node_modules/prelude-ls/lib/Obj.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/prelude-ls/lib/Str.js b/src/third_party/devtools/node_modules/prelude-ls/lib/Str.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/prelude-ls/lib/Str.js
rename to src/third_party/devtools/node_modules/prelude-ls/lib/Str.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/prelude-ls/lib/index.js b/src/third_party/devtools/node_modules/prelude-ls/lib/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/prelude-ls/lib/index.js
rename to src/third_party/devtools/node_modules/prelude-ls/lib/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/prelude-ls/package.json b/src/third_party/devtools/node_modules/prelude-ls/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/prelude-ls/package.json
rename to src/third_party/devtools/node_modules/prelude-ls/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/process-nextick-args/index.js b/src/third_party/devtools/node_modules/process-nextick-args/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/process-nextick-args/index.js
rename to src/third_party/devtools/node_modules/process-nextick-args/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/process-nextick-args/license.md b/src/third_party/devtools/node_modules/process-nextick-args/license.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/process-nextick-args/license.md
rename to src/third_party/devtools/node_modules/process-nextick-args/license.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/process-nextick-args/package.json b/src/third_party/devtools/node_modules/process-nextick-args/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/process-nextick-args/package.json
rename to src/third_party/devtools/node_modules/process-nextick-args/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/process-nextick-args/readme.md b/src/third_party/devtools/node_modules/process-nextick-args/readme.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/process-nextick-args/readme.md
rename to src/third_party/devtools/node_modules/process-nextick-args/readme.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/process/.eslintrc b/src/third_party/devtools/node_modules/process/.eslintrc
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/process/.eslintrc
rename to src/third_party/devtools/node_modules/process/.eslintrc
diff --git a/src/cobalt/debug/remote/devtools/node_modules/process/LICENSE b/src/third_party/devtools/node_modules/process/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/process/LICENSE
rename to src/third_party/devtools/node_modules/process/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/process/README.md b/src/third_party/devtools/node_modules/process/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/process/README.md
rename to src/third_party/devtools/node_modules/process/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/process/browser.js b/src/third_party/devtools/node_modules/process/browser.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/process/browser.js
rename to src/third_party/devtools/node_modules/process/browser.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/process/index.js b/src/third_party/devtools/node_modules/process/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/process/index.js
rename to src/third_party/devtools/node_modules/process/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/process/package.json b/src/third_party/devtools/node_modules/process/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/process/package.json
rename to src/third_party/devtools/node_modules/process/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/process/test.js b/src/third_party/devtools/node_modules/process/test.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/process/test.js
rename to src/third_party/devtools/node_modules/process/test.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/progress/CHANGELOG.md b/src/third_party/devtools/node_modules/progress/CHANGELOG.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/progress/CHANGELOG.md
rename to src/third_party/devtools/node_modules/progress/CHANGELOG.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/progress/LICENSE b/src/third_party/devtools/node_modules/progress/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/progress/LICENSE
rename to src/third_party/devtools/node_modules/progress/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/progress/Makefile b/src/third_party/devtools/node_modules/progress/Makefile
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/progress/Makefile
rename to src/third_party/devtools/node_modules/progress/Makefile
diff --git a/src/cobalt/debug/remote/devtools/node_modules/progress/README.md b/src/third_party/devtools/node_modules/progress/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/progress/README.md
rename to src/third_party/devtools/node_modules/progress/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/progress/index.js b/src/third_party/devtools/node_modules/progress/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/progress/index.js
rename to src/third_party/devtools/node_modules/progress/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/progress/lib/node-progress.js b/src/third_party/devtools/node_modules/progress/lib/node-progress.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/progress/lib/node-progress.js
rename to src/third_party/devtools/node_modules/progress/lib/node-progress.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/progress/package.json b/src/third_party/devtools/node_modules/progress/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/progress/package.json
rename to src/third_party/devtools/node_modules/progress/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/proxy-from-env/.jscsrc b/src/third_party/devtools/node_modules/proxy-from-env/.jscsrc
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/proxy-from-env/.jscsrc
rename to src/third_party/devtools/node_modules/proxy-from-env/.jscsrc
diff --git a/src/cobalt/debug/remote/devtools/node_modules/proxy-from-env/.jshintrc b/src/third_party/devtools/node_modules/proxy-from-env/.jshintrc
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/proxy-from-env/.jshintrc
rename to src/third_party/devtools/node_modules/proxy-from-env/.jshintrc
diff --git a/src/cobalt/debug/remote/devtools/node_modules/proxy-from-env/.npmignore b/src/third_party/devtools/node_modules/proxy-from-env/.npmignore
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/proxy-from-env/.npmignore
rename to src/third_party/devtools/node_modules/proxy-from-env/.npmignore
diff --git a/src/cobalt/debug/remote/devtools/node_modules/proxy-from-env/.travis.yml b/src/third_party/devtools/node_modules/proxy-from-env/.travis.yml
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/proxy-from-env/.travis.yml
rename to src/third_party/devtools/node_modules/proxy-from-env/.travis.yml
diff --git a/src/cobalt/debug/remote/devtools/node_modules/proxy-from-env/README.md b/src/third_party/devtools/node_modules/proxy-from-env/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/proxy-from-env/README.md
rename to src/third_party/devtools/node_modules/proxy-from-env/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/proxy-from-env/index.js b/src/third_party/devtools/node_modules/proxy-from-env/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/proxy-from-env/index.js
rename to src/third_party/devtools/node_modules/proxy-from-env/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/proxy-from-env/package.json b/src/third_party/devtools/node_modules/proxy-from-env/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/proxy-from-env/package.json
rename to src/third_party/devtools/node_modules/proxy-from-env/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/proxy-from-env/test.js b/src/third_party/devtools/node_modules/proxy-from-env/test.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/proxy-from-env/test.js
rename to src/third_party/devtools/node_modules/proxy-from-env/test.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/pseudomap/LICENSE b/src/third_party/devtools/node_modules/pseudomap/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/pseudomap/LICENSE
rename to src/third_party/devtools/node_modules/pseudomap/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/pseudomap/README.md b/src/third_party/devtools/node_modules/pseudomap/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/pseudomap/README.md
rename to src/third_party/devtools/node_modules/pseudomap/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/pseudomap/map.js b/src/third_party/devtools/node_modules/pseudomap/map.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/pseudomap/map.js
rename to src/third_party/devtools/node_modules/pseudomap/map.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/pseudomap/package.json b/src/third_party/devtools/node_modules/pseudomap/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/pseudomap/package.json
rename to src/third_party/devtools/node_modules/pseudomap/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/pseudomap/pseudomap.js b/src/third_party/devtools/node_modules/pseudomap/pseudomap.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/pseudomap/pseudomap.js
rename to src/third_party/devtools/node_modules/pseudomap/pseudomap.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/pseudomap/test/basic.js b/src/third_party/devtools/node_modules/pseudomap/test/basic.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/pseudomap/test/basic.js
rename to src/third_party/devtools/node_modules/pseudomap/test/basic.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/public-encrypt/.travis.yml b/src/third_party/devtools/node_modules/public-encrypt/.travis.yml
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/public-encrypt/.travis.yml
rename to src/third_party/devtools/node_modules/public-encrypt/.travis.yml
diff --git a/src/cobalt/debug/remote/devtools/node_modules/public-encrypt/LICENSE b/src/third_party/devtools/node_modules/public-encrypt/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/public-encrypt/LICENSE
rename to src/third_party/devtools/node_modules/public-encrypt/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/public-encrypt/browser.js b/src/third_party/devtools/node_modules/public-encrypt/browser.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/public-encrypt/browser.js
rename to src/third_party/devtools/node_modules/public-encrypt/browser.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/public-encrypt/index.js b/src/third_party/devtools/node_modules/public-encrypt/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/public-encrypt/index.js
rename to src/third_party/devtools/node_modules/public-encrypt/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/public-encrypt/mgf.js b/src/third_party/devtools/node_modules/public-encrypt/mgf.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/public-encrypt/mgf.js
rename to src/third_party/devtools/node_modules/public-encrypt/mgf.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/public-encrypt/package.json b/src/third_party/devtools/node_modules/public-encrypt/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/public-encrypt/package.json
rename to src/third_party/devtools/node_modules/public-encrypt/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/public-encrypt/privateDecrypt.js b/src/third_party/devtools/node_modules/public-encrypt/privateDecrypt.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/public-encrypt/privateDecrypt.js
rename to src/third_party/devtools/node_modules/public-encrypt/privateDecrypt.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/public-encrypt/publicEncrypt.js b/src/third_party/devtools/node_modules/public-encrypt/publicEncrypt.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/public-encrypt/publicEncrypt.js
rename to src/third_party/devtools/node_modules/public-encrypt/publicEncrypt.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/public-encrypt/readme.md b/src/third_party/devtools/node_modules/public-encrypt/readme.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/public-encrypt/readme.md
rename to src/third_party/devtools/node_modules/public-encrypt/readme.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/public-encrypt/test/1024.priv b/src/third_party/devtools/node_modules/public-encrypt/test/1024.priv
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/public-encrypt/test/1024.priv
rename to src/third_party/devtools/node_modules/public-encrypt/test/1024.priv
diff --git a/src/cobalt/debug/remote/devtools/node_modules/public-encrypt/test/1024.pub b/src/third_party/devtools/node_modules/public-encrypt/test/1024.pub
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/public-encrypt/test/1024.pub
rename to src/third_party/devtools/node_modules/public-encrypt/test/1024.pub
diff --git a/src/cobalt/debug/remote/devtools/node_modules/public-encrypt/test/ec.pass.priv b/src/third_party/devtools/node_modules/public-encrypt/test/ec.pass.priv
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/public-encrypt/test/ec.pass.priv
rename to src/third_party/devtools/node_modules/public-encrypt/test/ec.pass.priv
diff --git a/src/cobalt/debug/remote/devtools/node_modules/public-encrypt/test/ec.priv b/src/third_party/devtools/node_modules/public-encrypt/test/ec.priv
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/public-encrypt/test/ec.priv
rename to src/third_party/devtools/node_modules/public-encrypt/test/ec.priv
diff --git a/src/cobalt/debug/remote/devtools/node_modules/public-encrypt/test/ec.pub b/src/third_party/devtools/node_modules/public-encrypt/test/ec.pub
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/public-encrypt/test/ec.pub
rename to src/third_party/devtools/node_modules/public-encrypt/test/ec.pub
diff --git a/src/cobalt/debug/remote/devtools/node_modules/public-encrypt/test/index.js b/src/third_party/devtools/node_modules/public-encrypt/test/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/public-encrypt/test/index.js
rename to src/third_party/devtools/node_modules/public-encrypt/test/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/public-encrypt/test/nodeTests.js b/src/third_party/devtools/node_modules/public-encrypt/test/nodeTests.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/public-encrypt/test/nodeTests.js
rename to src/third_party/devtools/node_modules/public-encrypt/test/nodeTests.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/public-encrypt/test/pass.1024.priv b/src/third_party/devtools/node_modules/public-encrypt/test/pass.1024.priv
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/public-encrypt/test/pass.1024.priv
rename to src/third_party/devtools/node_modules/public-encrypt/test/pass.1024.priv
diff --git a/src/cobalt/debug/remote/devtools/node_modules/public-encrypt/test/pass.1024.pub b/src/third_party/devtools/node_modules/public-encrypt/test/pass.1024.pub
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/public-encrypt/test/pass.1024.pub
rename to src/third_party/devtools/node_modules/public-encrypt/test/pass.1024.pub
diff --git a/src/cobalt/debug/remote/devtools/node_modules/public-encrypt/test/rsa.1024.priv b/src/third_party/devtools/node_modules/public-encrypt/test/rsa.1024.priv
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/public-encrypt/test/rsa.1024.priv
rename to src/third_party/devtools/node_modules/public-encrypt/test/rsa.1024.priv
diff --git a/src/cobalt/debug/remote/devtools/node_modules/public-encrypt/test/rsa.1024.pub b/src/third_party/devtools/node_modules/public-encrypt/test/rsa.1024.pub
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/public-encrypt/test/rsa.1024.pub
rename to src/third_party/devtools/node_modules/public-encrypt/test/rsa.1024.pub
diff --git a/src/cobalt/debug/remote/devtools/node_modules/public-encrypt/test/rsa.2028.priv b/src/third_party/devtools/node_modules/public-encrypt/test/rsa.2028.priv
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/public-encrypt/test/rsa.2028.priv
rename to src/third_party/devtools/node_modules/public-encrypt/test/rsa.2028.priv
diff --git a/src/cobalt/debug/remote/devtools/node_modules/public-encrypt/test/rsa.2028.pub b/src/third_party/devtools/node_modules/public-encrypt/test/rsa.2028.pub
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/public-encrypt/test/rsa.2028.pub
rename to src/third_party/devtools/node_modules/public-encrypt/test/rsa.2028.pub
diff --git a/src/cobalt/debug/remote/devtools/node_modules/public-encrypt/test/rsa.pass.priv b/src/third_party/devtools/node_modules/public-encrypt/test/rsa.pass.priv
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/public-encrypt/test/rsa.pass.priv
rename to src/third_party/devtools/node_modules/public-encrypt/test/rsa.pass.priv
diff --git a/src/cobalt/debug/remote/devtools/node_modules/public-encrypt/test/rsa.pass.pub b/src/third_party/devtools/node_modules/public-encrypt/test/rsa.pass.pub
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/public-encrypt/test/rsa.pass.pub
rename to src/third_party/devtools/node_modules/public-encrypt/test/rsa.pass.pub
diff --git a/src/cobalt/debug/remote/devtools/node_modules/public-encrypt/test/test_cert.pem b/src/third_party/devtools/node_modules/public-encrypt/test/test_cert.pem
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/public-encrypt/test/test_cert.pem
rename to src/third_party/devtools/node_modules/public-encrypt/test/test_cert.pem
diff --git a/src/cobalt/debug/remote/devtools/node_modules/public-encrypt/test/test_key.pem b/src/third_party/devtools/node_modules/public-encrypt/test/test_key.pem
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/public-encrypt/test/test_key.pem
rename to src/third_party/devtools/node_modules/public-encrypt/test/test_key.pem
diff --git a/src/cobalt/debug/remote/devtools/node_modules/public-encrypt/test/test_rsa_privkey.pem b/src/third_party/devtools/node_modules/public-encrypt/test/test_rsa_privkey.pem
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/public-encrypt/test/test_rsa_privkey.pem
rename to src/third_party/devtools/node_modules/public-encrypt/test/test_rsa_privkey.pem
diff --git a/src/cobalt/debug/remote/devtools/node_modules/public-encrypt/test/test_rsa_privkey_encrypted.pem b/src/third_party/devtools/node_modules/public-encrypt/test/test_rsa_privkey_encrypted.pem
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/public-encrypt/test/test_rsa_privkey_encrypted.pem
rename to src/third_party/devtools/node_modules/public-encrypt/test/test_rsa_privkey_encrypted.pem
diff --git a/src/cobalt/debug/remote/devtools/node_modules/public-encrypt/test/test_rsa_pubkey.pem b/src/third_party/devtools/node_modules/public-encrypt/test/test_rsa_pubkey.pem
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/public-encrypt/test/test_rsa_pubkey.pem
rename to src/third_party/devtools/node_modules/public-encrypt/test/test_rsa_pubkey.pem
diff --git a/src/cobalt/debug/remote/devtools/node_modules/public-encrypt/withPublic.js b/src/third_party/devtools/node_modules/public-encrypt/withPublic.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/public-encrypt/withPublic.js
rename to src/third_party/devtools/node_modules/public-encrypt/withPublic.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/public-encrypt/xor.js b/src/third_party/devtools/node_modules/public-encrypt/xor.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/public-encrypt/xor.js
rename to src/third_party/devtools/node_modules/public-encrypt/xor.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/pump/.travis.yml b/src/third_party/devtools/node_modules/pump/.travis.yml
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/pump/.travis.yml
rename to src/third_party/devtools/node_modules/pump/.travis.yml
diff --git a/src/cobalt/debug/remote/devtools/node_modules/pump/LICENSE b/src/third_party/devtools/node_modules/pump/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/pump/LICENSE
rename to src/third_party/devtools/node_modules/pump/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/pump/README.md b/src/third_party/devtools/node_modules/pump/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/pump/README.md
rename to src/third_party/devtools/node_modules/pump/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/pump/index.js b/src/third_party/devtools/node_modules/pump/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/pump/index.js
rename to src/third_party/devtools/node_modules/pump/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/pump/package.json b/src/third_party/devtools/node_modules/pump/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/pump/package.json
rename to src/third_party/devtools/node_modules/pump/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/pump/test-browser.js b/src/third_party/devtools/node_modules/pump/test-browser.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/pump/test-browser.js
rename to src/third_party/devtools/node_modules/pump/test-browser.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/pump/test-node.js b/src/third_party/devtools/node_modules/pump/test-node.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/pump/test-node.js
rename to src/third_party/devtools/node_modules/pump/test-node.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/punycode/LICENSE-MIT.txt b/src/third_party/devtools/node_modules/punycode/LICENSE-MIT.txt
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/punycode/LICENSE-MIT.txt
rename to src/third_party/devtools/node_modules/punycode/LICENSE-MIT.txt
diff --git a/src/cobalt/debug/remote/devtools/node_modules/punycode/README.md b/src/third_party/devtools/node_modules/punycode/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/punycode/README.md
rename to src/third_party/devtools/node_modules/punycode/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/punycode/package.json b/src/third_party/devtools/node_modules/punycode/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/punycode/package.json
rename to src/third_party/devtools/node_modules/punycode/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/punycode/punycode.es6.js b/src/third_party/devtools/node_modules/punycode/punycode.es6.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/punycode/punycode.es6.js
rename to src/third_party/devtools/node_modules/punycode/punycode.es6.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/punycode/punycode.js b/src/third_party/devtools/node_modules/punycode/punycode.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/punycode/punycode.js
rename to src/third_party/devtools/node_modules/punycode/punycode.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/puppeteer/CONTRIBUTING.md b/src/third_party/devtools/node_modules/puppeteer/CONTRIBUTING.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/puppeteer/CONTRIBUTING.md
rename to src/third_party/devtools/node_modules/puppeteer/CONTRIBUTING.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/puppeteer/DeviceDescriptors.js b/src/third_party/devtools/node_modules/puppeteer/DeviceDescriptors.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/puppeteer/DeviceDescriptors.js
rename to src/third_party/devtools/node_modules/puppeteer/DeviceDescriptors.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/puppeteer/Errors.js b/src/third_party/devtools/node_modules/puppeteer/Errors.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/puppeteer/Errors.js
rename to src/third_party/devtools/node_modules/puppeteer/Errors.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/puppeteer/LICENSE b/src/third_party/devtools/node_modules/puppeteer/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/puppeteer/LICENSE
rename to src/third_party/devtools/node_modules/puppeteer/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/puppeteer/README.md b/src/third_party/devtools/node_modules/puppeteer/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/puppeteer/README.md
rename to src/third_party/devtools/node_modules/puppeteer/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/puppeteer/index.js b/src/third_party/devtools/node_modules/puppeteer/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/puppeteer/index.js
rename to src/third_party/devtools/node_modules/puppeteer/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/puppeteer/install.js b/src/third_party/devtools/node_modules/puppeteer/install.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/puppeteer/install.js
rename to src/third_party/devtools/node_modules/puppeteer/install.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/puppeteer/lib/Accessibility.js b/src/third_party/devtools/node_modules/puppeteer/lib/Accessibility.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/puppeteer/lib/Accessibility.js
rename to src/third_party/devtools/node_modules/puppeteer/lib/Accessibility.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/puppeteer/lib/Browser.js b/src/third_party/devtools/node_modules/puppeteer/lib/Browser.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/puppeteer/lib/Browser.js
rename to src/third_party/devtools/node_modules/puppeteer/lib/Browser.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/puppeteer/lib/BrowserFetcher.js b/src/third_party/devtools/node_modules/puppeteer/lib/BrowserFetcher.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/puppeteer/lib/BrowserFetcher.js
rename to src/third_party/devtools/node_modules/puppeteer/lib/BrowserFetcher.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/puppeteer/lib/Connection.js b/src/third_party/devtools/node_modules/puppeteer/lib/Connection.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/puppeteer/lib/Connection.js
rename to src/third_party/devtools/node_modules/puppeteer/lib/Connection.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/puppeteer/lib/Coverage.js b/src/third_party/devtools/node_modules/puppeteer/lib/Coverage.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/puppeteer/lib/Coverage.js
rename to src/third_party/devtools/node_modules/puppeteer/lib/Coverage.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/puppeteer/lib/DOMWorld.js b/src/third_party/devtools/node_modules/puppeteer/lib/DOMWorld.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/puppeteer/lib/DOMWorld.js
rename to src/third_party/devtools/node_modules/puppeteer/lib/DOMWorld.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/puppeteer/lib/DeviceDescriptors.js b/src/third_party/devtools/node_modules/puppeteer/lib/DeviceDescriptors.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/puppeteer/lib/DeviceDescriptors.js
rename to src/third_party/devtools/node_modules/puppeteer/lib/DeviceDescriptors.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/puppeteer/lib/Dialog.js b/src/third_party/devtools/node_modules/puppeteer/lib/Dialog.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/puppeteer/lib/Dialog.js
rename to src/third_party/devtools/node_modules/puppeteer/lib/Dialog.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/puppeteer/lib/EmulationManager.js b/src/third_party/devtools/node_modules/puppeteer/lib/EmulationManager.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/puppeteer/lib/EmulationManager.js
rename to src/third_party/devtools/node_modules/puppeteer/lib/EmulationManager.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/puppeteer/lib/Errors.js b/src/third_party/devtools/node_modules/puppeteer/lib/Errors.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/puppeteer/lib/Errors.js
rename to src/third_party/devtools/node_modules/puppeteer/lib/Errors.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/puppeteer/lib/Events.js b/src/third_party/devtools/node_modules/puppeteer/lib/Events.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/puppeteer/lib/Events.js
rename to src/third_party/devtools/node_modules/puppeteer/lib/Events.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/puppeteer/lib/ExecutionContext.js b/src/third_party/devtools/node_modules/puppeteer/lib/ExecutionContext.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/puppeteer/lib/ExecutionContext.js
rename to src/third_party/devtools/node_modules/puppeteer/lib/ExecutionContext.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/puppeteer/lib/FrameManager.js b/src/third_party/devtools/node_modules/puppeteer/lib/FrameManager.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/puppeteer/lib/FrameManager.js
rename to src/third_party/devtools/node_modules/puppeteer/lib/FrameManager.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/puppeteer/lib/Input.js b/src/third_party/devtools/node_modules/puppeteer/lib/Input.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/puppeteer/lib/Input.js
rename to src/third_party/devtools/node_modules/puppeteer/lib/Input.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/puppeteer/lib/JSHandle.js b/src/third_party/devtools/node_modules/puppeteer/lib/JSHandle.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/puppeteer/lib/JSHandle.js
rename to src/third_party/devtools/node_modules/puppeteer/lib/JSHandle.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/puppeteer/lib/Launcher.js b/src/third_party/devtools/node_modules/puppeteer/lib/Launcher.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/puppeteer/lib/Launcher.js
rename to src/third_party/devtools/node_modules/puppeteer/lib/Launcher.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/puppeteer/lib/LifecycleWatcher.js b/src/third_party/devtools/node_modules/puppeteer/lib/LifecycleWatcher.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/puppeteer/lib/LifecycleWatcher.js
rename to src/third_party/devtools/node_modules/puppeteer/lib/LifecycleWatcher.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/puppeteer/lib/Multimap.js b/src/third_party/devtools/node_modules/puppeteer/lib/Multimap.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/puppeteer/lib/Multimap.js
rename to src/third_party/devtools/node_modules/puppeteer/lib/Multimap.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/puppeteer/lib/NetworkManager.js b/src/third_party/devtools/node_modules/puppeteer/lib/NetworkManager.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/puppeteer/lib/NetworkManager.js
rename to src/third_party/devtools/node_modules/puppeteer/lib/NetworkManager.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/puppeteer/lib/Page.js b/src/third_party/devtools/node_modules/puppeteer/lib/Page.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/puppeteer/lib/Page.js
rename to src/third_party/devtools/node_modules/puppeteer/lib/Page.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/puppeteer/lib/PipeTransport.js b/src/third_party/devtools/node_modules/puppeteer/lib/PipeTransport.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/puppeteer/lib/PipeTransport.js
rename to src/third_party/devtools/node_modules/puppeteer/lib/PipeTransport.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/puppeteer/lib/Puppeteer.js b/src/third_party/devtools/node_modules/puppeteer/lib/Puppeteer.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/puppeteer/lib/Puppeteer.js
rename to src/third_party/devtools/node_modules/puppeteer/lib/Puppeteer.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/puppeteer/lib/Target.js b/src/third_party/devtools/node_modules/puppeteer/lib/Target.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/puppeteer/lib/Target.js
rename to src/third_party/devtools/node_modules/puppeteer/lib/Target.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/puppeteer/lib/TaskQueue.js b/src/third_party/devtools/node_modules/puppeteer/lib/TaskQueue.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/puppeteer/lib/TaskQueue.js
rename to src/third_party/devtools/node_modules/puppeteer/lib/TaskQueue.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/puppeteer/lib/TimeoutSettings.js b/src/third_party/devtools/node_modules/puppeteer/lib/TimeoutSettings.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/puppeteer/lib/TimeoutSettings.js
rename to src/third_party/devtools/node_modules/puppeteer/lib/TimeoutSettings.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/puppeteer/lib/Tracing.js b/src/third_party/devtools/node_modules/puppeteer/lib/Tracing.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/puppeteer/lib/Tracing.js
rename to src/third_party/devtools/node_modules/puppeteer/lib/Tracing.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/puppeteer/lib/USKeyboardLayout.js b/src/third_party/devtools/node_modules/puppeteer/lib/USKeyboardLayout.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/puppeteer/lib/USKeyboardLayout.js
rename to src/third_party/devtools/node_modules/puppeteer/lib/USKeyboardLayout.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/puppeteer/lib/WebSocketTransport.js b/src/third_party/devtools/node_modules/puppeteer/lib/WebSocketTransport.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/puppeteer/lib/WebSocketTransport.js
rename to src/third_party/devtools/node_modules/puppeteer/lib/WebSocketTransport.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/puppeteer/lib/Worker.js b/src/third_party/devtools/node_modules/puppeteer/lib/Worker.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/puppeteer/lib/Worker.js
rename to src/third_party/devtools/node_modules/puppeteer/lib/Worker.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/puppeteer/lib/api.js b/src/third_party/devtools/node_modules/puppeteer/lib/api.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/puppeteer/lib/api.js
rename to src/third_party/devtools/node_modules/puppeteer/lib/api.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/puppeteer/lib/helper.js b/src/third_party/devtools/node_modules/puppeteer/lib/helper.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/puppeteer/lib/helper.js
rename to src/third_party/devtools/node_modules/puppeteer/lib/helper.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/puppeteer/node_modules/ws/LICENSE b/src/third_party/devtools/node_modules/puppeteer/node_modules/ws/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/puppeteer/node_modules/ws/LICENSE
rename to src/third_party/devtools/node_modules/puppeteer/node_modules/ws/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/puppeteer/node_modules/ws/README.md b/src/third_party/devtools/node_modules/puppeteer/node_modules/ws/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/puppeteer/node_modules/ws/README.md
rename to src/third_party/devtools/node_modules/puppeteer/node_modules/ws/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/puppeteer/node_modules/ws/browser.js b/src/third_party/devtools/node_modules/puppeteer/node_modules/ws/browser.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/puppeteer/node_modules/ws/browser.js
rename to src/third_party/devtools/node_modules/puppeteer/node_modules/ws/browser.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/puppeteer/node_modules/ws/index.js b/src/third_party/devtools/node_modules/puppeteer/node_modules/ws/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/puppeteer/node_modules/ws/index.js
rename to src/third_party/devtools/node_modules/puppeteer/node_modules/ws/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/puppeteer/node_modules/ws/lib/buffer-util.js b/src/third_party/devtools/node_modules/puppeteer/node_modules/ws/lib/buffer-util.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/puppeteer/node_modules/ws/lib/buffer-util.js
rename to src/third_party/devtools/node_modules/puppeteer/node_modules/ws/lib/buffer-util.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/puppeteer/node_modules/ws/lib/constants.js b/src/third_party/devtools/node_modules/puppeteer/node_modules/ws/lib/constants.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/puppeteer/node_modules/ws/lib/constants.js
rename to src/third_party/devtools/node_modules/puppeteer/node_modules/ws/lib/constants.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/puppeteer/node_modules/ws/lib/event-target.js b/src/third_party/devtools/node_modules/puppeteer/node_modules/ws/lib/event-target.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/puppeteer/node_modules/ws/lib/event-target.js
rename to src/third_party/devtools/node_modules/puppeteer/node_modules/ws/lib/event-target.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/puppeteer/node_modules/ws/lib/extension.js b/src/third_party/devtools/node_modules/puppeteer/node_modules/ws/lib/extension.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/puppeteer/node_modules/ws/lib/extension.js
rename to src/third_party/devtools/node_modules/puppeteer/node_modules/ws/lib/extension.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/puppeteer/node_modules/ws/lib/permessage-deflate.js b/src/third_party/devtools/node_modules/puppeteer/node_modules/ws/lib/permessage-deflate.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/puppeteer/node_modules/ws/lib/permessage-deflate.js
rename to src/third_party/devtools/node_modules/puppeteer/node_modules/ws/lib/permessage-deflate.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/puppeteer/node_modules/ws/lib/receiver.js b/src/third_party/devtools/node_modules/puppeteer/node_modules/ws/lib/receiver.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/puppeteer/node_modules/ws/lib/receiver.js
rename to src/third_party/devtools/node_modules/puppeteer/node_modules/ws/lib/receiver.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/puppeteer/node_modules/ws/lib/sender.js b/src/third_party/devtools/node_modules/puppeteer/node_modules/ws/lib/sender.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/puppeteer/node_modules/ws/lib/sender.js
rename to src/third_party/devtools/node_modules/puppeteer/node_modules/ws/lib/sender.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/puppeteer/node_modules/ws/lib/validation.js b/src/third_party/devtools/node_modules/puppeteer/node_modules/ws/lib/validation.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/puppeteer/node_modules/ws/lib/validation.js
rename to src/third_party/devtools/node_modules/puppeteer/node_modules/ws/lib/validation.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/puppeteer/node_modules/ws/lib/websocket-server.js b/src/third_party/devtools/node_modules/puppeteer/node_modules/ws/lib/websocket-server.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/puppeteer/node_modules/ws/lib/websocket-server.js
rename to src/third_party/devtools/node_modules/puppeteer/node_modules/ws/lib/websocket-server.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/puppeteer/node_modules/ws/lib/websocket.js b/src/third_party/devtools/node_modules/puppeteer/node_modules/ws/lib/websocket.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/puppeteer/node_modules/ws/lib/websocket.js
rename to src/third_party/devtools/node_modules/puppeteer/node_modules/ws/lib/websocket.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/puppeteer/node_modules/ws/package.json b/src/third_party/devtools/node_modules/puppeteer/node_modules/ws/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/puppeteer/node_modules/ws/package.json
rename to src/third_party/devtools/node_modules/puppeteer/node_modules/ws/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/puppeteer/package.json b/src/third_party/devtools/node_modules/puppeteer/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/puppeteer/package.json
rename to src/third_party/devtools/node_modules/puppeteer/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/qjobs/.travis.yml b/src/third_party/devtools/node_modules/qjobs/.travis.yml
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/qjobs/.travis.yml
rename to src/third_party/devtools/node_modules/qjobs/.travis.yml
diff --git a/src/cobalt/debug/remote/devtools/node_modules/qjobs/LICENCE b/src/third_party/devtools/node_modules/qjobs/LICENCE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/qjobs/LICENCE
rename to src/third_party/devtools/node_modules/qjobs/LICENCE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/qjobs/Makefile b/src/third_party/devtools/node_modules/qjobs/Makefile
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/qjobs/Makefile
rename to src/third_party/devtools/node_modules/qjobs/Makefile
diff --git a/src/cobalt/debug/remote/devtools/node_modules/qjobs/Readme.md b/src/third_party/devtools/node_modules/qjobs/Readme.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/qjobs/Readme.md
rename to src/third_party/devtools/node_modules/qjobs/Readme.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/qjobs/examples/simple.js b/src/third_party/devtools/node_modules/qjobs/examples/simple.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/qjobs/examples/simple.js
rename to src/third_party/devtools/node_modules/qjobs/examples/simple.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/qjobs/package.json b/src/third_party/devtools/node_modules/qjobs/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/qjobs/package.json
rename to src/third_party/devtools/node_modules/qjobs/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/qjobs/qjobs.js b/src/third_party/devtools/node_modules/qjobs/qjobs.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/qjobs/qjobs.js
rename to src/third_party/devtools/node_modules/qjobs/qjobs.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/qjobs/tests/abort.js b/src/third_party/devtools/node_modules/qjobs/tests/abort.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/qjobs/tests/abort.js
rename to src/third_party/devtools/node_modules/qjobs/tests/abort.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/qjobs/tests/basic.js b/src/third_party/devtools/node_modules/qjobs/tests/basic.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/qjobs/tests/basic.js
rename to src/third_party/devtools/node_modules/qjobs/tests/basic.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/qjobs/tests/events.js b/src/third_party/devtools/node_modules/qjobs/tests/events.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/qjobs/tests/events.js
rename to src/third_party/devtools/node_modules/qjobs/tests/events.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/qjobs/tests/interval.js b/src/third_party/devtools/node_modules/qjobs/tests/interval.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/qjobs/tests/interval.js
rename to src/third_party/devtools/node_modules/qjobs/tests/interval.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/qjobs/tests/pause.js b/src/third_party/devtools/node_modules/qjobs/tests/pause.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/qjobs/tests/pause.js
rename to src/third_party/devtools/node_modules/qjobs/tests/pause.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/qs/.editorconfig b/src/third_party/devtools/node_modules/qs/.editorconfig
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/qs/.editorconfig
rename to src/third_party/devtools/node_modules/qs/.editorconfig
diff --git a/src/cobalt/debug/remote/devtools/node_modules/qs/.eslintignore b/src/third_party/devtools/node_modules/qs/.eslintignore
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/qs/.eslintignore
rename to src/third_party/devtools/node_modules/qs/.eslintignore
diff --git a/src/cobalt/debug/remote/devtools/node_modules/qs/.eslintrc b/src/third_party/devtools/node_modules/qs/.eslintrc
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/qs/.eslintrc
rename to src/third_party/devtools/node_modules/qs/.eslintrc
diff --git a/src/cobalt/debug/remote/devtools/node_modules/qs/CHANGELOG.md b/src/third_party/devtools/node_modules/qs/CHANGELOG.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/qs/CHANGELOG.md
rename to src/third_party/devtools/node_modules/qs/CHANGELOG.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/qs/LICENSE b/src/third_party/devtools/node_modules/qs/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/qs/LICENSE
rename to src/third_party/devtools/node_modules/qs/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/qs/README.md b/src/third_party/devtools/node_modules/qs/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/qs/README.md
rename to src/third_party/devtools/node_modules/qs/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/qs/dist/qs.js b/src/third_party/devtools/node_modules/qs/dist/qs.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/qs/dist/qs.js
rename to src/third_party/devtools/node_modules/qs/dist/qs.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/qs/lib/formats.js b/src/third_party/devtools/node_modules/qs/lib/formats.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/qs/lib/formats.js
rename to src/third_party/devtools/node_modules/qs/lib/formats.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/qs/lib/index.js b/src/third_party/devtools/node_modules/qs/lib/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/qs/lib/index.js
rename to src/third_party/devtools/node_modules/qs/lib/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/qs/lib/parse.js b/src/third_party/devtools/node_modules/qs/lib/parse.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/qs/lib/parse.js
rename to src/third_party/devtools/node_modules/qs/lib/parse.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/qs/lib/stringify.js b/src/third_party/devtools/node_modules/qs/lib/stringify.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/qs/lib/stringify.js
rename to src/third_party/devtools/node_modules/qs/lib/stringify.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/qs/lib/utils.js b/src/third_party/devtools/node_modules/qs/lib/utils.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/qs/lib/utils.js
rename to src/third_party/devtools/node_modules/qs/lib/utils.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/qs/package.json b/src/third_party/devtools/node_modules/qs/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/qs/package.json
rename to src/third_party/devtools/node_modules/qs/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/qs/test/.eslintrc b/src/third_party/devtools/node_modules/qs/test/.eslintrc
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/qs/test/.eslintrc
rename to src/third_party/devtools/node_modules/qs/test/.eslintrc
diff --git a/src/cobalt/debug/remote/devtools/node_modules/qs/test/index.js b/src/third_party/devtools/node_modules/qs/test/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/qs/test/index.js
rename to src/third_party/devtools/node_modules/qs/test/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/qs/test/parse.js b/src/third_party/devtools/node_modules/qs/test/parse.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/qs/test/parse.js
rename to src/third_party/devtools/node_modules/qs/test/parse.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/qs/test/stringify.js b/src/third_party/devtools/node_modules/qs/test/stringify.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/qs/test/stringify.js
rename to src/third_party/devtools/node_modules/qs/test/stringify.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/qs/test/utils.js b/src/third_party/devtools/node_modules/qs/test/utils.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/qs/test/utils.js
rename to src/third_party/devtools/node_modules/qs/test/utils.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/querystring-es3/.travis.yml b/src/third_party/devtools/node_modules/querystring-es3/.travis.yml
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/querystring-es3/.travis.yml
rename to src/third_party/devtools/node_modules/querystring-es3/.travis.yml
diff --git a/src/cobalt/debug/remote/devtools/node_modules/querystring-es3/History.md b/src/third_party/devtools/node_modules/querystring-es3/History.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/querystring-es3/History.md
rename to src/third_party/devtools/node_modules/querystring-es3/History.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/querystring-es3/License.md b/src/third_party/devtools/node_modules/querystring-es3/License.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/querystring-es3/License.md
rename to src/third_party/devtools/node_modules/querystring-es3/License.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/querystring-es3/Readme.md b/src/third_party/devtools/node_modules/querystring-es3/Readme.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/querystring-es3/Readme.md
rename to src/third_party/devtools/node_modules/querystring-es3/Readme.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/querystring-es3/decode.js b/src/third_party/devtools/node_modules/querystring-es3/decode.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/querystring-es3/decode.js
rename to src/third_party/devtools/node_modules/querystring-es3/decode.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/querystring-es3/encode.js b/src/third_party/devtools/node_modules/querystring-es3/encode.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/querystring-es3/encode.js
rename to src/third_party/devtools/node_modules/querystring-es3/encode.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/querystring-es3/index.js b/src/third_party/devtools/node_modules/querystring-es3/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/querystring-es3/index.js
rename to src/third_party/devtools/node_modules/querystring-es3/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/querystring-es3/package.json b/src/third_party/devtools/node_modules/querystring-es3/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/querystring-es3/package.json
rename to src/third_party/devtools/node_modules/querystring-es3/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/querystring-es3/test/common-index.js b/src/third_party/devtools/node_modules/querystring-es3/test/common-index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/querystring-es3/test/common-index.js
rename to src/third_party/devtools/node_modules/querystring-es3/test/common-index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/querystring-es3/test/index.js b/src/third_party/devtools/node_modules/querystring-es3/test/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/querystring-es3/test/index.js
rename to src/third_party/devtools/node_modules/querystring-es3/test/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/querystring-es3/test/tap-index.js b/src/third_party/devtools/node_modules/querystring-es3/test/tap-index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/querystring-es3/test/tap-index.js
rename to src/third_party/devtools/node_modules/querystring-es3/test/tap-index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/querystring/.travis.yml b/src/third_party/devtools/node_modules/querystring/.travis.yml
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/querystring/.travis.yml
rename to src/third_party/devtools/node_modules/querystring/.travis.yml
diff --git a/src/cobalt/debug/remote/devtools/node_modules/querystring/History.md b/src/third_party/devtools/node_modules/querystring/History.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/querystring/History.md
rename to src/third_party/devtools/node_modules/querystring/History.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/querystring/License.md b/src/third_party/devtools/node_modules/querystring/License.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/querystring/License.md
rename to src/third_party/devtools/node_modules/querystring/License.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/querystring/Readme.md b/src/third_party/devtools/node_modules/querystring/Readme.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/querystring/Readme.md
rename to src/third_party/devtools/node_modules/querystring/Readme.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/querystring/decode.js b/src/third_party/devtools/node_modules/querystring/decode.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/querystring/decode.js
rename to src/third_party/devtools/node_modules/querystring/decode.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/querystring/encode.js b/src/third_party/devtools/node_modules/querystring/encode.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/querystring/encode.js
rename to src/third_party/devtools/node_modules/querystring/encode.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/querystring/index.js b/src/third_party/devtools/node_modules/querystring/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/querystring/index.js
rename to src/third_party/devtools/node_modules/querystring/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/querystring/package.json b/src/third_party/devtools/node_modules/querystring/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/querystring/package.json
rename to src/third_party/devtools/node_modules/querystring/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/querystring/test/common-index.js b/src/third_party/devtools/node_modules/querystring/test/common-index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/querystring/test/common-index.js
rename to src/third_party/devtools/node_modules/querystring/test/common-index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/querystring/test/index.js b/src/third_party/devtools/node_modules/querystring/test/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/querystring/test/index.js
rename to src/third_party/devtools/node_modules/querystring/test/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/querystring/test/tap-index.js b/src/third_party/devtools/node_modules/querystring/test/tap-index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/querystring/test/tap-index.js
rename to src/third_party/devtools/node_modules/querystring/test/tap-index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/randombytes/.travis.yml b/src/third_party/devtools/node_modules/randombytes/.travis.yml
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/randombytes/.travis.yml
rename to src/third_party/devtools/node_modules/randombytes/.travis.yml
diff --git a/src/cobalt/debug/remote/devtools/node_modules/randombytes/.zuul.yml b/src/third_party/devtools/node_modules/randombytes/.zuul.yml
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/randombytes/.zuul.yml
rename to src/third_party/devtools/node_modules/randombytes/.zuul.yml
diff --git a/src/cobalt/debug/remote/devtools/node_modules/randombytes/LICENSE b/src/third_party/devtools/node_modules/randombytes/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/randombytes/LICENSE
rename to src/third_party/devtools/node_modules/randombytes/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/randombytes/README.md b/src/third_party/devtools/node_modules/randombytes/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/randombytes/README.md
rename to src/third_party/devtools/node_modules/randombytes/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/randombytes/browser.js b/src/third_party/devtools/node_modules/randombytes/browser.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/randombytes/browser.js
rename to src/third_party/devtools/node_modules/randombytes/browser.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/randombytes/index.js b/src/third_party/devtools/node_modules/randombytes/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/randombytes/index.js
rename to src/third_party/devtools/node_modules/randombytes/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/randombytes/package.json b/src/third_party/devtools/node_modules/randombytes/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/randombytes/package.json
rename to src/third_party/devtools/node_modules/randombytes/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/randombytes/test.js b/src/third_party/devtools/node_modules/randombytes/test.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/randombytes/test.js
rename to src/third_party/devtools/node_modules/randombytes/test.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/randomfill/.travis.yml b/src/third_party/devtools/node_modules/randomfill/.travis.yml
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/randomfill/.travis.yml
rename to src/third_party/devtools/node_modules/randomfill/.travis.yml
diff --git a/src/cobalt/debug/remote/devtools/node_modules/randomfill/.zuul.yml b/src/third_party/devtools/node_modules/randomfill/.zuul.yml
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/randomfill/.zuul.yml
rename to src/third_party/devtools/node_modules/randomfill/.zuul.yml
diff --git a/src/cobalt/debug/remote/devtools/node_modules/randomfill/LICENSE b/src/third_party/devtools/node_modules/randomfill/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/randomfill/LICENSE
rename to src/third_party/devtools/node_modules/randomfill/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/randomfill/README.md b/src/third_party/devtools/node_modules/randomfill/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/randomfill/README.md
rename to src/third_party/devtools/node_modules/randomfill/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/randomfill/browser.js b/src/third_party/devtools/node_modules/randomfill/browser.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/randomfill/browser.js
rename to src/third_party/devtools/node_modules/randomfill/browser.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/randomfill/index.js b/src/third_party/devtools/node_modules/randomfill/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/randomfill/index.js
rename to src/third_party/devtools/node_modules/randomfill/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/randomfill/package.json b/src/third_party/devtools/node_modules/randomfill/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/randomfill/package.json
rename to src/third_party/devtools/node_modules/randomfill/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/randomfill/test.js b/src/third_party/devtools/node_modules/randomfill/test.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/randomfill/test.js
rename to src/third_party/devtools/node_modules/randomfill/test.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/range-parser/HISTORY.md b/src/third_party/devtools/node_modules/range-parser/HISTORY.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/range-parser/HISTORY.md
rename to src/third_party/devtools/node_modules/range-parser/HISTORY.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/range-parser/LICENSE b/src/third_party/devtools/node_modules/range-parser/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/range-parser/LICENSE
rename to src/third_party/devtools/node_modules/range-parser/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/range-parser/README.md b/src/third_party/devtools/node_modules/range-parser/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/range-parser/README.md
rename to src/third_party/devtools/node_modules/range-parser/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/range-parser/index.js b/src/third_party/devtools/node_modules/range-parser/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/range-parser/index.js
rename to src/third_party/devtools/node_modules/range-parser/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/range-parser/package.json b/src/third_party/devtools/node_modules/range-parser/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/range-parser/package.json
rename to src/third_party/devtools/node_modules/range-parser/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/raw-body/HISTORY.md b/src/third_party/devtools/node_modules/raw-body/HISTORY.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/raw-body/HISTORY.md
rename to src/third_party/devtools/node_modules/raw-body/HISTORY.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/raw-body/LICENSE b/src/third_party/devtools/node_modules/raw-body/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/raw-body/LICENSE
rename to src/third_party/devtools/node_modules/raw-body/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/raw-body/README.md b/src/third_party/devtools/node_modules/raw-body/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/raw-body/README.md
rename to src/third_party/devtools/node_modules/raw-body/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/raw-body/index.d.ts b/src/third_party/devtools/node_modules/raw-body/index.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/raw-body/index.d.ts
rename to src/third_party/devtools/node_modules/raw-body/index.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/raw-body/index.js b/src/third_party/devtools/node_modules/raw-body/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/raw-body/index.js
rename to src/third_party/devtools/node_modules/raw-body/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/raw-body/package.json b/src/third_party/devtools/node_modules/raw-body/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/raw-body/package.json
rename to src/third_party/devtools/node_modules/raw-body/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/read-installed/.npmignore b/src/third_party/devtools/node_modules/read-installed/.npmignore
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/read-installed/.npmignore
rename to src/third_party/devtools/node_modules/read-installed/.npmignore
diff --git a/src/cobalt/debug/remote/devtools/node_modules/read-installed/.travis.yml b/src/third_party/devtools/node_modules/read-installed/.travis.yml
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/read-installed/.travis.yml
rename to src/third_party/devtools/node_modules/read-installed/.travis.yml
diff --git a/src/cobalt/debug/remote/devtools/node_modules/read-installed/LICENSE b/src/third_party/devtools/node_modules/read-installed/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/read-installed/LICENSE
rename to src/third_party/devtools/node_modules/read-installed/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/read-installed/README.md b/src/third_party/devtools/node_modules/read-installed/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/read-installed/README.md
rename to src/third_party/devtools/node_modules/read-installed/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/read-installed/package.json b/src/third_party/devtools/node_modules/read-installed/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/read-installed/package.json
rename to src/third_party/devtools/node_modules/read-installed/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/read-installed/read-installed.js b/src/third_party/devtools/node_modules/read-installed/read-installed.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/read-installed/read-installed.js
rename to src/third_party/devtools/node_modules/read-installed/read-installed.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/read-installed/test/basic.js b/src/third_party/devtools/node_modules/read-installed/test/basic.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/read-installed/test/basic.js
rename to src/third_party/devtools/node_modules/read-installed/test/basic.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/read-installed/test/cyclic-extraneous-peer-deps.js b/src/third_party/devtools/node_modules/read-installed/test/cyclic-extraneous-peer-deps.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/read-installed/test/cyclic-extraneous-peer-deps.js
rename to src/third_party/devtools/node_modules/read-installed/test/cyclic-extraneous-peer-deps.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/read-installed/test/depth-0.js b/src/third_party/devtools/node_modules/read-installed/test/depth-0.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/read-installed/test/depth-0.js
rename to src/third_party/devtools/node_modules/read-installed/test/depth-0.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/read-installed/test/depth-1.js b/src/third_party/devtools/node_modules/read-installed/test/depth-1.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/read-installed/test/depth-1.js
rename to src/third_party/devtools/node_modules/read-installed/test/depth-1.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/read-installed/test/dev.js b/src/third_party/devtools/node_modules/read-installed/test/dev.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/read-installed/test/dev.js
rename to src/third_party/devtools/node_modules/read-installed/test/dev.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/read-installed/test/empty.js b/src/third_party/devtools/node_modules/read-installed/test/empty.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/read-installed/test/empty.js
rename to src/third_party/devtools/node_modules/read-installed/test/empty.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/read-installed/test/extraneous-dev.js b/src/third_party/devtools/node_modules/read-installed/test/extraneous-dev.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/read-installed/test/extraneous-dev.js
rename to src/third_party/devtools/node_modules/read-installed/test/extraneous-dev.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/read-installed/test/extraneous.js b/src/third_party/devtools/node_modules/read-installed/test/extraneous.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/read-installed/test/extraneous.js
rename to src/third_party/devtools/node_modules/read-installed/test/extraneous.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/read-installed/test/fixtures/extraneous-detected/package.json b/src/third_party/devtools/node_modules/read-installed/test/fixtures/extraneous-detected/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/read-installed/test/fixtures/extraneous-detected/package.json
rename to src/third_party/devtools/node_modules/read-installed/test/fixtures/extraneous-detected/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/read-installed/test/fixtures/extraneous-dev-dep/package.json b/src/third_party/devtools/node_modules/read-installed/test/fixtures/extraneous-dev-dep/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/read-installed/test/fixtures/extraneous-dev-dep/package.json
rename to src/third_party/devtools/node_modules/read-installed/test/fixtures/extraneous-dev-dep/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/read-installed/test/fixtures/grandparent-peer-dev/package.json b/src/third_party/devtools/node_modules/read-installed/test/fixtures/grandparent-peer-dev/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/read-installed/test/fixtures/grandparent-peer-dev/package.json
rename to src/third_party/devtools/node_modules/read-installed/test/fixtures/grandparent-peer-dev/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/read-installed/test/fixtures/grandparent-peer/package.json b/src/third_party/devtools/node_modules/read-installed/test/fixtures/grandparent-peer/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/read-installed/test/fixtures/grandparent-peer/package.json
rename to src/third_party/devtools/node_modules/read-installed/test/fixtures/grandparent-peer/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/read-installed/test/fixtures/package.json b/src/third_party/devtools/node_modules/read-installed/test/fixtures/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/read-installed/test/fixtures/package.json
rename to src/third_party/devtools/node_modules/read-installed/test/fixtures/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/read-installed/test/grandparent-peer-dev.js b/src/third_party/devtools/node_modules/read-installed/test/grandparent-peer-dev.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/read-installed/test/grandparent-peer-dev.js
rename to src/third_party/devtools/node_modules/read-installed/test/grandparent-peer-dev.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/read-installed/test/grandparent-peer.js b/src/third_party/devtools/node_modules/read-installed/test/grandparent-peer.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/read-installed/test/grandparent-peer.js
rename to src/third_party/devtools/node_modules/read-installed/test/grandparent-peer.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/read-installed/test/issue-40.js b/src/third_party/devtools/node_modules/read-installed/test/issue-40.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/read-installed/test/issue-40.js
rename to src/third_party/devtools/node_modules/read-installed/test/issue-40.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/read-installed/test/linked-dep-dev-deps-extraneous.js b/src/third_party/devtools/node_modules/read-installed/test/linked-dep-dev-deps-extraneous.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/read-installed/test/linked-dep-dev-deps-extraneous.js
rename to src/third_party/devtools/node_modules/read-installed/test/linked-dep-dev-deps-extraneous.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/read-installed/test/noargs.js b/src/third_party/devtools/node_modules/read-installed/test/noargs.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/read-installed/test/noargs.js
rename to src/third_party/devtools/node_modules/read-installed/test/noargs.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/read-installed/test/peer-dep-at-latest.js b/src/third_party/devtools/node_modules/read-installed/test/peer-dep-at-latest.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/read-installed/test/peer-dep-at-latest.js
rename to src/third_party/devtools/node_modules/read-installed/test/peer-dep-at-latest.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/read-package-json/CHANGELOG.md b/src/third_party/devtools/node_modules/read-package-json/CHANGELOG.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/read-package-json/CHANGELOG.md
rename to src/third_party/devtools/node_modules/read-package-json/CHANGELOG.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/read-package-json/LICENSE b/src/third_party/devtools/node_modules/read-package-json/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/read-package-json/LICENSE
rename to src/third_party/devtools/node_modules/read-package-json/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/read-package-json/README.md b/src/third_party/devtools/node_modules/read-package-json/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/read-package-json/README.md
rename to src/third_party/devtools/node_modules/read-package-json/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/read-package-json/package.json b/src/third_party/devtools/node_modules/read-package-json/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/read-package-json/package.json
rename to src/third_party/devtools/node_modules/read-package-json/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/read-package-json/read-json.js b/src/third_party/devtools/node_modules/read-package-json/read-json.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/read-package-json/read-json.js
rename to src/third_party/devtools/node_modules/read-package-json/read-json.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/read-pkg-up/index.js b/src/third_party/devtools/node_modules/read-pkg-up/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/read-pkg-up/index.js
rename to src/third_party/devtools/node_modules/read-pkg-up/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/read-pkg-up/license b/src/third_party/devtools/node_modules/read-pkg-up/license
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/read-pkg-up/license
rename to src/third_party/devtools/node_modules/read-pkg-up/license
diff --git a/src/cobalt/debug/remote/devtools/node_modules/read-pkg-up/package.json b/src/third_party/devtools/node_modules/read-pkg-up/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/read-pkg-up/package.json
rename to src/third_party/devtools/node_modules/read-pkg-up/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/read-pkg-up/readme.md b/src/third_party/devtools/node_modules/read-pkg-up/readme.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/read-pkg-up/readme.md
rename to src/third_party/devtools/node_modules/read-pkg-up/readme.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/read-pkg/index.js b/src/third_party/devtools/node_modules/read-pkg/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/read-pkg/index.js
rename to src/third_party/devtools/node_modules/read-pkg/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/read-pkg/license b/src/third_party/devtools/node_modules/read-pkg/license
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/read-pkg/license
rename to src/third_party/devtools/node_modules/read-pkg/license
diff --git a/src/cobalt/debug/remote/devtools/node_modules/read-pkg/package.json b/src/third_party/devtools/node_modules/read-pkg/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/read-pkg/package.json
rename to src/third_party/devtools/node_modules/read-pkg/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/read-pkg/readme.md b/src/third_party/devtools/node_modules/read-pkg/readme.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/read-pkg/readme.md
rename to src/third_party/devtools/node_modules/read-pkg/readme.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/readable-stream/CONTRIBUTING.md b/src/third_party/devtools/node_modules/readable-stream/CONTRIBUTING.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/readable-stream/CONTRIBUTING.md
rename to src/third_party/devtools/node_modules/readable-stream/CONTRIBUTING.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/readable-stream/GOVERNANCE.md b/src/third_party/devtools/node_modules/readable-stream/GOVERNANCE.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/readable-stream/GOVERNANCE.md
rename to src/third_party/devtools/node_modules/readable-stream/GOVERNANCE.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/readable-stream/LICENSE b/src/third_party/devtools/node_modules/readable-stream/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/readable-stream/LICENSE
rename to src/third_party/devtools/node_modules/readable-stream/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/readable-stream/README.md b/src/third_party/devtools/node_modules/readable-stream/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/readable-stream/README.md
rename to src/third_party/devtools/node_modules/readable-stream/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/readable-stream/errors-browser.js b/src/third_party/devtools/node_modules/readable-stream/errors-browser.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/readable-stream/errors-browser.js
rename to src/third_party/devtools/node_modules/readable-stream/errors-browser.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/readable-stream/errors.js b/src/third_party/devtools/node_modules/readable-stream/errors.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/readable-stream/errors.js
rename to src/third_party/devtools/node_modules/readable-stream/errors.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/readable-stream/experimentalWarning.js b/src/third_party/devtools/node_modules/readable-stream/experimentalWarning.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/readable-stream/experimentalWarning.js
rename to src/third_party/devtools/node_modules/readable-stream/experimentalWarning.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/readable-stream/lib/_stream_duplex.js b/src/third_party/devtools/node_modules/readable-stream/lib/_stream_duplex.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/readable-stream/lib/_stream_duplex.js
rename to src/third_party/devtools/node_modules/readable-stream/lib/_stream_duplex.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/readable-stream/lib/_stream_passthrough.js b/src/third_party/devtools/node_modules/readable-stream/lib/_stream_passthrough.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/readable-stream/lib/_stream_passthrough.js
rename to src/third_party/devtools/node_modules/readable-stream/lib/_stream_passthrough.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/readable-stream/lib/_stream_readable.js b/src/third_party/devtools/node_modules/readable-stream/lib/_stream_readable.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/readable-stream/lib/_stream_readable.js
rename to src/third_party/devtools/node_modules/readable-stream/lib/_stream_readable.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/readable-stream/lib/_stream_transform.js b/src/third_party/devtools/node_modules/readable-stream/lib/_stream_transform.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/readable-stream/lib/_stream_transform.js
rename to src/third_party/devtools/node_modules/readable-stream/lib/_stream_transform.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/readable-stream/lib/_stream_writable.js b/src/third_party/devtools/node_modules/readable-stream/lib/_stream_writable.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/readable-stream/lib/_stream_writable.js
rename to src/third_party/devtools/node_modules/readable-stream/lib/_stream_writable.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/readable-stream/lib/internal/streams/async_iterator.js b/src/third_party/devtools/node_modules/readable-stream/lib/internal/streams/async_iterator.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/readable-stream/lib/internal/streams/async_iterator.js
rename to src/third_party/devtools/node_modules/readable-stream/lib/internal/streams/async_iterator.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/readable-stream/lib/internal/streams/buffer_list.js b/src/third_party/devtools/node_modules/readable-stream/lib/internal/streams/buffer_list.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/readable-stream/lib/internal/streams/buffer_list.js
rename to src/third_party/devtools/node_modules/readable-stream/lib/internal/streams/buffer_list.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/readable-stream/lib/internal/streams/destroy.js b/src/third_party/devtools/node_modules/readable-stream/lib/internal/streams/destroy.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/readable-stream/lib/internal/streams/destroy.js
rename to src/third_party/devtools/node_modules/readable-stream/lib/internal/streams/destroy.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/readable-stream/lib/internal/streams/end-of-stream.js b/src/third_party/devtools/node_modules/readable-stream/lib/internal/streams/end-of-stream.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/readable-stream/lib/internal/streams/end-of-stream.js
rename to src/third_party/devtools/node_modules/readable-stream/lib/internal/streams/end-of-stream.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/readable-stream/lib/internal/streams/pipeline.js b/src/third_party/devtools/node_modules/readable-stream/lib/internal/streams/pipeline.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/readable-stream/lib/internal/streams/pipeline.js
rename to src/third_party/devtools/node_modules/readable-stream/lib/internal/streams/pipeline.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/readable-stream/lib/internal/streams/state.js b/src/third_party/devtools/node_modules/readable-stream/lib/internal/streams/state.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/readable-stream/lib/internal/streams/state.js
rename to src/third_party/devtools/node_modules/readable-stream/lib/internal/streams/state.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/readable-stream/lib/internal/streams/stream-browser.js b/src/third_party/devtools/node_modules/readable-stream/lib/internal/streams/stream-browser.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/readable-stream/lib/internal/streams/stream-browser.js
rename to src/third_party/devtools/node_modules/readable-stream/lib/internal/streams/stream-browser.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/readable-stream/lib/internal/streams/stream.js b/src/third_party/devtools/node_modules/readable-stream/lib/internal/streams/stream.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/readable-stream/lib/internal/streams/stream.js
rename to src/third_party/devtools/node_modules/readable-stream/lib/internal/streams/stream.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/readable-stream/package.json b/src/third_party/devtools/node_modules/readable-stream/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/readable-stream/package.json
rename to src/third_party/devtools/node_modules/readable-stream/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/readable-stream/readable-browser.js b/src/third_party/devtools/node_modules/readable-stream/readable-browser.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/readable-stream/readable-browser.js
rename to src/third_party/devtools/node_modules/readable-stream/readable-browser.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/readable-stream/readable.js b/src/third_party/devtools/node_modules/readable-stream/readable.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/readable-stream/readable.js
rename to src/third_party/devtools/node_modules/readable-stream/readable.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/readdir-scoped-modules/LICENSE b/src/third_party/devtools/node_modules/readdir-scoped-modules/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/readdir-scoped-modules/LICENSE
rename to src/third_party/devtools/node_modules/readdir-scoped-modules/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/readdir-scoped-modules/README.md b/src/third_party/devtools/node_modules/readdir-scoped-modules/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/readdir-scoped-modules/README.md
rename to src/third_party/devtools/node_modules/readdir-scoped-modules/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/readdir-scoped-modules/package.json b/src/third_party/devtools/node_modules/readdir-scoped-modules/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/readdir-scoped-modules/package.json
rename to src/third_party/devtools/node_modules/readdir-scoped-modules/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/readdir-scoped-modules/readdir.js b/src/third_party/devtools/node_modules/readdir-scoped-modules/readdir.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/readdir-scoped-modules/readdir.js
rename to src/third_party/devtools/node_modules/readdir-scoped-modules/readdir.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/readdirp/LICENSE b/src/third_party/devtools/node_modules/readdirp/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/readdirp/LICENSE
rename to src/third_party/devtools/node_modules/readdirp/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/readdirp/README.md b/src/third_party/devtools/node_modules/readdirp/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/readdirp/README.md
rename to src/third_party/devtools/node_modules/readdirp/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/readdirp/index.d.ts b/src/third_party/devtools/node_modules/readdirp/index.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/readdirp/index.d.ts
rename to src/third_party/devtools/node_modules/readdirp/index.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/readdirp/index.js b/src/third_party/devtools/node_modules/readdirp/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/readdirp/index.js
rename to src/third_party/devtools/node_modules/readdirp/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/readdirp/package.json b/src/third_party/devtools/node_modules/readdirp/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/readdirp/package.json
rename to src/third_party/devtools/node_modules/readdirp/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/redent/index.js b/src/third_party/devtools/node_modules/redent/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/redent/index.js
rename to src/third_party/devtools/node_modules/redent/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/redent/license b/src/third_party/devtools/node_modules/redent/license
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/redent/license
rename to src/third_party/devtools/node_modules/redent/license
diff --git a/src/cobalt/debug/remote/devtools/node_modules/redent/package.json b/src/third_party/devtools/node_modules/redent/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/redent/package.json
rename to src/third_party/devtools/node_modules/redent/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/redent/readme.md b/src/third_party/devtools/node_modules/redent/readme.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/redent/readme.md
rename to src/third_party/devtools/node_modules/redent/readme.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/regexpp/LICENSE b/src/third_party/devtools/node_modules/regexpp/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/regexpp/LICENSE
rename to src/third_party/devtools/node_modules/regexpp/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/regexpp/README.md b/src/third_party/devtools/node_modules/regexpp/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/regexpp/README.md
rename to src/third_party/devtools/node_modules/regexpp/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/regexpp/index.d.ts b/src/third_party/devtools/node_modules/regexpp/index.d.ts
similarity index 99%
rename from src/cobalt/debug/remote/devtools/node_modules/regexpp/index.d.ts
rename to src/third_party/devtools/node_modules/regexpp/index.d.ts
index 5b6ff6f..eb95faf 100644
--- a/src/cobalt/debug/remote/devtools/node_modules/regexpp/index.d.ts
+++ b/src/third_party/devtools/node_modules/regexpp/index.d.ts
@@ -1,241 +1,241 @@
-// Generated by dts-bundle v0.7.3

-

-declare module 'regexpp' {

-    import * as AST from "regexpp/ast";

-    import { RegExpParser } from "regexpp/parser";

-    import { RegExpValidator } from "regexpp/validator";

-    import { RegExpVisitor } from "regexpp/visitor";

-    export { AST, RegExpParser, RegExpValidator };

-    export function parseRegExpLiteral(source: string | RegExp, options?: RegExpParser.Options): AST.RegExpLiteral;

-    export function validateRegExpLiteral(source: string, options?: RegExpValidator.Options): void;

-    export function visitRegExpAST(node: AST.Node, handlers: RegExpVisitor.Handlers): void;

-}

-

-declare module 'regexpp/ast' {

-    export type Node = BranchNode | LeafNode;

-    export type BranchNode = RegExpLiteral | Pattern | Alternative | Group | CapturingGroup | Quantifier | CharacterClass | LookaroundAssertion | CharacterClassRange;

-    export type LeafNode = BoundaryAssertion | CharacterSet | Character | Backreference | Flags;

-    export type Element = Assertion | Quantifier | QuantifiableElement;

-    export type QuantifiableElement = Group | CapturingGroup | CharacterClass | CharacterSet | Character | Backreference | LookaheadAssertion;

-    export type CharacterClassElement = EscapeCharacterSet | UnicodePropertyCharacterSet | Character | CharacterClassRange;

-    export interface NodeBase {

-        type: Node["type"];

-        parent: Node["parent"];

-        start: number;

-        end: number;

-        raw: string;

-    }

-    export interface RegExpLiteral extends NodeBase {

-        type: "RegExpLiteral";

-        parent: null;

-        pattern: Pattern;

-        flags: Flags;

-    }

-    export interface Pattern extends NodeBase {

-        type: "Pattern";

-        parent: RegExpLiteral | null;

-        alternatives: Alternative[];

-    }

-    export interface Alternative extends NodeBase {

-        type: "Alternative";

-        parent: Pattern | Group | CapturingGroup | LookaroundAssertion;

-        elements: Element[];

-    }

-    export interface Group extends NodeBase {

-        type: "Group";

-        parent: Alternative | Quantifier;

-        alternatives: Alternative[];

-    }

-    export interface CapturingGroup extends NodeBase {

-        type: "CapturingGroup";

-        parent: Alternative | Quantifier;

-        name: string | null;

-        alternatives: Alternative[];

-        references: Backreference[];

-    }

-    export type LookaroundAssertion = LookaheadAssertion | LookbehindAssertion;

-    export interface LookaheadAssertion extends NodeBase {

-        type: "Assertion";

-        parent: Alternative | Quantifier;

-        kind: "lookahead";

-        negate: boolean;

-        alternatives: Alternative[];

-    }

-    export interface LookbehindAssertion extends NodeBase {

-        type: "Assertion";

-        parent: Alternative;

-        kind: "lookbehind";

-        negate: boolean;

-        alternatives: Alternative[];

-    }

-    export interface Quantifier extends NodeBase {

-        type: "Quantifier";

-        parent: Alternative;

-        min: number;

-        max: number;

-        greedy: boolean;

-        element: QuantifiableElement;

-    }

-    export interface CharacterClass extends NodeBase {

-        type: "CharacterClass";

-        parent: Alternative | Quantifier;

-        negate: boolean;

-        elements: CharacterClassElement[];

-    }

-    export interface CharacterClassRange extends NodeBase {

-        type: "CharacterClassRange";

-        parent: CharacterClass;

-        min: Character;

-        max: Character;

-    }

-    export type Assertion = BoundaryAssertion | LookaroundAssertion;

-    export type BoundaryAssertion = EdgeAssertion | WordBoundaryAssertion;

-    export interface EdgeAssertion extends NodeBase {

-        type: "Assertion";

-        parent: Alternative | Quantifier;

-        kind: "start" | "end";

-    }

-    export interface WordBoundaryAssertion extends NodeBase {

-        type: "Assertion";

-        parent: Alternative | Quantifier;

-        kind: "word";

-        negate: boolean;

-    }

-    export type CharacterSet = AnyCharacterSet | EscapeCharacterSet | UnicodePropertyCharacterSet;

-    export interface AnyCharacterSet extends NodeBase {

-        type: "CharacterSet";

-        parent: Alternative | Quantifier;

-        kind: "any";

-    }

-    export interface EscapeCharacterSet extends NodeBase {

-        type: "CharacterSet";

-        parent: Alternative | Quantifier | CharacterClass;

-        kind: "digit" | "space" | "word";

-        negate: boolean;

-    }

-    export interface UnicodePropertyCharacterSet extends NodeBase {

-        type: "CharacterSet";

-        parent: Alternative | Quantifier | CharacterClass;

-        kind: "property";

-        key: string;

-        value: string | null;

-        negate: boolean;

-    }

-    export interface Character extends NodeBase {

-        type: "Character";

-        parent: Alternative | Quantifier | CharacterClass | CharacterClassRange;

-        value: number;

-    }

-    export interface Backreference extends NodeBase {

-        type: "Backreference";

-        parent: Alternative | Quantifier;

-        ref: number | string;

-        resolved: CapturingGroup;

-    }

-    export interface Flags extends NodeBase {

-        type: "Flags";

-        parent: RegExpLiteral | null;

-        dotAll: boolean;

-        global: boolean;

-        ignoreCase: boolean;

-        multiline: boolean;

-        sticky: boolean;

-        unicode: boolean;

-    }

-}

-

-declare module 'regexpp/parser' {

-    import { Flags, RegExpLiteral, Pattern } from "regexpp/ast";

-    export namespace RegExpParser {

-        interface Options {

-            strict?: boolean;

-            ecmaVersion?: 5 | 2015 | 2016 | 2017 | 2018;

-        }

-    }

-    export class RegExpParser {

-        constructor(options?: RegExpParser.Options);

-        parseLiteral(source: string, start?: number, end?: number): RegExpLiteral;

-        parseFlags(source: string, start?: number, end?: number): Flags;

-        parsePattern(source: string, start?: number, end?: number, uFlag?: boolean): Pattern;

-    }

-}

-

-declare module 'regexpp/validator' {

-    export namespace RegExpValidator {

-        interface Options {

-            strict?: boolean;

-            ecmaVersion?: 5 | 2015 | 2016 | 2017 | 2018;

-            onLiteralEnter?(start: number): void;

-            onLiteralLeave?(start: number, end: number): void;

-            onFlags?(start: number, end: number, global: boolean, ignoreCase: boolean, multiline: boolean, unicode: boolean, sticky: boolean, dotAll: boolean): void;

-            onPatternEnter?(start: number): void;

-            onPatternLeave?(start: number, end: number): void;

-            onDisjunctionEnter?(start: number): void;

-            onDisjunctionLeave?(start: number, end: number): void;

-            onAlternativeEnter?(start: number, index: number): void;

-            onAlternativeLeave?(start: number, end: number, index: number): void;

-            onGroupEnter?(start: number): void;

-            onGroupLeave?(start: number, end: number): void;

-            onCapturingGroupEnter?(start: number, name: string | null): void;

-            onCapturingGroupLeave?(start: number, end: number, name: string | null): void;

-            onQuantifier?(start: number, end: number, min: number, max: number, greedy: boolean): void;

-            onLookaroundAssertionEnter?(start: number, kind: "lookahead" | "lookbehind", negate: boolean): void;

-            onLookaroundAssertionLeave?(start: number, end: number, kind: "lookahead" | "lookbehind", negate: boolean): void;

-            onEdgeAssertion?(start: number, end: number, kind: "start" | "end"): void;

-            onWordBoundaryAssertion?(start: number, end: number, kind: "word", negate: boolean): void;

-            onAnyCharacterSet?(start: number, end: number, kind: "any"): void;

-            onEscapeCharacterSet?(start: number, end: number, kind: "digit" | "space" | "word", negate: boolean): void;

-            onUnicodePropertyCharacterSet?(start: number, end: number, kind: "property", key: string, value: string | null, negate: boolean): void;

-            onCharacter?(start: number, end: number, value: number): void;

-            onBackreference?(start: number, end: number, ref: number | string): void;

-            onCharacterClassEnter?(start: number, negate: boolean): void;

-            onCharacterClassLeave?(start: number, end: number, negate: boolean): void;

-            onCharacterClassRange?(start: number, end: number, min: number, max: number): void;

-        }

-    }

-    export class RegExpValidator {

-        constructor(options?: RegExpValidator.Options);

-        validateLiteral(source: string, start?: number, end?: number): void;

-        validateFlags(source: string, start?: number, end?: number): void;

-        validatePattern(source: string, start?: number, end?: number, uFlag?: boolean): void;

-    }

-}

-

-declare module 'regexpp/visitor' {

-    import { Alternative, Assertion, Backreference, CapturingGroup, Character, CharacterClass, CharacterClassRange, CharacterSet, Flags, Group, Node, Pattern, Quantifier, RegExpLiteral } from "regexpp/ast";

-    export class RegExpVisitor {

-        constructor(handlers: RegExpVisitor.Handlers);

-        visit(node: Node): void;

-    }

-    export namespace RegExpVisitor {

-        interface Handlers {

-            onAlternativeEnter?(node: Alternative): void;

-            onAlternativeLeave?(node: Alternative): void;

-            onAssertionEnter?(node: Assertion): void;

-            onAssertionLeave?(node: Assertion): void;

-            onBackreferenceEnter?(node: Backreference): void;

-            onBackreferenceLeave?(node: Backreference): void;

-            onCapturingGroupEnter?(node: CapturingGroup): void;

-            onCapturingGroupLeave?(node: CapturingGroup): void;

-            onCharacterEnter?(node: Character): void;

-            onCharacterLeave?(node: Character): void;

-            onCharacterClassEnter?(node: CharacterClass): void;

-            onCharacterClassLeave?(node: CharacterClass): void;

-            onCharacterClassRangeEnter?(node: CharacterClassRange): void;

-            onCharacterClassRangeLeave?(node: CharacterClassRange): void;

-            onCharacterSetEnter?(node: CharacterSet): void;

-            onCharacterSetLeave?(node: CharacterSet): void;

-            onFlagsEnter?(node: Flags): void;

-            onFlagsLeave?(node: Flags): void;

-            onGroupEnter?(node: Group): void;

-            onGroupLeave?(node: Group): void;

-            onPatternEnter?(node: Pattern): void;

-            onPatternLeave?(node: Pattern): void;

-            onQuantifierEnter?(node: Quantifier): void;

-            onQuantifierLeave?(node: Quantifier): void;

-            onRegExpLiteralEnter?(node: RegExpLiteral): void;

-            onRegExpLiteralLeave?(node: RegExpLiteral): void;

-        }

-    }

-}

-

+// Generated by dts-bundle v0.7.3
+
+declare module 'regexpp' {
+    import * as AST from "regexpp/ast";
+    import { RegExpParser } from "regexpp/parser";
+    import { RegExpValidator } from "regexpp/validator";
+    import { RegExpVisitor } from "regexpp/visitor";
+    export { AST, RegExpParser, RegExpValidator };
+    export function parseRegExpLiteral(source: string | RegExp, options?: RegExpParser.Options): AST.RegExpLiteral;
+    export function validateRegExpLiteral(source: string, options?: RegExpValidator.Options): void;
+    export function visitRegExpAST(node: AST.Node, handlers: RegExpVisitor.Handlers): void;
+}
+
+declare module 'regexpp/ast' {
+    export type Node = BranchNode | LeafNode;
+    export type BranchNode = RegExpLiteral | Pattern | Alternative | Group | CapturingGroup | Quantifier | CharacterClass | LookaroundAssertion | CharacterClassRange;
+    export type LeafNode = BoundaryAssertion | CharacterSet | Character | Backreference | Flags;
+    export type Element = Assertion | Quantifier | QuantifiableElement;
+    export type QuantifiableElement = Group | CapturingGroup | CharacterClass | CharacterSet | Character | Backreference | LookaheadAssertion;
+    export type CharacterClassElement = EscapeCharacterSet | UnicodePropertyCharacterSet | Character | CharacterClassRange;
+    export interface NodeBase {
+        type: Node["type"];
+        parent: Node["parent"];
+        start: number;
+        end: number;
+        raw: string;
+    }
+    export interface RegExpLiteral extends NodeBase {
+        type: "RegExpLiteral";
+        parent: null;
+        pattern: Pattern;
+        flags: Flags;
+    }
+    export interface Pattern extends NodeBase {
+        type: "Pattern";
+        parent: RegExpLiteral | null;
+        alternatives: Alternative[];
+    }
+    export interface Alternative extends NodeBase {
+        type: "Alternative";
+        parent: Pattern | Group | CapturingGroup | LookaroundAssertion;
+        elements: Element[];
+    }
+    export interface Group extends NodeBase {
+        type: "Group";
+        parent: Alternative | Quantifier;
+        alternatives: Alternative[];
+    }
+    export interface CapturingGroup extends NodeBase {
+        type: "CapturingGroup";
+        parent: Alternative | Quantifier;
+        name: string | null;
+        alternatives: Alternative[];
+        references: Backreference[];
+    }
+    export type LookaroundAssertion = LookaheadAssertion | LookbehindAssertion;
+    export interface LookaheadAssertion extends NodeBase {
+        type: "Assertion";
+        parent: Alternative | Quantifier;
+        kind: "lookahead";
+        negate: boolean;
+        alternatives: Alternative[];
+    }
+    export interface LookbehindAssertion extends NodeBase {
+        type: "Assertion";
+        parent: Alternative;
+        kind: "lookbehind";
+        negate: boolean;
+        alternatives: Alternative[];
+    }
+    export interface Quantifier extends NodeBase {
+        type: "Quantifier";
+        parent: Alternative;
+        min: number;
+        max: number;
+        greedy: boolean;
+        element: QuantifiableElement;
+    }
+    export interface CharacterClass extends NodeBase {
+        type: "CharacterClass";
+        parent: Alternative | Quantifier;
+        negate: boolean;
+        elements: CharacterClassElement[];
+    }
+    export interface CharacterClassRange extends NodeBase {
+        type: "CharacterClassRange";
+        parent: CharacterClass;
+        min: Character;
+        max: Character;
+    }
+    export type Assertion = BoundaryAssertion | LookaroundAssertion;
+    export type BoundaryAssertion = EdgeAssertion | WordBoundaryAssertion;
+    export interface EdgeAssertion extends NodeBase {
+        type: "Assertion";
+        parent: Alternative | Quantifier;
+        kind: "start" | "end";
+    }
+    export interface WordBoundaryAssertion extends NodeBase {
+        type: "Assertion";
+        parent: Alternative | Quantifier;
+        kind: "word";
+        negate: boolean;
+    }
+    export type CharacterSet = AnyCharacterSet | EscapeCharacterSet | UnicodePropertyCharacterSet;
+    export interface AnyCharacterSet extends NodeBase {
+        type: "CharacterSet";
+        parent: Alternative | Quantifier;
+        kind: "any";
+    }
+    export interface EscapeCharacterSet extends NodeBase {
+        type: "CharacterSet";
+        parent: Alternative | Quantifier | CharacterClass;
+        kind: "digit" | "space" | "word";
+        negate: boolean;
+    }
+    export interface UnicodePropertyCharacterSet extends NodeBase {
+        type: "CharacterSet";
+        parent: Alternative | Quantifier | CharacterClass;
+        kind: "property";
+        key: string;
+        value: string | null;
+        negate: boolean;
+    }
+    export interface Character extends NodeBase {
+        type: "Character";
+        parent: Alternative | Quantifier | CharacterClass | CharacterClassRange;
+        value: number;
+    }
+    export interface Backreference extends NodeBase {
+        type: "Backreference";
+        parent: Alternative | Quantifier;
+        ref: number | string;
+        resolved: CapturingGroup;
+    }
+    export interface Flags extends NodeBase {
+        type: "Flags";
+        parent: RegExpLiteral | null;
+        dotAll: boolean;
+        global: boolean;
+        ignoreCase: boolean;
+        multiline: boolean;
+        sticky: boolean;
+        unicode: boolean;
+    }
+}
+
+declare module 'regexpp/parser' {
+    import { Flags, RegExpLiteral, Pattern } from "regexpp/ast";
+    export namespace RegExpParser {
+        interface Options {
+            strict?: boolean;
+            ecmaVersion?: 5 | 2015 | 2016 | 2017 | 2018;
+        }
+    }
+    export class RegExpParser {
+        constructor(options?: RegExpParser.Options);
+        parseLiteral(source: string, start?: number, end?: number): RegExpLiteral;
+        parseFlags(source: string, start?: number, end?: number): Flags;
+        parsePattern(source: string, start?: number, end?: number, uFlag?: boolean): Pattern;
+    }
+}
+
+declare module 'regexpp/validator' {
+    export namespace RegExpValidator {
+        interface Options {
+            strict?: boolean;
+            ecmaVersion?: 5 | 2015 | 2016 | 2017 | 2018;
+            onLiteralEnter?(start: number): void;
+            onLiteralLeave?(start: number, end: number): void;
+            onFlags?(start: number, end: number, global: boolean, ignoreCase: boolean, multiline: boolean, unicode: boolean, sticky: boolean, dotAll: boolean): void;
+            onPatternEnter?(start: number): void;
+            onPatternLeave?(start: number, end: number): void;
+            onDisjunctionEnter?(start: number): void;
+            onDisjunctionLeave?(start: number, end: number): void;
+            onAlternativeEnter?(start: number, index: number): void;
+            onAlternativeLeave?(start: number, end: number, index: number): void;
+            onGroupEnter?(start: number): void;
+            onGroupLeave?(start: number, end: number): void;
+            onCapturingGroupEnter?(start: number, name: string | null): void;
+            onCapturingGroupLeave?(start: number, end: number, name: string | null): void;
+            onQuantifier?(start: number, end: number, min: number, max: number, greedy: boolean): void;
+            onLookaroundAssertionEnter?(start: number, kind: "lookahead" | "lookbehind", negate: boolean): void;
+            onLookaroundAssertionLeave?(start: number, end: number, kind: "lookahead" | "lookbehind", negate: boolean): void;
+            onEdgeAssertion?(start: number, end: number, kind: "start" | "end"): void;
+            onWordBoundaryAssertion?(start: number, end: number, kind: "word", negate: boolean): void;
+            onAnyCharacterSet?(start: number, end: number, kind: "any"): void;
+            onEscapeCharacterSet?(start: number, end: number, kind: "digit" | "space" | "word", negate: boolean): void;
+            onUnicodePropertyCharacterSet?(start: number, end: number, kind: "property", key: string, value: string | null, negate: boolean): void;
+            onCharacter?(start: number, end: number, value: number): void;
+            onBackreference?(start: number, end: number, ref: number | string): void;
+            onCharacterClassEnter?(start: number, negate: boolean): void;
+            onCharacterClassLeave?(start: number, end: number, negate: boolean): void;
+            onCharacterClassRange?(start: number, end: number, min: number, max: number): void;
+        }
+    }
+    export class RegExpValidator {
+        constructor(options?: RegExpValidator.Options);
+        validateLiteral(source: string, start?: number, end?: number): void;
+        validateFlags(source: string, start?: number, end?: number): void;
+        validatePattern(source: string, start?: number, end?: number, uFlag?: boolean): void;
+    }
+}
+
+declare module 'regexpp/visitor' {
+    import { Alternative, Assertion, Backreference, CapturingGroup, Character, CharacterClass, CharacterClassRange, CharacterSet, Flags, Group, Node, Pattern, Quantifier, RegExpLiteral } from "regexpp/ast";
+    export class RegExpVisitor {
+        constructor(handlers: RegExpVisitor.Handlers);
+        visit(node: Node): void;
+    }
+    export namespace RegExpVisitor {
+        interface Handlers {
+            onAlternativeEnter?(node: Alternative): void;
+            onAlternativeLeave?(node: Alternative): void;
+            onAssertionEnter?(node: Assertion): void;
+            onAssertionLeave?(node: Assertion): void;
+            onBackreferenceEnter?(node: Backreference): void;
+            onBackreferenceLeave?(node: Backreference): void;
+            onCapturingGroupEnter?(node: CapturingGroup): void;
+            onCapturingGroupLeave?(node: CapturingGroup): void;
+            onCharacterEnter?(node: Character): void;
+            onCharacterLeave?(node: Character): void;
+            onCharacterClassEnter?(node: CharacterClass): void;
+            onCharacterClassLeave?(node: CharacterClass): void;
+            onCharacterClassRangeEnter?(node: CharacterClassRange): void;
+            onCharacterClassRangeLeave?(node: CharacterClassRange): void;
+            onCharacterSetEnter?(node: CharacterSet): void;
+            onCharacterSetLeave?(node: CharacterSet): void;
+            onFlagsEnter?(node: Flags): void;
+            onFlagsLeave?(node: Flags): void;
+            onGroupEnter?(node: Group): void;
+            onGroupLeave?(node: Group): void;
+            onPatternEnter?(node: Pattern): void;
+            onPatternLeave?(node: Pattern): void;
+            onQuantifierEnter?(node: Quantifier): void;
+            onQuantifierLeave?(node: Quantifier): void;
+            onRegExpLiteralEnter?(node: RegExpLiteral): void;
+            onRegExpLiteralLeave?(node: RegExpLiteral): void;
+        }
+    }
+}
+
diff --git a/src/cobalt/debug/remote/devtools/node_modules/regexpp/index.js b/src/third_party/devtools/node_modules/regexpp/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/regexpp/index.js
rename to src/third_party/devtools/node_modules/regexpp/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/regexpp/index.js.map b/src/third_party/devtools/node_modules/regexpp/index.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/regexpp/index.js.map
rename to src/third_party/devtools/node_modules/regexpp/index.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/regexpp/index.mjs b/src/third_party/devtools/node_modules/regexpp/index.mjs
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/regexpp/index.mjs
rename to src/third_party/devtools/node_modules/regexpp/index.mjs
diff --git a/src/cobalt/debug/remote/devtools/node_modules/regexpp/index.mjs.map b/src/third_party/devtools/node_modules/regexpp/index.mjs.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/regexpp/index.mjs.map
rename to src/third_party/devtools/node_modules/regexpp/index.mjs.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/regexpp/package.json b/src/third_party/devtools/node_modules/regexpp/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/regexpp/package.json
rename to src/third_party/devtools/node_modules/regexpp/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/remap-istanbul/.editorconfig b/src/third_party/devtools/node_modules/remap-istanbul/.editorconfig
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/remap-istanbul/.editorconfig
rename to src/third_party/devtools/node_modules/remap-istanbul/.editorconfig
diff --git a/src/cobalt/debug/remote/devtools/node_modules/remap-istanbul/.eslintignore b/src/third_party/devtools/node_modules/remap-istanbul/.eslintignore
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/remap-istanbul/.eslintignore
rename to src/third_party/devtools/node_modules/remap-istanbul/.eslintignore
diff --git a/src/cobalt/debug/remote/devtools/node_modules/remap-istanbul/.eslintrc b/src/third_party/devtools/node_modules/remap-istanbul/.eslintrc
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/remap-istanbul/.eslintrc
rename to src/third_party/devtools/node_modules/remap-istanbul/.eslintrc
diff --git a/src/cobalt/debug/remote/devtools/node_modules/remap-istanbul/CONTRIBUTING.md b/src/third_party/devtools/node_modules/remap-istanbul/CONTRIBUTING.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/remap-istanbul/CONTRIBUTING.md
rename to src/third_party/devtools/node_modules/remap-istanbul/CONTRIBUTING.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/remap-istanbul/LICENSE b/src/third_party/devtools/node_modules/remap-istanbul/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/remap-istanbul/LICENSE
rename to src/third_party/devtools/node_modules/remap-istanbul/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/remap-istanbul/README.md b/src/third_party/devtools/node_modules/remap-istanbul/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/remap-istanbul/README.md
rename to src/third_party/devtools/node_modules/remap-istanbul/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/remap-istanbul/bin/remap-istanbul.js b/src/third_party/devtools/node_modules/remap-istanbul/bin/remap-istanbul.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/remap-istanbul/bin/remap-istanbul.js
rename to src/third_party/devtools/node_modules/remap-istanbul/bin/remap-istanbul.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/remap-istanbul/lib/CoverageTransformer.js b/src/third_party/devtools/node_modules/remap-istanbul/lib/CoverageTransformer.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/remap-istanbul/lib/CoverageTransformer.js
rename to src/third_party/devtools/node_modules/remap-istanbul/lib/CoverageTransformer.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/remap-istanbul/lib/SparseCoverageCollector.js b/src/third_party/devtools/node_modules/remap-istanbul/lib/SparseCoverageCollector.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/remap-istanbul/lib/SparseCoverageCollector.js
rename to src/third_party/devtools/node_modules/remap-istanbul/lib/SparseCoverageCollector.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/remap-istanbul/lib/checkThreshold.js b/src/third_party/devtools/node_modules/remap-istanbul/lib/checkThreshold.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/remap-istanbul/lib/checkThreshold.js
rename to src/third_party/devtools/node_modules/remap-istanbul/lib/checkThreshold.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/remap-istanbul/lib/getMapping.js b/src/third_party/devtools/node_modules/remap-istanbul/lib/getMapping.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/remap-istanbul/lib/getMapping.js
rename to src/third_party/devtools/node_modules/remap-istanbul/lib/getMapping.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/remap-istanbul/lib/gruntRemapIstanbul.js b/src/third_party/devtools/node_modules/remap-istanbul/lib/gruntRemapIstanbul.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/remap-istanbul/lib/gruntRemapIstanbul.js
rename to src/third_party/devtools/node_modules/remap-istanbul/lib/gruntRemapIstanbul.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/remap-istanbul/lib/gulpRemapIstanbul.js b/src/third_party/devtools/node_modules/remap-istanbul/lib/gulpRemapIstanbul.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/remap-istanbul/lib/gulpRemapIstanbul.js
rename to src/third_party/devtools/node_modules/remap-istanbul/lib/gulpRemapIstanbul.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/remap-istanbul/lib/intern-reporters/JsonCoverage.js b/src/third_party/devtools/node_modules/remap-istanbul/lib/intern-reporters/JsonCoverage.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/remap-istanbul/lib/intern-reporters/JsonCoverage.js
rename to src/third_party/devtools/node_modules/remap-istanbul/lib/intern-reporters/JsonCoverage.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/remap-istanbul/lib/loadCoverage.js b/src/third_party/devtools/node_modules/remap-istanbul/lib/loadCoverage.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/remap-istanbul/lib/loadCoverage.js
rename to src/third_party/devtools/node_modules/remap-istanbul/lib/loadCoverage.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/remap-istanbul/lib/main.js b/src/third_party/devtools/node_modules/remap-istanbul/lib/main.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/remap-istanbul/lib/main.js
rename to src/third_party/devtools/node_modules/remap-istanbul/lib/main.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/remap-istanbul/lib/remap.js b/src/third_party/devtools/node_modules/remap-istanbul/lib/remap.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/remap-istanbul/lib/remap.js
rename to src/third_party/devtools/node_modules/remap-istanbul/lib/remap.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/remap-istanbul/lib/remapBranch.js b/src/third_party/devtools/node_modules/remap-istanbul/lib/remapBranch.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/remap-istanbul/lib/remapBranch.js
rename to src/third_party/devtools/node_modules/remap-istanbul/lib/remapBranch.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/remap-istanbul/lib/remapFunction.js b/src/third_party/devtools/node_modules/remap-istanbul/lib/remapFunction.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/remap-istanbul/lib/remapFunction.js
rename to src/third_party/devtools/node_modules/remap-istanbul/lib/remapFunction.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/remap-istanbul/lib/writeReport.js b/src/third_party/devtools/node_modules/remap-istanbul/lib/writeReport.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/remap-istanbul/lib/writeReport.js
rename to src/third_party/devtools/node_modules/remap-istanbul/lib/writeReport.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/remap-istanbul/package.json b/src/third_party/devtools/node_modules/remap-istanbul/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/remap-istanbul/package.json
rename to src/third_party/devtools/node_modules/remap-istanbul/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/remap-istanbul/tasks/remapIstanbul.js b/src/third_party/devtools/node_modules/remap-istanbul/tasks/remapIstanbul.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/remap-istanbul/tasks/remapIstanbul.js
rename to src/third_party/devtools/node_modules/remap-istanbul/tasks/remapIstanbul.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/repeating/index.js b/src/third_party/devtools/node_modules/repeating/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/repeating/index.js
rename to src/third_party/devtools/node_modules/repeating/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/repeating/license b/src/third_party/devtools/node_modules/repeating/license
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/repeating/license
rename to src/third_party/devtools/node_modules/repeating/license
diff --git a/src/cobalt/debug/remote/devtools/node_modules/repeating/package.json b/src/third_party/devtools/node_modules/repeating/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/repeating/package.json
rename to src/third_party/devtools/node_modules/repeating/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/repeating/readme.md b/src/third_party/devtools/node_modules/repeating/readme.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/repeating/readme.md
rename to src/third_party/devtools/node_modules/repeating/readme.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/require-directory/.jshintrc b/src/third_party/devtools/node_modules/require-directory/.jshintrc
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/require-directory/.jshintrc
rename to src/third_party/devtools/node_modules/require-directory/.jshintrc
diff --git a/src/cobalt/debug/remote/devtools/node_modules/require-directory/.npmignore b/src/third_party/devtools/node_modules/require-directory/.npmignore
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/require-directory/.npmignore
rename to src/third_party/devtools/node_modules/require-directory/.npmignore
diff --git a/src/cobalt/debug/remote/devtools/node_modules/require-directory/.travis.yml b/src/third_party/devtools/node_modules/require-directory/.travis.yml
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/require-directory/.travis.yml
rename to src/third_party/devtools/node_modules/require-directory/.travis.yml
diff --git a/src/cobalt/debug/remote/devtools/node_modules/require-directory/LICENSE b/src/third_party/devtools/node_modules/require-directory/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/require-directory/LICENSE
rename to src/third_party/devtools/node_modules/require-directory/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/require-directory/README.markdown b/src/third_party/devtools/node_modules/require-directory/README.markdown
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/require-directory/README.markdown
rename to src/third_party/devtools/node_modules/require-directory/README.markdown
diff --git a/src/cobalt/debug/remote/devtools/node_modules/require-directory/index.js b/src/third_party/devtools/node_modules/require-directory/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/require-directory/index.js
rename to src/third_party/devtools/node_modules/require-directory/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/require-directory/package.json b/src/third_party/devtools/node_modules/require-directory/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/require-directory/package.json
rename to src/third_party/devtools/node_modules/require-directory/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/require-main-filename/CHANGELOG.md b/src/third_party/devtools/node_modules/require-main-filename/CHANGELOG.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/require-main-filename/CHANGELOG.md
rename to src/third_party/devtools/node_modules/require-main-filename/CHANGELOG.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/require-main-filename/LICENSE.txt b/src/third_party/devtools/node_modules/require-main-filename/LICENSE.txt
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/require-main-filename/LICENSE.txt
rename to src/third_party/devtools/node_modules/require-main-filename/LICENSE.txt
diff --git a/src/cobalt/debug/remote/devtools/node_modules/require-main-filename/README.md b/src/third_party/devtools/node_modules/require-main-filename/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/require-main-filename/README.md
rename to src/third_party/devtools/node_modules/require-main-filename/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/require-main-filename/index.js b/src/third_party/devtools/node_modules/require-main-filename/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/require-main-filename/index.js
rename to src/third_party/devtools/node_modules/require-main-filename/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/require-main-filename/package.json b/src/third_party/devtools/node_modules/require-main-filename/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/require-main-filename/package.json
rename to src/third_party/devtools/node_modules/require-main-filename/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/requires-port/.npmignore b/src/third_party/devtools/node_modules/requires-port/.npmignore
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/requires-port/.npmignore
rename to src/third_party/devtools/node_modules/requires-port/.npmignore
diff --git a/src/cobalt/debug/remote/devtools/node_modules/requires-port/.travis.yml b/src/third_party/devtools/node_modules/requires-port/.travis.yml
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/requires-port/.travis.yml
rename to src/third_party/devtools/node_modules/requires-port/.travis.yml
diff --git a/src/cobalt/debug/remote/devtools/node_modules/requires-port/LICENSE b/src/third_party/devtools/node_modules/requires-port/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/requires-port/LICENSE
rename to src/third_party/devtools/node_modules/requires-port/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/requires-port/README.md b/src/third_party/devtools/node_modules/requires-port/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/requires-port/README.md
rename to src/third_party/devtools/node_modules/requires-port/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/requires-port/index.js b/src/third_party/devtools/node_modules/requires-port/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/requires-port/index.js
rename to src/third_party/devtools/node_modules/requires-port/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/requires-port/package.json b/src/third_party/devtools/node_modules/requires-port/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/requires-port/package.json
rename to src/third_party/devtools/node_modules/requires-port/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/requires-port/test.js b/src/third_party/devtools/node_modules/requires-port/test.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/requires-port/test.js
rename to src/third_party/devtools/node_modules/requires-port/test.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/resolve-from/LICENSE b/src/third_party/devtools/node_modules/resolve-from/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/resolve-from/LICENSE
rename to src/third_party/devtools/node_modules/resolve-from/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/resolve-from/index.js b/src/third_party/devtools/node_modules/resolve-from/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/resolve-from/index.js
rename to src/third_party/devtools/node_modules/resolve-from/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/resolve-from/package.json b/src/third_party/devtools/node_modules/resolve-from/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/resolve-from/package.json
rename to src/third_party/devtools/node_modules/resolve-from/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/resolve-from/readme.md b/src/third_party/devtools/node_modules/resolve-from/readme.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/resolve-from/readme.md
rename to src/third_party/devtools/node_modules/resolve-from/readme.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/resolve/.travis.yml b/src/third_party/devtools/node_modules/resolve/.travis.yml
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/resolve/.travis.yml
rename to src/third_party/devtools/node_modules/resolve/.travis.yml
diff --git a/src/cobalt/debug/remote/devtools/node_modules/resolve/LICENSE b/src/third_party/devtools/node_modules/resolve/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/resolve/LICENSE
rename to src/third_party/devtools/node_modules/resolve/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/resolve/example/async.js b/src/third_party/devtools/node_modules/resolve/example/async.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/resolve/example/async.js
rename to src/third_party/devtools/node_modules/resolve/example/async.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/resolve/example/sync.js b/src/third_party/devtools/node_modules/resolve/example/sync.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/resolve/example/sync.js
rename to src/third_party/devtools/node_modules/resolve/example/sync.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/resolve/index.js b/src/third_party/devtools/node_modules/resolve/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/resolve/index.js
rename to src/third_party/devtools/node_modules/resolve/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/resolve/lib/async.js b/src/third_party/devtools/node_modules/resolve/lib/async.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/resolve/lib/async.js
rename to src/third_party/devtools/node_modules/resolve/lib/async.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/resolve/lib/caller.js b/src/third_party/devtools/node_modules/resolve/lib/caller.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/resolve/lib/caller.js
rename to src/third_party/devtools/node_modules/resolve/lib/caller.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/resolve/lib/core.js b/src/third_party/devtools/node_modules/resolve/lib/core.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/resolve/lib/core.js
rename to src/third_party/devtools/node_modules/resolve/lib/core.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/resolve/lib/core.json b/src/third_party/devtools/node_modules/resolve/lib/core.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/resolve/lib/core.json
rename to src/third_party/devtools/node_modules/resolve/lib/core.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/resolve/lib/node-modules-paths.js b/src/third_party/devtools/node_modules/resolve/lib/node-modules-paths.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/resolve/lib/node-modules-paths.js
rename to src/third_party/devtools/node_modules/resolve/lib/node-modules-paths.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/resolve/lib/sync.js b/src/third_party/devtools/node_modules/resolve/lib/sync.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/resolve/lib/sync.js
rename to src/third_party/devtools/node_modules/resolve/lib/sync.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/resolve/package.json b/src/third_party/devtools/node_modules/resolve/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/resolve/package.json
rename to src/third_party/devtools/node_modules/resolve/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/resolve/readme.markdown b/src/third_party/devtools/node_modules/resolve/readme.markdown
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/resolve/readme.markdown
rename to src/third_party/devtools/node_modules/resolve/readme.markdown
diff --git a/src/cobalt/debug/remote/devtools/node_modules/resolve/test/core.js b/src/third_party/devtools/node_modules/resolve/test/core.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/resolve/test/core.js
rename to src/third_party/devtools/node_modules/resolve/test/core.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/resolve/test/dotdot.js b/src/third_party/devtools/node_modules/resolve/test/dotdot.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/resolve/test/dotdot.js
rename to src/third_party/devtools/node_modules/resolve/test/dotdot.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/resolve/test/dotdot/abc/index.js b/src/third_party/devtools/node_modules/resolve/test/dotdot/abc/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/resolve/test/dotdot/abc/index.js
rename to src/third_party/devtools/node_modules/resolve/test/dotdot/abc/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/resolve/test/dotdot/index.js b/src/third_party/devtools/node_modules/resolve/test/dotdot/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/resolve/test/dotdot/index.js
rename to src/third_party/devtools/node_modules/resolve/test/dotdot/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/resolve/test/faulty_basedir.js b/src/third_party/devtools/node_modules/resolve/test/faulty_basedir.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/resolve/test/faulty_basedir.js
rename to src/third_party/devtools/node_modules/resolve/test/faulty_basedir.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/resolve/test/filter.js b/src/third_party/devtools/node_modules/resolve/test/filter.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/resolve/test/filter.js
rename to src/third_party/devtools/node_modules/resolve/test/filter.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/resolve/test/filter_sync.js b/src/third_party/devtools/node_modules/resolve/test/filter_sync.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/resolve/test/filter_sync.js
rename to src/third_party/devtools/node_modules/resolve/test/filter_sync.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/resolve/test/mock.js b/src/third_party/devtools/node_modules/resolve/test/mock.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/resolve/test/mock.js
rename to src/third_party/devtools/node_modules/resolve/test/mock.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/resolve/test/mock_sync.js b/src/third_party/devtools/node_modules/resolve/test/mock_sync.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/resolve/test/mock_sync.js
rename to src/third_party/devtools/node_modules/resolve/test/mock_sync.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/resolve/test/module_dir.js b/src/third_party/devtools/node_modules/resolve/test/module_dir.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/resolve/test/module_dir.js
rename to src/third_party/devtools/node_modules/resolve/test/module_dir.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/resolve/test/module_dir/xmodules/aaa/index.js b/src/third_party/devtools/node_modules/resolve/test/module_dir/xmodules/aaa/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/resolve/test/module_dir/xmodules/aaa/index.js
rename to src/third_party/devtools/node_modules/resolve/test/module_dir/xmodules/aaa/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/resolve/test/module_dir/ymodules/aaa/index.js b/src/third_party/devtools/node_modules/resolve/test/module_dir/ymodules/aaa/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/resolve/test/module_dir/ymodules/aaa/index.js
rename to src/third_party/devtools/node_modules/resolve/test/module_dir/ymodules/aaa/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/resolve/test/module_dir/zmodules/bbb/main.js b/src/third_party/devtools/node_modules/resolve/test/module_dir/zmodules/bbb/main.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/resolve/test/module_dir/zmodules/bbb/main.js
rename to src/third_party/devtools/node_modules/resolve/test/module_dir/zmodules/bbb/main.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/resolve/test/module_dir/zmodules/bbb/package.json b/src/third_party/devtools/node_modules/resolve/test/module_dir/zmodules/bbb/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/resolve/test/module_dir/zmodules/bbb/package.json
rename to src/third_party/devtools/node_modules/resolve/test/module_dir/zmodules/bbb/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/resolve/test/node_path.js b/src/third_party/devtools/node_modules/resolve/test/node_path.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/resolve/test/node_path.js
rename to src/third_party/devtools/node_modules/resolve/test/node_path.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/resolve/test/node_path/x/aaa/index.js b/src/third_party/devtools/node_modules/resolve/test/node_path/x/aaa/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/resolve/test/node_path/x/aaa/index.js
rename to src/third_party/devtools/node_modules/resolve/test/node_path/x/aaa/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/resolve/test/node_path/x/ccc/index.js b/src/third_party/devtools/node_modules/resolve/test/node_path/x/ccc/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/resolve/test/node_path/x/ccc/index.js
rename to src/third_party/devtools/node_modules/resolve/test/node_path/x/ccc/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/resolve/test/node_path/y/bbb/index.js b/src/third_party/devtools/node_modules/resolve/test/node_path/y/bbb/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/resolve/test/node_path/y/bbb/index.js
rename to src/third_party/devtools/node_modules/resolve/test/node_path/y/bbb/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/resolve/test/node_path/y/ccc/index.js b/src/third_party/devtools/node_modules/resolve/test/node_path/y/ccc/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/resolve/test/node_path/y/ccc/index.js
rename to src/third_party/devtools/node_modules/resolve/test/node_path/y/ccc/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/resolve/test/nonstring.js b/src/third_party/devtools/node_modules/resolve/test/nonstring.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/resolve/test/nonstring.js
rename to src/third_party/devtools/node_modules/resolve/test/nonstring.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/resolve/test/pathfilter.js b/src/third_party/devtools/node_modules/resolve/test/pathfilter.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/resolve/test/pathfilter.js
rename to src/third_party/devtools/node_modules/resolve/test/pathfilter.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/resolve/test/pathfilter/deep_ref/main.js b/src/third_party/devtools/node_modules/resolve/test/pathfilter/deep_ref/main.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/resolve/test/pathfilter/deep_ref/main.js
rename to src/third_party/devtools/node_modules/resolve/test/pathfilter/deep_ref/main.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/resolve/test/pathfilter/deep_ref/node_modules/deep/alt.js b/src/third_party/devtools/node_modules/resolve/test/pathfilter/deep_ref/node_modules/deep/alt.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/resolve/test/pathfilter/deep_ref/node_modules/deep/alt.js
rename to src/third_party/devtools/node_modules/resolve/test/pathfilter/deep_ref/node_modules/deep/alt.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/resolve/test/pathfilter/deep_ref/node_modules/deep/deeper/ref.js b/src/third_party/devtools/node_modules/resolve/test/pathfilter/deep_ref/node_modules/deep/deeper/ref.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/resolve/test/pathfilter/deep_ref/node_modules/deep/deeper/ref.js
rename to src/third_party/devtools/node_modules/resolve/test/pathfilter/deep_ref/node_modules/deep/deeper/ref.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/resolve/test/pathfilter/deep_ref/node_modules/deep/package.json b/src/third_party/devtools/node_modules/resolve/test/pathfilter/deep_ref/node_modules/deep/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/resolve/test/pathfilter/deep_ref/node_modules/deep/package.json
rename to src/third_party/devtools/node_modules/resolve/test/pathfilter/deep_ref/node_modules/deep/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/resolve/test/pathfilter/deep_ref/node_modules/deep/ref.js b/src/third_party/devtools/node_modules/resolve/test/pathfilter/deep_ref/node_modules/deep/ref.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/resolve/test/pathfilter/deep_ref/node_modules/deep/ref.js
rename to src/third_party/devtools/node_modules/resolve/test/pathfilter/deep_ref/node_modules/deep/ref.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/resolve/test/precedence.js b/src/third_party/devtools/node_modules/resolve/test/precedence.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/resolve/test/precedence.js
rename to src/third_party/devtools/node_modules/resolve/test/precedence.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/resolve/test/precedence/aaa.js b/src/third_party/devtools/node_modules/resolve/test/precedence/aaa.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/resolve/test/precedence/aaa.js
rename to src/third_party/devtools/node_modules/resolve/test/precedence/aaa.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/resolve/test/precedence/aaa/index.js b/src/third_party/devtools/node_modules/resolve/test/precedence/aaa/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/resolve/test/precedence/aaa/index.js
rename to src/third_party/devtools/node_modules/resolve/test/precedence/aaa/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/resolve/test/precedence/aaa/main.js b/src/third_party/devtools/node_modules/resolve/test/precedence/aaa/main.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/resolve/test/precedence/aaa/main.js
rename to src/third_party/devtools/node_modules/resolve/test/precedence/aaa/main.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/resolve/test/precedence/bbb.js b/src/third_party/devtools/node_modules/resolve/test/precedence/bbb.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/resolve/test/precedence/bbb.js
rename to src/third_party/devtools/node_modules/resolve/test/precedence/bbb.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/resolve/test/precedence/bbb/main.js b/src/third_party/devtools/node_modules/resolve/test/precedence/bbb/main.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/resolve/test/precedence/bbb/main.js
rename to src/third_party/devtools/node_modules/resolve/test/precedence/bbb/main.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/resolve/test/resolver.js b/src/third_party/devtools/node_modules/resolve/test/resolver.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/resolve/test/resolver.js
rename to src/third_party/devtools/node_modules/resolve/test/resolver.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/resolve/test/resolver/bar/node_modules/foo/index.js b/src/third_party/devtools/node_modules/resolve/test/resolver/bar/node_modules/foo/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/resolve/test/resolver/bar/node_modules/foo/index.js
rename to src/third_party/devtools/node_modules/resolve/test/resolver/bar/node_modules/foo/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/resolve/test/resolver/baz/doom.js b/src/third_party/devtools/node_modules/resolve/test/resolver/baz/doom.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/resolve/test/resolver/baz/doom.js
rename to src/third_party/devtools/node_modules/resolve/test/resolver/baz/doom.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/resolve/test/resolver/baz/package.json b/src/third_party/devtools/node_modules/resolve/test/resolver/baz/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/resolve/test/resolver/baz/package.json
rename to src/third_party/devtools/node_modules/resolve/test/resolver/baz/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/resolve/test/resolver/baz/quux.js b/src/third_party/devtools/node_modules/resolve/test/resolver/baz/quux.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/resolve/test/resolver/baz/quux.js
rename to src/third_party/devtools/node_modules/resolve/test/resolver/baz/quux.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/resolve/test/resolver/biz/node_modules/garply/lib/index.js b/src/third_party/devtools/node_modules/resolve/test/resolver/biz/node_modules/garply/lib/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/resolve/test/resolver/biz/node_modules/garply/lib/index.js
rename to src/third_party/devtools/node_modules/resolve/test/resolver/biz/node_modules/garply/lib/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/resolve/test/resolver/biz/node_modules/garply/package.json b/src/third_party/devtools/node_modules/resolve/test/resolver/biz/node_modules/garply/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/resolve/test/resolver/biz/node_modules/garply/package.json
rename to src/third_party/devtools/node_modules/resolve/test/resolver/biz/node_modules/garply/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/resolve/test/resolver/biz/node_modules/grux/index.js b/src/third_party/devtools/node_modules/resolve/test/resolver/biz/node_modules/grux/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/resolve/test/resolver/biz/node_modules/grux/index.js
rename to src/third_party/devtools/node_modules/resolve/test/resolver/biz/node_modules/grux/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/resolve/test/resolver/biz/node_modules/tiv/index.js b/src/third_party/devtools/node_modules/resolve/test/resolver/biz/node_modules/tiv/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/resolve/test/resolver/biz/node_modules/tiv/index.js
rename to src/third_party/devtools/node_modules/resolve/test/resolver/biz/node_modules/tiv/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/resolve/test/resolver/cup.coffee b/src/third_party/devtools/node_modules/resolve/test/resolver/cup.coffee
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/resolve/test/resolver/cup.coffee
rename to src/third_party/devtools/node_modules/resolve/test/resolver/cup.coffee
diff --git a/src/cobalt/debug/remote/devtools/node_modules/resolve/test/resolver/foo.js b/src/third_party/devtools/node_modules/resolve/test/resolver/foo.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/resolve/test/resolver/foo.js
rename to src/third_party/devtools/node_modules/resolve/test/resolver/foo.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/resolve/test/resolver/incorrect_main/index.js b/src/third_party/devtools/node_modules/resolve/test/resolver/incorrect_main/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/resolve/test/resolver/incorrect_main/index.js
rename to src/third_party/devtools/node_modules/resolve/test/resolver/incorrect_main/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/resolve/test/resolver/incorrect_main/package.json b/src/third_party/devtools/node_modules/resolve/test/resolver/incorrect_main/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/resolve/test/resolver/incorrect_main/package.json
rename to src/third_party/devtools/node_modules/resolve/test/resolver/incorrect_main/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/resolve/test/resolver/mug.coffee b/src/third_party/devtools/node_modules/resolve/test/resolver/mug.coffee
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/resolve/test/resolver/mug.coffee
rename to src/third_party/devtools/node_modules/resolve/test/resolver/mug.coffee
diff --git a/src/cobalt/debug/remote/devtools/node_modules/resolve/test/resolver/mug.js b/src/third_party/devtools/node_modules/resolve/test/resolver/mug.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/resolve/test/resolver/mug.js
rename to src/third_party/devtools/node_modules/resolve/test/resolver/mug.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/resolve/test/resolver/other_path/lib/other-lib.js b/src/third_party/devtools/node_modules/resolve/test/resolver/other_path/lib/other-lib.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/resolve/test/resolver/other_path/lib/other-lib.js
rename to src/third_party/devtools/node_modules/resolve/test/resolver/other_path/lib/other-lib.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/resolve/test/resolver/other_path/root.js b/src/third_party/devtools/node_modules/resolve/test/resolver/other_path/root.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/resolve/test/resolver/other_path/root.js
rename to src/third_party/devtools/node_modules/resolve/test/resolver/other_path/root.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/resolve/test/resolver/punycode/node_modules/punycode/index.js b/src/third_party/devtools/node_modules/resolve/test/resolver/punycode/node_modules/punycode/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/resolve/test/resolver/punycode/node_modules/punycode/index.js
rename to src/third_party/devtools/node_modules/resolve/test/resolver/punycode/node_modules/punycode/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/resolve/test/resolver/quux/foo/index.js b/src/third_party/devtools/node_modules/resolve/test/resolver/quux/foo/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/resolve/test/resolver/quux/foo/index.js
rename to src/third_party/devtools/node_modules/resolve/test/resolver/quux/foo/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/resolve/test/resolver/without_basedir/main.js b/src/third_party/devtools/node_modules/resolve/test/resolver/without_basedir/main.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/resolve/test/resolver/without_basedir/main.js
rename to src/third_party/devtools/node_modules/resolve/test/resolver/without_basedir/main.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/resolve/test/resolver/without_basedir/node_modules/mymodule.js b/src/third_party/devtools/node_modules/resolve/test/resolver/without_basedir/node_modules/mymodule.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/resolve/test/resolver/without_basedir/node_modules/mymodule.js
rename to src/third_party/devtools/node_modules/resolve/test/resolver/without_basedir/node_modules/mymodule.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/resolve/test/resolver_sync.js b/src/third_party/devtools/node_modules/resolve/test/resolver_sync.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/resolve/test/resolver_sync.js
rename to src/third_party/devtools/node_modules/resolve/test/resolver_sync.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/resolve/test/subdirs.js b/src/third_party/devtools/node_modules/resolve/test/subdirs.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/resolve/test/subdirs.js
rename to src/third_party/devtools/node_modules/resolve/test/subdirs.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/resolve/test/subdirs/node_modules/a/b/c/x.json b/src/third_party/devtools/node_modules/resolve/test/subdirs/node_modules/a/b/c/x.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/resolve/test/subdirs/node_modules/a/b/c/x.json
rename to src/third_party/devtools/node_modules/resolve/test/subdirs/node_modules/a/b/c/x.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/resolve/test/subdirs/node_modules/a/package.json b/src/third_party/devtools/node_modules/resolve/test/subdirs/node_modules/a/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/resolve/test/subdirs/node_modules/a/package.json
rename to src/third_party/devtools/node_modules/resolve/test/subdirs/node_modules/a/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/restore-cursor/LICENSE b/src/third_party/devtools/node_modules/restore-cursor/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/restore-cursor/LICENSE
rename to src/third_party/devtools/node_modules/restore-cursor/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/restore-cursor/index.js b/src/third_party/devtools/node_modules/restore-cursor/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/restore-cursor/index.js
rename to src/third_party/devtools/node_modules/restore-cursor/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/restore-cursor/package.json b/src/third_party/devtools/node_modules/restore-cursor/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/restore-cursor/package.json
rename to src/third_party/devtools/node_modules/restore-cursor/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/restore-cursor/readme.md b/src/third_party/devtools/node_modules/restore-cursor/readme.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/restore-cursor/readme.md
rename to src/third_party/devtools/node_modules/restore-cursor/readme.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rfdc/LICENSE b/src/third_party/devtools/node_modules/rfdc/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rfdc/LICENSE
rename to src/third_party/devtools/node_modules/rfdc/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rfdc/index.js b/src/third_party/devtools/node_modules/rfdc/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rfdc/index.js
rename to src/third_party/devtools/node_modules/rfdc/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rfdc/package.json b/src/third_party/devtools/node_modules/rfdc/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rfdc/package.json
rename to src/third_party/devtools/node_modules/rfdc/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rfdc/readme.md b/src/third_party/devtools/node_modules/rfdc/readme.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rfdc/readme.md
rename to src/third_party/devtools/node_modules/rfdc/readme.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rfdc/test/index.js b/src/third_party/devtools/node_modules/rfdc/test/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rfdc/test/index.js
rename to src/third_party/devtools/node_modules/rfdc/test/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rimraf/LICENSE b/src/third_party/devtools/node_modules/rimraf/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rimraf/LICENSE
rename to src/third_party/devtools/node_modules/rimraf/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rimraf/README.md b/src/third_party/devtools/node_modules/rimraf/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rimraf/README.md
rename to src/third_party/devtools/node_modules/rimraf/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rimraf/bin.js b/src/third_party/devtools/node_modules/rimraf/bin.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rimraf/bin.js
rename to src/third_party/devtools/node_modules/rimraf/bin.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rimraf/package.json b/src/third_party/devtools/node_modules/rimraf/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rimraf/package.json
rename to src/third_party/devtools/node_modules/rimraf/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rimraf/rimraf.js b/src/third_party/devtools/node_modules/rimraf/rimraf.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rimraf/rimraf.js
rename to src/third_party/devtools/node_modules/rimraf/rimraf.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/ripemd160/CHANGELOG.md b/src/third_party/devtools/node_modules/ripemd160/CHANGELOG.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/ripemd160/CHANGELOG.md
rename to src/third_party/devtools/node_modules/ripemd160/CHANGELOG.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/ripemd160/LICENSE b/src/third_party/devtools/node_modules/ripemd160/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/ripemd160/LICENSE
rename to src/third_party/devtools/node_modules/ripemd160/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/ripemd160/README.md b/src/third_party/devtools/node_modules/ripemd160/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/ripemd160/README.md
rename to src/third_party/devtools/node_modules/ripemd160/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/ripemd160/index.js b/src/third_party/devtools/node_modules/ripemd160/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/ripemd160/index.js
rename to src/third_party/devtools/node_modules/ripemd160/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/ripemd160/package.json b/src/third_party/devtools/node_modules/ripemd160/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/ripemd160/package.json
rename to src/third_party/devtools/node_modules/ripemd160/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rollup/CHANGELOG.md b/src/third_party/devtools/node_modules/rollup/CHANGELOG.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rollup/CHANGELOG.md
rename to src/third_party/devtools/node_modules/rollup/CHANGELOG.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rollup/LICENSE.md b/src/third_party/devtools/node_modules/rollup/LICENSE.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rollup/LICENSE.md
rename to src/third_party/devtools/node_modules/rollup/LICENSE.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rollup/README.md b/src/third_party/devtools/node_modules/rollup/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rollup/README.md
rename to src/third_party/devtools/node_modules/rollup/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rollup/dist/bin/rollup b/src/third_party/devtools/node_modules/rollup/dist/bin/rollup
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rollup/dist/bin/rollup
rename to src/third_party/devtools/node_modules/rollup/dist/bin/rollup
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rollup/dist/rollup.browser.es.js b/src/third_party/devtools/node_modules/rollup/dist/rollup.browser.es.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rollup/dist/rollup.browser.es.js
rename to src/third_party/devtools/node_modules/rollup/dist/rollup.browser.es.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rollup/dist/rollup.browser.js b/src/third_party/devtools/node_modules/rollup/dist/rollup.browser.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rollup/dist/rollup.browser.js
rename to src/third_party/devtools/node_modules/rollup/dist/rollup.browser.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rollup/dist/rollup.d.ts b/src/third_party/devtools/node_modules/rollup/dist/rollup.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rollup/dist/rollup.d.ts
rename to src/third_party/devtools/node_modules/rollup/dist/rollup.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rollup/dist/rollup.es.js b/src/third_party/devtools/node_modules/rollup/dist/rollup.es.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rollup/dist/rollup.es.js
rename to src/third_party/devtools/node_modules/rollup/dist/rollup.es.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rollup/dist/rollup.js b/src/third_party/devtools/node_modules/rollup/dist/rollup.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rollup/dist/rollup.js
rename to src/third_party/devtools/node_modules/rollup/dist/rollup.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rollup/dist/shared/index.js b/src/third_party/devtools/node_modules/rollup/dist/shared/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rollup/dist/shared/index.js
rename to src/third_party/devtools/node_modules/rollup/dist/shared/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rollup/package.json b/src/third_party/devtools/node_modules/rollup/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rollup/package.json
rename to src/third_party/devtools/node_modules/rollup/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/run-async/LICENSE b/src/third_party/devtools/node_modules/run-async/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/run-async/LICENSE
rename to src/third_party/devtools/node_modules/run-async/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/run-async/README.md b/src/third_party/devtools/node_modules/run-async/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/run-async/README.md
rename to src/third_party/devtools/node_modules/run-async/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/run-async/index.js b/src/third_party/devtools/node_modules/run-async/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/run-async/index.js
rename to src/third_party/devtools/node_modules/run-async/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/run-async/package.json b/src/third_party/devtools/node_modules/run-async/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/run-async/package.json
rename to src/third_party/devtools/node_modules/run-async/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/AsyncSubject.d.ts b/src/third_party/devtools/node_modules/rxjs/AsyncSubject.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/AsyncSubject.d.ts
rename to src/third_party/devtools/node_modules/rxjs/AsyncSubject.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/AsyncSubject.js b/src/third_party/devtools/node_modules/rxjs/AsyncSubject.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/AsyncSubject.js
rename to src/third_party/devtools/node_modules/rxjs/AsyncSubject.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/AsyncSubject.js.map b/src/third_party/devtools/node_modules/rxjs/AsyncSubject.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/AsyncSubject.js.map
rename to src/third_party/devtools/node_modules/rxjs/AsyncSubject.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/BehaviorSubject.d.ts b/src/third_party/devtools/node_modules/rxjs/BehaviorSubject.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/BehaviorSubject.d.ts
rename to src/third_party/devtools/node_modules/rxjs/BehaviorSubject.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/BehaviorSubject.js b/src/third_party/devtools/node_modules/rxjs/BehaviorSubject.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/BehaviorSubject.js
rename to src/third_party/devtools/node_modules/rxjs/BehaviorSubject.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/BehaviorSubject.js.map b/src/third_party/devtools/node_modules/rxjs/BehaviorSubject.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/BehaviorSubject.js.map
rename to src/third_party/devtools/node_modules/rxjs/BehaviorSubject.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/InnerSubscriber.d.ts b/src/third_party/devtools/node_modules/rxjs/InnerSubscriber.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/InnerSubscriber.d.ts
rename to src/third_party/devtools/node_modules/rxjs/InnerSubscriber.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/InnerSubscriber.js b/src/third_party/devtools/node_modules/rxjs/InnerSubscriber.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/InnerSubscriber.js
rename to src/third_party/devtools/node_modules/rxjs/InnerSubscriber.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/InnerSubscriber.js.map b/src/third_party/devtools/node_modules/rxjs/InnerSubscriber.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/InnerSubscriber.js.map
rename to src/third_party/devtools/node_modules/rxjs/InnerSubscriber.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/LICENSE.txt b/src/third_party/devtools/node_modules/rxjs/LICENSE.txt
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/LICENSE.txt
rename to src/third_party/devtools/node_modules/rxjs/LICENSE.txt
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/Notification.d.ts b/src/third_party/devtools/node_modules/rxjs/Notification.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/Notification.d.ts
rename to src/third_party/devtools/node_modules/rxjs/Notification.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/Notification.js b/src/third_party/devtools/node_modules/rxjs/Notification.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/Notification.js
rename to src/third_party/devtools/node_modules/rxjs/Notification.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/Notification.js.map b/src/third_party/devtools/node_modules/rxjs/Notification.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/Notification.js.map
rename to src/third_party/devtools/node_modules/rxjs/Notification.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/Observable.d.ts b/src/third_party/devtools/node_modules/rxjs/Observable.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/Observable.d.ts
rename to src/third_party/devtools/node_modules/rxjs/Observable.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/Observable.js b/src/third_party/devtools/node_modules/rxjs/Observable.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/Observable.js
rename to src/third_party/devtools/node_modules/rxjs/Observable.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/Observable.js.map b/src/third_party/devtools/node_modules/rxjs/Observable.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/Observable.js.map
rename to src/third_party/devtools/node_modules/rxjs/Observable.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/Observer.d.ts b/src/third_party/devtools/node_modules/rxjs/Observer.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/Observer.d.ts
rename to src/third_party/devtools/node_modules/rxjs/Observer.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/Observer.js b/src/third_party/devtools/node_modules/rxjs/Observer.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/Observer.js
rename to src/third_party/devtools/node_modules/rxjs/Observer.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/Observer.js.map b/src/third_party/devtools/node_modules/rxjs/Observer.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/Observer.js.map
rename to src/third_party/devtools/node_modules/rxjs/Observer.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/Operator.d.ts b/src/third_party/devtools/node_modules/rxjs/Operator.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/Operator.d.ts
rename to src/third_party/devtools/node_modules/rxjs/Operator.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/Operator.js b/src/third_party/devtools/node_modules/rxjs/Operator.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/Operator.js
rename to src/third_party/devtools/node_modules/rxjs/Operator.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/Operator.js.map b/src/third_party/devtools/node_modules/rxjs/Operator.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/Operator.js.map
rename to src/third_party/devtools/node_modules/rxjs/Operator.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/OuterSubscriber.d.ts b/src/third_party/devtools/node_modules/rxjs/OuterSubscriber.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/OuterSubscriber.d.ts
rename to src/third_party/devtools/node_modules/rxjs/OuterSubscriber.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/OuterSubscriber.js b/src/third_party/devtools/node_modules/rxjs/OuterSubscriber.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/OuterSubscriber.js
rename to src/third_party/devtools/node_modules/rxjs/OuterSubscriber.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/OuterSubscriber.js.map b/src/third_party/devtools/node_modules/rxjs/OuterSubscriber.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/OuterSubscriber.js.map
rename to src/third_party/devtools/node_modules/rxjs/OuterSubscriber.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/README.md b/src/third_party/devtools/node_modules/rxjs/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/README.md
rename to src/third_party/devtools/node_modules/rxjs/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/ReplaySubject.d.ts b/src/third_party/devtools/node_modules/rxjs/ReplaySubject.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/ReplaySubject.d.ts
rename to src/third_party/devtools/node_modules/rxjs/ReplaySubject.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/ReplaySubject.js b/src/third_party/devtools/node_modules/rxjs/ReplaySubject.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/ReplaySubject.js
rename to src/third_party/devtools/node_modules/rxjs/ReplaySubject.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/ReplaySubject.js.map b/src/third_party/devtools/node_modules/rxjs/ReplaySubject.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/ReplaySubject.js.map
rename to src/third_party/devtools/node_modules/rxjs/ReplaySubject.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/Rx.d.ts b/src/third_party/devtools/node_modules/rxjs/Rx.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/Rx.d.ts
rename to src/third_party/devtools/node_modules/rxjs/Rx.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/Rx.js b/src/third_party/devtools/node_modules/rxjs/Rx.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/Rx.js
rename to src/third_party/devtools/node_modules/rxjs/Rx.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/Rx.js.map b/src/third_party/devtools/node_modules/rxjs/Rx.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/Rx.js.map
rename to src/third_party/devtools/node_modules/rxjs/Rx.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/Scheduler.d.ts b/src/third_party/devtools/node_modules/rxjs/Scheduler.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/Scheduler.d.ts
rename to src/third_party/devtools/node_modules/rxjs/Scheduler.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/Scheduler.js b/src/third_party/devtools/node_modules/rxjs/Scheduler.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/Scheduler.js
rename to src/third_party/devtools/node_modules/rxjs/Scheduler.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/Scheduler.js.map b/src/third_party/devtools/node_modules/rxjs/Scheduler.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/Scheduler.js.map
rename to src/third_party/devtools/node_modules/rxjs/Scheduler.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/Subject.d.ts b/src/third_party/devtools/node_modules/rxjs/Subject.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/Subject.d.ts
rename to src/third_party/devtools/node_modules/rxjs/Subject.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/Subject.js b/src/third_party/devtools/node_modules/rxjs/Subject.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/Subject.js
rename to src/third_party/devtools/node_modules/rxjs/Subject.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/Subject.js.map b/src/third_party/devtools/node_modules/rxjs/Subject.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/Subject.js.map
rename to src/third_party/devtools/node_modules/rxjs/Subject.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/SubjectSubscription.d.ts b/src/third_party/devtools/node_modules/rxjs/SubjectSubscription.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/SubjectSubscription.d.ts
rename to src/third_party/devtools/node_modules/rxjs/SubjectSubscription.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/SubjectSubscription.js b/src/third_party/devtools/node_modules/rxjs/SubjectSubscription.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/SubjectSubscription.js
rename to src/third_party/devtools/node_modules/rxjs/SubjectSubscription.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/SubjectSubscription.js.map b/src/third_party/devtools/node_modules/rxjs/SubjectSubscription.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/SubjectSubscription.js.map
rename to src/third_party/devtools/node_modules/rxjs/SubjectSubscription.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/Subscriber.d.ts b/src/third_party/devtools/node_modules/rxjs/Subscriber.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/Subscriber.d.ts
rename to src/third_party/devtools/node_modules/rxjs/Subscriber.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/Subscriber.js b/src/third_party/devtools/node_modules/rxjs/Subscriber.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/Subscriber.js
rename to src/third_party/devtools/node_modules/rxjs/Subscriber.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/Subscriber.js.map b/src/third_party/devtools/node_modules/rxjs/Subscriber.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/Subscriber.js.map
rename to src/third_party/devtools/node_modules/rxjs/Subscriber.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/Subscription.d.ts b/src/third_party/devtools/node_modules/rxjs/Subscription.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/Subscription.d.ts
rename to src/third_party/devtools/node_modules/rxjs/Subscription.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/Subscription.js b/src/third_party/devtools/node_modules/rxjs/Subscription.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/Subscription.js
rename to src/third_party/devtools/node_modules/rxjs/Subscription.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/Subscription.js.map b/src/third_party/devtools/node_modules/rxjs/Subscription.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/Subscription.js.map
rename to src/third_party/devtools/node_modules/rxjs/Subscription.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/LICENSE.txt b/src/third_party/devtools/node_modules/rxjs/_esm2015/LICENSE.txt
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/LICENSE.txt
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/LICENSE.txt
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/README.md b/src/third_party/devtools/node_modules/rxjs/_esm2015/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/README.md
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/ajax/index.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/ajax/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/ajax/index.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/ajax/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/ajax/index.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/ajax/index.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/ajax/index.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/ajax/index.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/fetch/index.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/fetch/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/fetch/index.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/fetch/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/fetch/index.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/fetch/index.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/fetch/index.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/fetch/index.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/index.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/index.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/index.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/index.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/index.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/index.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal-compatibility/index.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal-compatibility/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal-compatibility/index.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal-compatibility/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal-compatibility/index.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal-compatibility/index.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal-compatibility/index.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal-compatibility/index.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/AsyncSubject.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/AsyncSubject.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/AsyncSubject.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/AsyncSubject.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/AsyncSubject.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/AsyncSubject.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/AsyncSubject.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/AsyncSubject.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/BehaviorSubject.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/BehaviorSubject.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/BehaviorSubject.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/BehaviorSubject.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/BehaviorSubject.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/BehaviorSubject.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/BehaviorSubject.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/BehaviorSubject.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/InnerSubscriber.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/InnerSubscriber.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/InnerSubscriber.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/InnerSubscriber.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/InnerSubscriber.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/InnerSubscriber.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/InnerSubscriber.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/InnerSubscriber.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/Notification.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/Notification.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/Notification.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/Notification.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/Notification.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/Notification.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/Notification.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/Notification.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/Observable.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/Observable.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/Observable.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/Observable.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/Observable.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/Observable.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/Observable.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/Observable.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/Observer.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/Observer.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/Observer.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/Observer.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/Observer.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/Observer.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/Observer.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/Observer.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/Operator.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/Operator.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/Operator.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/Operator.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/Operator.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/Operator.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/Operator.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/Operator.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/OuterSubscriber.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/OuterSubscriber.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/OuterSubscriber.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/OuterSubscriber.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/OuterSubscriber.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/OuterSubscriber.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/OuterSubscriber.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/OuterSubscriber.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/ReplaySubject.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/ReplaySubject.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/ReplaySubject.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/ReplaySubject.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/ReplaySubject.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/ReplaySubject.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/ReplaySubject.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/ReplaySubject.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/Rx.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/Rx.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/Rx.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/Rx.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/Rx.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/Rx.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/Rx.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/Rx.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/Scheduler.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/Scheduler.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/Scheduler.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/Scheduler.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/Scheduler.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/Scheduler.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/Scheduler.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/Scheduler.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/Subject.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/Subject.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/Subject.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/Subject.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/Subject.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/Subject.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/Subject.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/Subject.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/SubjectSubscription.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/SubjectSubscription.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/SubjectSubscription.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/SubjectSubscription.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/SubjectSubscription.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/SubjectSubscription.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/SubjectSubscription.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/SubjectSubscription.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/Subscriber.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/Subscriber.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/Subscriber.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/Subscriber.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/Subscriber.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/Subscriber.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/Subscriber.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/Subscriber.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/Subscription.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/Subscription.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/Subscription.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/Subscription.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/Subscription.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/Subscription.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/Subscription.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/Subscription.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/config.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/config.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/config.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/config.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/config.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/config.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/config.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/config.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/observable/ConnectableObservable.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/observable/ConnectableObservable.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/observable/ConnectableObservable.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/observable/ConnectableObservable.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/observable/ConnectableObservable.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/observable/ConnectableObservable.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/observable/ConnectableObservable.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/observable/ConnectableObservable.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/observable/SubscribeOnObservable.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/observable/SubscribeOnObservable.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/observable/SubscribeOnObservable.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/observable/SubscribeOnObservable.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/observable/SubscribeOnObservable.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/observable/SubscribeOnObservable.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/observable/SubscribeOnObservable.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/observable/SubscribeOnObservable.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/observable/bindCallback.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/observable/bindCallback.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/observable/bindCallback.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/observable/bindCallback.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/observable/bindCallback.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/observable/bindCallback.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/observable/bindCallback.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/observable/bindCallback.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/observable/bindNodeCallback.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/observable/bindNodeCallback.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/observable/bindNodeCallback.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/observable/bindNodeCallback.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/observable/bindNodeCallback.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/observable/bindNodeCallback.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/observable/bindNodeCallback.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/observable/bindNodeCallback.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/observable/combineLatest.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/observable/combineLatest.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/observable/combineLatest.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/observable/combineLatest.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/observable/combineLatest.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/observable/combineLatest.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/observable/combineLatest.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/observable/combineLatest.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/observable/concat.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/observable/concat.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/observable/concat.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/observable/concat.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/observable/concat.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/observable/concat.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/observable/concat.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/observable/concat.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/observable/defer.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/observable/defer.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/observable/defer.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/observable/defer.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/observable/defer.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/observable/defer.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/observable/defer.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/observable/defer.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/observable/dom/AjaxObservable.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/observable/dom/AjaxObservable.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/observable/dom/AjaxObservable.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/observable/dom/AjaxObservable.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/observable/dom/AjaxObservable.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/observable/dom/AjaxObservable.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/observable/dom/AjaxObservable.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/observable/dom/AjaxObservable.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/observable/dom/WebSocketSubject.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/observable/dom/WebSocketSubject.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/observable/dom/WebSocketSubject.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/observable/dom/WebSocketSubject.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/observable/dom/WebSocketSubject.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/observable/dom/WebSocketSubject.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/observable/dom/WebSocketSubject.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/observable/dom/WebSocketSubject.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/observable/dom/ajax.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/observable/dom/ajax.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/observable/dom/ajax.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/observable/dom/ajax.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/observable/dom/ajax.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/observable/dom/ajax.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/observable/dom/ajax.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/observable/dom/ajax.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/observable/dom/fetch.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/observable/dom/fetch.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/observable/dom/fetch.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/observable/dom/fetch.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/observable/dom/fetch.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/observable/dom/fetch.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/observable/dom/fetch.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/observable/dom/fetch.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/observable/dom/webSocket.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/observable/dom/webSocket.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/observable/dom/webSocket.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/observable/dom/webSocket.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/observable/dom/webSocket.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/observable/dom/webSocket.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/observable/dom/webSocket.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/observable/dom/webSocket.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/observable/empty.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/observable/empty.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/observable/empty.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/observable/empty.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/observable/empty.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/observable/empty.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/observable/empty.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/observable/empty.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/observable/forkJoin.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/observable/forkJoin.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/observable/forkJoin.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/observable/forkJoin.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/observable/forkJoin.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/observable/forkJoin.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/observable/forkJoin.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/observable/forkJoin.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/observable/from.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/observable/from.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/observable/from.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/observable/from.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/observable/from.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/observable/from.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/observable/from.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/observable/from.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/observable/fromArray.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/observable/fromArray.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/observable/fromArray.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/observable/fromArray.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/observable/fromArray.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/observable/fromArray.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/observable/fromArray.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/observable/fromArray.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/observable/fromEvent.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/observable/fromEvent.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/observable/fromEvent.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/observable/fromEvent.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/observable/fromEvent.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/observable/fromEvent.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/observable/fromEvent.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/observable/fromEvent.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/observable/fromEventPattern.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/observable/fromEventPattern.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/observable/fromEventPattern.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/observable/fromEventPattern.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/observable/fromEventPattern.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/observable/fromEventPattern.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/observable/fromEventPattern.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/observable/fromEventPattern.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/observable/fromIterable.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/observable/fromIterable.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/observable/fromIterable.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/observable/fromIterable.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/observable/fromIterable.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/observable/fromIterable.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/observable/fromIterable.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/observable/fromIterable.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/observable/fromPromise.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/observable/fromPromise.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/observable/fromPromise.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/observable/fromPromise.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/observable/fromPromise.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/observable/fromPromise.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/observable/fromPromise.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/observable/fromPromise.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/observable/generate.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/observable/generate.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/observable/generate.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/observable/generate.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/observable/generate.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/observable/generate.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/observable/generate.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/observable/generate.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/observable/iif.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/observable/iif.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/observable/iif.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/observable/iif.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/observable/iif.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/observable/iif.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/observable/iif.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/observable/iif.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/observable/interval.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/observable/interval.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/observable/interval.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/observable/interval.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/observable/interval.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/observable/interval.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/observable/interval.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/observable/interval.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/observable/merge.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/observable/merge.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/observable/merge.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/observable/merge.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/observable/merge.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/observable/merge.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/observable/merge.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/observable/merge.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/observable/never.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/observable/never.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/observable/never.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/observable/never.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/observable/never.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/observable/never.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/observable/never.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/observable/never.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/observable/of.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/observable/of.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/observable/of.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/observable/of.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/observable/of.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/observable/of.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/observable/of.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/observable/of.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/observable/onErrorResumeNext.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/observable/onErrorResumeNext.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/observable/onErrorResumeNext.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/observable/onErrorResumeNext.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/observable/onErrorResumeNext.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/observable/onErrorResumeNext.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/observable/onErrorResumeNext.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/observable/onErrorResumeNext.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/observable/pairs.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/observable/pairs.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/observable/pairs.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/observable/pairs.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/observable/pairs.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/observable/pairs.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/observable/pairs.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/observable/pairs.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/observable/partition.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/observable/partition.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/observable/partition.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/observable/partition.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/observable/partition.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/observable/partition.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/observable/partition.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/observable/partition.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/observable/race.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/observable/race.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/observable/race.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/observable/race.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/observable/race.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/observable/race.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/observable/race.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/observable/race.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/observable/range.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/observable/range.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/observable/range.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/observable/range.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/observable/range.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/observable/range.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/observable/range.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/observable/range.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/observable/throwError.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/observable/throwError.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/observable/throwError.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/observable/throwError.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/observable/throwError.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/observable/throwError.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/observable/throwError.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/observable/throwError.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/observable/timer.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/observable/timer.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/observable/timer.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/observable/timer.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/observable/timer.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/observable/timer.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/observable/timer.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/observable/timer.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/observable/using.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/observable/using.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/observable/using.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/observable/using.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/observable/using.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/observable/using.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/observable/using.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/observable/using.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/observable/zip.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/observable/zip.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/observable/zip.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/observable/zip.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/observable/zip.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/observable/zip.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/observable/zip.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/observable/zip.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/audit.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/audit.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/audit.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/audit.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/audit.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/audit.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/audit.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/audit.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/auditTime.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/auditTime.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/auditTime.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/auditTime.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/auditTime.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/auditTime.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/auditTime.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/auditTime.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/buffer.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/buffer.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/buffer.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/buffer.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/buffer.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/buffer.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/buffer.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/buffer.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/bufferCount.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/bufferCount.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/bufferCount.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/bufferCount.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/bufferCount.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/bufferCount.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/bufferCount.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/bufferCount.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/bufferTime.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/bufferTime.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/bufferTime.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/bufferTime.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/bufferTime.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/bufferTime.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/bufferTime.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/bufferTime.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/bufferToggle.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/bufferToggle.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/bufferToggle.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/bufferToggle.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/bufferToggle.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/bufferToggle.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/bufferToggle.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/bufferToggle.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/bufferWhen.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/bufferWhen.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/bufferWhen.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/bufferWhen.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/bufferWhen.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/bufferWhen.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/bufferWhen.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/bufferWhen.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/catchError.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/catchError.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/catchError.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/catchError.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/catchError.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/catchError.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/catchError.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/catchError.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/combineAll.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/combineAll.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/combineAll.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/combineAll.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/combineAll.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/combineAll.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/combineAll.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/combineAll.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/combineLatest.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/combineLatest.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/combineLatest.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/combineLatest.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/combineLatest.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/combineLatest.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/combineLatest.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/combineLatest.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/concat.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/concat.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/concat.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/concat.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/concat.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/concat.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/concat.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/concat.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/concatAll.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/concatAll.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/concatAll.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/concatAll.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/concatAll.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/concatAll.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/concatAll.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/concatAll.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/concatMap.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/concatMap.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/concatMap.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/concatMap.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/concatMap.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/concatMap.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/concatMap.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/concatMap.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/concatMapTo.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/concatMapTo.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/concatMapTo.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/concatMapTo.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/concatMapTo.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/concatMapTo.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/concatMapTo.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/concatMapTo.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/count.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/count.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/count.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/count.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/count.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/count.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/count.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/count.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/debounce.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/debounce.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/debounce.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/debounce.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/debounce.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/debounce.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/debounce.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/debounce.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/debounceTime.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/debounceTime.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/debounceTime.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/debounceTime.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/debounceTime.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/debounceTime.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/debounceTime.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/debounceTime.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/defaultIfEmpty.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/defaultIfEmpty.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/defaultIfEmpty.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/defaultIfEmpty.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/defaultIfEmpty.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/defaultIfEmpty.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/defaultIfEmpty.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/defaultIfEmpty.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/delay.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/delay.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/delay.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/delay.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/delay.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/delay.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/delay.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/delay.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/delayWhen.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/delayWhen.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/delayWhen.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/delayWhen.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/delayWhen.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/delayWhen.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/delayWhen.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/delayWhen.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/dematerialize.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/dematerialize.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/dematerialize.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/dematerialize.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/dematerialize.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/dematerialize.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/dematerialize.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/dematerialize.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/distinct.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/distinct.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/distinct.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/distinct.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/distinct.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/distinct.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/distinct.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/distinct.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/distinctUntilChanged.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/distinctUntilChanged.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/distinctUntilChanged.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/distinctUntilChanged.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/distinctUntilChanged.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/distinctUntilChanged.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/distinctUntilChanged.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/distinctUntilChanged.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/distinctUntilKeyChanged.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/distinctUntilKeyChanged.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/distinctUntilKeyChanged.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/distinctUntilKeyChanged.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/distinctUntilKeyChanged.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/distinctUntilKeyChanged.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/distinctUntilKeyChanged.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/distinctUntilKeyChanged.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/elementAt.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/elementAt.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/elementAt.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/elementAt.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/elementAt.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/elementAt.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/elementAt.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/elementAt.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/endWith.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/endWith.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/endWith.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/endWith.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/endWith.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/endWith.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/endWith.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/endWith.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/every.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/every.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/every.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/every.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/every.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/every.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/every.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/every.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/exhaust.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/exhaust.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/exhaust.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/exhaust.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/exhaust.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/exhaust.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/exhaust.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/exhaust.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/exhaustMap.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/exhaustMap.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/exhaustMap.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/exhaustMap.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/exhaustMap.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/exhaustMap.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/exhaustMap.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/exhaustMap.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/expand.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/expand.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/expand.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/expand.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/expand.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/expand.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/expand.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/expand.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/filter.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/filter.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/filter.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/filter.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/filter.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/filter.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/filter.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/filter.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/finalize.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/finalize.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/finalize.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/finalize.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/finalize.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/finalize.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/finalize.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/finalize.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/find.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/find.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/find.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/find.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/find.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/find.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/find.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/find.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/findIndex.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/findIndex.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/findIndex.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/findIndex.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/findIndex.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/findIndex.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/findIndex.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/findIndex.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/first.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/first.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/first.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/first.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/first.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/first.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/first.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/first.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/groupBy.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/groupBy.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/groupBy.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/groupBy.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/groupBy.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/groupBy.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/groupBy.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/groupBy.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/ignoreElements.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/ignoreElements.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/ignoreElements.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/ignoreElements.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/ignoreElements.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/ignoreElements.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/ignoreElements.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/ignoreElements.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/index.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/index.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/index.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/index.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/index.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/index.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/isEmpty.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/isEmpty.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/isEmpty.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/isEmpty.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/isEmpty.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/isEmpty.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/isEmpty.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/isEmpty.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/last.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/last.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/last.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/last.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/last.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/last.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/last.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/last.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/map.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/map.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/map.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/map.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/map.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/map.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/map.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/map.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/mapTo.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/mapTo.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/mapTo.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/mapTo.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/mapTo.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/mapTo.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/mapTo.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/mapTo.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/materialize.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/materialize.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/materialize.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/materialize.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/materialize.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/materialize.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/materialize.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/materialize.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/max.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/max.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/max.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/max.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/max.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/max.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/max.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/max.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/merge.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/merge.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/merge.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/merge.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/merge.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/merge.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/merge.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/merge.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/mergeAll.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/mergeAll.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/mergeAll.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/mergeAll.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/mergeAll.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/mergeAll.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/mergeAll.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/mergeAll.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/mergeMap.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/mergeMap.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/mergeMap.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/mergeMap.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/mergeMap.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/mergeMap.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/mergeMap.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/mergeMap.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/mergeMapTo.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/mergeMapTo.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/mergeMapTo.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/mergeMapTo.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/mergeMapTo.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/mergeMapTo.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/mergeMapTo.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/mergeMapTo.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/mergeScan.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/mergeScan.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/mergeScan.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/mergeScan.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/mergeScan.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/mergeScan.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/mergeScan.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/mergeScan.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/min.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/min.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/min.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/min.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/min.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/min.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/min.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/min.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/multicast.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/multicast.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/multicast.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/multicast.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/multicast.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/multicast.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/multicast.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/multicast.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/observeOn.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/observeOn.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/observeOn.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/observeOn.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/observeOn.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/observeOn.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/observeOn.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/observeOn.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/onErrorResumeNext.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/onErrorResumeNext.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/onErrorResumeNext.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/onErrorResumeNext.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/onErrorResumeNext.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/onErrorResumeNext.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/onErrorResumeNext.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/onErrorResumeNext.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/pairwise.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/pairwise.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/pairwise.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/pairwise.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/pairwise.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/pairwise.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/pairwise.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/pairwise.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/partition.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/partition.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/partition.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/partition.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/partition.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/partition.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/partition.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/partition.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/pluck.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/pluck.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/pluck.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/pluck.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/pluck.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/pluck.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/pluck.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/pluck.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/publish.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/publish.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/publish.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/publish.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/publish.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/publish.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/publish.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/publish.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/publishBehavior.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/publishBehavior.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/publishBehavior.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/publishBehavior.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/publishBehavior.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/publishBehavior.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/publishBehavior.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/publishBehavior.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/publishLast.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/publishLast.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/publishLast.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/publishLast.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/publishLast.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/publishLast.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/publishLast.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/publishLast.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/publishReplay.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/publishReplay.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/publishReplay.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/publishReplay.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/publishReplay.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/publishReplay.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/publishReplay.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/publishReplay.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/race.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/race.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/race.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/race.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/race.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/race.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/race.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/race.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/reduce.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/reduce.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/reduce.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/reduce.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/reduce.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/reduce.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/reduce.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/reduce.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/refCount.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/refCount.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/refCount.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/refCount.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/refCount.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/refCount.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/refCount.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/refCount.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/repeat.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/repeat.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/repeat.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/repeat.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/repeat.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/repeat.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/repeat.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/repeat.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/repeatWhen.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/repeatWhen.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/repeatWhen.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/repeatWhen.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/repeatWhen.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/repeatWhen.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/repeatWhen.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/repeatWhen.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/retry.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/retry.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/retry.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/retry.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/retry.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/retry.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/retry.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/retry.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/retryWhen.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/retryWhen.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/retryWhen.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/retryWhen.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/retryWhen.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/retryWhen.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/retryWhen.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/retryWhen.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/sample.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/sample.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/sample.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/sample.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/sample.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/sample.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/sample.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/sample.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/sampleTime.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/sampleTime.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/sampleTime.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/sampleTime.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/sampleTime.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/sampleTime.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/sampleTime.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/sampleTime.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/scan.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/scan.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/scan.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/scan.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/scan.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/scan.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/scan.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/scan.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/sequenceEqual.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/sequenceEqual.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/sequenceEqual.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/sequenceEqual.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/sequenceEqual.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/sequenceEqual.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/sequenceEqual.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/sequenceEqual.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/share.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/share.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/share.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/share.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/share.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/share.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/share.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/share.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/shareReplay.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/shareReplay.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/shareReplay.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/shareReplay.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/shareReplay.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/shareReplay.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/shareReplay.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/shareReplay.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/single.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/single.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/single.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/single.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/single.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/single.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/single.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/single.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/skip.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/skip.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/skip.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/skip.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/skip.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/skip.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/skip.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/skip.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/skipLast.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/skipLast.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/skipLast.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/skipLast.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/skipLast.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/skipLast.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/skipLast.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/skipLast.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/skipUntil.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/skipUntil.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/skipUntil.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/skipUntil.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/skipUntil.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/skipUntil.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/skipUntil.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/skipUntil.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/skipWhile.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/skipWhile.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/skipWhile.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/skipWhile.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/skipWhile.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/skipWhile.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/skipWhile.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/skipWhile.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/startWith.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/startWith.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/startWith.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/startWith.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/startWith.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/startWith.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/startWith.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/startWith.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/subscribeOn.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/subscribeOn.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/subscribeOn.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/subscribeOn.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/subscribeOn.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/subscribeOn.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/subscribeOn.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/subscribeOn.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/switchAll.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/switchAll.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/switchAll.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/switchAll.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/switchAll.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/switchAll.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/switchAll.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/switchAll.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/switchMap.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/switchMap.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/switchMap.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/switchMap.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/switchMap.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/switchMap.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/switchMap.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/switchMap.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/switchMapTo.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/switchMapTo.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/switchMapTo.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/switchMapTo.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/switchMapTo.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/switchMapTo.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/switchMapTo.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/switchMapTo.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/take.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/take.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/take.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/take.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/take.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/take.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/take.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/take.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/takeLast.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/takeLast.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/takeLast.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/takeLast.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/takeLast.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/takeLast.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/takeLast.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/takeLast.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/takeUntil.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/takeUntil.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/takeUntil.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/takeUntil.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/takeUntil.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/takeUntil.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/takeUntil.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/takeUntil.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/takeWhile.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/takeWhile.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/takeWhile.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/takeWhile.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/takeWhile.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/takeWhile.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/takeWhile.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/takeWhile.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/tap.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/tap.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/tap.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/tap.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/tap.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/tap.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/tap.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/tap.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/throttle.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/throttle.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/throttle.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/throttle.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/throttle.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/throttle.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/throttle.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/throttle.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/throttleTime.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/throttleTime.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/throttleTime.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/throttleTime.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/throttleTime.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/throttleTime.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/throttleTime.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/throttleTime.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/throwIfEmpty.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/throwIfEmpty.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/throwIfEmpty.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/throwIfEmpty.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/throwIfEmpty.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/throwIfEmpty.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/throwIfEmpty.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/throwIfEmpty.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/timeInterval.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/timeInterval.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/timeInterval.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/timeInterval.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/timeInterval.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/timeInterval.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/timeInterval.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/timeInterval.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/timeout.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/timeout.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/timeout.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/timeout.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/timeout.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/timeout.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/timeout.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/timeout.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/timeoutWith.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/timeoutWith.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/timeoutWith.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/timeoutWith.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/timeoutWith.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/timeoutWith.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/timeoutWith.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/timeoutWith.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/timestamp.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/timestamp.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/timestamp.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/timestamp.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/timestamp.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/timestamp.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/timestamp.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/timestamp.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/toArray.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/toArray.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/toArray.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/toArray.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/toArray.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/toArray.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/toArray.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/toArray.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/window.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/window.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/window.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/window.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/window.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/window.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/window.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/window.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/windowCount.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/windowCount.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/windowCount.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/windowCount.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/windowCount.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/windowCount.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/windowCount.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/windowCount.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/windowTime.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/windowTime.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/windowTime.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/windowTime.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/windowTime.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/windowTime.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/windowTime.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/windowTime.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/windowToggle.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/windowToggle.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/windowToggle.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/windowToggle.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/windowToggle.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/windowToggle.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/windowToggle.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/windowToggle.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/windowWhen.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/windowWhen.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/windowWhen.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/windowWhen.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/windowWhen.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/windowWhen.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/windowWhen.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/windowWhen.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/withLatestFrom.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/withLatestFrom.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/withLatestFrom.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/withLatestFrom.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/withLatestFrom.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/withLatestFrom.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/withLatestFrom.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/withLatestFrom.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/zip.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/zip.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/zip.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/zip.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/zip.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/zip.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/zip.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/zip.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/zipAll.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/zipAll.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/zipAll.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/zipAll.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/zipAll.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/zipAll.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/operators/zipAll.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/operators/zipAll.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/scheduled/scheduleArray.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/scheduled/scheduleArray.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/scheduled/scheduleArray.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/scheduled/scheduleArray.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/scheduled/scheduleArray.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/scheduled/scheduleArray.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/scheduled/scheduleArray.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/scheduled/scheduleArray.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/scheduled/scheduleIterable.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/scheduled/scheduleIterable.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/scheduled/scheduleIterable.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/scheduled/scheduleIterable.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/scheduled/scheduleIterable.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/scheduled/scheduleIterable.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/scheduled/scheduleIterable.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/scheduled/scheduleIterable.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/scheduled/scheduleObservable.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/scheduled/scheduleObservable.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/scheduled/scheduleObservable.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/scheduled/scheduleObservable.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/scheduled/scheduleObservable.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/scheduled/scheduleObservable.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/scheduled/scheduleObservable.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/scheduled/scheduleObservable.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/scheduled/schedulePromise.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/scheduled/schedulePromise.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/scheduled/schedulePromise.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/scheduled/schedulePromise.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/scheduled/schedulePromise.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/scheduled/schedulePromise.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/scheduled/schedulePromise.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/scheduled/schedulePromise.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/scheduled/scheduled.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/scheduled/scheduled.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/scheduled/scheduled.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/scheduled/scheduled.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/scheduled/scheduled.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/scheduled/scheduled.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/scheduled/scheduled.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/scheduled/scheduled.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/scheduler/Action.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/scheduler/Action.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/scheduler/Action.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/scheduler/Action.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/scheduler/Action.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/scheduler/Action.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/scheduler/Action.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/scheduler/Action.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/scheduler/AnimationFrameAction.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/scheduler/AnimationFrameAction.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/scheduler/AnimationFrameAction.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/scheduler/AnimationFrameAction.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/scheduler/AnimationFrameAction.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/scheduler/AnimationFrameAction.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/scheduler/AnimationFrameAction.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/scheduler/AnimationFrameAction.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/scheduler/AnimationFrameScheduler.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/scheduler/AnimationFrameScheduler.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/scheduler/AnimationFrameScheduler.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/scheduler/AnimationFrameScheduler.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/scheduler/AnimationFrameScheduler.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/scheduler/AnimationFrameScheduler.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/scheduler/AnimationFrameScheduler.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/scheduler/AnimationFrameScheduler.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/scheduler/AsapAction.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/scheduler/AsapAction.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/scheduler/AsapAction.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/scheduler/AsapAction.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/scheduler/AsapAction.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/scheduler/AsapAction.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/scheduler/AsapAction.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/scheduler/AsapAction.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/scheduler/AsapScheduler.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/scheduler/AsapScheduler.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/scheduler/AsapScheduler.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/scheduler/AsapScheduler.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/scheduler/AsapScheduler.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/scheduler/AsapScheduler.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/scheduler/AsapScheduler.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/scheduler/AsapScheduler.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/scheduler/AsyncAction.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/scheduler/AsyncAction.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/scheduler/AsyncAction.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/scheduler/AsyncAction.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/scheduler/AsyncAction.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/scheduler/AsyncAction.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/scheduler/AsyncAction.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/scheduler/AsyncAction.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/scheduler/AsyncScheduler.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/scheduler/AsyncScheduler.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/scheduler/AsyncScheduler.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/scheduler/AsyncScheduler.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/scheduler/AsyncScheduler.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/scheduler/AsyncScheduler.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/scheduler/AsyncScheduler.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/scheduler/AsyncScheduler.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/scheduler/QueueAction.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/scheduler/QueueAction.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/scheduler/QueueAction.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/scheduler/QueueAction.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/scheduler/QueueAction.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/scheduler/QueueAction.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/scheduler/QueueAction.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/scheduler/QueueAction.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/scheduler/QueueScheduler.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/scheduler/QueueScheduler.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/scheduler/QueueScheduler.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/scheduler/QueueScheduler.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/scheduler/QueueScheduler.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/scheduler/QueueScheduler.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/scheduler/QueueScheduler.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/scheduler/QueueScheduler.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/scheduler/VirtualTimeScheduler.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/scheduler/VirtualTimeScheduler.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/scheduler/VirtualTimeScheduler.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/scheduler/VirtualTimeScheduler.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/scheduler/VirtualTimeScheduler.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/scheduler/VirtualTimeScheduler.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/scheduler/VirtualTimeScheduler.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/scheduler/VirtualTimeScheduler.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/scheduler/animationFrame.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/scheduler/animationFrame.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/scheduler/animationFrame.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/scheduler/animationFrame.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/scheduler/animationFrame.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/scheduler/animationFrame.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/scheduler/animationFrame.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/scheduler/animationFrame.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/scheduler/asap.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/scheduler/asap.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/scheduler/asap.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/scheduler/asap.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/scheduler/asap.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/scheduler/asap.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/scheduler/asap.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/scheduler/asap.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/scheduler/async.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/scheduler/async.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/scheduler/async.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/scheduler/async.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/scheduler/async.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/scheduler/async.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/scheduler/async.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/scheduler/async.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/scheduler/queue.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/scheduler/queue.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/scheduler/queue.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/scheduler/queue.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/scheduler/queue.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/scheduler/queue.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/scheduler/queue.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/scheduler/queue.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/symbol/iterator.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/symbol/iterator.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/symbol/iterator.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/symbol/iterator.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/symbol/iterator.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/symbol/iterator.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/symbol/iterator.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/symbol/iterator.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/symbol/observable.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/symbol/observable.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/symbol/observable.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/symbol/observable.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/symbol/observable.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/symbol/observable.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/symbol/observable.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/symbol/observable.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/symbol/rxSubscriber.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/symbol/rxSubscriber.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/symbol/rxSubscriber.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/symbol/rxSubscriber.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/symbol/rxSubscriber.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/symbol/rxSubscriber.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/symbol/rxSubscriber.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/symbol/rxSubscriber.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/testing/ColdObservable.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/testing/ColdObservable.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/testing/ColdObservable.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/testing/ColdObservable.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/testing/ColdObservable.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/testing/ColdObservable.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/testing/ColdObservable.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/testing/ColdObservable.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/testing/HotObservable.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/testing/HotObservable.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/testing/HotObservable.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/testing/HotObservable.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/testing/HotObservable.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/testing/HotObservable.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/testing/HotObservable.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/testing/HotObservable.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/testing/SubscriptionLog.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/testing/SubscriptionLog.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/testing/SubscriptionLog.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/testing/SubscriptionLog.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/testing/SubscriptionLog.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/testing/SubscriptionLog.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/testing/SubscriptionLog.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/testing/SubscriptionLog.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/testing/SubscriptionLoggable.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/testing/SubscriptionLoggable.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/testing/SubscriptionLoggable.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/testing/SubscriptionLoggable.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/testing/SubscriptionLoggable.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/testing/SubscriptionLoggable.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/testing/SubscriptionLoggable.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/testing/SubscriptionLoggable.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/testing/TestMessage.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/testing/TestMessage.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/testing/TestMessage.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/testing/TestMessage.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/testing/TestMessage.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/testing/TestMessage.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/testing/TestMessage.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/testing/TestMessage.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/testing/TestScheduler.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/testing/TestScheduler.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/testing/TestScheduler.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/testing/TestScheduler.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/testing/TestScheduler.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/testing/TestScheduler.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/testing/TestScheduler.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/testing/TestScheduler.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/types.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/types.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/types.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/types.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/types.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/types.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/types.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/types.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/util/ArgumentOutOfRangeError.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/util/ArgumentOutOfRangeError.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/util/ArgumentOutOfRangeError.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/util/ArgumentOutOfRangeError.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/util/ArgumentOutOfRangeError.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/util/ArgumentOutOfRangeError.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/util/ArgumentOutOfRangeError.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/util/ArgumentOutOfRangeError.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/util/EmptyError.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/util/EmptyError.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/util/EmptyError.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/util/EmptyError.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/util/EmptyError.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/util/EmptyError.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/util/EmptyError.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/util/EmptyError.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/util/Immediate.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/util/Immediate.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/util/Immediate.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/util/Immediate.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/util/Immediate.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/util/Immediate.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/util/Immediate.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/util/Immediate.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/util/ObjectUnsubscribedError.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/util/ObjectUnsubscribedError.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/util/ObjectUnsubscribedError.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/util/ObjectUnsubscribedError.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/util/ObjectUnsubscribedError.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/util/ObjectUnsubscribedError.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/util/ObjectUnsubscribedError.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/util/ObjectUnsubscribedError.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/util/TimeoutError.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/util/TimeoutError.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/util/TimeoutError.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/util/TimeoutError.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/util/TimeoutError.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/util/TimeoutError.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/util/TimeoutError.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/util/TimeoutError.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/util/UnsubscriptionError.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/util/UnsubscriptionError.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/util/UnsubscriptionError.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/util/UnsubscriptionError.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/util/UnsubscriptionError.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/util/UnsubscriptionError.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/util/UnsubscriptionError.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/util/UnsubscriptionError.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/util/applyMixins.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/util/applyMixins.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/util/applyMixins.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/util/applyMixins.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/util/applyMixins.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/util/applyMixins.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/util/applyMixins.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/util/applyMixins.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/util/canReportError.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/util/canReportError.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/util/canReportError.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/util/canReportError.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/util/canReportError.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/util/canReportError.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/util/canReportError.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/util/canReportError.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/util/errorObject.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/util/errorObject.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/util/errorObject.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/util/errorObject.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/util/errorObject.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/util/errorObject.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/util/errorObject.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/util/errorObject.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/util/hostReportError.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/util/hostReportError.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/util/hostReportError.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/util/hostReportError.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/util/hostReportError.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/util/hostReportError.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/util/hostReportError.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/util/hostReportError.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/util/identity.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/util/identity.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/util/identity.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/util/identity.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/util/identity.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/util/identity.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/util/identity.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/util/identity.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/util/isArray.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/util/isArray.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/util/isArray.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/util/isArray.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/util/isArray.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/util/isArray.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/util/isArray.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/util/isArray.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/util/isArrayLike.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/util/isArrayLike.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/util/isArrayLike.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/util/isArrayLike.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/util/isArrayLike.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/util/isArrayLike.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/util/isArrayLike.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/util/isArrayLike.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/util/isDate.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/util/isDate.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/util/isDate.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/util/isDate.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/util/isDate.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/util/isDate.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/util/isDate.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/util/isDate.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/util/isFunction.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/util/isFunction.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/util/isFunction.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/util/isFunction.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/util/isFunction.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/util/isFunction.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/util/isFunction.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/util/isFunction.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/util/isInteropObservable.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/util/isInteropObservable.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/util/isInteropObservable.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/util/isInteropObservable.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/util/isInteropObservable.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/util/isInteropObservable.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/util/isInteropObservable.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/util/isInteropObservable.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/util/isIterable.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/util/isIterable.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/util/isIterable.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/util/isIterable.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/util/isIterable.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/util/isIterable.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/util/isIterable.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/util/isIterable.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/util/isNumeric.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/util/isNumeric.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/util/isNumeric.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/util/isNumeric.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/util/isNumeric.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/util/isNumeric.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/util/isNumeric.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/util/isNumeric.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/util/isObject.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/util/isObject.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/util/isObject.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/util/isObject.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/util/isObject.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/util/isObject.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/util/isObject.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/util/isObject.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/util/isObservable.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/util/isObservable.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/util/isObservable.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/util/isObservable.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/util/isObservable.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/util/isObservable.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/util/isObservable.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/util/isObservable.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/util/isPromise.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/util/isPromise.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/util/isPromise.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/util/isPromise.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/util/isPromise.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/util/isPromise.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/util/isPromise.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/util/isPromise.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/util/isScheduler.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/util/isScheduler.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/util/isScheduler.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/util/isScheduler.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/util/isScheduler.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/util/isScheduler.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/util/isScheduler.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/util/isScheduler.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/util/noop.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/util/noop.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/util/noop.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/util/noop.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/util/noop.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/util/noop.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/util/noop.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/util/noop.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/util/not.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/util/not.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/util/not.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/util/not.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/util/not.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/util/not.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/util/not.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/util/not.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/util/pipe.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/util/pipe.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/util/pipe.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/util/pipe.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/util/pipe.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/util/pipe.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/util/pipe.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/util/pipe.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/util/root.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/util/root.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/util/root.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/util/root.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/util/root.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/util/root.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/util/root.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/util/root.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/util/subscribeTo.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/util/subscribeTo.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/util/subscribeTo.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/util/subscribeTo.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/util/subscribeTo.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/util/subscribeTo.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/util/subscribeTo.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/util/subscribeTo.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/util/subscribeToArray.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/util/subscribeToArray.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/util/subscribeToArray.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/util/subscribeToArray.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/util/subscribeToArray.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/util/subscribeToArray.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/util/subscribeToArray.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/util/subscribeToArray.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/util/subscribeToIterable.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/util/subscribeToIterable.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/util/subscribeToIterable.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/util/subscribeToIterable.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/util/subscribeToIterable.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/util/subscribeToIterable.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/util/subscribeToIterable.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/util/subscribeToIterable.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/util/subscribeToObservable.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/util/subscribeToObservable.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/util/subscribeToObservable.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/util/subscribeToObservable.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/util/subscribeToObservable.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/util/subscribeToObservable.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/util/subscribeToObservable.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/util/subscribeToObservable.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/util/subscribeToPromise.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/util/subscribeToPromise.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/util/subscribeToPromise.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/util/subscribeToPromise.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/util/subscribeToPromise.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/util/subscribeToPromise.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/util/subscribeToPromise.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/util/subscribeToPromise.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/util/subscribeToResult.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/util/subscribeToResult.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/util/subscribeToResult.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/util/subscribeToResult.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/util/subscribeToResult.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/util/subscribeToResult.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/util/subscribeToResult.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/util/subscribeToResult.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/util/toSubscriber.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/util/toSubscriber.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/util/toSubscriber.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/util/toSubscriber.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/util/toSubscriber.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/util/toSubscriber.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/util/toSubscriber.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/util/toSubscriber.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/util/tryCatch.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/util/tryCatch.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/util/tryCatch.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/util/tryCatch.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/util/tryCatch.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/internal/util/tryCatch.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/internal/util/tryCatch.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/internal/util/tryCatch.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/operators/index.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/operators/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/operators/index.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/operators/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/operators/index.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/operators/index.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/operators/index.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/operators/index.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/path-mapping.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/path-mapping.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/path-mapping.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/path-mapping.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/testing/index.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/testing/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/testing/index.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/testing/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/testing/index.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/testing/index.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/testing/index.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/testing/index.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/webSocket/index.js b/src/third_party/devtools/node_modules/rxjs/_esm2015/webSocket/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/webSocket/index.js
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/webSocket/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/webSocket/index.js.map b/src/third_party/devtools/node_modules/rxjs/_esm2015/webSocket/index.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm2015/webSocket/index.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm2015/webSocket/index.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/LICENSE.txt b/src/third_party/devtools/node_modules/rxjs/_esm5/LICENSE.txt
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/LICENSE.txt
rename to src/third_party/devtools/node_modules/rxjs/_esm5/LICENSE.txt
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/README.md b/src/third_party/devtools/node_modules/rxjs/_esm5/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/README.md
rename to src/third_party/devtools/node_modules/rxjs/_esm5/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/ajax/index.js b/src/third_party/devtools/node_modules/rxjs/_esm5/ajax/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/ajax/index.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/ajax/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/ajax/index.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/ajax/index.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/ajax/index.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/ajax/index.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/fetch/index.js b/src/third_party/devtools/node_modules/rxjs/_esm5/fetch/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/fetch/index.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/fetch/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/fetch/index.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/fetch/index.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/fetch/index.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/fetch/index.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/index.js b/src/third_party/devtools/node_modules/rxjs/_esm5/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/index.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/index.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/index.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/index.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/index.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal-compatibility/index.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal-compatibility/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal-compatibility/index.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal-compatibility/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal-compatibility/index.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal-compatibility/index.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal-compatibility/index.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal-compatibility/index.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/AsyncSubject.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/AsyncSubject.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/AsyncSubject.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/AsyncSubject.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/AsyncSubject.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/AsyncSubject.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/AsyncSubject.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/AsyncSubject.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/BehaviorSubject.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/BehaviorSubject.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/BehaviorSubject.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/BehaviorSubject.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/BehaviorSubject.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/BehaviorSubject.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/BehaviorSubject.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/BehaviorSubject.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/InnerSubscriber.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/InnerSubscriber.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/InnerSubscriber.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/InnerSubscriber.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/InnerSubscriber.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/InnerSubscriber.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/InnerSubscriber.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/InnerSubscriber.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/Notification.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/Notification.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/Notification.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/Notification.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/Notification.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/Notification.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/Notification.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/Notification.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/Observable.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/Observable.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/Observable.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/Observable.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/Observable.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/Observable.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/Observable.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/Observable.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/Observer.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/Observer.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/Observer.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/Observer.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/Observer.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/Observer.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/Observer.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/Observer.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/Operator.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/Operator.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/Operator.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/Operator.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/Operator.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/Operator.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/Operator.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/Operator.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/OuterSubscriber.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/OuterSubscriber.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/OuterSubscriber.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/OuterSubscriber.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/OuterSubscriber.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/OuterSubscriber.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/OuterSubscriber.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/OuterSubscriber.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/ReplaySubject.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/ReplaySubject.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/ReplaySubject.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/ReplaySubject.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/ReplaySubject.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/ReplaySubject.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/ReplaySubject.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/ReplaySubject.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/Rx.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/Rx.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/Rx.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/Rx.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/Rx.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/Rx.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/Rx.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/Rx.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/Scheduler.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/Scheduler.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/Scheduler.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/Scheduler.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/Scheduler.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/Scheduler.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/Scheduler.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/Scheduler.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/Subject.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/Subject.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/Subject.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/Subject.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/Subject.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/Subject.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/Subject.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/Subject.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/SubjectSubscription.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/SubjectSubscription.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/SubjectSubscription.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/SubjectSubscription.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/SubjectSubscription.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/SubjectSubscription.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/SubjectSubscription.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/SubjectSubscription.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/Subscriber.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/Subscriber.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/Subscriber.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/Subscriber.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/Subscriber.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/Subscriber.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/Subscriber.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/Subscriber.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/Subscription.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/Subscription.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/Subscription.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/Subscription.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/Subscription.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/Subscription.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/Subscription.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/Subscription.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/config.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/config.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/config.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/config.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/config.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/config.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/config.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/config.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/observable/ConnectableObservable.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/observable/ConnectableObservable.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/observable/ConnectableObservable.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/observable/ConnectableObservable.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/observable/ConnectableObservable.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/observable/ConnectableObservable.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/observable/ConnectableObservable.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/observable/ConnectableObservable.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/observable/SubscribeOnObservable.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/observable/SubscribeOnObservable.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/observable/SubscribeOnObservable.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/observable/SubscribeOnObservable.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/observable/SubscribeOnObservable.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/observable/SubscribeOnObservable.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/observable/SubscribeOnObservable.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/observable/SubscribeOnObservable.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/observable/bindCallback.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/observable/bindCallback.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/observable/bindCallback.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/observable/bindCallback.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/observable/bindCallback.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/observable/bindCallback.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/observable/bindCallback.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/observable/bindCallback.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/observable/bindNodeCallback.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/observable/bindNodeCallback.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/observable/bindNodeCallback.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/observable/bindNodeCallback.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/observable/bindNodeCallback.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/observable/bindNodeCallback.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/observable/bindNodeCallback.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/observable/bindNodeCallback.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/observable/combineLatest.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/observable/combineLatest.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/observable/combineLatest.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/observable/combineLatest.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/observable/combineLatest.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/observable/combineLatest.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/observable/combineLatest.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/observable/combineLatest.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/observable/concat.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/observable/concat.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/observable/concat.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/observable/concat.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/observable/concat.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/observable/concat.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/observable/concat.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/observable/concat.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/observable/defer.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/observable/defer.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/observable/defer.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/observable/defer.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/observable/defer.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/observable/defer.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/observable/defer.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/observable/defer.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/observable/dom/AjaxObservable.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/observable/dom/AjaxObservable.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/observable/dom/AjaxObservable.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/observable/dom/AjaxObservable.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/observable/dom/AjaxObservable.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/observable/dom/AjaxObservable.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/observable/dom/AjaxObservable.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/observable/dom/AjaxObservable.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/observable/dom/WebSocketSubject.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/observable/dom/WebSocketSubject.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/observable/dom/WebSocketSubject.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/observable/dom/WebSocketSubject.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/observable/dom/WebSocketSubject.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/observable/dom/WebSocketSubject.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/observable/dom/WebSocketSubject.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/observable/dom/WebSocketSubject.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/observable/dom/ajax.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/observable/dom/ajax.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/observable/dom/ajax.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/observable/dom/ajax.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/observable/dom/ajax.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/observable/dom/ajax.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/observable/dom/ajax.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/observable/dom/ajax.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/observable/dom/fetch.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/observable/dom/fetch.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/observable/dom/fetch.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/observable/dom/fetch.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/observable/dom/fetch.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/observable/dom/fetch.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/observable/dom/fetch.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/observable/dom/fetch.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/observable/dom/webSocket.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/observable/dom/webSocket.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/observable/dom/webSocket.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/observable/dom/webSocket.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/observable/dom/webSocket.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/observable/dom/webSocket.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/observable/dom/webSocket.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/observable/dom/webSocket.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/observable/empty.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/observable/empty.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/observable/empty.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/observable/empty.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/observable/empty.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/observable/empty.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/observable/empty.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/observable/empty.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/observable/forkJoin.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/observable/forkJoin.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/observable/forkJoin.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/observable/forkJoin.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/observable/forkJoin.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/observable/forkJoin.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/observable/forkJoin.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/observable/forkJoin.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/observable/from.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/observable/from.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/observable/from.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/observable/from.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/observable/from.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/observable/from.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/observable/from.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/observable/from.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/observable/fromArray.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/observable/fromArray.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/observable/fromArray.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/observable/fromArray.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/observable/fromArray.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/observable/fromArray.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/observable/fromArray.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/observable/fromArray.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/observable/fromEvent.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/observable/fromEvent.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/observable/fromEvent.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/observable/fromEvent.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/observable/fromEvent.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/observable/fromEvent.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/observable/fromEvent.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/observable/fromEvent.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/observable/fromEventPattern.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/observable/fromEventPattern.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/observable/fromEventPattern.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/observable/fromEventPattern.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/observable/fromEventPattern.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/observable/fromEventPattern.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/observable/fromEventPattern.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/observable/fromEventPattern.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/observable/fromIterable.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/observable/fromIterable.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/observable/fromIterable.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/observable/fromIterable.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/observable/fromIterable.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/observable/fromIterable.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/observable/fromIterable.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/observable/fromIterable.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/observable/fromPromise.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/observable/fromPromise.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/observable/fromPromise.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/observable/fromPromise.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/observable/fromPromise.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/observable/fromPromise.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/observable/fromPromise.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/observable/fromPromise.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/observable/generate.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/observable/generate.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/observable/generate.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/observable/generate.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/observable/generate.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/observable/generate.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/observable/generate.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/observable/generate.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/observable/iif.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/observable/iif.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/observable/iif.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/observable/iif.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/observable/iif.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/observable/iif.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/observable/iif.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/observable/iif.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/observable/interval.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/observable/interval.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/observable/interval.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/observable/interval.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/observable/interval.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/observable/interval.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/observable/interval.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/observable/interval.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/observable/merge.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/observable/merge.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/observable/merge.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/observable/merge.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/observable/merge.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/observable/merge.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/observable/merge.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/observable/merge.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/observable/never.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/observable/never.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/observable/never.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/observable/never.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/observable/never.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/observable/never.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/observable/never.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/observable/never.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/observable/of.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/observable/of.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/observable/of.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/observable/of.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/observable/of.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/observable/of.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/observable/of.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/observable/of.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/observable/onErrorResumeNext.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/observable/onErrorResumeNext.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/observable/onErrorResumeNext.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/observable/onErrorResumeNext.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/observable/onErrorResumeNext.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/observable/onErrorResumeNext.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/observable/onErrorResumeNext.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/observable/onErrorResumeNext.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/observable/pairs.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/observable/pairs.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/observable/pairs.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/observable/pairs.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/observable/pairs.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/observable/pairs.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/observable/pairs.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/observable/pairs.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/observable/partition.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/observable/partition.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/observable/partition.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/observable/partition.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/observable/partition.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/observable/partition.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/observable/partition.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/observable/partition.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/observable/race.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/observable/race.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/observable/race.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/observable/race.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/observable/race.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/observable/race.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/observable/race.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/observable/race.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/observable/range.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/observable/range.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/observable/range.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/observable/range.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/observable/range.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/observable/range.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/observable/range.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/observable/range.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/observable/throwError.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/observable/throwError.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/observable/throwError.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/observable/throwError.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/observable/throwError.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/observable/throwError.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/observable/throwError.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/observable/throwError.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/observable/timer.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/observable/timer.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/observable/timer.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/observable/timer.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/observable/timer.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/observable/timer.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/observable/timer.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/observable/timer.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/observable/using.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/observable/using.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/observable/using.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/observable/using.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/observable/using.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/observable/using.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/observable/using.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/observable/using.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/observable/zip.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/observable/zip.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/observable/zip.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/observable/zip.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/observable/zip.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/observable/zip.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/observable/zip.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/observable/zip.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/audit.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/audit.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/audit.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/audit.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/audit.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/audit.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/audit.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/audit.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/auditTime.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/auditTime.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/auditTime.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/auditTime.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/auditTime.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/auditTime.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/auditTime.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/auditTime.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/buffer.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/buffer.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/buffer.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/buffer.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/buffer.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/buffer.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/buffer.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/buffer.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/bufferCount.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/bufferCount.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/bufferCount.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/bufferCount.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/bufferCount.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/bufferCount.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/bufferCount.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/bufferCount.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/bufferTime.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/bufferTime.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/bufferTime.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/bufferTime.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/bufferTime.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/bufferTime.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/bufferTime.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/bufferTime.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/bufferToggle.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/bufferToggle.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/bufferToggle.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/bufferToggle.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/bufferToggle.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/bufferToggle.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/bufferToggle.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/bufferToggle.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/bufferWhen.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/bufferWhen.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/bufferWhen.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/bufferWhen.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/bufferWhen.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/bufferWhen.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/bufferWhen.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/bufferWhen.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/catchError.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/catchError.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/catchError.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/catchError.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/catchError.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/catchError.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/catchError.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/catchError.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/combineAll.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/combineAll.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/combineAll.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/combineAll.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/combineAll.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/combineAll.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/combineAll.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/combineAll.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/combineLatest.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/combineLatest.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/combineLatest.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/combineLatest.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/combineLatest.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/combineLatest.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/combineLatest.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/combineLatest.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/concat.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/concat.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/concat.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/concat.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/concat.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/concat.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/concat.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/concat.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/concatAll.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/concatAll.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/concatAll.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/concatAll.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/concatAll.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/concatAll.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/concatAll.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/concatAll.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/concatMap.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/concatMap.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/concatMap.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/concatMap.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/concatMap.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/concatMap.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/concatMap.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/concatMap.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/concatMapTo.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/concatMapTo.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/concatMapTo.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/concatMapTo.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/concatMapTo.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/concatMapTo.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/concatMapTo.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/concatMapTo.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/count.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/count.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/count.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/count.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/count.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/count.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/count.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/count.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/debounce.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/debounce.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/debounce.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/debounce.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/debounce.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/debounce.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/debounce.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/debounce.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/debounceTime.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/debounceTime.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/debounceTime.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/debounceTime.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/debounceTime.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/debounceTime.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/debounceTime.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/debounceTime.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/defaultIfEmpty.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/defaultIfEmpty.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/defaultIfEmpty.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/defaultIfEmpty.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/defaultIfEmpty.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/defaultIfEmpty.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/defaultIfEmpty.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/defaultIfEmpty.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/delay.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/delay.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/delay.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/delay.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/delay.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/delay.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/delay.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/delay.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/delayWhen.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/delayWhen.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/delayWhen.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/delayWhen.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/delayWhen.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/delayWhen.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/delayWhen.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/delayWhen.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/dematerialize.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/dematerialize.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/dematerialize.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/dematerialize.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/dematerialize.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/dematerialize.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/dematerialize.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/dematerialize.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/distinct.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/distinct.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/distinct.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/distinct.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/distinct.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/distinct.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/distinct.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/distinct.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/distinctUntilChanged.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/distinctUntilChanged.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/distinctUntilChanged.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/distinctUntilChanged.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/distinctUntilChanged.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/distinctUntilChanged.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/distinctUntilChanged.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/distinctUntilChanged.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/distinctUntilKeyChanged.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/distinctUntilKeyChanged.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/distinctUntilKeyChanged.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/distinctUntilKeyChanged.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/distinctUntilKeyChanged.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/distinctUntilKeyChanged.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/distinctUntilKeyChanged.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/distinctUntilKeyChanged.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/elementAt.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/elementAt.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/elementAt.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/elementAt.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/elementAt.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/elementAt.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/elementAt.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/elementAt.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/endWith.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/endWith.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/endWith.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/endWith.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/endWith.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/endWith.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/endWith.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/endWith.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/every.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/every.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/every.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/every.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/every.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/every.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/every.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/every.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/exhaust.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/exhaust.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/exhaust.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/exhaust.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/exhaust.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/exhaust.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/exhaust.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/exhaust.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/exhaustMap.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/exhaustMap.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/exhaustMap.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/exhaustMap.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/exhaustMap.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/exhaustMap.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/exhaustMap.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/exhaustMap.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/expand.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/expand.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/expand.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/expand.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/expand.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/expand.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/expand.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/expand.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/filter.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/filter.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/filter.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/filter.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/filter.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/filter.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/filter.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/filter.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/finalize.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/finalize.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/finalize.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/finalize.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/finalize.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/finalize.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/finalize.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/finalize.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/find.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/find.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/find.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/find.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/find.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/find.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/find.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/find.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/findIndex.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/findIndex.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/findIndex.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/findIndex.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/findIndex.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/findIndex.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/findIndex.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/findIndex.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/first.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/first.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/first.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/first.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/first.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/first.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/first.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/first.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/groupBy.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/groupBy.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/groupBy.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/groupBy.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/groupBy.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/groupBy.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/groupBy.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/groupBy.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/ignoreElements.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/ignoreElements.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/ignoreElements.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/ignoreElements.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/ignoreElements.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/ignoreElements.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/ignoreElements.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/ignoreElements.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/index.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/index.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/index.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/index.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/index.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/index.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/isEmpty.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/isEmpty.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/isEmpty.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/isEmpty.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/isEmpty.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/isEmpty.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/isEmpty.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/isEmpty.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/last.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/last.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/last.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/last.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/last.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/last.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/last.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/last.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/map.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/map.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/map.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/map.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/map.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/map.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/map.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/map.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/mapTo.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/mapTo.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/mapTo.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/mapTo.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/mapTo.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/mapTo.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/mapTo.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/mapTo.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/materialize.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/materialize.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/materialize.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/materialize.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/materialize.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/materialize.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/materialize.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/materialize.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/max.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/max.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/max.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/max.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/max.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/max.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/max.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/max.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/merge.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/merge.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/merge.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/merge.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/merge.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/merge.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/merge.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/merge.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/mergeAll.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/mergeAll.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/mergeAll.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/mergeAll.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/mergeAll.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/mergeAll.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/mergeAll.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/mergeAll.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/mergeMap.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/mergeMap.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/mergeMap.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/mergeMap.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/mergeMap.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/mergeMap.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/mergeMap.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/mergeMap.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/mergeMapTo.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/mergeMapTo.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/mergeMapTo.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/mergeMapTo.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/mergeMapTo.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/mergeMapTo.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/mergeMapTo.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/mergeMapTo.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/mergeScan.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/mergeScan.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/mergeScan.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/mergeScan.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/mergeScan.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/mergeScan.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/mergeScan.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/mergeScan.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/min.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/min.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/min.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/min.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/min.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/min.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/min.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/min.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/multicast.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/multicast.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/multicast.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/multicast.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/multicast.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/multicast.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/multicast.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/multicast.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/observeOn.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/observeOn.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/observeOn.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/observeOn.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/observeOn.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/observeOn.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/observeOn.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/observeOn.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/onErrorResumeNext.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/onErrorResumeNext.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/onErrorResumeNext.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/onErrorResumeNext.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/onErrorResumeNext.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/onErrorResumeNext.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/onErrorResumeNext.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/onErrorResumeNext.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/pairwise.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/pairwise.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/pairwise.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/pairwise.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/pairwise.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/pairwise.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/pairwise.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/pairwise.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/partition.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/partition.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/partition.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/partition.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/partition.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/partition.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/partition.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/partition.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/pluck.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/pluck.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/pluck.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/pluck.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/pluck.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/pluck.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/pluck.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/pluck.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/publish.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/publish.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/publish.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/publish.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/publish.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/publish.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/publish.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/publish.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/publishBehavior.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/publishBehavior.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/publishBehavior.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/publishBehavior.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/publishBehavior.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/publishBehavior.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/publishBehavior.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/publishBehavior.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/publishLast.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/publishLast.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/publishLast.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/publishLast.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/publishLast.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/publishLast.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/publishLast.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/publishLast.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/publishReplay.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/publishReplay.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/publishReplay.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/publishReplay.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/publishReplay.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/publishReplay.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/publishReplay.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/publishReplay.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/race.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/race.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/race.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/race.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/race.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/race.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/race.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/race.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/reduce.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/reduce.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/reduce.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/reduce.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/reduce.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/reduce.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/reduce.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/reduce.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/refCount.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/refCount.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/refCount.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/refCount.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/refCount.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/refCount.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/refCount.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/refCount.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/repeat.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/repeat.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/repeat.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/repeat.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/repeat.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/repeat.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/repeat.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/repeat.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/repeatWhen.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/repeatWhen.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/repeatWhen.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/repeatWhen.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/repeatWhen.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/repeatWhen.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/repeatWhen.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/repeatWhen.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/retry.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/retry.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/retry.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/retry.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/retry.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/retry.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/retry.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/retry.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/retryWhen.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/retryWhen.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/retryWhen.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/retryWhen.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/retryWhen.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/retryWhen.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/retryWhen.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/retryWhen.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/sample.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/sample.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/sample.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/sample.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/sample.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/sample.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/sample.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/sample.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/sampleTime.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/sampleTime.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/sampleTime.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/sampleTime.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/sampleTime.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/sampleTime.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/sampleTime.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/sampleTime.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/scan.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/scan.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/scan.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/scan.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/scan.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/scan.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/scan.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/scan.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/sequenceEqual.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/sequenceEqual.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/sequenceEqual.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/sequenceEqual.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/sequenceEqual.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/sequenceEqual.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/sequenceEqual.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/sequenceEqual.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/share.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/share.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/share.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/share.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/share.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/share.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/share.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/share.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/shareReplay.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/shareReplay.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/shareReplay.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/shareReplay.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/shareReplay.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/shareReplay.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/shareReplay.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/shareReplay.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/single.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/single.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/single.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/single.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/single.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/single.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/single.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/single.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/skip.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/skip.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/skip.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/skip.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/skip.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/skip.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/skip.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/skip.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/skipLast.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/skipLast.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/skipLast.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/skipLast.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/skipLast.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/skipLast.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/skipLast.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/skipLast.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/skipUntil.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/skipUntil.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/skipUntil.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/skipUntil.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/skipUntil.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/skipUntil.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/skipUntil.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/skipUntil.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/skipWhile.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/skipWhile.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/skipWhile.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/skipWhile.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/skipWhile.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/skipWhile.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/skipWhile.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/skipWhile.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/startWith.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/startWith.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/startWith.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/startWith.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/startWith.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/startWith.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/startWith.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/startWith.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/subscribeOn.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/subscribeOn.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/subscribeOn.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/subscribeOn.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/subscribeOn.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/subscribeOn.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/subscribeOn.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/subscribeOn.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/switchAll.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/switchAll.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/switchAll.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/switchAll.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/switchAll.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/switchAll.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/switchAll.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/switchAll.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/switchMap.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/switchMap.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/switchMap.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/switchMap.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/switchMap.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/switchMap.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/switchMap.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/switchMap.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/switchMapTo.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/switchMapTo.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/switchMapTo.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/switchMapTo.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/switchMapTo.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/switchMapTo.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/switchMapTo.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/switchMapTo.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/take.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/take.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/take.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/take.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/take.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/take.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/take.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/take.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/takeLast.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/takeLast.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/takeLast.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/takeLast.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/takeLast.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/takeLast.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/takeLast.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/takeLast.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/takeUntil.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/takeUntil.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/takeUntil.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/takeUntil.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/takeUntil.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/takeUntil.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/takeUntil.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/takeUntil.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/takeWhile.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/takeWhile.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/takeWhile.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/takeWhile.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/takeWhile.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/takeWhile.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/takeWhile.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/takeWhile.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/tap.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/tap.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/tap.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/tap.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/tap.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/tap.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/tap.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/tap.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/throttle.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/throttle.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/throttle.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/throttle.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/throttle.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/throttle.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/throttle.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/throttle.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/throttleTime.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/throttleTime.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/throttleTime.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/throttleTime.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/throttleTime.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/throttleTime.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/throttleTime.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/throttleTime.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/throwIfEmpty.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/throwIfEmpty.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/throwIfEmpty.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/throwIfEmpty.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/throwIfEmpty.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/throwIfEmpty.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/throwIfEmpty.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/throwIfEmpty.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/timeInterval.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/timeInterval.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/timeInterval.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/timeInterval.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/timeInterval.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/timeInterval.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/timeInterval.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/timeInterval.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/timeout.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/timeout.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/timeout.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/timeout.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/timeout.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/timeout.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/timeout.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/timeout.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/timeoutWith.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/timeoutWith.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/timeoutWith.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/timeoutWith.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/timeoutWith.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/timeoutWith.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/timeoutWith.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/timeoutWith.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/timestamp.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/timestamp.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/timestamp.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/timestamp.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/timestamp.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/timestamp.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/timestamp.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/timestamp.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/toArray.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/toArray.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/toArray.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/toArray.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/toArray.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/toArray.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/toArray.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/toArray.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/window.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/window.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/window.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/window.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/window.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/window.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/window.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/window.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/windowCount.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/windowCount.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/windowCount.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/windowCount.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/windowCount.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/windowCount.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/windowCount.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/windowCount.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/windowTime.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/windowTime.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/windowTime.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/windowTime.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/windowTime.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/windowTime.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/windowTime.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/windowTime.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/windowToggle.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/windowToggle.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/windowToggle.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/windowToggle.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/windowToggle.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/windowToggle.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/windowToggle.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/windowToggle.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/windowWhen.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/windowWhen.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/windowWhen.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/windowWhen.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/windowWhen.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/windowWhen.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/windowWhen.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/windowWhen.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/withLatestFrom.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/withLatestFrom.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/withLatestFrom.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/withLatestFrom.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/withLatestFrom.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/withLatestFrom.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/withLatestFrom.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/withLatestFrom.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/zip.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/zip.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/zip.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/zip.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/zip.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/zip.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/zip.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/zip.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/zipAll.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/zipAll.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/zipAll.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/zipAll.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/zipAll.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/zipAll.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/operators/zipAll.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/operators/zipAll.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/scheduled/scheduleArray.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/scheduled/scheduleArray.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/scheduled/scheduleArray.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/scheduled/scheduleArray.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/scheduled/scheduleArray.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/scheduled/scheduleArray.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/scheduled/scheduleArray.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/scheduled/scheduleArray.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/scheduled/scheduleIterable.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/scheduled/scheduleIterable.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/scheduled/scheduleIterable.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/scheduled/scheduleIterable.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/scheduled/scheduleIterable.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/scheduled/scheduleIterable.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/scheduled/scheduleIterable.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/scheduled/scheduleIterable.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/scheduled/scheduleObservable.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/scheduled/scheduleObservable.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/scheduled/scheduleObservable.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/scheduled/scheduleObservable.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/scheduled/scheduleObservable.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/scheduled/scheduleObservable.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/scheduled/scheduleObservable.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/scheduled/scheduleObservable.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/scheduled/schedulePromise.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/scheduled/schedulePromise.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/scheduled/schedulePromise.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/scheduled/schedulePromise.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/scheduled/schedulePromise.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/scheduled/schedulePromise.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/scheduled/schedulePromise.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/scheduled/schedulePromise.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/scheduled/scheduled.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/scheduled/scheduled.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/scheduled/scheduled.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/scheduled/scheduled.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/scheduled/scheduled.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/scheduled/scheduled.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/scheduled/scheduled.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/scheduled/scheduled.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/scheduler/Action.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/scheduler/Action.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/scheduler/Action.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/scheduler/Action.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/scheduler/Action.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/scheduler/Action.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/scheduler/Action.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/scheduler/Action.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/scheduler/AnimationFrameAction.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/scheduler/AnimationFrameAction.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/scheduler/AnimationFrameAction.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/scheduler/AnimationFrameAction.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/scheduler/AnimationFrameAction.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/scheduler/AnimationFrameAction.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/scheduler/AnimationFrameAction.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/scheduler/AnimationFrameAction.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/scheduler/AnimationFrameScheduler.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/scheduler/AnimationFrameScheduler.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/scheduler/AnimationFrameScheduler.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/scheduler/AnimationFrameScheduler.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/scheduler/AnimationFrameScheduler.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/scheduler/AnimationFrameScheduler.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/scheduler/AnimationFrameScheduler.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/scheduler/AnimationFrameScheduler.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/scheduler/AsapAction.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/scheduler/AsapAction.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/scheduler/AsapAction.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/scheduler/AsapAction.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/scheduler/AsapAction.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/scheduler/AsapAction.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/scheduler/AsapAction.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/scheduler/AsapAction.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/scheduler/AsapScheduler.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/scheduler/AsapScheduler.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/scheduler/AsapScheduler.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/scheduler/AsapScheduler.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/scheduler/AsapScheduler.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/scheduler/AsapScheduler.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/scheduler/AsapScheduler.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/scheduler/AsapScheduler.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/scheduler/AsyncAction.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/scheduler/AsyncAction.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/scheduler/AsyncAction.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/scheduler/AsyncAction.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/scheduler/AsyncAction.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/scheduler/AsyncAction.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/scheduler/AsyncAction.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/scheduler/AsyncAction.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/scheduler/AsyncScheduler.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/scheduler/AsyncScheduler.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/scheduler/AsyncScheduler.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/scheduler/AsyncScheduler.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/scheduler/AsyncScheduler.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/scheduler/AsyncScheduler.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/scheduler/AsyncScheduler.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/scheduler/AsyncScheduler.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/scheduler/QueueAction.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/scheduler/QueueAction.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/scheduler/QueueAction.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/scheduler/QueueAction.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/scheduler/QueueAction.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/scheduler/QueueAction.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/scheduler/QueueAction.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/scheduler/QueueAction.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/scheduler/QueueScheduler.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/scheduler/QueueScheduler.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/scheduler/QueueScheduler.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/scheduler/QueueScheduler.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/scheduler/QueueScheduler.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/scheduler/QueueScheduler.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/scheduler/QueueScheduler.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/scheduler/QueueScheduler.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/scheduler/VirtualTimeScheduler.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/scheduler/VirtualTimeScheduler.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/scheduler/VirtualTimeScheduler.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/scheduler/VirtualTimeScheduler.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/scheduler/VirtualTimeScheduler.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/scheduler/VirtualTimeScheduler.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/scheduler/VirtualTimeScheduler.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/scheduler/VirtualTimeScheduler.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/scheduler/animationFrame.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/scheduler/animationFrame.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/scheduler/animationFrame.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/scheduler/animationFrame.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/scheduler/animationFrame.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/scheduler/animationFrame.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/scheduler/animationFrame.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/scheduler/animationFrame.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/scheduler/asap.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/scheduler/asap.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/scheduler/asap.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/scheduler/asap.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/scheduler/asap.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/scheduler/asap.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/scheduler/asap.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/scheduler/asap.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/scheduler/async.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/scheduler/async.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/scheduler/async.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/scheduler/async.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/scheduler/async.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/scheduler/async.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/scheduler/async.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/scheduler/async.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/scheduler/queue.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/scheduler/queue.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/scheduler/queue.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/scheduler/queue.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/scheduler/queue.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/scheduler/queue.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/scheduler/queue.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/scheduler/queue.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/symbol/iterator.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/symbol/iterator.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/symbol/iterator.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/symbol/iterator.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/symbol/iterator.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/symbol/iterator.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/symbol/iterator.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/symbol/iterator.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/symbol/observable.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/symbol/observable.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/symbol/observable.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/symbol/observable.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/symbol/observable.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/symbol/observable.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/symbol/observable.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/symbol/observable.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/symbol/rxSubscriber.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/symbol/rxSubscriber.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/symbol/rxSubscriber.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/symbol/rxSubscriber.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/symbol/rxSubscriber.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/symbol/rxSubscriber.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/symbol/rxSubscriber.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/symbol/rxSubscriber.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/testing/ColdObservable.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/testing/ColdObservable.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/testing/ColdObservable.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/testing/ColdObservable.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/testing/ColdObservable.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/testing/ColdObservable.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/testing/ColdObservable.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/testing/ColdObservable.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/testing/HotObservable.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/testing/HotObservable.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/testing/HotObservable.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/testing/HotObservable.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/testing/HotObservable.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/testing/HotObservable.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/testing/HotObservable.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/testing/HotObservable.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/testing/SubscriptionLog.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/testing/SubscriptionLog.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/testing/SubscriptionLog.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/testing/SubscriptionLog.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/testing/SubscriptionLog.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/testing/SubscriptionLog.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/testing/SubscriptionLog.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/testing/SubscriptionLog.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/testing/SubscriptionLoggable.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/testing/SubscriptionLoggable.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/testing/SubscriptionLoggable.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/testing/SubscriptionLoggable.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/testing/SubscriptionLoggable.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/testing/SubscriptionLoggable.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/testing/SubscriptionLoggable.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/testing/SubscriptionLoggable.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/testing/TestMessage.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/testing/TestMessage.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/testing/TestMessage.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/testing/TestMessage.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/testing/TestMessage.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/testing/TestMessage.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/testing/TestMessage.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/testing/TestMessage.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/testing/TestScheduler.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/testing/TestScheduler.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/testing/TestScheduler.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/testing/TestScheduler.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/testing/TestScheduler.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/testing/TestScheduler.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/testing/TestScheduler.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/testing/TestScheduler.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/types.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/types.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/types.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/types.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/types.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/types.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/types.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/types.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/util/ArgumentOutOfRangeError.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/util/ArgumentOutOfRangeError.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/util/ArgumentOutOfRangeError.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/util/ArgumentOutOfRangeError.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/util/ArgumentOutOfRangeError.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/util/ArgumentOutOfRangeError.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/util/ArgumentOutOfRangeError.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/util/ArgumentOutOfRangeError.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/util/EmptyError.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/util/EmptyError.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/util/EmptyError.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/util/EmptyError.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/util/EmptyError.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/util/EmptyError.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/util/EmptyError.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/util/EmptyError.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/util/Immediate.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/util/Immediate.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/util/Immediate.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/util/Immediate.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/util/Immediate.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/util/Immediate.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/util/Immediate.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/util/Immediate.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/util/ObjectUnsubscribedError.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/util/ObjectUnsubscribedError.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/util/ObjectUnsubscribedError.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/util/ObjectUnsubscribedError.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/util/ObjectUnsubscribedError.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/util/ObjectUnsubscribedError.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/util/ObjectUnsubscribedError.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/util/ObjectUnsubscribedError.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/util/TimeoutError.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/util/TimeoutError.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/util/TimeoutError.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/util/TimeoutError.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/util/TimeoutError.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/util/TimeoutError.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/util/TimeoutError.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/util/TimeoutError.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/util/UnsubscriptionError.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/util/UnsubscriptionError.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/util/UnsubscriptionError.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/util/UnsubscriptionError.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/util/UnsubscriptionError.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/util/UnsubscriptionError.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/util/UnsubscriptionError.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/util/UnsubscriptionError.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/util/applyMixins.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/util/applyMixins.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/util/applyMixins.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/util/applyMixins.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/util/applyMixins.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/util/applyMixins.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/util/applyMixins.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/util/applyMixins.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/util/canReportError.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/util/canReportError.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/util/canReportError.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/util/canReportError.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/util/canReportError.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/util/canReportError.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/util/canReportError.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/util/canReportError.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/util/errorObject.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/util/errorObject.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/util/errorObject.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/util/errorObject.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/util/errorObject.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/util/errorObject.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/util/errorObject.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/util/errorObject.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/util/hostReportError.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/util/hostReportError.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/util/hostReportError.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/util/hostReportError.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/util/hostReportError.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/util/hostReportError.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/util/hostReportError.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/util/hostReportError.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/util/identity.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/util/identity.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/util/identity.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/util/identity.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/util/identity.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/util/identity.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/util/identity.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/util/identity.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/util/isArray.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/util/isArray.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/util/isArray.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/util/isArray.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/util/isArray.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/util/isArray.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/util/isArray.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/util/isArray.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/util/isArrayLike.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/util/isArrayLike.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/util/isArrayLike.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/util/isArrayLike.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/util/isArrayLike.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/util/isArrayLike.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/util/isArrayLike.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/util/isArrayLike.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/util/isDate.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/util/isDate.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/util/isDate.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/util/isDate.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/util/isDate.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/util/isDate.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/util/isDate.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/util/isDate.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/util/isFunction.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/util/isFunction.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/util/isFunction.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/util/isFunction.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/util/isFunction.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/util/isFunction.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/util/isFunction.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/util/isFunction.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/util/isInteropObservable.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/util/isInteropObservable.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/util/isInteropObservable.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/util/isInteropObservable.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/util/isInteropObservable.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/util/isInteropObservable.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/util/isInteropObservable.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/util/isInteropObservable.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/util/isIterable.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/util/isIterable.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/util/isIterable.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/util/isIterable.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/util/isIterable.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/util/isIterable.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/util/isIterable.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/util/isIterable.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/util/isNumeric.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/util/isNumeric.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/util/isNumeric.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/util/isNumeric.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/util/isNumeric.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/util/isNumeric.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/util/isNumeric.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/util/isNumeric.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/util/isObject.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/util/isObject.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/util/isObject.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/util/isObject.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/util/isObject.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/util/isObject.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/util/isObject.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/util/isObject.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/util/isObservable.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/util/isObservable.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/util/isObservable.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/util/isObservable.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/util/isObservable.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/util/isObservable.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/util/isObservable.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/util/isObservable.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/util/isPromise.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/util/isPromise.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/util/isPromise.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/util/isPromise.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/util/isPromise.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/util/isPromise.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/util/isPromise.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/util/isPromise.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/util/isScheduler.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/util/isScheduler.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/util/isScheduler.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/util/isScheduler.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/util/isScheduler.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/util/isScheduler.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/util/isScheduler.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/util/isScheduler.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/util/noop.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/util/noop.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/util/noop.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/util/noop.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/util/noop.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/util/noop.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/util/noop.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/util/noop.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/util/not.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/util/not.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/util/not.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/util/not.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/util/not.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/util/not.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/util/not.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/util/not.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/util/pipe.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/util/pipe.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/util/pipe.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/util/pipe.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/util/pipe.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/util/pipe.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/util/pipe.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/util/pipe.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/util/root.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/util/root.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/util/root.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/util/root.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/util/root.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/util/root.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/util/root.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/util/root.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/util/subscribeTo.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/util/subscribeTo.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/util/subscribeTo.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/util/subscribeTo.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/util/subscribeTo.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/util/subscribeTo.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/util/subscribeTo.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/util/subscribeTo.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/util/subscribeToArray.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/util/subscribeToArray.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/util/subscribeToArray.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/util/subscribeToArray.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/util/subscribeToArray.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/util/subscribeToArray.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/util/subscribeToArray.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/util/subscribeToArray.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/util/subscribeToIterable.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/util/subscribeToIterable.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/util/subscribeToIterable.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/util/subscribeToIterable.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/util/subscribeToIterable.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/util/subscribeToIterable.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/util/subscribeToIterable.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/util/subscribeToIterable.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/util/subscribeToObservable.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/util/subscribeToObservable.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/util/subscribeToObservable.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/util/subscribeToObservable.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/util/subscribeToObservable.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/util/subscribeToObservable.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/util/subscribeToObservable.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/util/subscribeToObservable.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/util/subscribeToPromise.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/util/subscribeToPromise.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/util/subscribeToPromise.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/util/subscribeToPromise.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/util/subscribeToPromise.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/util/subscribeToPromise.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/util/subscribeToPromise.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/util/subscribeToPromise.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/util/subscribeToResult.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/util/subscribeToResult.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/util/subscribeToResult.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/util/subscribeToResult.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/util/subscribeToResult.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/util/subscribeToResult.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/util/subscribeToResult.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/util/subscribeToResult.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/util/toSubscriber.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/util/toSubscriber.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/util/toSubscriber.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/util/toSubscriber.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/util/toSubscriber.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/util/toSubscriber.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/util/toSubscriber.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/util/toSubscriber.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/util/tryCatch.js b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/util/tryCatch.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/util/tryCatch.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/util/tryCatch.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/util/tryCatch.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/internal/util/tryCatch.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/internal/util/tryCatch.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/internal/util/tryCatch.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/operators/index.js b/src/third_party/devtools/node_modules/rxjs/_esm5/operators/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/operators/index.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/operators/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/operators/index.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/operators/index.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/operators/index.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/operators/index.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/path-mapping.js b/src/third_party/devtools/node_modules/rxjs/_esm5/path-mapping.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/path-mapping.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/path-mapping.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/testing/index.js b/src/third_party/devtools/node_modules/rxjs/_esm5/testing/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/testing/index.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/testing/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/testing/index.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/testing/index.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/testing/index.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/testing/index.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/webSocket/index.js b/src/third_party/devtools/node_modules/rxjs/_esm5/webSocket/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/webSocket/index.js
rename to src/third_party/devtools/node_modules/rxjs/_esm5/webSocket/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/webSocket/index.js.map b/src/third_party/devtools/node_modules/rxjs/_esm5/webSocket/index.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/_esm5/webSocket/index.js.map
rename to src/third_party/devtools/node_modules/rxjs/_esm5/webSocket/index.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/observable/bindCallback.d.ts b/src/third_party/devtools/node_modules/rxjs/add/observable/bindCallback.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/observable/bindCallback.d.ts
rename to src/third_party/devtools/node_modules/rxjs/add/observable/bindCallback.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/observable/bindCallback.js b/src/third_party/devtools/node_modules/rxjs/add/observable/bindCallback.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/observable/bindCallback.js
rename to src/third_party/devtools/node_modules/rxjs/add/observable/bindCallback.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/observable/bindCallback.js.map b/src/third_party/devtools/node_modules/rxjs/add/observable/bindCallback.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/observable/bindCallback.js.map
rename to src/third_party/devtools/node_modules/rxjs/add/observable/bindCallback.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/observable/bindNodeCallback.d.ts b/src/third_party/devtools/node_modules/rxjs/add/observable/bindNodeCallback.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/observable/bindNodeCallback.d.ts
rename to src/third_party/devtools/node_modules/rxjs/add/observable/bindNodeCallback.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/observable/bindNodeCallback.js b/src/third_party/devtools/node_modules/rxjs/add/observable/bindNodeCallback.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/observable/bindNodeCallback.js
rename to src/third_party/devtools/node_modules/rxjs/add/observable/bindNodeCallback.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/observable/bindNodeCallback.js.map b/src/third_party/devtools/node_modules/rxjs/add/observable/bindNodeCallback.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/observable/bindNodeCallback.js.map
rename to src/third_party/devtools/node_modules/rxjs/add/observable/bindNodeCallback.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/observable/combineLatest.d.ts b/src/third_party/devtools/node_modules/rxjs/add/observable/combineLatest.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/observable/combineLatest.d.ts
rename to src/third_party/devtools/node_modules/rxjs/add/observable/combineLatest.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/observable/combineLatest.js b/src/third_party/devtools/node_modules/rxjs/add/observable/combineLatest.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/observable/combineLatest.js
rename to src/third_party/devtools/node_modules/rxjs/add/observable/combineLatest.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/observable/combineLatest.js.map b/src/third_party/devtools/node_modules/rxjs/add/observable/combineLatest.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/observable/combineLatest.js.map
rename to src/third_party/devtools/node_modules/rxjs/add/observable/combineLatest.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/observable/concat.d.ts b/src/third_party/devtools/node_modules/rxjs/add/observable/concat.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/observable/concat.d.ts
rename to src/third_party/devtools/node_modules/rxjs/add/observable/concat.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/observable/concat.js b/src/third_party/devtools/node_modules/rxjs/add/observable/concat.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/observable/concat.js
rename to src/third_party/devtools/node_modules/rxjs/add/observable/concat.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/observable/concat.js.map b/src/third_party/devtools/node_modules/rxjs/add/observable/concat.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/observable/concat.js.map
rename to src/third_party/devtools/node_modules/rxjs/add/observable/concat.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/observable/defer.d.ts b/src/third_party/devtools/node_modules/rxjs/add/observable/defer.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/observable/defer.d.ts
rename to src/third_party/devtools/node_modules/rxjs/add/observable/defer.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/observable/defer.js b/src/third_party/devtools/node_modules/rxjs/add/observable/defer.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/observable/defer.js
rename to src/third_party/devtools/node_modules/rxjs/add/observable/defer.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/observable/defer.js.map b/src/third_party/devtools/node_modules/rxjs/add/observable/defer.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/observable/defer.js.map
rename to src/third_party/devtools/node_modules/rxjs/add/observable/defer.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/observable/dom/ajax.d.ts b/src/third_party/devtools/node_modules/rxjs/add/observable/dom/ajax.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/observable/dom/ajax.d.ts
rename to src/third_party/devtools/node_modules/rxjs/add/observable/dom/ajax.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/observable/dom/ajax.js b/src/third_party/devtools/node_modules/rxjs/add/observable/dom/ajax.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/observable/dom/ajax.js
rename to src/third_party/devtools/node_modules/rxjs/add/observable/dom/ajax.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/observable/dom/ajax.js.map b/src/third_party/devtools/node_modules/rxjs/add/observable/dom/ajax.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/observable/dom/ajax.js.map
rename to src/third_party/devtools/node_modules/rxjs/add/observable/dom/ajax.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/observable/dom/webSocket.d.ts b/src/third_party/devtools/node_modules/rxjs/add/observable/dom/webSocket.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/observable/dom/webSocket.d.ts
rename to src/third_party/devtools/node_modules/rxjs/add/observable/dom/webSocket.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/observable/dom/webSocket.js b/src/third_party/devtools/node_modules/rxjs/add/observable/dom/webSocket.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/observable/dom/webSocket.js
rename to src/third_party/devtools/node_modules/rxjs/add/observable/dom/webSocket.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/observable/dom/webSocket.js.map b/src/third_party/devtools/node_modules/rxjs/add/observable/dom/webSocket.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/observable/dom/webSocket.js.map
rename to src/third_party/devtools/node_modules/rxjs/add/observable/dom/webSocket.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/observable/empty.d.ts b/src/third_party/devtools/node_modules/rxjs/add/observable/empty.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/observable/empty.d.ts
rename to src/third_party/devtools/node_modules/rxjs/add/observable/empty.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/observable/empty.js b/src/third_party/devtools/node_modules/rxjs/add/observable/empty.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/observable/empty.js
rename to src/third_party/devtools/node_modules/rxjs/add/observable/empty.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/observable/empty.js.map b/src/third_party/devtools/node_modules/rxjs/add/observable/empty.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/observable/empty.js.map
rename to src/third_party/devtools/node_modules/rxjs/add/observable/empty.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/observable/forkJoin.d.ts b/src/third_party/devtools/node_modules/rxjs/add/observable/forkJoin.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/observable/forkJoin.d.ts
rename to src/third_party/devtools/node_modules/rxjs/add/observable/forkJoin.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/observable/forkJoin.js b/src/third_party/devtools/node_modules/rxjs/add/observable/forkJoin.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/observable/forkJoin.js
rename to src/third_party/devtools/node_modules/rxjs/add/observable/forkJoin.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/observable/forkJoin.js.map b/src/third_party/devtools/node_modules/rxjs/add/observable/forkJoin.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/observable/forkJoin.js.map
rename to src/third_party/devtools/node_modules/rxjs/add/observable/forkJoin.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/observable/from.d.ts b/src/third_party/devtools/node_modules/rxjs/add/observable/from.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/observable/from.d.ts
rename to src/third_party/devtools/node_modules/rxjs/add/observable/from.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/observable/from.js b/src/third_party/devtools/node_modules/rxjs/add/observable/from.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/observable/from.js
rename to src/third_party/devtools/node_modules/rxjs/add/observable/from.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/observable/from.js.map b/src/third_party/devtools/node_modules/rxjs/add/observable/from.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/observable/from.js.map
rename to src/third_party/devtools/node_modules/rxjs/add/observable/from.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/observable/fromEvent.d.ts b/src/third_party/devtools/node_modules/rxjs/add/observable/fromEvent.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/observable/fromEvent.d.ts
rename to src/third_party/devtools/node_modules/rxjs/add/observable/fromEvent.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/observable/fromEvent.js b/src/third_party/devtools/node_modules/rxjs/add/observable/fromEvent.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/observable/fromEvent.js
rename to src/third_party/devtools/node_modules/rxjs/add/observable/fromEvent.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/observable/fromEvent.js.map b/src/third_party/devtools/node_modules/rxjs/add/observable/fromEvent.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/observable/fromEvent.js.map
rename to src/third_party/devtools/node_modules/rxjs/add/observable/fromEvent.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/observable/fromEventPattern.d.ts b/src/third_party/devtools/node_modules/rxjs/add/observable/fromEventPattern.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/observable/fromEventPattern.d.ts
rename to src/third_party/devtools/node_modules/rxjs/add/observable/fromEventPattern.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/observable/fromEventPattern.js b/src/third_party/devtools/node_modules/rxjs/add/observable/fromEventPattern.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/observable/fromEventPattern.js
rename to src/third_party/devtools/node_modules/rxjs/add/observable/fromEventPattern.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/observable/fromEventPattern.js.map b/src/third_party/devtools/node_modules/rxjs/add/observable/fromEventPattern.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/observable/fromEventPattern.js.map
rename to src/third_party/devtools/node_modules/rxjs/add/observable/fromEventPattern.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/observable/fromPromise.d.ts b/src/third_party/devtools/node_modules/rxjs/add/observable/fromPromise.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/observable/fromPromise.d.ts
rename to src/third_party/devtools/node_modules/rxjs/add/observable/fromPromise.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/observable/fromPromise.js b/src/third_party/devtools/node_modules/rxjs/add/observable/fromPromise.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/observable/fromPromise.js
rename to src/third_party/devtools/node_modules/rxjs/add/observable/fromPromise.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/observable/fromPromise.js.map b/src/third_party/devtools/node_modules/rxjs/add/observable/fromPromise.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/observable/fromPromise.js.map
rename to src/third_party/devtools/node_modules/rxjs/add/observable/fromPromise.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/observable/generate.d.ts b/src/third_party/devtools/node_modules/rxjs/add/observable/generate.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/observable/generate.d.ts
rename to src/third_party/devtools/node_modules/rxjs/add/observable/generate.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/observable/generate.js b/src/third_party/devtools/node_modules/rxjs/add/observable/generate.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/observable/generate.js
rename to src/third_party/devtools/node_modules/rxjs/add/observable/generate.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/observable/generate.js.map b/src/third_party/devtools/node_modules/rxjs/add/observable/generate.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/observable/generate.js.map
rename to src/third_party/devtools/node_modules/rxjs/add/observable/generate.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/observable/if.d.ts b/src/third_party/devtools/node_modules/rxjs/add/observable/if.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/observable/if.d.ts
rename to src/third_party/devtools/node_modules/rxjs/add/observable/if.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/observable/if.js b/src/third_party/devtools/node_modules/rxjs/add/observable/if.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/observable/if.js
rename to src/third_party/devtools/node_modules/rxjs/add/observable/if.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/observable/if.js.map b/src/third_party/devtools/node_modules/rxjs/add/observable/if.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/observable/if.js.map
rename to src/third_party/devtools/node_modules/rxjs/add/observable/if.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/observable/interval.d.ts b/src/third_party/devtools/node_modules/rxjs/add/observable/interval.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/observable/interval.d.ts
rename to src/third_party/devtools/node_modules/rxjs/add/observable/interval.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/observable/interval.js b/src/third_party/devtools/node_modules/rxjs/add/observable/interval.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/observable/interval.js
rename to src/third_party/devtools/node_modules/rxjs/add/observable/interval.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/observable/interval.js.map b/src/third_party/devtools/node_modules/rxjs/add/observable/interval.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/observable/interval.js.map
rename to src/third_party/devtools/node_modules/rxjs/add/observable/interval.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/observable/merge.d.ts b/src/third_party/devtools/node_modules/rxjs/add/observable/merge.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/observable/merge.d.ts
rename to src/third_party/devtools/node_modules/rxjs/add/observable/merge.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/observable/merge.js b/src/third_party/devtools/node_modules/rxjs/add/observable/merge.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/observable/merge.js
rename to src/third_party/devtools/node_modules/rxjs/add/observable/merge.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/observable/merge.js.map b/src/third_party/devtools/node_modules/rxjs/add/observable/merge.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/observable/merge.js.map
rename to src/third_party/devtools/node_modules/rxjs/add/observable/merge.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/observable/never.d.ts b/src/third_party/devtools/node_modules/rxjs/add/observable/never.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/observable/never.d.ts
rename to src/third_party/devtools/node_modules/rxjs/add/observable/never.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/observable/never.js b/src/third_party/devtools/node_modules/rxjs/add/observable/never.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/observable/never.js
rename to src/third_party/devtools/node_modules/rxjs/add/observable/never.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/observable/never.js.map b/src/third_party/devtools/node_modules/rxjs/add/observable/never.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/observable/never.js.map
rename to src/third_party/devtools/node_modules/rxjs/add/observable/never.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/observable/of.d.ts b/src/third_party/devtools/node_modules/rxjs/add/observable/of.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/observable/of.d.ts
rename to src/third_party/devtools/node_modules/rxjs/add/observable/of.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/observable/of.js b/src/third_party/devtools/node_modules/rxjs/add/observable/of.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/observable/of.js
rename to src/third_party/devtools/node_modules/rxjs/add/observable/of.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/observable/of.js.map b/src/third_party/devtools/node_modules/rxjs/add/observable/of.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/observable/of.js.map
rename to src/third_party/devtools/node_modules/rxjs/add/observable/of.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/observable/onErrorResumeNext.d.ts b/src/third_party/devtools/node_modules/rxjs/add/observable/onErrorResumeNext.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/observable/onErrorResumeNext.d.ts
rename to src/third_party/devtools/node_modules/rxjs/add/observable/onErrorResumeNext.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/observable/onErrorResumeNext.js b/src/third_party/devtools/node_modules/rxjs/add/observable/onErrorResumeNext.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/observable/onErrorResumeNext.js
rename to src/third_party/devtools/node_modules/rxjs/add/observable/onErrorResumeNext.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/observable/onErrorResumeNext.js.map b/src/third_party/devtools/node_modules/rxjs/add/observable/onErrorResumeNext.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/observable/onErrorResumeNext.js.map
rename to src/third_party/devtools/node_modules/rxjs/add/observable/onErrorResumeNext.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/observable/pairs.d.ts b/src/third_party/devtools/node_modules/rxjs/add/observable/pairs.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/observable/pairs.d.ts
rename to src/third_party/devtools/node_modules/rxjs/add/observable/pairs.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/observable/pairs.js b/src/third_party/devtools/node_modules/rxjs/add/observable/pairs.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/observable/pairs.js
rename to src/third_party/devtools/node_modules/rxjs/add/observable/pairs.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/observable/pairs.js.map b/src/third_party/devtools/node_modules/rxjs/add/observable/pairs.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/observable/pairs.js.map
rename to src/third_party/devtools/node_modules/rxjs/add/observable/pairs.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/observable/race.d.ts b/src/third_party/devtools/node_modules/rxjs/add/observable/race.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/observable/race.d.ts
rename to src/third_party/devtools/node_modules/rxjs/add/observable/race.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/observable/race.js b/src/third_party/devtools/node_modules/rxjs/add/observable/race.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/observable/race.js
rename to src/third_party/devtools/node_modules/rxjs/add/observable/race.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/observable/race.js.map b/src/third_party/devtools/node_modules/rxjs/add/observable/race.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/observable/race.js.map
rename to src/third_party/devtools/node_modules/rxjs/add/observable/race.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/observable/range.d.ts b/src/third_party/devtools/node_modules/rxjs/add/observable/range.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/observable/range.d.ts
rename to src/third_party/devtools/node_modules/rxjs/add/observable/range.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/observable/range.js b/src/third_party/devtools/node_modules/rxjs/add/observable/range.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/observable/range.js
rename to src/third_party/devtools/node_modules/rxjs/add/observable/range.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/observable/range.js.map b/src/third_party/devtools/node_modules/rxjs/add/observable/range.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/observable/range.js.map
rename to src/third_party/devtools/node_modules/rxjs/add/observable/range.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/observable/throw.d.ts b/src/third_party/devtools/node_modules/rxjs/add/observable/throw.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/observable/throw.d.ts
rename to src/third_party/devtools/node_modules/rxjs/add/observable/throw.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/observable/throw.js b/src/third_party/devtools/node_modules/rxjs/add/observable/throw.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/observable/throw.js
rename to src/third_party/devtools/node_modules/rxjs/add/observable/throw.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/observable/throw.js.map b/src/third_party/devtools/node_modules/rxjs/add/observable/throw.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/observable/throw.js.map
rename to src/third_party/devtools/node_modules/rxjs/add/observable/throw.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/observable/timer.d.ts b/src/third_party/devtools/node_modules/rxjs/add/observable/timer.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/observable/timer.d.ts
rename to src/third_party/devtools/node_modules/rxjs/add/observable/timer.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/observable/timer.js b/src/third_party/devtools/node_modules/rxjs/add/observable/timer.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/observable/timer.js
rename to src/third_party/devtools/node_modules/rxjs/add/observable/timer.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/observable/timer.js.map b/src/third_party/devtools/node_modules/rxjs/add/observable/timer.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/observable/timer.js.map
rename to src/third_party/devtools/node_modules/rxjs/add/observable/timer.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/observable/using.d.ts b/src/third_party/devtools/node_modules/rxjs/add/observable/using.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/observable/using.d.ts
rename to src/third_party/devtools/node_modules/rxjs/add/observable/using.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/observable/using.js b/src/third_party/devtools/node_modules/rxjs/add/observable/using.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/observable/using.js
rename to src/third_party/devtools/node_modules/rxjs/add/observable/using.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/observable/using.js.map b/src/third_party/devtools/node_modules/rxjs/add/observable/using.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/observable/using.js.map
rename to src/third_party/devtools/node_modules/rxjs/add/observable/using.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/observable/zip.d.ts b/src/third_party/devtools/node_modules/rxjs/add/observable/zip.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/observable/zip.d.ts
rename to src/third_party/devtools/node_modules/rxjs/add/observable/zip.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/observable/zip.js b/src/third_party/devtools/node_modules/rxjs/add/observable/zip.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/observable/zip.js
rename to src/third_party/devtools/node_modules/rxjs/add/observable/zip.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/observable/zip.js.map b/src/third_party/devtools/node_modules/rxjs/add/observable/zip.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/observable/zip.js.map
rename to src/third_party/devtools/node_modules/rxjs/add/observable/zip.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/audit.d.ts b/src/third_party/devtools/node_modules/rxjs/add/operator/audit.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/audit.d.ts
rename to src/third_party/devtools/node_modules/rxjs/add/operator/audit.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/audit.js b/src/third_party/devtools/node_modules/rxjs/add/operator/audit.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/audit.js
rename to src/third_party/devtools/node_modules/rxjs/add/operator/audit.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/audit.js.map b/src/third_party/devtools/node_modules/rxjs/add/operator/audit.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/audit.js.map
rename to src/third_party/devtools/node_modules/rxjs/add/operator/audit.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/auditTime.d.ts b/src/third_party/devtools/node_modules/rxjs/add/operator/auditTime.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/auditTime.d.ts
rename to src/third_party/devtools/node_modules/rxjs/add/operator/auditTime.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/auditTime.js b/src/third_party/devtools/node_modules/rxjs/add/operator/auditTime.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/auditTime.js
rename to src/third_party/devtools/node_modules/rxjs/add/operator/auditTime.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/auditTime.js.map b/src/third_party/devtools/node_modules/rxjs/add/operator/auditTime.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/auditTime.js.map
rename to src/third_party/devtools/node_modules/rxjs/add/operator/auditTime.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/buffer.d.ts b/src/third_party/devtools/node_modules/rxjs/add/operator/buffer.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/buffer.d.ts
rename to src/third_party/devtools/node_modules/rxjs/add/operator/buffer.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/buffer.js b/src/third_party/devtools/node_modules/rxjs/add/operator/buffer.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/buffer.js
rename to src/third_party/devtools/node_modules/rxjs/add/operator/buffer.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/buffer.js.map b/src/third_party/devtools/node_modules/rxjs/add/operator/buffer.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/buffer.js.map
rename to src/third_party/devtools/node_modules/rxjs/add/operator/buffer.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/bufferCount.d.ts b/src/third_party/devtools/node_modules/rxjs/add/operator/bufferCount.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/bufferCount.d.ts
rename to src/third_party/devtools/node_modules/rxjs/add/operator/bufferCount.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/bufferCount.js b/src/third_party/devtools/node_modules/rxjs/add/operator/bufferCount.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/bufferCount.js
rename to src/third_party/devtools/node_modules/rxjs/add/operator/bufferCount.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/bufferCount.js.map b/src/third_party/devtools/node_modules/rxjs/add/operator/bufferCount.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/bufferCount.js.map
rename to src/third_party/devtools/node_modules/rxjs/add/operator/bufferCount.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/bufferTime.d.ts b/src/third_party/devtools/node_modules/rxjs/add/operator/bufferTime.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/bufferTime.d.ts
rename to src/third_party/devtools/node_modules/rxjs/add/operator/bufferTime.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/bufferTime.js b/src/third_party/devtools/node_modules/rxjs/add/operator/bufferTime.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/bufferTime.js
rename to src/third_party/devtools/node_modules/rxjs/add/operator/bufferTime.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/bufferTime.js.map b/src/third_party/devtools/node_modules/rxjs/add/operator/bufferTime.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/bufferTime.js.map
rename to src/third_party/devtools/node_modules/rxjs/add/operator/bufferTime.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/bufferToggle.d.ts b/src/third_party/devtools/node_modules/rxjs/add/operator/bufferToggle.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/bufferToggle.d.ts
rename to src/third_party/devtools/node_modules/rxjs/add/operator/bufferToggle.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/bufferToggle.js b/src/third_party/devtools/node_modules/rxjs/add/operator/bufferToggle.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/bufferToggle.js
rename to src/third_party/devtools/node_modules/rxjs/add/operator/bufferToggle.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/bufferToggle.js.map b/src/third_party/devtools/node_modules/rxjs/add/operator/bufferToggle.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/bufferToggle.js.map
rename to src/third_party/devtools/node_modules/rxjs/add/operator/bufferToggle.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/bufferWhen.d.ts b/src/third_party/devtools/node_modules/rxjs/add/operator/bufferWhen.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/bufferWhen.d.ts
rename to src/third_party/devtools/node_modules/rxjs/add/operator/bufferWhen.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/bufferWhen.js b/src/third_party/devtools/node_modules/rxjs/add/operator/bufferWhen.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/bufferWhen.js
rename to src/third_party/devtools/node_modules/rxjs/add/operator/bufferWhen.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/bufferWhen.js.map b/src/third_party/devtools/node_modules/rxjs/add/operator/bufferWhen.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/bufferWhen.js.map
rename to src/third_party/devtools/node_modules/rxjs/add/operator/bufferWhen.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/catch.d.ts b/src/third_party/devtools/node_modules/rxjs/add/operator/catch.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/catch.d.ts
rename to src/third_party/devtools/node_modules/rxjs/add/operator/catch.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/catch.js b/src/third_party/devtools/node_modules/rxjs/add/operator/catch.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/catch.js
rename to src/third_party/devtools/node_modules/rxjs/add/operator/catch.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/catch.js.map b/src/third_party/devtools/node_modules/rxjs/add/operator/catch.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/catch.js.map
rename to src/third_party/devtools/node_modules/rxjs/add/operator/catch.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/combineAll.d.ts b/src/third_party/devtools/node_modules/rxjs/add/operator/combineAll.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/combineAll.d.ts
rename to src/third_party/devtools/node_modules/rxjs/add/operator/combineAll.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/combineAll.js b/src/third_party/devtools/node_modules/rxjs/add/operator/combineAll.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/combineAll.js
rename to src/third_party/devtools/node_modules/rxjs/add/operator/combineAll.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/combineAll.js.map b/src/third_party/devtools/node_modules/rxjs/add/operator/combineAll.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/combineAll.js.map
rename to src/third_party/devtools/node_modules/rxjs/add/operator/combineAll.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/combineLatest.d.ts b/src/third_party/devtools/node_modules/rxjs/add/operator/combineLatest.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/combineLatest.d.ts
rename to src/third_party/devtools/node_modules/rxjs/add/operator/combineLatest.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/combineLatest.js b/src/third_party/devtools/node_modules/rxjs/add/operator/combineLatest.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/combineLatest.js
rename to src/third_party/devtools/node_modules/rxjs/add/operator/combineLatest.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/combineLatest.js.map b/src/third_party/devtools/node_modules/rxjs/add/operator/combineLatest.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/combineLatest.js.map
rename to src/third_party/devtools/node_modules/rxjs/add/operator/combineLatest.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/concat.d.ts b/src/third_party/devtools/node_modules/rxjs/add/operator/concat.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/concat.d.ts
rename to src/third_party/devtools/node_modules/rxjs/add/operator/concat.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/concat.js b/src/third_party/devtools/node_modules/rxjs/add/operator/concat.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/concat.js
rename to src/third_party/devtools/node_modules/rxjs/add/operator/concat.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/concat.js.map b/src/third_party/devtools/node_modules/rxjs/add/operator/concat.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/concat.js.map
rename to src/third_party/devtools/node_modules/rxjs/add/operator/concat.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/concatAll.d.ts b/src/third_party/devtools/node_modules/rxjs/add/operator/concatAll.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/concatAll.d.ts
rename to src/third_party/devtools/node_modules/rxjs/add/operator/concatAll.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/concatAll.js b/src/third_party/devtools/node_modules/rxjs/add/operator/concatAll.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/concatAll.js
rename to src/third_party/devtools/node_modules/rxjs/add/operator/concatAll.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/concatAll.js.map b/src/third_party/devtools/node_modules/rxjs/add/operator/concatAll.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/concatAll.js.map
rename to src/third_party/devtools/node_modules/rxjs/add/operator/concatAll.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/concatMap.d.ts b/src/third_party/devtools/node_modules/rxjs/add/operator/concatMap.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/concatMap.d.ts
rename to src/third_party/devtools/node_modules/rxjs/add/operator/concatMap.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/concatMap.js b/src/third_party/devtools/node_modules/rxjs/add/operator/concatMap.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/concatMap.js
rename to src/third_party/devtools/node_modules/rxjs/add/operator/concatMap.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/concatMap.js.map b/src/third_party/devtools/node_modules/rxjs/add/operator/concatMap.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/concatMap.js.map
rename to src/third_party/devtools/node_modules/rxjs/add/operator/concatMap.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/concatMapTo.d.ts b/src/third_party/devtools/node_modules/rxjs/add/operator/concatMapTo.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/concatMapTo.d.ts
rename to src/third_party/devtools/node_modules/rxjs/add/operator/concatMapTo.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/concatMapTo.js b/src/third_party/devtools/node_modules/rxjs/add/operator/concatMapTo.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/concatMapTo.js
rename to src/third_party/devtools/node_modules/rxjs/add/operator/concatMapTo.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/concatMapTo.js.map b/src/third_party/devtools/node_modules/rxjs/add/operator/concatMapTo.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/concatMapTo.js.map
rename to src/third_party/devtools/node_modules/rxjs/add/operator/concatMapTo.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/count.d.ts b/src/third_party/devtools/node_modules/rxjs/add/operator/count.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/count.d.ts
rename to src/third_party/devtools/node_modules/rxjs/add/operator/count.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/count.js b/src/third_party/devtools/node_modules/rxjs/add/operator/count.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/count.js
rename to src/third_party/devtools/node_modules/rxjs/add/operator/count.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/count.js.map b/src/third_party/devtools/node_modules/rxjs/add/operator/count.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/count.js.map
rename to src/third_party/devtools/node_modules/rxjs/add/operator/count.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/debounce.d.ts b/src/third_party/devtools/node_modules/rxjs/add/operator/debounce.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/debounce.d.ts
rename to src/third_party/devtools/node_modules/rxjs/add/operator/debounce.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/debounce.js b/src/third_party/devtools/node_modules/rxjs/add/operator/debounce.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/debounce.js
rename to src/third_party/devtools/node_modules/rxjs/add/operator/debounce.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/debounce.js.map b/src/third_party/devtools/node_modules/rxjs/add/operator/debounce.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/debounce.js.map
rename to src/third_party/devtools/node_modules/rxjs/add/operator/debounce.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/debounceTime.d.ts b/src/third_party/devtools/node_modules/rxjs/add/operator/debounceTime.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/debounceTime.d.ts
rename to src/third_party/devtools/node_modules/rxjs/add/operator/debounceTime.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/debounceTime.js b/src/third_party/devtools/node_modules/rxjs/add/operator/debounceTime.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/debounceTime.js
rename to src/third_party/devtools/node_modules/rxjs/add/operator/debounceTime.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/debounceTime.js.map b/src/third_party/devtools/node_modules/rxjs/add/operator/debounceTime.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/debounceTime.js.map
rename to src/third_party/devtools/node_modules/rxjs/add/operator/debounceTime.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/defaultIfEmpty.d.ts b/src/third_party/devtools/node_modules/rxjs/add/operator/defaultIfEmpty.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/defaultIfEmpty.d.ts
rename to src/third_party/devtools/node_modules/rxjs/add/operator/defaultIfEmpty.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/defaultIfEmpty.js b/src/third_party/devtools/node_modules/rxjs/add/operator/defaultIfEmpty.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/defaultIfEmpty.js
rename to src/third_party/devtools/node_modules/rxjs/add/operator/defaultIfEmpty.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/defaultIfEmpty.js.map b/src/third_party/devtools/node_modules/rxjs/add/operator/defaultIfEmpty.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/defaultIfEmpty.js.map
rename to src/third_party/devtools/node_modules/rxjs/add/operator/defaultIfEmpty.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/delay.d.ts b/src/third_party/devtools/node_modules/rxjs/add/operator/delay.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/delay.d.ts
rename to src/third_party/devtools/node_modules/rxjs/add/operator/delay.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/delay.js b/src/third_party/devtools/node_modules/rxjs/add/operator/delay.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/delay.js
rename to src/third_party/devtools/node_modules/rxjs/add/operator/delay.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/delay.js.map b/src/third_party/devtools/node_modules/rxjs/add/operator/delay.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/delay.js.map
rename to src/third_party/devtools/node_modules/rxjs/add/operator/delay.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/delayWhen.d.ts b/src/third_party/devtools/node_modules/rxjs/add/operator/delayWhen.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/delayWhen.d.ts
rename to src/third_party/devtools/node_modules/rxjs/add/operator/delayWhen.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/delayWhen.js b/src/third_party/devtools/node_modules/rxjs/add/operator/delayWhen.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/delayWhen.js
rename to src/third_party/devtools/node_modules/rxjs/add/operator/delayWhen.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/delayWhen.js.map b/src/third_party/devtools/node_modules/rxjs/add/operator/delayWhen.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/delayWhen.js.map
rename to src/third_party/devtools/node_modules/rxjs/add/operator/delayWhen.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/dematerialize.d.ts b/src/third_party/devtools/node_modules/rxjs/add/operator/dematerialize.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/dematerialize.d.ts
rename to src/third_party/devtools/node_modules/rxjs/add/operator/dematerialize.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/dematerialize.js b/src/third_party/devtools/node_modules/rxjs/add/operator/dematerialize.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/dematerialize.js
rename to src/third_party/devtools/node_modules/rxjs/add/operator/dematerialize.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/dematerialize.js.map b/src/third_party/devtools/node_modules/rxjs/add/operator/dematerialize.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/dematerialize.js.map
rename to src/third_party/devtools/node_modules/rxjs/add/operator/dematerialize.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/distinct.d.ts b/src/third_party/devtools/node_modules/rxjs/add/operator/distinct.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/distinct.d.ts
rename to src/third_party/devtools/node_modules/rxjs/add/operator/distinct.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/distinct.js b/src/third_party/devtools/node_modules/rxjs/add/operator/distinct.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/distinct.js
rename to src/third_party/devtools/node_modules/rxjs/add/operator/distinct.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/distinct.js.map b/src/third_party/devtools/node_modules/rxjs/add/operator/distinct.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/distinct.js.map
rename to src/third_party/devtools/node_modules/rxjs/add/operator/distinct.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/distinctUntilChanged.d.ts b/src/third_party/devtools/node_modules/rxjs/add/operator/distinctUntilChanged.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/distinctUntilChanged.d.ts
rename to src/third_party/devtools/node_modules/rxjs/add/operator/distinctUntilChanged.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/distinctUntilChanged.js b/src/third_party/devtools/node_modules/rxjs/add/operator/distinctUntilChanged.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/distinctUntilChanged.js
rename to src/third_party/devtools/node_modules/rxjs/add/operator/distinctUntilChanged.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/distinctUntilChanged.js.map b/src/third_party/devtools/node_modules/rxjs/add/operator/distinctUntilChanged.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/distinctUntilChanged.js.map
rename to src/third_party/devtools/node_modules/rxjs/add/operator/distinctUntilChanged.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/distinctUntilKeyChanged.d.ts b/src/third_party/devtools/node_modules/rxjs/add/operator/distinctUntilKeyChanged.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/distinctUntilKeyChanged.d.ts
rename to src/third_party/devtools/node_modules/rxjs/add/operator/distinctUntilKeyChanged.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/distinctUntilKeyChanged.js b/src/third_party/devtools/node_modules/rxjs/add/operator/distinctUntilKeyChanged.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/distinctUntilKeyChanged.js
rename to src/third_party/devtools/node_modules/rxjs/add/operator/distinctUntilKeyChanged.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/distinctUntilKeyChanged.js.map b/src/third_party/devtools/node_modules/rxjs/add/operator/distinctUntilKeyChanged.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/distinctUntilKeyChanged.js.map
rename to src/third_party/devtools/node_modules/rxjs/add/operator/distinctUntilKeyChanged.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/do.d.ts b/src/third_party/devtools/node_modules/rxjs/add/operator/do.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/do.d.ts
rename to src/third_party/devtools/node_modules/rxjs/add/operator/do.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/do.js b/src/third_party/devtools/node_modules/rxjs/add/operator/do.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/do.js
rename to src/third_party/devtools/node_modules/rxjs/add/operator/do.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/do.js.map b/src/third_party/devtools/node_modules/rxjs/add/operator/do.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/do.js.map
rename to src/third_party/devtools/node_modules/rxjs/add/operator/do.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/elementAt.d.ts b/src/third_party/devtools/node_modules/rxjs/add/operator/elementAt.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/elementAt.d.ts
rename to src/third_party/devtools/node_modules/rxjs/add/operator/elementAt.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/elementAt.js b/src/third_party/devtools/node_modules/rxjs/add/operator/elementAt.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/elementAt.js
rename to src/third_party/devtools/node_modules/rxjs/add/operator/elementAt.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/elementAt.js.map b/src/third_party/devtools/node_modules/rxjs/add/operator/elementAt.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/elementAt.js.map
rename to src/third_party/devtools/node_modules/rxjs/add/operator/elementAt.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/every.d.ts b/src/third_party/devtools/node_modules/rxjs/add/operator/every.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/every.d.ts
rename to src/third_party/devtools/node_modules/rxjs/add/operator/every.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/every.js b/src/third_party/devtools/node_modules/rxjs/add/operator/every.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/every.js
rename to src/third_party/devtools/node_modules/rxjs/add/operator/every.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/every.js.map b/src/third_party/devtools/node_modules/rxjs/add/operator/every.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/every.js.map
rename to src/third_party/devtools/node_modules/rxjs/add/operator/every.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/exhaust.d.ts b/src/third_party/devtools/node_modules/rxjs/add/operator/exhaust.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/exhaust.d.ts
rename to src/third_party/devtools/node_modules/rxjs/add/operator/exhaust.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/exhaust.js b/src/third_party/devtools/node_modules/rxjs/add/operator/exhaust.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/exhaust.js
rename to src/third_party/devtools/node_modules/rxjs/add/operator/exhaust.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/exhaust.js.map b/src/third_party/devtools/node_modules/rxjs/add/operator/exhaust.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/exhaust.js.map
rename to src/third_party/devtools/node_modules/rxjs/add/operator/exhaust.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/exhaustMap.d.ts b/src/third_party/devtools/node_modules/rxjs/add/operator/exhaustMap.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/exhaustMap.d.ts
rename to src/third_party/devtools/node_modules/rxjs/add/operator/exhaustMap.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/exhaustMap.js b/src/third_party/devtools/node_modules/rxjs/add/operator/exhaustMap.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/exhaustMap.js
rename to src/third_party/devtools/node_modules/rxjs/add/operator/exhaustMap.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/exhaustMap.js.map b/src/third_party/devtools/node_modules/rxjs/add/operator/exhaustMap.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/exhaustMap.js.map
rename to src/third_party/devtools/node_modules/rxjs/add/operator/exhaustMap.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/expand.d.ts b/src/third_party/devtools/node_modules/rxjs/add/operator/expand.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/expand.d.ts
rename to src/third_party/devtools/node_modules/rxjs/add/operator/expand.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/expand.js b/src/third_party/devtools/node_modules/rxjs/add/operator/expand.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/expand.js
rename to src/third_party/devtools/node_modules/rxjs/add/operator/expand.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/expand.js.map b/src/third_party/devtools/node_modules/rxjs/add/operator/expand.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/expand.js.map
rename to src/third_party/devtools/node_modules/rxjs/add/operator/expand.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/filter.d.ts b/src/third_party/devtools/node_modules/rxjs/add/operator/filter.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/filter.d.ts
rename to src/third_party/devtools/node_modules/rxjs/add/operator/filter.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/filter.js b/src/third_party/devtools/node_modules/rxjs/add/operator/filter.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/filter.js
rename to src/third_party/devtools/node_modules/rxjs/add/operator/filter.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/filter.js.map b/src/third_party/devtools/node_modules/rxjs/add/operator/filter.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/filter.js.map
rename to src/third_party/devtools/node_modules/rxjs/add/operator/filter.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/finally.d.ts b/src/third_party/devtools/node_modules/rxjs/add/operator/finally.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/finally.d.ts
rename to src/third_party/devtools/node_modules/rxjs/add/operator/finally.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/finally.js b/src/third_party/devtools/node_modules/rxjs/add/operator/finally.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/finally.js
rename to src/third_party/devtools/node_modules/rxjs/add/operator/finally.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/finally.js.map b/src/third_party/devtools/node_modules/rxjs/add/operator/finally.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/finally.js.map
rename to src/third_party/devtools/node_modules/rxjs/add/operator/finally.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/find.d.ts b/src/third_party/devtools/node_modules/rxjs/add/operator/find.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/find.d.ts
rename to src/third_party/devtools/node_modules/rxjs/add/operator/find.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/find.js b/src/third_party/devtools/node_modules/rxjs/add/operator/find.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/find.js
rename to src/third_party/devtools/node_modules/rxjs/add/operator/find.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/find.js.map b/src/third_party/devtools/node_modules/rxjs/add/operator/find.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/find.js.map
rename to src/third_party/devtools/node_modules/rxjs/add/operator/find.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/findIndex.d.ts b/src/third_party/devtools/node_modules/rxjs/add/operator/findIndex.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/findIndex.d.ts
rename to src/third_party/devtools/node_modules/rxjs/add/operator/findIndex.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/findIndex.js b/src/third_party/devtools/node_modules/rxjs/add/operator/findIndex.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/findIndex.js
rename to src/third_party/devtools/node_modules/rxjs/add/operator/findIndex.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/findIndex.js.map b/src/third_party/devtools/node_modules/rxjs/add/operator/findIndex.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/findIndex.js.map
rename to src/third_party/devtools/node_modules/rxjs/add/operator/findIndex.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/first.d.ts b/src/third_party/devtools/node_modules/rxjs/add/operator/first.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/first.d.ts
rename to src/third_party/devtools/node_modules/rxjs/add/operator/first.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/first.js b/src/third_party/devtools/node_modules/rxjs/add/operator/first.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/first.js
rename to src/third_party/devtools/node_modules/rxjs/add/operator/first.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/first.js.map b/src/third_party/devtools/node_modules/rxjs/add/operator/first.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/first.js.map
rename to src/third_party/devtools/node_modules/rxjs/add/operator/first.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/groupBy.d.ts b/src/third_party/devtools/node_modules/rxjs/add/operator/groupBy.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/groupBy.d.ts
rename to src/third_party/devtools/node_modules/rxjs/add/operator/groupBy.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/groupBy.js b/src/third_party/devtools/node_modules/rxjs/add/operator/groupBy.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/groupBy.js
rename to src/third_party/devtools/node_modules/rxjs/add/operator/groupBy.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/groupBy.js.map b/src/third_party/devtools/node_modules/rxjs/add/operator/groupBy.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/groupBy.js.map
rename to src/third_party/devtools/node_modules/rxjs/add/operator/groupBy.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/ignoreElements.d.ts b/src/third_party/devtools/node_modules/rxjs/add/operator/ignoreElements.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/ignoreElements.d.ts
rename to src/third_party/devtools/node_modules/rxjs/add/operator/ignoreElements.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/ignoreElements.js b/src/third_party/devtools/node_modules/rxjs/add/operator/ignoreElements.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/ignoreElements.js
rename to src/third_party/devtools/node_modules/rxjs/add/operator/ignoreElements.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/ignoreElements.js.map b/src/third_party/devtools/node_modules/rxjs/add/operator/ignoreElements.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/ignoreElements.js.map
rename to src/third_party/devtools/node_modules/rxjs/add/operator/ignoreElements.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/isEmpty.d.ts b/src/third_party/devtools/node_modules/rxjs/add/operator/isEmpty.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/isEmpty.d.ts
rename to src/third_party/devtools/node_modules/rxjs/add/operator/isEmpty.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/isEmpty.js b/src/third_party/devtools/node_modules/rxjs/add/operator/isEmpty.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/isEmpty.js
rename to src/third_party/devtools/node_modules/rxjs/add/operator/isEmpty.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/isEmpty.js.map b/src/third_party/devtools/node_modules/rxjs/add/operator/isEmpty.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/isEmpty.js.map
rename to src/third_party/devtools/node_modules/rxjs/add/operator/isEmpty.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/last.d.ts b/src/third_party/devtools/node_modules/rxjs/add/operator/last.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/last.d.ts
rename to src/third_party/devtools/node_modules/rxjs/add/operator/last.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/last.js b/src/third_party/devtools/node_modules/rxjs/add/operator/last.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/last.js
rename to src/third_party/devtools/node_modules/rxjs/add/operator/last.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/last.js.map b/src/third_party/devtools/node_modules/rxjs/add/operator/last.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/last.js.map
rename to src/third_party/devtools/node_modules/rxjs/add/operator/last.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/let.d.ts b/src/third_party/devtools/node_modules/rxjs/add/operator/let.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/let.d.ts
rename to src/third_party/devtools/node_modules/rxjs/add/operator/let.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/let.js b/src/third_party/devtools/node_modules/rxjs/add/operator/let.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/let.js
rename to src/third_party/devtools/node_modules/rxjs/add/operator/let.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/let.js.map b/src/third_party/devtools/node_modules/rxjs/add/operator/let.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/let.js.map
rename to src/third_party/devtools/node_modules/rxjs/add/operator/let.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/map.d.ts b/src/third_party/devtools/node_modules/rxjs/add/operator/map.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/map.d.ts
rename to src/third_party/devtools/node_modules/rxjs/add/operator/map.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/map.js b/src/third_party/devtools/node_modules/rxjs/add/operator/map.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/map.js
rename to src/third_party/devtools/node_modules/rxjs/add/operator/map.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/map.js.map b/src/third_party/devtools/node_modules/rxjs/add/operator/map.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/map.js.map
rename to src/third_party/devtools/node_modules/rxjs/add/operator/map.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/mapTo.d.ts b/src/third_party/devtools/node_modules/rxjs/add/operator/mapTo.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/mapTo.d.ts
rename to src/third_party/devtools/node_modules/rxjs/add/operator/mapTo.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/mapTo.js b/src/third_party/devtools/node_modules/rxjs/add/operator/mapTo.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/mapTo.js
rename to src/third_party/devtools/node_modules/rxjs/add/operator/mapTo.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/mapTo.js.map b/src/third_party/devtools/node_modules/rxjs/add/operator/mapTo.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/mapTo.js.map
rename to src/third_party/devtools/node_modules/rxjs/add/operator/mapTo.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/materialize.d.ts b/src/third_party/devtools/node_modules/rxjs/add/operator/materialize.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/materialize.d.ts
rename to src/third_party/devtools/node_modules/rxjs/add/operator/materialize.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/materialize.js b/src/third_party/devtools/node_modules/rxjs/add/operator/materialize.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/materialize.js
rename to src/third_party/devtools/node_modules/rxjs/add/operator/materialize.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/materialize.js.map b/src/third_party/devtools/node_modules/rxjs/add/operator/materialize.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/materialize.js.map
rename to src/third_party/devtools/node_modules/rxjs/add/operator/materialize.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/max.d.ts b/src/third_party/devtools/node_modules/rxjs/add/operator/max.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/max.d.ts
rename to src/third_party/devtools/node_modules/rxjs/add/operator/max.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/max.js b/src/third_party/devtools/node_modules/rxjs/add/operator/max.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/max.js
rename to src/third_party/devtools/node_modules/rxjs/add/operator/max.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/max.js.map b/src/third_party/devtools/node_modules/rxjs/add/operator/max.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/max.js.map
rename to src/third_party/devtools/node_modules/rxjs/add/operator/max.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/merge.d.ts b/src/third_party/devtools/node_modules/rxjs/add/operator/merge.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/merge.d.ts
rename to src/third_party/devtools/node_modules/rxjs/add/operator/merge.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/merge.js b/src/third_party/devtools/node_modules/rxjs/add/operator/merge.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/merge.js
rename to src/third_party/devtools/node_modules/rxjs/add/operator/merge.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/merge.js.map b/src/third_party/devtools/node_modules/rxjs/add/operator/merge.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/merge.js.map
rename to src/third_party/devtools/node_modules/rxjs/add/operator/merge.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/mergeAll.d.ts b/src/third_party/devtools/node_modules/rxjs/add/operator/mergeAll.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/mergeAll.d.ts
rename to src/third_party/devtools/node_modules/rxjs/add/operator/mergeAll.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/mergeAll.js b/src/third_party/devtools/node_modules/rxjs/add/operator/mergeAll.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/mergeAll.js
rename to src/third_party/devtools/node_modules/rxjs/add/operator/mergeAll.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/mergeAll.js.map b/src/third_party/devtools/node_modules/rxjs/add/operator/mergeAll.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/mergeAll.js.map
rename to src/third_party/devtools/node_modules/rxjs/add/operator/mergeAll.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/mergeMap.d.ts b/src/third_party/devtools/node_modules/rxjs/add/operator/mergeMap.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/mergeMap.d.ts
rename to src/third_party/devtools/node_modules/rxjs/add/operator/mergeMap.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/mergeMap.js b/src/third_party/devtools/node_modules/rxjs/add/operator/mergeMap.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/mergeMap.js
rename to src/third_party/devtools/node_modules/rxjs/add/operator/mergeMap.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/mergeMap.js.map b/src/third_party/devtools/node_modules/rxjs/add/operator/mergeMap.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/mergeMap.js.map
rename to src/third_party/devtools/node_modules/rxjs/add/operator/mergeMap.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/mergeMapTo.d.ts b/src/third_party/devtools/node_modules/rxjs/add/operator/mergeMapTo.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/mergeMapTo.d.ts
rename to src/third_party/devtools/node_modules/rxjs/add/operator/mergeMapTo.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/mergeMapTo.js b/src/third_party/devtools/node_modules/rxjs/add/operator/mergeMapTo.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/mergeMapTo.js
rename to src/third_party/devtools/node_modules/rxjs/add/operator/mergeMapTo.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/mergeMapTo.js.map b/src/third_party/devtools/node_modules/rxjs/add/operator/mergeMapTo.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/mergeMapTo.js.map
rename to src/third_party/devtools/node_modules/rxjs/add/operator/mergeMapTo.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/mergeScan.d.ts b/src/third_party/devtools/node_modules/rxjs/add/operator/mergeScan.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/mergeScan.d.ts
rename to src/third_party/devtools/node_modules/rxjs/add/operator/mergeScan.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/mergeScan.js b/src/third_party/devtools/node_modules/rxjs/add/operator/mergeScan.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/mergeScan.js
rename to src/third_party/devtools/node_modules/rxjs/add/operator/mergeScan.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/mergeScan.js.map b/src/third_party/devtools/node_modules/rxjs/add/operator/mergeScan.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/mergeScan.js.map
rename to src/third_party/devtools/node_modules/rxjs/add/operator/mergeScan.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/min.d.ts b/src/third_party/devtools/node_modules/rxjs/add/operator/min.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/min.d.ts
rename to src/third_party/devtools/node_modules/rxjs/add/operator/min.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/min.js b/src/third_party/devtools/node_modules/rxjs/add/operator/min.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/min.js
rename to src/third_party/devtools/node_modules/rxjs/add/operator/min.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/min.js.map b/src/third_party/devtools/node_modules/rxjs/add/operator/min.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/min.js.map
rename to src/third_party/devtools/node_modules/rxjs/add/operator/min.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/multicast.d.ts b/src/third_party/devtools/node_modules/rxjs/add/operator/multicast.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/multicast.d.ts
rename to src/third_party/devtools/node_modules/rxjs/add/operator/multicast.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/multicast.js b/src/third_party/devtools/node_modules/rxjs/add/operator/multicast.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/multicast.js
rename to src/third_party/devtools/node_modules/rxjs/add/operator/multicast.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/multicast.js.map b/src/third_party/devtools/node_modules/rxjs/add/operator/multicast.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/multicast.js.map
rename to src/third_party/devtools/node_modules/rxjs/add/operator/multicast.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/observeOn.d.ts b/src/third_party/devtools/node_modules/rxjs/add/operator/observeOn.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/observeOn.d.ts
rename to src/third_party/devtools/node_modules/rxjs/add/operator/observeOn.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/observeOn.js b/src/third_party/devtools/node_modules/rxjs/add/operator/observeOn.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/observeOn.js
rename to src/third_party/devtools/node_modules/rxjs/add/operator/observeOn.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/observeOn.js.map b/src/third_party/devtools/node_modules/rxjs/add/operator/observeOn.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/observeOn.js.map
rename to src/third_party/devtools/node_modules/rxjs/add/operator/observeOn.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/onErrorResumeNext.d.ts b/src/third_party/devtools/node_modules/rxjs/add/operator/onErrorResumeNext.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/onErrorResumeNext.d.ts
rename to src/third_party/devtools/node_modules/rxjs/add/operator/onErrorResumeNext.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/onErrorResumeNext.js b/src/third_party/devtools/node_modules/rxjs/add/operator/onErrorResumeNext.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/onErrorResumeNext.js
rename to src/third_party/devtools/node_modules/rxjs/add/operator/onErrorResumeNext.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/onErrorResumeNext.js.map b/src/third_party/devtools/node_modules/rxjs/add/operator/onErrorResumeNext.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/onErrorResumeNext.js.map
rename to src/third_party/devtools/node_modules/rxjs/add/operator/onErrorResumeNext.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/pairwise.d.ts b/src/third_party/devtools/node_modules/rxjs/add/operator/pairwise.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/pairwise.d.ts
rename to src/third_party/devtools/node_modules/rxjs/add/operator/pairwise.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/pairwise.js b/src/third_party/devtools/node_modules/rxjs/add/operator/pairwise.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/pairwise.js
rename to src/third_party/devtools/node_modules/rxjs/add/operator/pairwise.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/pairwise.js.map b/src/third_party/devtools/node_modules/rxjs/add/operator/pairwise.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/pairwise.js.map
rename to src/third_party/devtools/node_modules/rxjs/add/operator/pairwise.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/partition.d.ts b/src/third_party/devtools/node_modules/rxjs/add/operator/partition.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/partition.d.ts
rename to src/third_party/devtools/node_modules/rxjs/add/operator/partition.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/partition.js b/src/third_party/devtools/node_modules/rxjs/add/operator/partition.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/partition.js
rename to src/third_party/devtools/node_modules/rxjs/add/operator/partition.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/partition.js.map b/src/third_party/devtools/node_modules/rxjs/add/operator/partition.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/partition.js.map
rename to src/third_party/devtools/node_modules/rxjs/add/operator/partition.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/pluck.d.ts b/src/third_party/devtools/node_modules/rxjs/add/operator/pluck.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/pluck.d.ts
rename to src/third_party/devtools/node_modules/rxjs/add/operator/pluck.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/pluck.js b/src/third_party/devtools/node_modules/rxjs/add/operator/pluck.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/pluck.js
rename to src/third_party/devtools/node_modules/rxjs/add/operator/pluck.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/pluck.js.map b/src/third_party/devtools/node_modules/rxjs/add/operator/pluck.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/pluck.js.map
rename to src/third_party/devtools/node_modules/rxjs/add/operator/pluck.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/publish.d.ts b/src/third_party/devtools/node_modules/rxjs/add/operator/publish.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/publish.d.ts
rename to src/third_party/devtools/node_modules/rxjs/add/operator/publish.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/publish.js b/src/third_party/devtools/node_modules/rxjs/add/operator/publish.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/publish.js
rename to src/third_party/devtools/node_modules/rxjs/add/operator/publish.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/publish.js.map b/src/third_party/devtools/node_modules/rxjs/add/operator/publish.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/publish.js.map
rename to src/third_party/devtools/node_modules/rxjs/add/operator/publish.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/publishBehavior.d.ts b/src/third_party/devtools/node_modules/rxjs/add/operator/publishBehavior.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/publishBehavior.d.ts
rename to src/third_party/devtools/node_modules/rxjs/add/operator/publishBehavior.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/publishBehavior.js b/src/third_party/devtools/node_modules/rxjs/add/operator/publishBehavior.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/publishBehavior.js
rename to src/third_party/devtools/node_modules/rxjs/add/operator/publishBehavior.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/publishBehavior.js.map b/src/third_party/devtools/node_modules/rxjs/add/operator/publishBehavior.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/publishBehavior.js.map
rename to src/third_party/devtools/node_modules/rxjs/add/operator/publishBehavior.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/publishLast.d.ts b/src/third_party/devtools/node_modules/rxjs/add/operator/publishLast.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/publishLast.d.ts
rename to src/third_party/devtools/node_modules/rxjs/add/operator/publishLast.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/publishLast.js b/src/third_party/devtools/node_modules/rxjs/add/operator/publishLast.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/publishLast.js
rename to src/third_party/devtools/node_modules/rxjs/add/operator/publishLast.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/publishLast.js.map b/src/third_party/devtools/node_modules/rxjs/add/operator/publishLast.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/publishLast.js.map
rename to src/third_party/devtools/node_modules/rxjs/add/operator/publishLast.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/publishReplay.d.ts b/src/third_party/devtools/node_modules/rxjs/add/operator/publishReplay.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/publishReplay.d.ts
rename to src/third_party/devtools/node_modules/rxjs/add/operator/publishReplay.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/publishReplay.js b/src/third_party/devtools/node_modules/rxjs/add/operator/publishReplay.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/publishReplay.js
rename to src/third_party/devtools/node_modules/rxjs/add/operator/publishReplay.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/publishReplay.js.map b/src/third_party/devtools/node_modules/rxjs/add/operator/publishReplay.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/publishReplay.js.map
rename to src/third_party/devtools/node_modules/rxjs/add/operator/publishReplay.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/race.d.ts b/src/third_party/devtools/node_modules/rxjs/add/operator/race.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/race.d.ts
rename to src/third_party/devtools/node_modules/rxjs/add/operator/race.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/race.js b/src/third_party/devtools/node_modules/rxjs/add/operator/race.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/race.js
rename to src/third_party/devtools/node_modules/rxjs/add/operator/race.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/race.js.map b/src/third_party/devtools/node_modules/rxjs/add/operator/race.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/race.js.map
rename to src/third_party/devtools/node_modules/rxjs/add/operator/race.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/reduce.d.ts b/src/third_party/devtools/node_modules/rxjs/add/operator/reduce.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/reduce.d.ts
rename to src/third_party/devtools/node_modules/rxjs/add/operator/reduce.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/reduce.js b/src/third_party/devtools/node_modules/rxjs/add/operator/reduce.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/reduce.js
rename to src/third_party/devtools/node_modules/rxjs/add/operator/reduce.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/reduce.js.map b/src/third_party/devtools/node_modules/rxjs/add/operator/reduce.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/reduce.js.map
rename to src/third_party/devtools/node_modules/rxjs/add/operator/reduce.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/repeat.d.ts b/src/third_party/devtools/node_modules/rxjs/add/operator/repeat.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/repeat.d.ts
rename to src/third_party/devtools/node_modules/rxjs/add/operator/repeat.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/repeat.js b/src/third_party/devtools/node_modules/rxjs/add/operator/repeat.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/repeat.js
rename to src/third_party/devtools/node_modules/rxjs/add/operator/repeat.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/repeat.js.map b/src/third_party/devtools/node_modules/rxjs/add/operator/repeat.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/repeat.js.map
rename to src/third_party/devtools/node_modules/rxjs/add/operator/repeat.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/repeatWhen.d.ts b/src/third_party/devtools/node_modules/rxjs/add/operator/repeatWhen.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/repeatWhen.d.ts
rename to src/third_party/devtools/node_modules/rxjs/add/operator/repeatWhen.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/repeatWhen.js b/src/third_party/devtools/node_modules/rxjs/add/operator/repeatWhen.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/repeatWhen.js
rename to src/third_party/devtools/node_modules/rxjs/add/operator/repeatWhen.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/repeatWhen.js.map b/src/third_party/devtools/node_modules/rxjs/add/operator/repeatWhen.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/repeatWhen.js.map
rename to src/third_party/devtools/node_modules/rxjs/add/operator/repeatWhen.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/retry.d.ts b/src/third_party/devtools/node_modules/rxjs/add/operator/retry.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/retry.d.ts
rename to src/third_party/devtools/node_modules/rxjs/add/operator/retry.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/retry.js b/src/third_party/devtools/node_modules/rxjs/add/operator/retry.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/retry.js
rename to src/third_party/devtools/node_modules/rxjs/add/operator/retry.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/retry.js.map b/src/third_party/devtools/node_modules/rxjs/add/operator/retry.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/retry.js.map
rename to src/third_party/devtools/node_modules/rxjs/add/operator/retry.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/retryWhen.d.ts b/src/third_party/devtools/node_modules/rxjs/add/operator/retryWhen.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/retryWhen.d.ts
rename to src/third_party/devtools/node_modules/rxjs/add/operator/retryWhen.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/retryWhen.js b/src/third_party/devtools/node_modules/rxjs/add/operator/retryWhen.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/retryWhen.js
rename to src/third_party/devtools/node_modules/rxjs/add/operator/retryWhen.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/retryWhen.js.map b/src/third_party/devtools/node_modules/rxjs/add/operator/retryWhen.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/retryWhen.js.map
rename to src/third_party/devtools/node_modules/rxjs/add/operator/retryWhen.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/sample.d.ts b/src/third_party/devtools/node_modules/rxjs/add/operator/sample.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/sample.d.ts
rename to src/third_party/devtools/node_modules/rxjs/add/operator/sample.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/sample.js b/src/third_party/devtools/node_modules/rxjs/add/operator/sample.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/sample.js
rename to src/third_party/devtools/node_modules/rxjs/add/operator/sample.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/sample.js.map b/src/third_party/devtools/node_modules/rxjs/add/operator/sample.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/sample.js.map
rename to src/third_party/devtools/node_modules/rxjs/add/operator/sample.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/sampleTime.d.ts b/src/third_party/devtools/node_modules/rxjs/add/operator/sampleTime.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/sampleTime.d.ts
rename to src/third_party/devtools/node_modules/rxjs/add/operator/sampleTime.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/sampleTime.js b/src/third_party/devtools/node_modules/rxjs/add/operator/sampleTime.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/sampleTime.js
rename to src/third_party/devtools/node_modules/rxjs/add/operator/sampleTime.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/sampleTime.js.map b/src/third_party/devtools/node_modules/rxjs/add/operator/sampleTime.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/sampleTime.js.map
rename to src/third_party/devtools/node_modules/rxjs/add/operator/sampleTime.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/scan.d.ts b/src/third_party/devtools/node_modules/rxjs/add/operator/scan.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/scan.d.ts
rename to src/third_party/devtools/node_modules/rxjs/add/operator/scan.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/scan.js b/src/third_party/devtools/node_modules/rxjs/add/operator/scan.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/scan.js
rename to src/third_party/devtools/node_modules/rxjs/add/operator/scan.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/scan.js.map b/src/third_party/devtools/node_modules/rxjs/add/operator/scan.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/scan.js.map
rename to src/third_party/devtools/node_modules/rxjs/add/operator/scan.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/sequenceEqual.d.ts b/src/third_party/devtools/node_modules/rxjs/add/operator/sequenceEqual.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/sequenceEqual.d.ts
rename to src/third_party/devtools/node_modules/rxjs/add/operator/sequenceEqual.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/sequenceEqual.js b/src/third_party/devtools/node_modules/rxjs/add/operator/sequenceEqual.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/sequenceEqual.js
rename to src/third_party/devtools/node_modules/rxjs/add/operator/sequenceEqual.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/sequenceEqual.js.map b/src/third_party/devtools/node_modules/rxjs/add/operator/sequenceEqual.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/sequenceEqual.js.map
rename to src/third_party/devtools/node_modules/rxjs/add/operator/sequenceEqual.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/share.d.ts b/src/third_party/devtools/node_modules/rxjs/add/operator/share.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/share.d.ts
rename to src/third_party/devtools/node_modules/rxjs/add/operator/share.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/share.js b/src/third_party/devtools/node_modules/rxjs/add/operator/share.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/share.js
rename to src/third_party/devtools/node_modules/rxjs/add/operator/share.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/share.js.map b/src/third_party/devtools/node_modules/rxjs/add/operator/share.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/share.js.map
rename to src/third_party/devtools/node_modules/rxjs/add/operator/share.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/shareReplay.d.ts b/src/third_party/devtools/node_modules/rxjs/add/operator/shareReplay.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/shareReplay.d.ts
rename to src/third_party/devtools/node_modules/rxjs/add/operator/shareReplay.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/shareReplay.js b/src/third_party/devtools/node_modules/rxjs/add/operator/shareReplay.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/shareReplay.js
rename to src/third_party/devtools/node_modules/rxjs/add/operator/shareReplay.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/shareReplay.js.map b/src/third_party/devtools/node_modules/rxjs/add/operator/shareReplay.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/shareReplay.js.map
rename to src/third_party/devtools/node_modules/rxjs/add/operator/shareReplay.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/single.d.ts b/src/third_party/devtools/node_modules/rxjs/add/operator/single.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/single.d.ts
rename to src/third_party/devtools/node_modules/rxjs/add/operator/single.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/single.js b/src/third_party/devtools/node_modules/rxjs/add/operator/single.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/single.js
rename to src/third_party/devtools/node_modules/rxjs/add/operator/single.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/single.js.map b/src/third_party/devtools/node_modules/rxjs/add/operator/single.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/single.js.map
rename to src/third_party/devtools/node_modules/rxjs/add/operator/single.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/skip.d.ts b/src/third_party/devtools/node_modules/rxjs/add/operator/skip.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/skip.d.ts
rename to src/third_party/devtools/node_modules/rxjs/add/operator/skip.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/skip.js b/src/third_party/devtools/node_modules/rxjs/add/operator/skip.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/skip.js
rename to src/third_party/devtools/node_modules/rxjs/add/operator/skip.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/skip.js.map b/src/third_party/devtools/node_modules/rxjs/add/operator/skip.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/skip.js.map
rename to src/third_party/devtools/node_modules/rxjs/add/operator/skip.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/skipLast.d.ts b/src/third_party/devtools/node_modules/rxjs/add/operator/skipLast.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/skipLast.d.ts
rename to src/third_party/devtools/node_modules/rxjs/add/operator/skipLast.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/skipLast.js b/src/third_party/devtools/node_modules/rxjs/add/operator/skipLast.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/skipLast.js
rename to src/third_party/devtools/node_modules/rxjs/add/operator/skipLast.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/skipLast.js.map b/src/third_party/devtools/node_modules/rxjs/add/operator/skipLast.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/skipLast.js.map
rename to src/third_party/devtools/node_modules/rxjs/add/operator/skipLast.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/skipUntil.d.ts b/src/third_party/devtools/node_modules/rxjs/add/operator/skipUntil.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/skipUntil.d.ts
rename to src/third_party/devtools/node_modules/rxjs/add/operator/skipUntil.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/skipUntil.js b/src/third_party/devtools/node_modules/rxjs/add/operator/skipUntil.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/skipUntil.js
rename to src/third_party/devtools/node_modules/rxjs/add/operator/skipUntil.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/skipUntil.js.map b/src/third_party/devtools/node_modules/rxjs/add/operator/skipUntil.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/skipUntil.js.map
rename to src/third_party/devtools/node_modules/rxjs/add/operator/skipUntil.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/skipWhile.d.ts b/src/third_party/devtools/node_modules/rxjs/add/operator/skipWhile.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/skipWhile.d.ts
rename to src/third_party/devtools/node_modules/rxjs/add/operator/skipWhile.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/skipWhile.js b/src/third_party/devtools/node_modules/rxjs/add/operator/skipWhile.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/skipWhile.js
rename to src/third_party/devtools/node_modules/rxjs/add/operator/skipWhile.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/skipWhile.js.map b/src/third_party/devtools/node_modules/rxjs/add/operator/skipWhile.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/skipWhile.js.map
rename to src/third_party/devtools/node_modules/rxjs/add/operator/skipWhile.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/startWith.d.ts b/src/third_party/devtools/node_modules/rxjs/add/operator/startWith.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/startWith.d.ts
rename to src/third_party/devtools/node_modules/rxjs/add/operator/startWith.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/startWith.js b/src/third_party/devtools/node_modules/rxjs/add/operator/startWith.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/startWith.js
rename to src/third_party/devtools/node_modules/rxjs/add/operator/startWith.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/startWith.js.map b/src/third_party/devtools/node_modules/rxjs/add/operator/startWith.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/startWith.js.map
rename to src/third_party/devtools/node_modules/rxjs/add/operator/startWith.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/subscribeOn.d.ts b/src/third_party/devtools/node_modules/rxjs/add/operator/subscribeOn.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/subscribeOn.d.ts
rename to src/third_party/devtools/node_modules/rxjs/add/operator/subscribeOn.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/subscribeOn.js b/src/third_party/devtools/node_modules/rxjs/add/operator/subscribeOn.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/subscribeOn.js
rename to src/third_party/devtools/node_modules/rxjs/add/operator/subscribeOn.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/subscribeOn.js.map b/src/third_party/devtools/node_modules/rxjs/add/operator/subscribeOn.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/subscribeOn.js.map
rename to src/third_party/devtools/node_modules/rxjs/add/operator/subscribeOn.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/switch.d.ts b/src/third_party/devtools/node_modules/rxjs/add/operator/switch.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/switch.d.ts
rename to src/third_party/devtools/node_modules/rxjs/add/operator/switch.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/switch.js b/src/third_party/devtools/node_modules/rxjs/add/operator/switch.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/switch.js
rename to src/third_party/devtools/node_modules/rxjs/add/operator/switch.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/switch.js.map b/src/third_party/devtools/node_modules/rxjs/add/operator/switch.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/switch.js.map
rename to src/third_party/devtools/node_modules/rxjs/add/operator/switch.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/switchMap.d.ts b/src/third_party/devtools/node_modules/rxjs/add/operator/switchMap.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/switchMap.d.ts
rename to src/third_party/devtools/node_modules/rxjs/add/operator/switchMap.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/switchMap.js b/src/third_party/devtools/node_modules/rxjs/add/operator/switchMap.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/switchMap.js
rename to src/third_party/devtools/node_modules/rxjs/add/operator/switchMap.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/switchMap.js.map b/src/third_party/devtools/node_modules/rxjs/add/operator/switchMap.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/switchMap.js.map
rename to src/third_party/devtools/node_modules/rxjs/add/operator/switchMap.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/switchMapTo.d.ts b/src/third_party/devtools/node_modules/rxjs/add/operator/switchMapTo.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/switchMapTo.d.ts
rename to src/third_party/devtools/node_modules/rxjs/add/operator/switchMapTo.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/switchMapTo.js b/src/third_party/devtools/node_modules/rxjs/add/operator/switchMapTo.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/switchMapTo.js
rename to src/third_party/devtools/node_modules/rxjs/add/operator/switchMapTo.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/switchMapTo.js.map b/src/third_party/devtools/node_modules/rxjs/add/operator/switchMapTo.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/switchMapTo.js.map
rename to src/third_party/devtools/node_modules/rxjs/add/operator/switchMapTo.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/take.d.ts b/src/third_party/devtools/node_modules/rxjs/add/operator/take.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/take.d.ts
rename to src/third_party/devtools/node_modules/rxjs/add/operator/take.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/take.js b/src/third_party/devtools/node_modules/rxjs/add/operator/take.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/take.js
rename to src/third_party/devtools/node_modules/rxjs/add/operator/take.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/take.js.map b/src/third_party/devtools/node_modules/rxjs/add/operator/take.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/take.js.map
rename to src/third_party/devtools/node_modules/rxjs/add/operator/take.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/takeLast.d.ts b/src/third_party/devtools/node_modules/rxjs/add/operator/takeLast.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/takeLast.d.ts
rename to src/third_party/devtools/node_modules/rxjs/add/operator/takeLast.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/takeLast.js b/src/third_party/devtools/node_modules/rxjs/add/operator/takeLast.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/takeLast.js
rename to src/third_party/devtools/node_modules/rxjs/add/operator/takeLast.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/takeLast.js.map b/src/third_party/devtools/node_modules/rxjs/add/operator/takeLast.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/takeLast.js.map
rename to src/third_party/devtools/node_modules/rxjs/add/operator/takeLast.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/takeUntil.d.ts b/src/third_party/devtools/node_modules/rxjs/add/operator/takeUntil.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/takeUntil.d.ts
rename to src/third_party/devtools/node_modules/rxjs/add/operator/takeUntil.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/takeUntil.js b/src/third_party/devtools/node_modules/rxjs/add/operator/takeUntil.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/takeUntil.js
rename to src/third_party/devtools/node_modules/rxjs/add/operator/takeUntil.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/takeUntil.js.map b/src/third_party/devtools/node_modules/rxjs/add/operator/takeUntil.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/takeUntil.js.map
rename to src/third_party/devtools/node_modules/rxjs/add/operator/takeUntil.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/takeWhile.d.ts b/src/third_party/devtools/node_modules/rxjs/add/operator/takeWhile.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/takeWhile.d.ts
rename to src/third_party/devtools/node_modules/rxjs/add/operator/takeWhile.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/takeWhile.js b/src/third_party/devtools/node_modules/rxjs/add/operator/takeWhile.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/takeWhile.js
rename to src/third_party/devtools/node_modules/rxjs/add/operator/takeWhile.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/takeWhile.js.map b/src/third_party/devtools/node_modules/rxjs/add/operator/takeWhile.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/takeWhile.js.map
rename to src/third_party/devtools/node_modules/rxjs/add/operator/takeWhile.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/throttle.d.ts b/src/third_party/devtools/node_modules/rxjs/add/operator/throttle.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/throttle.d.ts
rename to src/third_party/devtools/node_modules/rxjs/add/operator/throttle.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/throttle.js b/src/third_party/devtools/node_modules/rxjs/add/operator/throttle.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/throttle.js
rename to src/third_party/devtools/node_modules/rxjs/add/operator/throttle.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/throttle.js.map b/src/third_party/devtools/node_modules/rxjs/add/operator/throttle.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/throttle.js.map
rename to src/third_party/devtools/node_modules/rxjs/add/operator/throttle.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/throttleTime.d.ts b/src/third_party/devtools/node_modules/rxjs/add/operator/throttleTime.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/throttleTime.d.ts
rename to src/third_party/devtools/node_modules/rxjs/add/operator/throttleTime.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/throttleTime.js b/src/third_party/devtools/node_modules/rxjs/add/operator/throttleTime.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/throttleTime.js
rename to src/third_party/devtools/node_modules/rxjs/add/operator/throttleTime.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/throttleTime.js.map b/src/third_party/devtools/node_modules/rxjs/add/operator/throttleTime.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/throttleTime.js.map
rename to src/third_party/devtools/node_modules/rxjs/add/operator/throttleTime.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/timeInterval.d.ts b/src/third_party/devtools/node_modules/rxjs/add/operator/timeInterval.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/timeInterval.d.ts
rename to src/third_party/devtools/node_modules/rxjs/add/operator/timeInterval.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/timeInterval.js b/src/third_party/devtools/node_modules/rxjs/add/operator/timeInterval.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/timeInterval.js
rename to src/third_party/devtools/node_modules/rxjs/add/operator/timeInterval.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/timeInterval.js.map b/src/third_party/devtools/node_modules/rxjs/add/operator/timeInterval.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/timeInterval.js.map
rename to src/third_party/devtools/node_modules/rxjs/add/operator/timeInterval.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/timeout.d.ts b/src/third_party/devtools/node_modules/rxjs/add/operator/timeout.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/timeout.d.ts
rename to src/third_party/devtools/node_modules/rxjs/add/operator/timeout.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/timeout.js b/src/third_party/devtools/node_modules/rxjs/add/operator/timeout.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/timeout.js
rename to src/third_party/devtools/node_modules/rxjs/add/operator/timeout.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/timeout.js.map b/src/third_party/devtools/node_modules/rxjs/add/operator/timeout.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/timeout.js.map
rename to src/third_party/devtools/node_modules/rxjs/add/operator/timeout.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/timeoutWith.d.ts b/src/third_party/devtools/node_modules/rxjs/add/operator/timeoutWith.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/timeoutWith.d.ts
rename to src/third_party/devtools/node_modules/rxjs/add/operator/timeoutWith.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/timeoutWith.js b/src/third_party/devtools/node_modules/rxjs/add/operator/timeoutWith.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/timeoutWith.js
rename to src/third_party/devtools/node_modules/rxjs/add/operator/timeoutWith.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/timeoutWith.js.map b/src/third_party/devtools/node_modules/rxjs/add/operator/timeoutWith.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/timeoutWith.js.map
rename to src/third_party/devtools/node_modules/rxjs/add/operator/timeoutWith.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/timestamp.d.ts b/src/third_party/devtools/node_modules/rxjs/add/operator/timestamp.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/timestamp.d.ts
rename to src/third_party/devtools/node_modules/rxjs/add/operator/timestamp.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/timestamp.js b/src/third_party/devtools/node_modules/rxjs/add/operator/timestamp.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/timestamp.js
rename to src/third_party/devtools/node_modules/rxjs/add/operator/timestamp.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/timestamp.js.map b/src/third_party/devtools/node_modules/rxjs/add/operator/timestamp.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/timestamp.js.map
rename to src/third_party/devtools/node_modules/rxjs/add/operator/timestamp.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/toArray.d.ts b/src/third_party/devtools/node_modules/rxjs/add/operator/toArray.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/toArray.d.ts
rename to src/third_party/devtools/node_modules/rxjs/add/operator/toArray.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/toArray.js b/src/third_party/devtools/node_modules/rxjs/add/operator/toArray.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/toArray.js
rename to src/third_party/devtools/node_modules/rxjs/add/operator/toArray.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/toArray.js.map b/src/third_party/devtools/node_modules/rxjs/add/operator/toArray.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/toArray.js.map
rename to src/third_party/devtools/node_modules/rxjs/add/operator/toArray.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/toPromise.d.ts b/src/third_party/devtools/node_modules/rxjs/add/operator/toPromise.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/toPromise.d.ts
rename to src/third_party/devtools/node_modules/rxjs/add/operator/toPromise.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/toPromise.js b/src/third_party/devtools/node_modules/rxjs/add/operator/toPromise.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/toPromise.js
rename to src/third_party/devtools/node_modules/rxjs/add/operator/toPromise.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/toPromise.js.map b/src/third_party/devtools/node_modules/rxjs/add/operator/toPromise.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/toPromise.js.map
rename to src/third_party/devtools/node_modules/rxjs/add/operator/toPromise.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/window.d.ts b/src/third_party/devtools/node_modules/rxjs/add/operator/window.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/window.d.ts
rename to src/third_party/devtools/node_modules/rxjs/add/operator/window.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/window.js b/src/third_party/devtools/node_modules/rxjs/add/operator/window.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/window.js
rename to src/third_party/devtools/node_modules/rxjs/add/operator/window.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/window.js.map b/src/third_party/devtools/node_modules/rxjs/add/operator/window.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/window.js.map
rename to src/third_party/devtools/node_modules/rxjs/add/operator/window.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/windowCount.d.ts b/src/third_party/devtools/node_modules/rxjs/add/operator/windowCount.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/windowCount.d.ts
rename to src/third_party/devtools/node_modules/rxjs/add/operator/windowCount.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/windowCount.js b/src/third_party/devtools/node_modules/rxjs/add/operator/windowCount.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/windowCount.js
rename to src/third_party/devtools/node_modules/rxjs/add/operator/windowCount.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/windowCount.js.map b/src/third_party/devtools/node_modules/rxjs/add/operator/windowCount.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/windowCount.js.map
rename to src/third_party/devtools/node_modules/rxjs/add/operator/windowCount.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/windowTime.d.ts b/src/third_party/devtools/node_modules/rxjs/add/operator/windowTime.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/windowTime.d.ts
rename to src/third_party/devtools/node_modules/rxjs/add/operator/windowTime.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/windowTime.js b/src/third_party/devtools/node_modules/rxjs/add/operator/windowTime.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/windowTime.js
rename to src/third_party/devtools/node_modules/rxjs/add/operator/windowTime.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/windowTime.js.map b/src/third_party/devtools/node_modules/rxjs/add/operator/windowTime.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/windowTime.js.map
rename to src/third_party/devtools/node_modules/rxjs/add/operator/windowTime.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/windowToggle.d.ts b/src/third_party/devtools/node_modules/rxjs/add/operator/windowToggle.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/windowToggle.d.ts
rename to src/third_party/devtools/node_modules/rxjs/add/operator/windowToggle.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/windowToggle.js b/src/third_party/devtools/node_modules/rxjs/add/operator/windowToggle.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/windowToggle.js
rename to src/third_party/devtools/node_modules/rxjs/add/operator/windowToggle.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/windowToggle.js.map b/src/third_party/devtools/node_modules/rxjs/add/operator/windowToggle.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/windowToggle.js.map
rename to src/third_party/devtools/node_modules/rxjs/add/operator/windowToggle.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/windowWhen.d.ts b/src/third_party/devtools/node_modules/rxjs/add/operator/windowWhen.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/windowWhen.d.ts
rename to src/third_party/devtools/node_modules/rxjs/add/operator/windowWhen.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/windowWhen.js b/src/third_party/devtools/node_modules/rxjs/add/operator/windowWhen.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/windowWhen.js
rename to src/third_party/devtools/node_modules/rxjs/add/operator/windowWhen.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/windowWhen.js.map b/src/third_party/devtools/node_modules/rxjs/add/operator/windowWhen.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/windowWhen.js.map
rename to src/third_party/devtools/node_modules/rxjs/add/operator/windowWhen.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/withLatestFrom.d.ts b/src/third_party/devtools/node_modules/rxjs/add/operator/withLatestFrom.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/withLatestFrom.d.ts
rename to src/third_party/devtools/node_modules/rxjs/add/operator/withLatestFrom.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/withLatestFrom.js b/src/third_party/devtools/node_modules/rxjs/add/operator/withLatestFrom.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/withLatestFrom.js
rename to src/third_party/devtools/node_modules/rxjs/add/operator/withLatestFrom.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/withLatestFrom.js.map b/src/third_party/devtools/node_modules/rxjs/add/operator/withLatestFrom.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/withLatestFrom.js.map
rename to src/third_party/devtools/node_modules/rxjs/add/operator/withLatestFrom.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/zip.d.ts b/src/third_party/devtools/node_modules/rxjs/add/operator/zip.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/zip.d.ts
rename to src/third_party/devtools/node_modules/rxjs/add/operator/zip.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/zip.js b/src/third_party/devtools/node_modules/rxjs/add/operator/zip.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/zip.js
rename to src/third_party/devtools/node_modules/rxjs/add/operator/zip.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/zip.js.map b/src/third_party/devtools/node_modules/rxjs/add/operator/zip.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/zip.js.map
rename to src/third_party/devtools/node_modules/rxjs/add/operator/zip.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/zipAll.d.ts b/src/third_party/devtools/node_modules/rxjs/add/operator/zipAll.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/zipAll.d.ts
rename to src/third_party/devtools/node_modules/rxjs/add/operator/zipAll.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/zipAll.js b/src/third_party/devtools/node_modules/rxjs/add/operator/zipAll.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/zipAll.js
rename to src/third_party/devtools/node_modules/rxjs/add/operator/zipAll.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/zipAll.js.map b/src/third_party/devtools/node_modules/rxjs/add/operator/zipAll.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/add/operator/zipAll.js.map
rename to src/third_party/devtools/node_modules/rxjs/add/operator/zipAll.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/ajax/index.d.ts b/src/third_party/devtools/node_modules/rxjs/ajax/index.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/ajax/index.d.ts
rename to src/third_party/devtools/node_modules/rxjs/ajax/index.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/ajax/index.js b/src/third_party/devtools/node_modules/rxjs/ajax/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/ajax/index.js
rename to src/third_party/devtools/node_modules/rxjs/ajax/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/ajax/index.js.map b/src/third_party/devtools/node_modules/rxjs/ajax/index.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/ajax/index.js.map
rename to src/third_party/devtools/node_modules/rxjs/ajax/index.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/ajax/package.json b/src/third_party/devtools/node_modules/rxjs/ajax/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/ajax/package.json
rename to src/third_party/devtools/node_modules/rxjs/ajax/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/bundles/rxjs.umd.js b/src/third_party/devtools/node_modules/rxjs/bundles/rxjs.umd.js
similarity index 99%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/bundles/rxjs.umd.js
rename to src/third_party/devtools/node_modules/rxjs/bundles/rxjs.umd.js
index 555d34d..f5c776a 100644
--- a/src/cobalt/debug/remote/devtools/node_modules/rxjs/bundles/rxjs.umd.js
+++ b/src/third_party/devtools/node_modules/rxjs/bundles/rxjs.umd.js
@@ -416,38 +416,38 @@
     (factory((global.rxjs = {})));
 }(this, (function (exports) { 'use strict';
 
-    /*! *****************************************************************************

-    Copyright (c) Microsoft Corporation. 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

-

-    THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

-    KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED

-    WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,

-    MERCHANTABLITY OR NON-INFRINGEMENT.

-

-    See the Apache Version 2.0 License for specific language governing permissions

-    and limitations under the License.

-    ***************************************************************************** */

-    /* global Reflect, Promise */

-

-    var extendStatics = Object.setPrototypeOf ||

-        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||

-        function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };

-

-    function __extends(d, b) {

-        extendStatics(d, b);

-        function __() { this.constructor = d; }

-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());

-    }

-

-    var __assign = Object.assign || function __assign(t) {

-        for (var s, i = 1, n = arguments.length; i < n; i++) {

-            s = arguments[i];

-            for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];

-        }

-        return t;

+    /*! *****************************************************************************
+    Copyright (c) Microsoft Corporation. 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
+
+    THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+    KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
+    WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
+    MERCHANTABLITY OR NON-INFRINGEMENT.
+
+    See the Apache Version 2.0 License for specific language governing permissions
+    and limitations under the License.
+    ***************************************************************************** */
+    /* global Reflect, Promise */
+
+    var extendStatics = Object.setPrototypeOf ||
+        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+        function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
+
+    function __extends(d, b) {
+        extendStatics(d, b);
+        function __() { this.constructor = d; }
+        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+    }
+
+    var __assign = Object.assign || function __assign(t) {
+        for (var s, i = 1, n = arguments.length; i < n; i++) {
+            s = arguments[i];
+            for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
+        }
+        return t;
     };
 
     function isFunction(x) {
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/bundles/rxjs.umd.js.map b/src/third_party/devtools/node_modules/rxjs/bundles/rxjs.umd.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/bundles/rxjs.umd.js.map
rename to src/third_party/devtools/node_modules/rxjs/bundles/rxjs.umd.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/bundles/rxjs.umd.min.js b/src/third_party/devtools/node_modules/rxjs/bundles/rxjs.umd.min.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/bundles/rxjs.umd.min.js
rename to src/third_party/devtools/node_modules/rxjs/bundles/rxjs.umd.min.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/bundles/rxjs.umd.min.js.map b/src/third_party/devtools/node_modules/rxjs/bundles/rxjs.umd.min.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/bundles/rxjs.umd.min.js.map
rename to src/third_party/devtools/node_modules/rxjs/bundles/rxjs.umd.min.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/fetch/index.d.ts b/src/third_party/devtools/node_modules/rxjs/fetch/index.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/fetch/index.d.ts
rename to src/third_party/devtools/node_modules/rxjs/fetch/index.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/fetch/index.js b/src/third_party/devtools/node_modules/rxjs/fetch/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/fetch/index.js
rename to src/third_party/devtools/node_modules/rxjs/fetch/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/fetch/index.js.map b/src/third_party/devtools/node_modules/rxjs/fetch/index.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/fetch/index.js.map
rename to src/third_party/devtools/node_modules/rxjs/fetch/index.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/index.d.ts b/src/third_party/devtools/node_modules/rxjs/index.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/index.d.ts
rename to src/third_party/devtools/node_modules/rxjs/index.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/index.js b/src/third_party/devtools/node_modules/rxjs/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/index.js
rename to src/third_party/devtools/node_modules/rxjs/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/index.js.map b/src/third_party/devtools/node_modules/rxjs/index.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/index.js.map
rename to src/third_party/devtools/node_modules/rxjs/index.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/interfaces.d.ts b/src/third_party/devtools/node_modules/rxjs/interfaces.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/interfaces.d.ts
rename to src/third_party/devtools/node_modules/rxjs/interfaces.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/interfaces.js b/src/third_party/devtools/node_modules/rxjs/interfaces.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/interfaces.js
rename to src/third_party/devtools/node_modules/rxjs/interfaces.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/interfaces.js.map b/src/third_party/devtools/node_modules/rxjs/interfaces.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/interfaces.js.map
rename to src/third_party/devtools/node_modules/rxjs/interfaces.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal-compatibility/index.d.ts b/src/third_party/devtools/node_modules/rxjs/internal-compatibility/index.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal-compatibility/index.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal-compatibility/index.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal-compatibility/index.js b/src/third_party/devtools/node_modules/rxjs/internal-compatibility/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal-compatibility/index.js
rename to src/third_party/devtools/node_modules/rxjs/internal-compatibility/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal-compatibility/index.js.map b/src/third_party/devtools/node_modules/rxjs/internal-compatibility/index.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal-compatibility/index.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal-compatibility/index.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal-compatibility/package.json b/src/third_party/devtools/node_modules/rxjs/internal-compatibility/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal-compatibility/package.json
rename to src/third_party/devtools/node_modules/rxjs/internal-compatibility/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/AsyncSubject.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/AsyncSubject.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/AsyncSubject.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/AsyncSubject.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/AsyncSubject.js b/src/third_party/devtools/node_modules/rxjs/internal/AsyncSubject.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/AsyncSubject.js
rename to src/third_party/devtools/node_modules/rxjs/internal/AsyncSubject.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/AsyncSubject.js.map b/src/third_party/devtools/node_modules/rxjs/internal/AsyncSubject.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/AsyncSubject.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/AsyncSubject.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/BehaviorSubject.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/BehaviorSubject.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/BehaviorSubject.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/BehaviorSubject.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/BehaviorSubject.js b/src/third_party/devtools/node_modules/rxjs/internal/BehaviorSubject.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/BehaviorSubject.js
rename to src/third_party/devtools/node_modules/rxjs/internal/BehaviorSubject.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/BehaviorSubject.js.map b/src/third_party/devtools/node_modules/rxjs/internal/BehaviorSubject.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/BehaviorSubject.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/BehaviorSubject.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/InnerSubscriber.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/InnerSubscriber.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/InnerSubscriber.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/InnerSubscriber.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/InnerSubscriber.js b/src/third_party/devtools/node_modules/rxjs/internal/InnerSubscriber.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/InnerSubscriber.js
rename to src/third_party/devtools/node_modules/rxjs/internal/InnerSubscriber.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/InnerSubscriber.js.map b/src/third_party/devtools/node_modules/rxjs/internal/InnerSubscriber.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/InnerSubscriber.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/InnerSubscriber.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/Notification.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/Notification.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/Notification.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/Notification.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/Notification.js b/src/third_party/devtools/node_modules/rxjs/internal/Notification.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/Notification.js
rename to src/third_party/devtools/node_modules/rxjs/internal/Notification.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/Notification.js.map b/src/third_party/devtools/node_modules/rxjs/internal/Notification.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/Notification.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/Notification.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/Observable.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/Observable.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/Observable.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/Observable.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/Observable.js b/src/third_party/devtools/node_modules/rxjs/internal/Observable.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/Observable.js
rename to src/third_party/devtools/node_modules/rxjs/internal/Observable.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/Observable.js.map b/src/third_party/devtools/node_modules/rxjs/internal/Observable.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/Observable.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/Observable.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/Observer.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/Observer.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/Observer.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/Observer.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/Observer.js b/src/third_party/devtools/node_modules/rxjs/internal/Observer.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/Observer.js
rename to src/third_party/devtools/node_modules/rxjs/internal/Observer.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/Observer.js.map b/src/third_party/devtools/node_modules/rxjs/internal/Observer.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/Observer.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/Observer.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/Operator.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/Operator.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/Operator.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/Operator.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/Operator.js b/src/third_party/devtools/node_modules/rxjs/internal/Operator.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/Operator.js
rename to src/third_party/devtools/node_modules/rxjs/internal/Operator.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/Operator.js.map b/src/third_party/devtools/node_modules/rxjs/internal/Operator.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/Operator.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/Operator.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/OuterSubscriber.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/OuterSubscriber.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/OuterSubscriber.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/OuterSubscriber.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/OuterSubscriber.js b/src/third_party/devtools/node_modules/rxjs/internal/OuterSubscriber.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/OuterSubscriber.js
rename to src/third_party/devtools/node_modules/rxjs/internal/OuterSubscriber.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/OuterSubscriber.js.map b/src/third_party/devtools/node_modules/rxjs/internal/OuterSubscriber.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/OuterSubscriber.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/OuterSubscriber.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/ReplaySubject.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/ReplaySubject.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/ReplaySubject.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/ReplaySubject.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/ReplaySubject.js b/src/third_party/devtools/node_modules/rxjs/internal/ReplaySubject.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/ReplaySubject.js
rename to src/third_party/devtools/node_modules/rxjs/internal/ReplaySubject.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/ReplaySubject.js.map b/src/third_party/devtools/node_modules/rxjs/internal/ReplaySubject.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/ReplaySubject.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/ReplaySubject.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/Rx.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/Rx.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/Rx.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/Rx.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/Rx.js b/src/third_party/devtools/node_modules/rxjs/internal/Rx.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/Rx.js
rename to src/third_party/devtools/node_modules/rxjs/internal/Rx.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/Rx.js.map b/src/third_party/devtools/node_modules/rxjs/internal/Rx.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/Rx.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/Rx.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/Scheduler.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/Scheduler.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/Scheduler.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/Scheduler.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/Scheduler.js b/src/third_party/devtools/node_modules/rxjs/internal/Scheduler.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/Scheduler.js
rename to src/third_party/devtools/node_modules/rxjs/internal/Scheduler.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/Scheduler.js.map b/src/third_party/devtools/node_modules/rxjs/internal/Scheduler.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/Scheduler.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/Scheduler.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/Subject.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/Subject.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/Subject.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/Subject.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/Subject.js b/src/third_party/devtools/node_modules/rxjs/internal/Subject.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/Subject.js
rename to src/third_party/devtools/node_modules/rxjs/internal/Subject.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/Subject.js.map b/src/third_party/devtools/node_modules/rxjs/internal/Subject.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/Subject.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/Subject.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/SubjectSubscription.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/SubjectSubscription.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/SubjectSubscription.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/SubjectSubscription.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/SubjectSubscription.js b/src/third_party/devtools/node_modules/rxjs/internal/SubjectSubscription.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/SubjectSubscription.js
rename to src/third_party/devtools/node_modules/rxjs/internal/SubjectSubscription.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/SubjectSubscription.js.map b/src/third_party/devtools/node_modules/rxjs/internal/SubjectSubscription.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/SubjectSubscription.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/SubjectSubscription.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/Subscriber.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/Subscriber.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/Subscriber.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/Subscriber.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/Subscriber.js b/src/third_party/devtools/node_modules/rxjs/internal/Subscriber.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/Subscriber.js
rename to src/third_party/devtools/node_modules/rxjs/internal/Subscriber.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/Subscriber.js.map b/src/third_party/devtools/node_modules/rxjs/internal/Subscriber.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/Subscriber.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/Subscriber.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/Subscription.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/Subscription.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/Subscription.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/Subscription.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/Subscription.js b/src/third_party/devtools/node_modules/rxjs/internal/Subscription.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/Subscription.js
rename to src/third_party/devtools/node_modules/rxjs/internal/Subscription.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/Subscription.js.map b/src/third_party/devtools/node_modules/rxjs/internal/Subscription.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/Subscription.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/Subscription.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/config.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/config.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/config.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/config.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/config.js b/src/third_party/devtools/node_modules/rxjs/internal/config.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/config.js
rename to src/third_party/devtools/node_modules/rxjs/internal/config.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/config.js.map b/src/third_party/devtools/node_modules/rxjs/internal/config.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/config.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/config.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/ConnectableObservable.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/observable/ConnectableObservable.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/ConnectableObservable.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/observable/ConnectableObservable.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/ConnectableObservable.js b/src/third_party/devtools/node_modules/rxjs/internal/observable/ConnectableObservable.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/ConnectableObservable.js
rename to src/third_party/devtools/node_modules/rxjs/internal/observable/ConnectableObservable.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/ConnectableObservable.js.map b/src/third_party/devtools/node_modules/rxjs/internal/observable/ConnectableObservable.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/ConnectableObservable.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/observable/ConnectableObservable.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/SubscribeOnObservable.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/observable/SubscribeOnObservable.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/SubscribeOnObservable.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/observable/SubscribeOnObservable.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/SubscribeOnObservable.js b/src/third_party/devtools/node_modules/rxjs/internal/observable/SubscribeOnObservable.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/SubscribeOnObservable.js
rename to src/third_party/devtools/node_modules/rxjs/internal/observable/SubscribeOnObservable.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/SubscribeOnObservable.js.map b/src/third_party/devtools/node_modules/rxjs/internal/observable/SubscribeOnObservable.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/SubscribeOnObservable.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/observable/SubscribeOnObservable.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/bindCallback.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/observable/bindCallback.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/bindCallback.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/observable/bindCallback.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/bindCallback.js b/src/third_party/devtools/node_modules/rxjs/internal/observable/bindCallback.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/bindCallback.js
rename to src/third_party/devtools/node_modules/rxjs/internal/observable/bindCallback.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/bindCallback.js.map b/src/third_party/devtools/node_modules/rxjs/internal/observable/bindCallback.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/bindCallback.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/observable/bindCallback.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/bindNodeCallback.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/observable/bindNodeCallback.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/bindNodeCallback.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/observable/bindNodeCallback.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/bindNodeCallback.js b/src/third_party/devtools/node_modules/rxjs/internal/observable/bindNodeCallback.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/bindNodeCallback.js
rename to src/third_party/devtools/node_modules/rxjs/internal/observable/bindNodeCallback.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/bindNodeCallback.js.map b/src/third_party/devtools/node_modules/rxjs/internal/observable/bindNodeCallback.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/bindNodeCallback.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/observable/bindNodeCallback.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/combineLatest.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/observable/combineLatest.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/combineLatest.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/observable/combineLatest.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/combineLatest.js b/src/third_party/devtools/node_modules/rxjs/internal/observable/combineLatest.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/combineLatest.js
rename to src/third_party/devtools/node_modules/rxjs/internal/observable/combineLatest.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/combineLatest.js.map b/src/third_party/devtools/node_modules/rxjs/internal/observable/combineLatest.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/combineLatest.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/observable/combineLatest.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/concat.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/observable/concat.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/concat.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/observable/concat.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/concat.js b/src/third_party/devtools/node_modules/rxjs/internal/observable/concat.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/concat.js
rename to src/third_party/devtools/node_modules/rxjs/internal/observable/concat.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/concat.js.map b/src/third_party/devtools/node_modules/rxjs/internal/observable/concat.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/concat.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/observable/concat.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/defer.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/observable/defer.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/defer.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/observable/defer.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/defer.js b/src/third_party/devtools/node_modules/rxjs/internal/observable/defer.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/defer.js
rename to src/third_party/devtools/node_modules/rxjs/internal/observable/defer.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/defer.js.map b/src/third_party/devtools/node_modules/rxjs/internal/observable/defer.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/defer.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/observable/defer.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/dom/AjaxObservable.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/observable/dom/AjaxObservable.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/dom/AjaxObservable.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/observable/dom/AjaxObservable.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/dom/AjaxObservable.js b/src/third_party/devtools/node_modules/rxjs/internal/observable/dom/AjaxObservable.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/dom/AjaxObservable.js
rename to src/third_party/devtools/node_modules/rxjs/internal/observable/dom/AjaxObservable.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/dom/AjaxObservable.js.map b/src/third_party/devtools/node_modules/rxjs/internal/observable/dom/AjaxObservable.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/dom/AjaxObservable.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/observable/dom/AjaxObservable.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/dom/WebSocketSubject.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/observable/dom/WebSocketSubject.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/dom/WebSocketSubject.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/observable/dom/WebSocketSubject.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/dom/WebSocketSubject.js b/src/third_party/devtools/node_modules/rxjs/internal/observable/dom/WebSocketSubject.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/dom/WebSocketSubject.js
rename to src/third_party/devtools/node_modules/rxjs/internal/observable/dom/WebSocketSubject.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/dom/WebSocketSubject.js.map b/src/third_party/devtools/node_modules/rxjs/internal/observable/dom/WebSocketSubject.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/dom/WebSocketSubject.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/observable/dom/WebSocketSubject.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/dom/ajax.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/observable/dom/ajax.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/dom/ajax.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/observable/dom/ajax.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/dom/ajax.js b/src/third_party/devtools/node_modules/rxjs/internal/observable/dom/ajax.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/dom/ajax.js
rename to src/third_party/devtools/node_modules/rxjs/internal/observable/dom/ajax.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/dom/ajax.js.map b/src/third_party/devtools/node_modules/rxjs/internal/observable/dom/ajax.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/dom/ajax.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/observable/dom/ajax.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/dom/fetch.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/observable/dom/fetch.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/dom/fetch.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/observable/dom/fetch.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/dom/fetch.js b/src/third_party/devtools/node_modules/rxjs/internal/observable/dom/fetch.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/dom/fetch.js
rename to src/third_party/devtools/node_modules/rxjs/internal/observable/dom/fetch.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/dom/fetch.js.map b/src/third_party/devtools/node_modules/rxjs/internal/observable/dom/fetch.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/dom/fetch.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/observable/dom/fetch.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/dom/webSocket.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/observable/dom/webSocket.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/dom/webSocket.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/observable/dom/webSocket.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/dom/webSocket.js b/src/third_party/devtools/node_modules/rxjs/internal/observable/dom/webSocket.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/dom/webSocket.js
rename to src/third_party/devtools/node_modules/rxjs/internal/observable/dom/webSocket.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/dom/webSocket.js.map b/src/third_party/devtools/node_modules/rxjs/internal/observable/dom/webSocket.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/dom/webSocket.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/observable/dom/webSocket.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/empty.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/observable/empty.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/empty.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/observable/empty.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/empty.js b/src/third_party/devtools/node_modules/rxjs/internal/observable/empty.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/empty.js
rename to src/third_party/devtools/node_modules/rxjs/internal/observable/empty.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/empty.js.map b/src/third_party/devtools/node_modules/rxjs/internal/observable/empty.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/empty.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/observable/empty.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/forkJoin.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/observable/forkJoin.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/forkJoin.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/observable/forkJoin.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/forkJoin.js b/src/third_party/devtools/node_modules/rxjs/internal/observable/forkJoin.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/forkJoin.js
rename to src/third_party/devtools/node_modules/rxjs/internal/observable/forkJoin.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/forkJoin.js.map b/src/third_party/devtools/node_modules/rxjs/internal/observable/forkJoin.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/forkJoin.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/observable/forkJoin.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/from.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/observable/from.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/from.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/observable/from.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/from.js b/src/third_party/devtools/node_modules/rxjs/internal/observable/from.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/from.js
rename to src/third_party/devtools/node_modules/rxjs/internal/observable/from.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/from.js.map b/src/third_party/devtools/node_modules/rxjs/internal/observable/from.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/from.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/observable/from.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/fromArray.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/observable/fromArray.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/fromArray.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/observable/fromArray.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/fromArray.js b/src/third_party/devtools/node_modules/rxjs/internal/observable/fromArray.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/fromArray.js
rename to src/third_party/devtools/node_modules/rxjs/internal/observable/fromArray.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/fromArray.js.map b/src/third_party/devtools/node_modules/rxjs/internal/observable/fromArray.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/fromArray.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/observable/fromArray.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/fromEvent.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/observable/fromEvent.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/fromEvent.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/observable/fromEvent.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/fromEvent.js b/src/third_party/devtools/node_modules/rxjs/internal/observable/fromEvent.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/fromEvent.js
rename to src/third_party/devtools/node_modules/rxjs/internal/observable/fromEvent.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/fromEvent.js.map b/src/third_party/devtools/node_modules/rxjs/internal/observable/fromEvent.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/fromEvent.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/observable/fromEvent.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/fromEventPattern.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/observable/fromEventPattern.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/fromEventPattern.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/observable/fromEventPattern.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/fromEventPattern.js b/src/third_party/devtools/node_modules/rxjs/internal/observable/fromEventPattern.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/fromEventPattern.js
rename to src/third_party/devtools/node_modules/rxjs/internal/observable/fromEventPattern.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/fromEventPattern.js.map b/src/third_party/devtools/node_modules/rxjs/internal/observable/fromEventPattern.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/fromEventPattern.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/observable/fromEventPattern.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/fromIterable.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/observable/fromIterable.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/fromIterable.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/observable/fromIterable.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/fromIterable.js b/src/third_party/devtools/node_modules/rxjs/internal/observable/fromIterable.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/fromIterable.js
rename to src/third_party/devtools/node_modules/rxjs/internal/observable/fromIterable.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/fromIterable.js.map b/src/third_party/devtools/node_modules/rxjs/internal/observable/fromIterable.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/fromIterable.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/observable/fromIterable.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/fromPromise.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/observable/fromPromise.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/fromPromise.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/observable/fromPromise.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/fromPromise.js b/src/third_party/devtools/node_modules/rxjs/internal/observable/fromPromise.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/fromPromise.js
rename to src/third_party/devtools/node_modules/rxjs/internal/observable/fromPromise.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/fromPromise.js.map b/src/third_party/devtools/node_modules/rxjs/internal/observable/fromPromise.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/fromPromise.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/observable/fromPromise.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/generate.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/observable/generate.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/generate.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/observable/generate.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/generate.js b/src/third_party/devtools/node_modules/rxjs/internal/observable/generate.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/generate.js
rename to src/third_party/devtools/node_modules/rxjs/internal/observable/generate.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/generate.js.map b/src/third_party/devtools/node_modules/rxjs/internal/observable/generate.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/generate.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/observable/generate.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/iif.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/observable/iif.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/iif.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/observable/iif.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/iif.js b/src/third_party/devtools/node_modules/rxjs/internal/observable/iif.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/iif.js
rename to src/third_party/devtools/node_modules/rxjs/internal/observable/iif.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/iif.js.map b/src/third_party/devtools/node_modules/rxjs/internal/observable/iif.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/iif.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/observable/iif.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/interval.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/observable/interval.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/interval.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/observable/interval.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/interval.js b/src/third_party/devtools/node_modules/rxjs/internal/observable/interval.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/interval.js
rename to src/third_party/devtools/node_modules/rxjs/internal/observable/interval.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/interval.js.map b/src/third_party/devtools/node_modules/rxjs/internal/observable/interval.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/interval.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/observable/interval.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/merge.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/observable/merge.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/merge.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/observable/merge.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/merge.js b/src/third_party/devtools/node_modules/rxjs/internal/observable/merge.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/merge.js
rename to src/third_party/devtools/node_modules/rxjs/internal/observable/merge.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/merge.js.map b/src/third_party/devtools/node_modules/rxjs/internal/observable/merge.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/merge.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/observable/merge.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/never.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/observable/never.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/never.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/observable/never.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/never.js b/src/third_party/devtools/node_modules/rxjs/internal/observable/never.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/never.js
rename to src/third_party/devtools/node_modules/rxjs/internal/observable/never.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/never.js.map b/src/third_party/devtools/node_modules/rxjs/internal/observable/never.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/never.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/observable/never.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/of.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/observable/of.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/of.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/observable/of.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/of.js b/src/third_party/devtools/node_modules/rxjs/internal/observable/of.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/of.js
rename to src/third_party/devtools/node_modules/rxjs/internal/observable/of.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/of.js.map b/src/third_party/devtools/node_modules/rxjs/internal/observable/of.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/of.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/observable/of.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/onErrorResumeNext.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/observable/onErrorResumeNext.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/onErrorResumeNext.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/observable/onErrorResumeNext.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/onErrorResumeNext.js b/src/third_party/devtools/node_modules/rxjs/internal/observable/onErrorResumeNext.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/onErrorResumeNext.js
rename to src/third_party/devtools/node_modules/rxjs/internal/observable/onErrorResumeNext.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/onErrorResumeNext.js.map b/src/third_party/devtools/node_modules/rxjs/internal/observable/onErrorResumeNext.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/onErrorResumeNext.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/observable/onErrorResumeNext.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/pairs.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/observable/pairs.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/pairs.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/observable/pairs.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/pairs.js b/src/third_party/devtools/node_modules/rxjs/internal/observable/pairs.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/pairs.js
rename to src/third_party/devtools/node_modules/rxjs/internal/observable/pairs.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/pairs.js.map b/src/third_party/devtools/node_modules/rxjs/internal/observable/pairs.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/pairs.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/observable/pairs.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/partition.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/observable/partition.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/partition.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/observable/partition.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/partition.js b/src/third_party/devtools/node_modules/rxjs/internal/observable/partition.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/partition.js
rename to src/third_party/devtools/node_modules/rxjs/internal/observable/partition.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/partition.js.map b/src/third_party/devtools/node_modules/rxjs/internal/observable/partition.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/partition.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/observable/partition.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/race.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/observable/race.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/race.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/observable/race.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/race.js b/src/third_party/devtools/node_modules/rxjs/internal/observable/race.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/race.js
rename to src/third_party/devtools/node_modules/rxjs/internal/observable/race.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/race.js.map b/src/third_party/devtools/node_modules/rxjs/internal/observable/race.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/race.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/observable/race.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/range.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/observable/range.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/range.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/observable/range.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/range.js b/src/third_party/devtools/node_modules/rxjs/internal/observable/range.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/range.js
rename to src/third_party/devtools/node_modules/rxjs/internal/observable/range.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/range.js.map b/src/third_party/devtools/node_modules/rxjs/internal/observable/range.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/range.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/observable/range.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/throwError.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/observable/throwError.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/throwError.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/observable/throwError.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/throwError.js b/src/third_party/devtools/node_modules/rxjs/internal/observable/throwError.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/throwError.js
rename to src/third_party/devtools/node_modules/rxjs/internal/observable/throwError.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/throwError.js.map b/src/third_party/devtools/node_modules/rxjs/internal/observable/throwError.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/throwError.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/observable/throwError.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/timer.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/observable/timer.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/timer.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/observable/timer.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/timer.js b/src/third_party/devtools/node_modules/rxjs/internal/observable/timer.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/timer.js
rename to src/third_party/devtools/node_modules/rxjs/internal/observable/timer.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/timer.js.map b/src/third_party/devtools/node_modules/rxjs/internal/observable/timer.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/timer.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/observable/timer.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/using.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/observable/using.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/using.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/observable/using.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/using.js b/src/third_party/devtools/node_modules/rxjs/internal/observable/using.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/using.js
rename to src/third_party/devtools/node_modules/rxjs/internal/observable/using.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/using.js.map b/src/third_party/devtools/node_modules/rxjs/internal/observable/using.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/using.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/observable/using.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/zip.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/observable/zip.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/zip.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/observable/zip.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/zip.js b/src/third_party/devtools/node_modules/rxjs/internal/observable/zip.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/zip.js
rename to src/third_party/devtools/node_modules/rxjs/internal/observable/zip.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/zip.js.map b/src/third_party/devtools/node_modules/rxjs/internal/observable/zip.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/observable/zip.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/observable/zip.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/audit.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/operators/audit.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/audit.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/audit.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/audit.js b/src/third_party/devtools/node_modules/rxjs/internal/operators/audit.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/audit.js
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/audit.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/audit.js.map b/src/third_party/devtools/node_modules/rxjs/internal/operators/audit.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/audit.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/audit.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/auditTime.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/operators/auditTime.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/auditTime.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/auditTime.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/auditTime.js b/src/third_party/devtools/node_modules/rxjs/internal/operators/auditTime.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/auditTime.js
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/auditTime.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/auditTime.js.map b/src/third_party/devtools/node_modules/rxjs/internal/operators/auditTime.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/auditTime.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/auditTime.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/buffer.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/operators/buffer.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/buffer.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/buffer.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/buffer.js b/src/third_party/devtools/node_modules/rxjs/internal/operators/buffer.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/buffer.js
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/buffer.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/buffer.js.map b/src/third_party/devtools/node_modules/rxjs/internal/operators/buffer.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/buffer.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/buffer.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/bufferCount.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/operators/bufferCount.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/bufferCount.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/bufferCount.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/bufferCount.js b/src/third_party/devtools/node_modules/rxjs/internal/operators/bufferCount.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/bufferCount.js
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/bufferCount.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/bufferCount.js.map b/src/third_party/devtools/node_modules/rxjs/internal/operators/bufferCount.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/bufferCount.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/bufferCount.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/bufferTime.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/operators/bufferTime.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/bufferTime.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/bufferTime.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/bufferTime.js b/src/third_party/devtools/node_modules/rxjs/internal/operators/bufferTime.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/bufferTime.js
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/bufferTime.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/bufferTime.js.map b/src/third_party/devtools/node_modules/rxjs/internal/operators/bufferTime.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/bufferTime.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/bufferTime.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/bufferToggle.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/operators/bufferToggle.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/bufferToggle.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/bufferToggle.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/bufferToggle.js b/src/third_party/devtools/node_modules/rxjs/internal/operators/bufferToggle.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/bufferToggle.js
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/bufferToggle.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/bufferToggle.js.map b/src/third_party/devtools/node_modules/rxjs/internal/operators/bufferToggle.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/bufferToggle.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/bufferToggle.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/bufferWhen.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/operators/bufferWhen.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/bufferWhen.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/bufferWhen.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/bufferWhen.js b/src/third_party/devtools/node_modules/rxjs/internal/operators/bufferWhen.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/bufferWhen.js
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/bufferWhen.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/bufferWhen.js.map b/src/third_party/devtools/node_modules/rxjs/internal/operators/bufferWhen.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/bufferWhen.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/bufferWhen.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/catchError.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/operators/catchError.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/catchError.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/catchError.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/catchError.js b/src/third_party/devtools/node_modules/rxjs/internal/operators/catchError.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/catchError.js
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/catchError.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/catchError.js.map b/src/third_party/devtools/node_modules/rxjs/internal/operators/catchError.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/catchError.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/catchError.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/combineAll.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/operators/combineAll.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/combineAll.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/combineAll.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/combineAll.js b/src/third_party/devtools/node_modules/rxjs/internal/operators/combineAll.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/combineAll.js
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/combineAll.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/combineAll.js.map b/src/third_party/devtools/node_modules/rxjs/internal/operators/combineAll.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/combineAll.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/combineAll.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/combineLatest.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/operators/combineLatest.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/combineLatest.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/combineLatest.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/combineLatest.js b/src/third_party/devtools/node_modules/rxjs/internal/operators/combineLatest.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/combineLatest.js
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/combineLatest.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/combineLatest.js.map b/src/third_party/devtools/node_modules/rxjs/internal/operators/combineLatest.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/combineLatest.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/combineLatest.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/concat.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/operators/concat.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/concat.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/concat.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/concat.js b/src/third_party/devtools/node_modules/rxjs/internal/operators/concat.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/concat.js
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/concat.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/concat.js.map b/src/third_party/devtools/node_modules/rxjs/internal/operators/concat.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/concat.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/concat.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/concatAll.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/operators/concatAll.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/concatAll.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/concatAll.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/concatAll.js b/src/third_party/devtools/node_modules/rxjs/internal/operators/concatAll.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/concatAll.js
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/concatAll.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/concatAll.js.map b/src/third_party/devtools/node_modules/rxjs/internal/operators/concatAll.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/concatAll.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/concatAll.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/concatMap.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/operators/concatMap.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/concatMap.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/concatMap.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/concatMap.js b/src/third_party/devtools/node_modules/rxjs/internal/operators/concatMap.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/concatMap.js
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/concatMap.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/concatMap.js.map b/src/third_party/devtools/node_modules/rxjs/internal/operators/concatMap.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/concatMap.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/concatMap.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/concatMapTo.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/operators/concatMapTo.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/concatMapTo.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/concatMapTo.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/concatMapTo.js b/src/third_party/devtools/node_modules/rxjs/internal/operators/concatMapTo.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/concatMapTo.js
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/concatMapTo.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/concatMapTo.js.map b/src/third_party/devtools/node_modules/rxjs/internal/operators/concatMapTo.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/concatMapTo.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/concatMapTo.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/count.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/operators/count.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/count.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/count.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/count.js b/src/third_party/devtools/node_modules/rxjs/internal/operators/count.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/count.js
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/count.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/count.js.map b/src/third_party/devtools/node_modules/rxjs/internal/operators/count.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/count.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/count.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/debounce.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/operators/debounce.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/debounce.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/debounce.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/debounce.js b/src/third_party/devtools/node_modules/rxjs/internal/operators/debounce.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/debounce.js
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/debounce.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/debounce.js.map b/src/third_party/devtools/node_modules/rxjs/internal/operators/debounce.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/debounce.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/debounce.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/debounceTime.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/operators/debounceTime.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/debounceTime.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/debounceTime.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/debounceTime.js b/src/third_party/devtools/node_modules/rxjs/internal/operators/debounceTime.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/debounceTime.js
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/debounceTime.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/debounceTime.js.map b/src/third_party/devtools/node_modules/rxjs/internal/operators/debounceTime.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/debounceTime.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/debounceTime.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/defaultIfEmpty.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/operators/defaultIfEmpty.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/defaultIfEmpty.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/defaultIfEmpty.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/defaultIfEmpty.js b/src/third_party/devtools/node_modules/rxjs/internal/operators/defaultIfEmpty.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/defaultIfEmpty.js
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/defaultIfEmpty.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/defaultIfEmpty.js.map b/src/third_party/devtools/node_modules/rxjs/internal/operators/defaultIfEmpty.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/defaultIfEmpty.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/defaultIfEmpty.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/delay.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/operators/delay.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/delay.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/delay.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/delay.js b/src/third_party/devtools/node_modules/rxjs/internal/operators/delay.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/delay.js
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/delay.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/delay.js.map b/src/third_party/devtools/node_modules/rxjs/internal/operators/delay.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/delay.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/delay.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/delayWhen.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/operators/delayWhen.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/delayWhen.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/delayWhen.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/delayWhen.js b/src/third_party/devtools/node_modules/rxjs/internal/operators/delayWhen.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/delayWhen.js
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/delayWhen.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/delayWhen.js.map b/src/third_party/devtools/node_modules/rxjs/internal/operators/delayWhen.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/delayWhen.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/delayWhen.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/dematerialize.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/operators/dematerialize.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/dematerialize.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/dematerialize.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/dematerialize.js b/src/third_party/devtools/node_modules/rxjs/internal/operators/dematerialize.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/dematerialize.js
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/dematerialize.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/dematerialize.js.map b/src/third_party/devtools/node_modules/rxjs/internal/operators/dematerialize.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/dematerialize.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/dematerialize.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/distinct.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/operators/distinct.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/distinct.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/distinct.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/distinct.js b/src/third_party/devtools/node_modules/rxjs/internal/operators/distinct.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/distinct.js
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/distinct.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/distinct.js.map b/src/third_party/devtools/node_modules/rxjs/internal/operators/distinct.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/distinct.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/distinct.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/distinctUntilChanged.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/operators/distinctUntilChanged.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/distinctUntilChanged.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/distinctUntilChanged.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/distinctUntilChanged.js b/src/third_party/devtools/node_modules/rxjs/internal/operators/distinctUntilChanged.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/distinctUntilChanged.js
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/distinctUntilChanged.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/distinctUntilChanged.js.map b/src/third_party/devtools/node_modules/rxjs/internal/operators/distinctUntilChanged.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/distinctUntilChanged.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/distinctUntilChanged.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/distinctUntilKeyChanged.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/operators/distinctUntilKeyChanged.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/distinctUntilKeyChanged.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/distinctUntilKeyChanged.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/distinctUntilKeyChanged.js b/src/third_party/devtools/node_modules/rxjs/internal/operators/distinctUntilKeyChanged.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/distinctUntilKeyChanged.js
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/distinctUntilKeyChanged.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/distinctUntilKeyChanged.js.map b/src/third_party/devtools/node_modules/rxjs/internal/operators/distinctUntilKeyChanged.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/distinctUntilKeyChanged.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/distinctUntilKeyChanged.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/elementAt.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/operators/elementAt.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/elementAt.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/elementAt.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/elementAt.js b/src/third_party/devtools/node_modules/rxjs/internal/operators/elementAt.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/elementAt.js
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/elementAt.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/elementAt.js.map b/src/third_party/devtools/node_modules/rxjs/internal/operators/elementAt.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/elementAt.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/elementAt.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/endWith.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/operators/endWith.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/endWith.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/endWith.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/endWith.js b/src/third_party/devtools/node_modules/rxjs/internal/operators/endWith.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/endWith.js
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/endWith.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/endWith.js.map b/src/third_party/devtools/node_modules/rxjs/internal/operators/endWith.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/endWith.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/endWith.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/every.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/operators/every.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/every.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/every.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/every.js b/src/third_party/devtools/node_modules/rxjs/internal/operators/every.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/every.js
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/every.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/every.js.map b/src/third_party/devtools/node_modules/rxjs/internal/operators/every.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/every.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/every.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/exhaust.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/operators/exhaust.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/exhaust.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/exhaust.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/exhaust.js b/src/third_party/devtools/node_modules/rxjs/internal/operators/exhaust.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/exhaust.js
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/exhaust.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/exhaust.js.map b/src/third_party/devtools/node_modules/rxjs/internal/operators/exhaust.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/exhaust.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/exhaust.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/exhaustMap.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/operators/exhaustMap.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/exhaustMap.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/exhaustMap.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/exhaustMap.js b/src/third_party/devtools/node_modules/rxjs/internal/operators/exhaustMap.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/exhaustMap.js
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/exhaustMap.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/exhaustMap.js.map b/src/third_party/devtools/node_modules/rxjs/internal/operators/exhaustMap.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/exhaustMap.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/exhaustMap.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/expand.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/operators/expand.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/expand.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/expand.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/expand.js b/src/third_party/devtools/node_modules/rxjs/internal/operators/expand.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/expand.js
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/expand.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/expand.js.map b/src/third_party/devtools/node_modules/rxjs/internal/operators/expand.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/expand.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/expand.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/filter.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/operators/filter.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/filter.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/filter.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/filter.js b/src/third_party/devtools/node_modules/rxjs/internal/operators/filter.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/filter.js
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/filter.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/filter.js.map b/src/third_party/devtools/node_modules/rxjs/internal/operators/filter.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/filter.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/filter.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/finalize.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/operators/finalize.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/finalize.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/finalize.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/finalize.js b/src/third_party/devtools/node_modules/rxjs/internal/operators/finalize.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/finalize.js
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/finalize.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/finalize.js.map b/src/third_party/devtools/node_modules/rxjs/internal/operators/finalize.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/finalize.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/finalize.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/find.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/operators/find.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/find.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/find.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/find.js b/src/third_party/devtools/node_modules/rxjs/internal/operators/find.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/find.js
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/find.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/find.js.map b/src/third_party/devtools/node_modules/rxjs/internal/operators/find.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/find.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/find.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/findIndex.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/operators/findIndex.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/findIndex.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/findIndex.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/findIndex.js b/src/third_party/devtools/node_modules/rxjs/internal/operators/findIndex.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/findIndex.js
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/findIndex.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/findIndex.js.map b/src/third_party/devtools/node_modules/rxjs/internal/operators/findIndex.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/findIndex.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/findIndex.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/first.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/operators/first.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/first.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/first.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/first.js b/src/third_party/devtools/node_modules/rxjs/internal/operators/first.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/first.js
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/first.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/first.js.map b/src/third_party/devtools/node_modules/rxjs/internal/operators/first.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/first.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/first.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/groupBy.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/operators/groupBy.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/groupBy.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/groupBy.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/groupBy.js b/src/third_party/devtools/node_modules/rxjs/internal/operators/groupBy.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/groupBy.js
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/groupBy.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/groupBy.js.map b/src/third_party/devtools/node_modules/rxjs/internal/operators/groupBy.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/groupBy.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/groupBy.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/ignoreElements.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/operators/ignoreElements.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/ignoreElements.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/ignoreElements.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/ignoreElements.js b/src/third_party/devtools/node_modules/rxjs/internal/operators/ignoreElements.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/ignoreElements.js
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/ignoreElements.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/ignoreElements.js.map b/src/third_party/devtools/node_modules/rxjs/internal/operators/ignoreElements.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/ignoreElements.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/ignoreElements.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/index.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/operators/index.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/index.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/index.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/index.js b/src/third_party/devtools/node_modules/rxjs/internal/operators/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/index.js
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/index.js.map b/src/third_party/devtools/node_modules/rxjs/internal/operators/index.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/index.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/index.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/isEmpty.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/operators/isEmpty.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/isEmpty.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/isEmpty.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/isEmpty.js b/src/third_party/devtools/node_modules/rxjs/internal/operators/isEmpty.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/isEmpty.js
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/isEmpty.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/isEmpty.js.map b/src/third_party/devtools/node_modules/rxjs/internal/operators/isEmpty.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/isEmpty.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/isEmpty.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/last.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/operators/last.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/last.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/last.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/last.js b/src/third_party/devtools/node_modules/rxjs/internal/operators/last.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/last.js
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/last.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/last.js.map b/src/third_party/devtools/node_modules/rxjs/internal/operators/last.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/last.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/last.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/map.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/operators/map.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/map.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/map.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/map.js b/src/third_party/devtools/node_modules/rxjs/internal/operators/map.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/map.js
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/map.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/map.js.map b/src/third_party/devtools/node_modules/rxjs/internal/operators/map.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/map.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/map.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/mapTo.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/operators/mapTo.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/mapTo.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/mapTo.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/mapTo.js b/src/third_party/devtools/node_modules/rxjs/internal/operators/mapTo.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/mapTo.js
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/mapTo.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/mapTo.js.map b/src/third_party/devtools/node_modules/rxjs/internal/operators/mapTo.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/mapTo.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/mapTo.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/materialize.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/operators/materialize.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/materialize.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/materialize.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/materialize.js b/src/third_party/devtools/node_modules/rxjs/internal/operators/materialize.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/materialize.js
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/materialize.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/materialize.js.map b/src/third_party/devtools/node_modules/rxjs/internal/operators/materialize.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/materialize.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/materialize.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/max.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/operators/max.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/max.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/max.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/max.js b/src/third_party/devtools/node_modules/rxjs/internal/operators/max.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/max.js
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/max.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/max.js.map b/src/third_party/devtools/node_modules/rxjs/internal/operators/max.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/max.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/max.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/merge.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/operators/merge.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/merge.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/merge.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/merge.js b/src/third_party/devtools/node_modules/rxjs/internal/operators/merge.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/merge.js
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/merge.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/merge.js.map b/src/third_party/devtools/node_modules/rxjs/internal/operators/merge.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/merge.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/merge.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/mergeAll.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/operators/mergeAll.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/mergeAll.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/mergeAll.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/mergeAll.js b/src/third_party/devtools/node_modules/rxjs/internal/operators/mergeAll.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/mergeAll.js
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/mergeAll.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/mergeAll.js.map b/src/third_party/devtools/node_modules/rxjs/internal/operators/mergeAll.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/mergeAll.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/mergeAll.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/mergeMap.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/operators/mergeMap.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/mergeMap.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/mergeMap.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/mergeMap.js b/src/third_party/devtools/node_modules/rxjs/internal/operators/mergeMap.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/mergeMap.js
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/mergeMap.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/mergeMap.js.map b/src/third_party/devtools/node_modules/rxjs/internal/operators/mergeMap.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/mergeMap.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/mergeMap.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/mergeMapTo.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/operators/mergeMapTo.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/mergeMapTo.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/mergeMapTo.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/mergeMapTo.js b/src/third_party/devtools/node_modules/rxjs/internal/operators/mergeMapTo.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/mergeMapTo.js
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/mergeMapTo.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/mergeMapTo.js.map b/src/third_party/devtools/node_modules/rxjs/internal/operators/mergeMapTo.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/mergeMapTo.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/mergeMapTo.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/mergeScan.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/operators/mergeScan.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/mergeScan.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/mergeScan.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/mergeScan.js b/src/third_party/devtools/node_modules/rxjs/internal/operators/mergeScan.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/mergeScan.js
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/mergeScan.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/mergeScan.js.map b/src/third_party/devtools/node_modules/rxjs/internal/operators/mergeScan.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/mergeScan.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/mergeScan.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/min.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/operators/min.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/min.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/min.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/min.js b/src/third_party/devtools/node_modules/rxjs/internal/operators/min.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/min.js
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/min.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/min.js.map b/src/third_party/devtools/node_modules/rxjs/internal/operators/min.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/min.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/min.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/multicast.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/operators/multicast.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/multicast.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/multicast.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/multicast.js b/src/third_party/devtools/node_modules/rxjs/internal/operators/multicast.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/multicast.js
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/multicast.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/multicast.js.map b/src/third_party/devtools/node_modules/rxjs/internal/operators/multicast.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/multicast.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/multicast.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/observeOn.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/operators/observeOn.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/observeOn.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/observeOn.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/observeOn.js b/src/third_party/devtools/node_modules/rxjs/internal/operators/observeOn.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/observeOn.js
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/observeOn.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/observeOn.js.map b/src/third_party/devtools/node_modules/rxjs/internal/operators/observeOn.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/observeOn.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/observeOn.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/onErrorResumeNext.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/operators/onErrorResumeNext.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/onErrorResumeNext.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/onErrorResumeNext.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/onErrorResumeNext.js b/src/third_party/devtools/node_modules/rxjs/internal/operators/onErrorResumeNext.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/onErrorResumeNext.js
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/onErrorResumeNext.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/onErrorResumeNext.js.map b/src/third_party/devtools/node_modules/rxjs/internal/operators/onErrorResumeNext.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/onErrorResumeNext.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/onErrorResumeNext.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/pairwise.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/operators/pairwise.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/pairwise.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/pairwise.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/pairwise.js b/src/third_party/devtools/node_modules/rxjs/internal/operators/pairwise.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/pairwise.js
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/pairwise.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/pairwise.js.map b/src/third_party/devtools/node_modules/rxjs/internal/operators/pairwise.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/pairwise.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/pairwise.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/partition.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/operators/partition.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/partition.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/partition.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/partition.js b/src/third_party/devtools/node_modules/rxjs/internal/operators/partition.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/partition.js
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/partition.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/partition.js.map b/src/third_party/devtools/node_modules/rxjs/internal/operators/partition.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/partition.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/partition.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/pluck.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/operators/pluck.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/pluck.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/pluck.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/pluck.js b/src/third_party/devtools/node_modules/rxjs/internal/operators/pluck.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/pluck.js
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/pluck.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/pluck.js.map b/src/third_party/devtools/node_modules/rxjs/internal/operators/pluck.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/pluck.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/pluck.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/publish.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/operators/publish.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/publish.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/publish.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/publish.js b/src/third_party/devtools/node_modules/rxjs/internal/operators/publish.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/publish.js
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/publish.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/publish.js.map b/src/third_party/devtools/node_modules/rxjs/internal/operators/publish.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/publish.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/publish.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/publishBehavior.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/operators/publishBehavior.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/publishBehavior.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/publishBehavior.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/publishBehavior.js b/src/third_party/devtools/node_modules/rxjs/internal/operators/publishBehavior.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/publishBehavior.js
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/publishBehavior.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/publishBehavior.js.map b/src/third_party/devtools/node_modules/rxjs/internal/operators/publishBehavior.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/publishBehavior.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/publishBehavior.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/publishLast.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/operators/publishLast.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/publishLast.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/publishLast.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/publishLast.js b/src/third_party/devtools/node_modules/rxjs/internal/operators/publishLast.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/publishLast.js
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/publishLast.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/publishLast.js.map b/src/third_party/devtools/node_modules/rxjs/internal/operators/publishLast.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/publishLast.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/publishLast.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/publishReplay.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/operators/publishReplay.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/publishReplay.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/publishReplay.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/publishReplay.js b/src/third_party/devtools/node_modules/rxjs/internal/operators/publishReplay.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/publishReplay.js
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/publishReplay.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/publishReplay.js.map b/src/third_party/devtools/node_modules/rxjs/internal/operators/publishReplay.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/publishReplay.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/publishReplay.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/race.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/operators/race.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/race.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/race.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/race.js b/src/third_party/devtools/node_modules/rxjs/internal/operators/race.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/race.js
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/race.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/race.js.map b/src/third_party/devtools/node_modules/rxjs/internal/operators/race.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/race.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/race.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/reduce.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/operators/reduce.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/reduce.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/reduce.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/reduce.js b/src/third_party/devtools/node_modules/rxjs/internal/operators/reduce.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/reduce.js
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/reduce.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/reduce.js.map b/src/third_party/devtools/node_modules/rxjs/internal/operators/reduce.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/reduce.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/reduce.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/refCount.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/operators/refCount.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/refCount.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/refCount.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/refCount.js b/src/third_party/devtools/node_modules/rxjs/internal/operators/refCount.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/refCount.js
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/refCount.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/refCount.js.map b/src/third_party/devtools/node_modules/rxjs/internal/operators/refCount.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/refCount.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/refCount.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/repeat.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/operators/repeat.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/repeat.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/repeat.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/repeat.js b/src/third_party/devtools/node_modules/rxjs/internal/operators/repeat.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/repeat.js
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/repeat.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/repeat.js.map b/src/third_party/devtools/node_modules/rxjs/internal/operators/repeat.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/repeat.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/repeat.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/repeatWhen.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/operators/repeatWhen.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/repeatWhen.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/repeatWhen.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/repeatWhen.js b/src/third_party/devtools/node_modules/rxjs/internal/operators/repeatWhen.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/repeatWhen.js
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/repeatWhen.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/repeatWhen.js.map b/src/third_party/devtools/node_modules/rxjs/internal/operators/repeatWhen.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/repeatWhen.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/repeatWhen.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/retry.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/operators/retry.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/retry.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/retry.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/retry.js b/src/third_party/devtools/node_modules/rxjs/internal/operators/retry.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/retry.js
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/retry.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/retry.js.map b/src/third_party/devtools/node_modules/rxjs/internal/operators/retry.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/retry.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/retry.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/retryWhen.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/operators/retryWhen.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/retryWhen.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/retryWhen.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/retryWhen.js b/src/third_party/devtools/node_modules/rxjs/internal/operators/retryWhen.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/retryWhen.js
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/retryWhen.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/retryWhen.js.map b/src/third_party/devtools/node_modules/rxjs/internal/operators/retryWhen.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/retryWhen.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/retryWhen.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/sample.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/operators/sample.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/sample.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/sample.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/sample.js b/src/third_party/devtools/node_modules/rxjs/internal/operators/sample.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/sample.js
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/sample.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/sample.js.map b/src/third_party/devtools/node_modules/rxjs/internal/operators/sample.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/sample.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/sample.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/sampleTime.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/operators/sampleTime.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/sampleTime.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/sampleTime.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/sampleTime.js b/src/third_party/devtools/node_modules/rxjs/internal/operators/sampleTime.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/sampleTime.js
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/sampleTime.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/sampleTime.js.map b/src/third_party/devtools/node_modules/rxjs/internal/operators/sampleTime.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/sampleTime.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/sampleTime.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/scan.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/operators/scan.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/scan.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/scan.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/scan.js b/src/third_party/devtools/node_modules/rxjs/internal/operators/scan.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/scan.js
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/scan.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/scan.js.map b/src/third_party/devtools/node_modules/rxjs/internal/operators/scan.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/scan.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/scan.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/sequenceEqual.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/operators/sequenceEqual.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/sequenceEqual.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/sequenceEqual.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/sequenceEqual.js b/src/third_party/devtools/node_modules/rxjs/internal/operators/sequenceEqual.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/sequenceEqual.js
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/sequenceEqual.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/sequenceEqual.js.map b/src/third_party/devtools/node_modules/rxjs/internal/operators/sequenceEqual.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/sequenceEqual.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/sequenceEqual.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/share.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/operators/share.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/share.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/share.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/share.js b/src/third_party/devtools/node_modules/rxjs/internal/operators/share.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/share.js
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/share.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/share.js.map b/src/third_party/devtools/node_modules/rxjs/internal/operators/share.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/share.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/share.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/shareReplay.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/operators/shareReplay.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/shareReplay.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/shareReplay.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/shareReplay.js b/src/third_party/devtools/node_modules/rxjs/internal/operators/shareReplay.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/shareReplay.js
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/shareReplay.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/shareReplay.js.map b/src/third_party/devtools/node_modules/rxjs/internal/operators/shareReplay.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/shareReplay.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/shareReplay.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/single.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/operators/single.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/single.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/single.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/single.js b/src/third_party/devtools/node_modules/rxjs/internal/operators/single.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/single.js
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/single.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/single.js.map b/src/third_party/devtools/node_modules/rxjs/internal/operators/single.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/single.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/single.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/skip.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/operators/skip.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/skip.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/skip.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/skip.js b/src/third_party/devtools/node_modules/rxjs/internal/operators/skip.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/skip.js
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/skip.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/skip.js.map b/src/third_party/devtools/node_modules/rxjs/internal/operators/skip.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/skip.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/skip.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/skipLast.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/operators/skipLast.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/skipLast.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/skipLast.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/skipLast.js b/src/third_party/devtools/node_modules/rxjs/internal/operators/skipLast.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/skipLast.js
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/skipLast.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/skipLast.js.map b/src/third_party/devtools/node_modules/rxjs/internal/operators/skipLast.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/skipLast.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/skipLast.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/skipUntil.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/operators/skipUntil.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/skipUntil.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/skipUntil.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/skipUntil.js b/src/third_party/devtools/node_modules/rxjs/internal/operators/skipUntil.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/skipUntil.js
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/skipUntil.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/skipUntil.js.map b/src/third_party/devtools/node_modules/rxjs/internal/operators/skipUntil.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/skipUntil.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/skipUntil.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/skipWhile.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/operators/skipWhile.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/skipWhile.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/skipWhile.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/skipWhile.js b/src/third_party/devtools/node_modules/rxjs/internal/operators/skipWhile.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/skipWhile.js
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/skipWhile.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/skipWhile.js.map b/src/third_party/devtools/node_modules/rxjs/internal/operators/skipWhile.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/skipWhile.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/skipWhile.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/startWith.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/operators/startWith.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/startWith.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/startWith.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/startWith.js b/src/third_party/devtools/node_modules/rxjs/internal/operators/startWith.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/startWith.js
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/startWith.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/startWith.js.map b/src/third_party/devtools/node_modules/rxjs/internal/operators/startWith.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/startWith.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/startWith.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/subscribeOn.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/operators/subscribeOn.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/subscribeOn.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/subscribeOn.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/subscribeOn.js b/src/third_party/devtools/node_modules/rxjs/internal/operators/subscribeOn.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/subscribeOn.js
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/subscribeOn.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/subscribeOn.js.map b/src/third_party/devtools/node_modules/rxjs/internal/operators/subscribeOn.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/subscribeOn.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/subscribeOn.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/switchAll.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/operators/switchAll.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/switchAll.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/switchAll.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/switchAll.js b/src/third_party/devtools/node_modules/rxjs/internal/operators/switchAll.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/switchAll.js
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/switchAll.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/switchAll.js.map b/src/third_party/devtools/node_modules/rxjs/internal/operators/switchAll.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/switchAll.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/switchAll.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/switchMap.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/operators/switchMap.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/switchMap.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/switchMap.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/switchMap.js b/src/third_party/devtools/node_modules/rxjs/internal/operators/switchMap.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/switchMap.js
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/switchMap.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/switchMap.js.map b/src/third_party/devtools/node_modules/rxjs/internal/operators/switchMap.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/switchMap.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/switchMap.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/switchMapTo.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/operators/switchMapTo.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/switchMapTo.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/switchMapTo.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/switchMapTo.js b/src/third_party/devtools/node_modules/rxjs/internal/operators/switchMapTo.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/switchMapTo.js
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/switchMapTo.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/switchMapTo.js.map b/src/third_party/devtools/node_modules/rxjs/internal/operators/switchMapTo.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/switchMapTo.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/switchMapTo.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/take.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/operators/take.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/take.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/take.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/take.js b/src/third_party/devtools/node_modules/rxjs/internal/operators/take.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/take.js
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/take.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/take.js.map b/src/third_party/devtools/node_modules/rxjs/internal/operators/take.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/take.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/take.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/takeLast.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/operators/takeLast.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/takeLast.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/takeLast.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/takeLast.js b/src/third_party/devtools/node_modules/rxjs/internal/operators/takeLast.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/takeLast.js
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/takeLast.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/takeLast.js.map b/src/third_party/devtools/node_modules/rxjs/internal/operators/takeLast.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/takeLast.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/takeLast.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/takeUntil.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/operators/takeUntil.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/takeUntil.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/takeUntil.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/takeUntil.js b/src/third_party/devtools/node_modules/rxjs/internal/operators/takeUntil.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/takeUntil.js
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/takeUntil.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/takeUntil.js.map b/src/third_party/devtools/node_modules/rxjs/internal/operators/takeUntil.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/takeUntil.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/takeUntil.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/takeWhile.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/operators/takeWhile.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/takeWhile.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/takeWhile.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/takeWhile.js b/src/third_party/devtools/node_modules/rxjs/internal/operators/takeWhile.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/takeWhile.js
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/takeWhile.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/takeWhile.js.map b/src/third_party/devtools/node_modules/rxjs/internal/operators/takeWhile.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/takeWhile.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/takeWhile.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/tap.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/operators/tap.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/tap.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/tap.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/tap.js b/src/third_party/devtools/node_modules/rxjs/internal/operators/tap.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/tap.js
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/tap.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/tap.js.map b/src/third_party/devtools/node_modules/rxjs/internal/operators/tap.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/tap.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/tap.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/throttle.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/operators/throttle.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/throttle.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/throttle.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/throttle.js b/src/third_party/devtools/node_modules/rxjs/internal/operators/throttle.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/throttle.js
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/throttle.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/throttle.js.map b/src/third_party/devtools/node_modules/rxjs/internal/operators/throttle.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/throttle.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/throttle.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/throttleTime.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/operators/throttleTime.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/throttleTime.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/throttleTime.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/throttleTime.js b/src/third_party/devtools/node_modules/rxjs/internal/operators/throttleTime.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/throttleTime.js
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/throttleTime.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/throttleTime.js.map b/src/third_party/devtools/node_modules/rxjs/internal/operators/throttleTime.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/throttleTime.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/throttleTime.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/throwIfEmpty.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/operators/throwIfEmpty.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/throwIfEmpty.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/throwIfEmpty.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/throwIfEmpty.js b/src/third_party/devtools/node_modules/rxjs/internal/operators/throwIfEmpty.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/throwIfEmpty.js
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/throwIfEmpty.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/throwIfEmpty.js.map b/src/third_party/devtools/node_modules/rxjs/internal/operators/throwIfEmpty.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/throwIfEmpty.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/throwIfEmpty.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/timeInterval.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/operators/timeInterval.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/timeInterval.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/timeInterval.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/timeInterval.js b/src/third_party/devtools/node_modules/rxjs/internal/operators/timeInterval.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/timeInterval.js
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/timeInterval.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/timeInterval.js.map b/src/third_party/devtools/node_modules/rxjs/internal/operators/timeInterval.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/timeInterval.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/timeInterval.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/timeout.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/operators/timeout.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/timeout.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/timeout.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/timeout.js b/src/third_party/devtools/node_modules/rxjs/internal/operators/timeout.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/timeout.js
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/timeout.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/timeout.js.map b/src/third_party/devtools/node_modules/rxjs/internal/operators/timeout.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/timeout.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/timeout.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/timeoutWith.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/operators/timeoutWith.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/timeoutWith.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/timeoutWith.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/timeoutWith.js b/src/third_party/devtools/node_modules/rxjs/internal/operators/timeoutWith.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/timeoutWith.js
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/timeoutWith.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/timeoutWith.js.map b/src/third_party/devtools/node_modules/rxjs/internal/operators/timeoutWith.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/timeoutWith.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/timeoutWith.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/timestamp.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/operators/timestamp.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/timestamp.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/timestamp.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/timestamp.js b/src/third_party/devtools/node_modules/rxjs/internal/operators/timestamp.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/timestamp.js
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/timestamp.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/timestamp.js.map b/src/third_party/devtools/node_modules/rxjs/internal/operators/timestamp.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/timestamp.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/timestamp.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/toArray.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/operators/toArray.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/toArray.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/toArray.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/toArray.js b/src/third_party/devtools/node_modules/rxjs/internal/operators/toArray.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/toArray.js
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/toArray.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/toArray.js.map b/src/third_party/devtools/node_modules/rxjs/internal/operators/toArray.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/toArray.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/toArray.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/window.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/operators/window.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/window.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/window.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/window.js b/src/third_party/devtools/node_modules/rxjs/internal/operators/window.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/window.js
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/window.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/window.js.map b/src/third_party/devtools/node_modules/rxjs/internal/operators/window.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/window.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/window.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/windowCount.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/operators/windowCount.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/windowCount.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/windowCount.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/windowCount.js b/src/third_party/devtools/node_modules/rxjs/internal/operators/windowCount.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/windowCount.js
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/windowCount.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/windowCount.js.map b/src/third_party/devtools/node_modules/rxjs/internal/operators/windowCount.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/windowCount.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/windowCount.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/windowTime.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/operators/windowTime.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/windowTime.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/windowTime.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/windowTime.js b/src/third_party/devtools/node_modules/rxjs/internal/operators/windowTime.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/windowTime.js
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/windowTime.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/windowTime.js.map b/src/third_party/devtools/node_modules/rxjs/internal/operators/windowTime.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/windowTime.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/windowTime.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/windowToggle.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/operators/windowToggle.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/windowToggle.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/windowToggle.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/windowToggle.js b/src/third_party/devtools/node_modules/rxjs/internal/operators/windowToggle.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/windowToggle.js
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/windowToggle.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/windowToggle.js.map b/src/third_party/devtools/node_modules/rxjs/internal/operators/windowToggle.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/windowToggle.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/windowToggle.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/windowWhen.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/operators/windowWhen.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/windowWhen.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/windowWhen.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/windowWhen.js b/src/third_party/devtools/node_modules/rxjs/internal/operators/windowWhen.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/windowWhen.js
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/windowWhen.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/windowWhen.js.map b/src/third_party/devtools/node_modules/rxjs/internal/operators/windowWhen.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/windowWhen.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/windowWhen.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/withLatestFrom.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/operators/withLatestFrom.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/withLatestFrom.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/withLatestFrom.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/withLatestFrom.js b/src/third_party/devtools/node_modules/rxjs/internal/operators/withLatestFrom.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/withLatestFrom.js
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/withLatestFrom.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/withLatestFrom.js.map b/src/third_party/devtools/node_modules/rxjs/internal/operators/withLatestFrom.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/withLatestFrom.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/withLatestFrom.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/zip.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/operators/zip.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/zip.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/zip.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/zip.js b/src/third_party/devtools/node_modules/rxjs/internal/operators/zip.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/zip.js
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/zip.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/zip.js.map b/src/third_party/devtools/node_modules/rxjs/internal/operators/zip.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/zip.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/zip.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/zipAll.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/operators/zipAll.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/zipAll.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/zipAll.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/zipAll.js b/src/third_party/devtools/node_modules/rxjs/internal/operators/zipAll.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/zipAll.js
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/zipAll.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/zipAll.js.map b/src/third_party/devtools/node_modules/rxjs/internal/operators/zipAll.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/operators/zipAll.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/operators/zipAll.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/scheduled/scheduleArray.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/scheduled/scheduleArray.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/scheduled/scheduleArray.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/scheduled/scheduleArray.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/scheduled/scheduleArray.js b/src/third_party/devtools/node_modules/rxjs/internal/scheduled/scheduleArray.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/scheduled/scheduleArray.js
rename to src/third_party/devtools/node_modules/rxjs/internal/scheduled/scheduleArray.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/scheduled/scheduleArray.js.map b/src/third_party/devtools/node_modules/rxjs/internal/scheduled/scheduleArray.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/scheduled/scheduleArray.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/scheduled/scheduleArray.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/scheduled/scheduleIterable.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/scheduled/scheduleIterable.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/scheduled/scheduleIterable.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/scheduled/scheduleIterable.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/scheduled/scheduleIterable.js b/src/third_party/devtools/node_modules/rxjs/internal/scheduled/scheduleIterable.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/scheduled/scheduleIterable.js
rename to src/third_party/devtools/node_modules/rxjs/internal/scheduled/scheduleIterable.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/scheduled/scheduleIterable.js.map b/src/third_party/devtools/node_modules/rxjs/internal/scheduled/scheduleIterable.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/scheduled/scheduleIterable.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/scheduled/scheduleIterable.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/scheduled/scheduleObservable.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/scheduled/scheduleObservable.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/scheduled/scheduleObservable.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/scheduled/scheduleObservable.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/scheduled/scheduleObservable.js b/src/third_party/devtools/node_modules/rxjs/internal/scheduled/scheduleObservable.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/scheduled/scheduleObservable.js
rename to src/third_party/devtools/node_modules/rxjs/internal/scheduled/scheduleObservable.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/scheduled/scheduleObservable.js.map b/src/third_party/devtools/node_modules/rxjs/internal/scheduled/scheduleObservable.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/scheduled/scheduleObservable.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/scheduled/scheduleObservable.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/scheduled/schedulePromise.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/scheduled/schedulePromise.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/scheduled/schedulePromise.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/scheduled/schedulePromise.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/scheduled/schedulePromise.js b/src/third_party/devtools/node_modules/rxjs/internal/scheduled/schedulePromise.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/scheduled/schedulePromise.js
rename to src/third_party/devtools/node_modules/rxjs/internal/scheduled/schedulePromise.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/scheduled/schedulePromise.js.map b/src/third_party/devtools/node_modules/rxjs/internal/scheduled/schedulePromise.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/scheduled/schedulePromise.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/scheduled/schedulePromise.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/scheduled/scheduled.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/scheduled/scheduled.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/scheduled/scheduled.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/scheduled/scheduled.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/scheduled/scheduled.js b/src/third_party/devtools/node_modules/rxjs/internal/scheduled/scheduled.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/scheduled/scheduled.js
rename to src/third_party/devtools/node_modules/rxjs/internal/scheduled/scheduled.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/scheduled/scheduled.js.map b/src/third_party/devtools/node_modules/rxjs/internal/scheduled/scheduled.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/scheduled/scheduled.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/scheduled/scheduled.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/scheduler/Action.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/scheduler/Action.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/scheduler/Action.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/scheduler/Action.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/scheduler/Action.js b/src/third_party/devtools/node_modules/rxjs/internal/scheduler/Action.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/scheduler/Action.js
rename to src/third_party/devtools/node_modules/rxjs/internal/scheduler/Action.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/scheduler/Action.js.map b/src/third_party/devtools/node_modules/rxjs/internal/scheduler/Action.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/scheduler/Action.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/scheduler/Action.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/scheduler/AnimationFrameAction.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/scheduler/AnimationFrameAction.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/scheduler/AnimationFrameAction.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/scheduler/AnimationFrameAction.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/scheduler/AnimationFrameAction.js b/src/third_party/devtools/node_modules/rxjs/internal/scheduler/AnimationFrameAction.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/scheduler/AnimationFrameAction.js
rename to src/third_party/devtools/node_modules/rxjs/internal/scheduler/AnimationFrameAction.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/scheduler/AnimationFrameAction.js.map b/src/third_party/devtools/node_modules/rxjs/internal/scheduler/AnimationFrameAction.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/scheduler/AnimationFrameAction.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/scheduler/AnimationFrameAction.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/scheduler/AnimationFrameScheduler.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/scheduler/AnimationFrameScheduler.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/scheduler/AnimationFrameScheduler.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/scheduler/AnimationFrameScheduler.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/scheduler/AnimationFrameScheduler.js b/src/third_party/devtools/node_modules/rxjs/internal/scheduler/AnimationFrameScheduler.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/scheduler/AnimationFrameScheduler.js
rename to src/third_party/devtools/node_modules/rxjs/internal/scheduler/AnimationFrameScheduler.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/scheduler/AnimationFrameScheduler.js.map b/src/third_party/devtools/node_modules/rxjs/internal/scheduler/AnimationFrameScheduler.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/scheduler/AnimationFrameScheduler.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/scheduler/AnimationFrameScheduler.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/scheduler/AsapAction.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/scheduler/AsapAction.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/scheduler/AsapAction.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/scheduler/AsapAction.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/scheduler/AsapAction.js b/src/third_party/devtools/node_modules/rxjs/internal/scheduler/AsapAction.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/scheduler/AsapAction.js
rename to src/third_party/devtools/node_modules/rxjs/internal/scheduler/AsapAction.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/scheduler/AsapAction.js.map b/src/third_party/devtools/node_modules/rxjs/internal/scheduler/AsapAction.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/scheduler/AsapAction.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/scheduler/AsapAction.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/scheduler/AsapScheduler.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/scheduler/AsapScheduler.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/scheduler/AsapScheduler.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/scheduler/AsapScheduler.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/scheduler/AsapScheduler.js b/src/third_party/devtools/node_modules/rxjs/internal/scheduler/AsapScheduler.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/scheduler/AsapScheduler.js
rename to src/third_party/devtools/node_modules/rxjs/internal/scheduler/AsapScheduler.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/scheduler/AsapScheduler.js.map b/src/third_party/devtools/node_modules/rxjs/internal/scheduler/AsapScheduler.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/scheduler/AsapScheduler.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/scheduler/AsapScheduler.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/scheduler/AsyncAction.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/scheduler/AsyncAction.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/scheduler/AsyncAction.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/scheduler/AsyncAction.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/scheduler/AsyncAction.js b/src/third_party/devtools/node_modules/rxjs/internal/scheduler/AsyncAction.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/scheduler/AsyncAction.js
rename to src/third_party/devtools/node_modules/rxjs/internal/scheduler/AsyncAction.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/scheduler/AsyncAction.js.map b/src/third_party/devtools/node_modules/rxjs/internal/scheduler/AsyncAction.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/scheduler/AsyncAction.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/scheduler/AsyncAction.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/scheduler/AsyncScheduler.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/scheduler/AsyncScheduler.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/scheduler/AsyncScheduler.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/scheduler/AsyncScheduler.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/scheduler/AsyncScheduler.js b/src/third_party/devtools/node_modules/rxjs/internal/scheduler/AsyncScheduler.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/scheduler/AsyncScheduler.js
rename to src/third_party/devtools/node_modules/rxjs/internal/scheduler/AsyncScheduler.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/scheduler/AsyncScheduler.js.map b/src/third_party/devtools/node_modules/rxjs/internal/scheduler/AsyncScheduler.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/scheduler/AsyncScheduler.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/scheduler/AsyncScheduler.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/scheduler/QueueAction.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/scheduler/QueueAction.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/scheduler/QueueAction.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/scheduler/QueueAction.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/scheduler/QueueAction.js b/src/third_party/devtools/node_modules/rxjs/internal/scheduler/QueueAction.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/scheduler/QueueAction.js
rename to src/third_party/devtools/node_modules/rxjs/internal/scheduler/QueueAction.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/scheduler/QueueAction.js.map b/src/third_party/devtools/node_modules/rxjs/internal/scheduler/QueueAction.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/scheduler/QueueAction.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/scheduler/QueueAction.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/scheduler/QueueScheduler.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/scheduler/QueueScheduler.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/scheduler/QueueScheduler.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/scheduler/QueueScheduler.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/scheduler/QueueScheduler.js b/src/third_party/devtools/node_modules/rxjs/internal/scheduler/QueueScheduler.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/scheduler/QueueScheduler.js
rename to src/third_party/devtools/node_modules/rxjs/internal/scheduler/QueueScheduler.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/scheduler/QueueScheduler.js.map b/src/third_party/devtools/node_modules/rxjs/internal/scheduler/QueueScheduler.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/scheduler/QueueScheduler.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/scheduler/QueueScheduler.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/scheduler/VirtualTimeScheduler.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/scheduler/VirtualTimeScheduler.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/scheduler/VirtualTimeScheduler.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/scheduler/VirtualTimeScheduler.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/scheduler/VirtualTimeScheduler.js b/src/third_party/devtools/node_modules/rxjs/internal/scheduler/VirtualTimeScheduler.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/scheduler/VirtualTimeScheduler.js
rename to src/third_party/devtools/node_modules/rxjs/internal/scheduler/VirtualTimeScheduler.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/scheduler/VirtualTimeScheduler.js.map b/src/third_party/devtools/node_modules/rxjs/internal/scheduler/VirtualTimeScheduler.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/scheduler/VirtualTimeScheduler.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/scheduler/VirtualTimeScheduler.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/scheduler/animationFrame.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/scheduler/animationFrame.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/scheduler/animationFrame.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/scheduler/animationFrame.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/scheduler/animationFrame.js b/src/third_party/devtools/node_modules/rxjs/internal/scheduler/animationFrame.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/scheduler/animationFrame.js
rename to src/third_party/devtools/node_modules/rxjs/internal/scheduler/animationFrame.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/scheduler/animationFrame.js.map b/src/third_party/devtools/node_modules/rxjs/internal/scheduler/animationFrame.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/scheduler/animationFrame.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/scheduler/animationFrame.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/scheduler/asap.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/scheduler/asap.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/scheduler/asap.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/scheduler/asap.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/scheduler/asap.js b/src/third_party/devtools/node_modules/rxjs/internal/scheduler/asap.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/scheduler/asap.js
rename to src/third_party/devtools/node_modules/rxjs/internal/scheduler/asap.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/scheduler/asap.js.map b/src/third_party/devtools/node_modules/rxjs/internal/scheduler/asap.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/scheduler/asap.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/scheduler/asap.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/scheduler/async.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/scheduler/async.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/scheduler/async.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/scheduler/async.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/scheduler/async.js b/src/third_party/devtools/node_modules/rxjs/internal/scheduler/async.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/scheduler/async.js
rename to src/third_party/devtools/node_modules/rxjs/internal/scheduler/async.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/scheduler/async.js.map b/src/third_party/devtools/node_modules/rxjs/internal/scheduler/async.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/scheduler/async.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/scheduler/async.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/scheduler/queue.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/scheduler/queue.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/scheduler/queue.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/scheduler/queue.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/scheduler/queue.js b/src/third_party/devtools/node_modules/rxjs/internal/scheduler/queue.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/scheduler/queue.js
rename to src/third_party/devtools/node_modules/rxjs/internal/scheduler/queue.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/scheduler/queue.js.map b/src/third_party/devtools/node_modules/rxjs/internal/scheduler/queue.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/scheduler/queue.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/scheduler/queue.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/symbol/iterator.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/symbol/iterator.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/symbol/iterator.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/symbol/iterator.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/symbol/iterator.js b/src/third_party/devtools/node_modules/rxjs/internal/symbol/iterator.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/symbol/iterator.js
rename to src/third_party/devtools/node_modules/rxjs/internal/symbol/iterator.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/symbol/iterator.js.map b/src/third_party/devtools/node_modules/rxjs/internal/symbol/iterator.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/symbol/iterator.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/symbol/iterator.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/symbol/observable.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/symbol/observable.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/symbol/observable.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/symbol/observable.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/symbol/observable.js b/src/third_party/devtools/node_modules/rxjs/internal/symbol/observable.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/symbol/observable.js
rename to src/third_party/devtools/node_modules/rxjs/internal/symbol/observable.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/symbol/observable.js.map b/src/third_party/devtools/node_modules/rxjs/internal/symbol/observable.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/symbol/observable.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/symbol/observable.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/symbol/rxSubscriber.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/symbol/rxSubscriber.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/symbol/rxSubscriber.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/symbol/rxSubscriber.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/symbol/rxSubscriber.js b/src/third_party/devtools/node_modules/rxjs/internal/symbol/rxSubscriber.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/symbol/rxSubscriber.js
rename to src/third_party/devtools/node_modules/rxjs/internal/symbol/rxSubscriber.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/symbol/rxSubscriber.js.map b/src/third_party/devtools/node_modules/rxjs/internal/symbol/rxSubscriber.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/symbol/rxSubscriber.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/symbol/rxSubscriber.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/testing/ColdObservable.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/testing/ColdObservable.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/testing/ColdObservable.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/testing/ColdObservable.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/testing/ColdObservable.js b/src/third_party/devtools/node_modules/rxjs/internal/testing/ColdObservable.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/testing/ColdObservable.js
rename to src/third_party/devtools/node_modules/rxjs/internal/testing/ColdObservable.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/testing/ColdObservable.js.map b/src/third_party/devtools/node_modules/rxjs/internal/testing/ColdObservable.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/testing/ColdObservable.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/testing/ColdObservable.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/testing/HotObservable.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/testing/HotObservable.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/testing/HotObservable.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/testing/HotObservable.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/testing/HotObservable.js b/src/third_party/devtools/node_modules/rxjs/internal/testing/HotObservable.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/testing/HotObservable.js
rename to src/third_party/devtools/node_modules/rxjs/internal/testing/HotObservable.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/testing/HotObservable.js.map b/src/third_party/devtools/node_modules/rxjs/internal/testing/HotObservable.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/testing/HotObservable.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/testing/HotObservable.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/testing/SubscriptionLog.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/testing/SubscriptionLog.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/testing/SubscriptionLog.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/testing/SubscriptionLog.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/testing/SubscriptionLog.js b/src/third_party/devtools/node_modules/rxjs/internal/testing/SubscriptionLog.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/testing/SubscriptionLog.js
rename to src/third_party/devtools/node_modules/rxjs/internal/testing/SubscriptionLog.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/testing/SubscriptionLog.js.map b/src/third_party/devtools/node_modules/rxjs/internal/testing/SubscriptionLog.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/testing/SubscriptionLog.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/testing/SubscriptionLog.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/testing/SubscriptionLoggable.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/testing/SubscriptionLoggable.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/testing/SubscriptionLoggable.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/testing/SubscriptionLoggable.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/testing/SubscriptionLoggable.js b/src/third_party/devtools/node_modules/rxjs/internal/testing/SubscriptionLoggable.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/testing/SubscriptionLoggable.js
rename to src/third_party/devtools/node_modules/rxjs/internal/testing/SubscriptionLoggable.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/testing/SubscriptionLoggable.js.map b/src/third_party/devtools/node_modules/rxjs/internal/testing/SubscriptionLoggable.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/testing/SubscriptionLoggable.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/testing/SubscriptionLoggable.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/testing/TestMessage.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/testing/TestMessage.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/testing/TestMessage.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/testing/TestMessage.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/testing/TestMessage.js b/src/third_party/devtools/node_modules/rxjs/internal/testing/TestMessage.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/testing/TestMessage.js
rename to src/third_party/devtools/node_modules/rxjs/internal/testing/TestMessage.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/testing/TestMessage.js.map b/src/third_party/devtools/node_modules/rxjs/internal/testing/TestMessage.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/testing/TestMessage.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/testing/TestMessage.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/testing/TestScheduler.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/testing/TestScheduler.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/testing/TestScheduler.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/testing/TestScheduler.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/testing/TestScheduler.js b/src/third_party/devtools/node_modules/rxjs/internal/testing/TestScheduler.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/testing/TestScheduler.js
rename to src/third_party/devtools/node_modules/rxjs/internal/testing/TestScheduler.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/testing/TestScheduler.js.map b/src/third_party/devtools/node_modules/rxjs/internal/testing/TestScheduler.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/testing/TestScheduler.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/testing/TestScheduler.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/types.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/types.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/types.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/types.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/types.js b/src/third_party/devtools/node_modules/rxjs/internal/types.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/types.js
rename to src/third_party/devtools/node_modules/rxjs/internal/types.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/types.js.map b/src/third_party/devtools/node_modules/rxjs/internal/types.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/types.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/types.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/ArgumentOutOfRangeError.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/util/ArgumentOutOfRangeError.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/ArgumentOutOfRangeError.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/util/ArgumentOutOfRangeError.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/ArgumentOutOfRangeError.js b/src/third_party/devtools/node_modules/rxjs/internal/util/ArgumentOutOfRangeError.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/ArgumentOutOfRangeError.js
rename to src/third_party/devtools/node_modules/rxjs/internal/util/ArgumentOutOfRangeError.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/ArgumentOutOfRangeError.js.map b/src/third_party/devtools/node_modules/rxjs/internal/util/ArgumentOutOfRangeError.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/ArgumentOutOfRangeError.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/util/ArgumentOutOfRangeError.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/EmptyError.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/util/EmptyError.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/EmptyError.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/util/EmptyError.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/EmptyError.js b/src/third_party/devtools/node_modules/rxjs/internal/util/EmptyError.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/EmptyError.js
rename to src/third_party/devtools/node_modules/rxjs/internal/util/EmptyError.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/EmptyError.js.map b/src/third_party/devtools/node_modules/rxjs/internal/util/EmptyError.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/EmptyError.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/util/EmptyError.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/Immediate.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/util/Immediate.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/Immediate.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/util/Immediate.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/Immediate.js b/src/third_party/devtools/node_modules/rxjs/internal/util/Immediate.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/Immediate.js
rename to src/third_party/devtools/node_modules/rxjs/internal/util/Immediate.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/Immediate.js.map b/src/third_party/devtools/node_modules/rxjs/internal/util/Immediate.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/Immediate.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/util/Immediate.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/ObjectUnsubscribedError.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/util/ObjectUnsubscribedError.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/ObjectUnsubscribedError.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/util/ObjectUnsubscribedError.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/ObjectUnsubscribedError.js b/src/third_party/devtools/node_modules/rxjs/internal/util/ObjectUnsubscribedError.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/ObjectUnsubscribedError.js
rename to src/third_party/devtools/node_modules/rxjs/internal/util/ObjectUnsubscribedError.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/ObjectUnsubscribedError.js.map b/src/third_party/devtools/node_modules/rxjs/internal/util/ObjectUnsubscribedError.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/ObjectUnsubscribedError.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/util/ObjectUnsubscribedError.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/TimeoutError.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/util/TimeoutError.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/TimeoutError.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/util/TimeoutError.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/TimeoutError.js b/src/third_party/devtools/node_modules/rxjs/internal/util/TimeoutError.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/TimeoutError.js
rename to src/third_party/devtools/node_modules/rxjs/internal/util/TimeoutError.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/TimeoutError.js.map b/src/third_party/devtools/node_modules/rxjs/internal/util/TimeoutError.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/TimeoutError.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/util/TimeoutError.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/UnsubscriptionError.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/util/UnsubscriptionError.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/UnsubscriptionError.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/util/UnsubscriptionError.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/UnsubscriptionError.js b/src/third_party/devtools/node_modules/rxjs/internal/util/UnsubscriptionError.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/UnsubscriptionError.js
rename to src/third_party/devtools/node_modules/rxjs/internal/util/UnsubscriptionError.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/UnsubscriptionError.js.map b/src/third_party/devtools/node_modules/rxjs/internal/util/UnsubscriptionError.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/UnsubscriptionError.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/util/UnsubscriptionError.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/applyMixins.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/util/applyMixins.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/applyMixins.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/util/applyMixins.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/applyMixins.js b/src/third_party/devtools/node_modules/rxjs/internal/util/applyMixins.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/applyMixins.js
rename to src/third_party/devtools/node_modules/rxjs/internal/util/applyMixins.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/applyMixins.js.map b/src/third_party/devtools/node_modules/rxjs/internal/util/applyMixins.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/applyMixins.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/util/applyMixins.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/canReportError.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/util/canReportError.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/canReportError.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/util/canReportError.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/canReportError.js b/src/third_party/devtools/node_modules/rxjs/internal/util/canReportError.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/canReportError.js
rename to src/third_party/devtools/node_modules/rxjs/internal/util/canReportError.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/canReportError.js.map b/src/third_party/devtools/node_modules/rxjs/internal/util/canReportError.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/canReportError.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/util/canReportError.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/errorObject.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/util/errorObject.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/errorObject.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/util/errorObject.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/errorObject.js b/src/third_party/devtools/node_modules/rxjs/internal/util/errorObject.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/errorObject.js
rename to src/third_party/devtools/node_modules/rxjs/internal/util/errorObject.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/errorObject.js.map b/src/third_party/devtools/node_modules/rxjs/internal/util/errorObject.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/errorObject.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/util/errorObject.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/hostReportError.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/util/hostReportError.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/hostReportError.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/util/hostReportError.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/hostReportError.js b/src/third_party/devtools/node_modules/rxjs/internal/util/hostReportError.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/hostReportError.js
rename to src/third_party/devtools/node_modules/rxjs/internal/util/hostReportError.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/hostReportError.js.map b/src/third_party/devtools/node_modules/rxjs/internal/util/hostReportError.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/hostReportError.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/util/hostReportError.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/identity.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/util/identity.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/identity.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/util/identity.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/identity.js b/src/third_party/devtools/node_modules/rxjs/internal/util/identity.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/identity.js
rename to src/third_party/devtools/node_modules/rxjs/internal/util/identity.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/identity.js.map b/src/third_party/devtools/node_modules/rxjs/internal/util/identity.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/identity.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/util/identity.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/isArray.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/util/isArray.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/isArray.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/util/isArray.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/isArray.js b/src/third_party/devtools/node_modules/rxjs/internal/util/isArray.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/isArray.js
rename to src/third_party/devtools/node_modules/rxjs/internal/util/isArray.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/isArray.js.map b/src/third_party/devtools/node_modules/rxjs/internal/util/isArray.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/isArray.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/util/isArray.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/isArrayLike.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/util/isArrayLike.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/isArrayLike.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/util/isArrayLike.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/isArrayLike.js b/src/third_party/devtools/node_modules/rxjs/internal/util/isArrayLike.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/isArrayLike.js
rename to src/third_party/devtools/node_modules/rxjs/internal/util/isArrayLike.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/isArrayLike.js.map b/src/third_party/devtools/node_modules/rxjs/internal/util/isArrayLike.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/isArrayLike.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/util/isArrayLike.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/isDate.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/util/isDate.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/isDate.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/util/isDate.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/isDate.js b/src/third_party/devtools/node_modules/rxjs/internal/util/isDate.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/isDate.js
rename to src/third_party/devtools/node_modules/rxjs/internal/util/isDate.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/isDate.js.map b/src/third_party/devtools/node_modules/rxjs/internal/util/isDate.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/isDate.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/util/isDate.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/isFunction.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/util/isFunction.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/isFunction.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/util/isFunction.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/isFunction.js b/src/third_party/devtools/node_modules/rxjs/internal/util/isFunction.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/isFunction.js
rename to src/third_party/devtools/node_modules/rxjs/internal/util/isFunction.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/isFunction.js.map b/src/third_party/devtools/node_modules/rxjs/internal/util/isFunction.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/isFunction.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/util/isFunction.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/isInteropObservable.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/util/isInteropObservable.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/isInteropObservable.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/util/isInteropObservable.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/isInteropObservable.js b/src/third_party/devtools/node_modules/rxjs/internal/util/isInteropObservable.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/isInteropObservable.js
rename to src/third_party/devtools/node_modules/rxjs/internal/util/isInteropObservable.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/isInteropObservable.js.map b/src/third_party/devtools/node_modules/rxjs/internal/util/isInteropObservable.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/isInteropObservable.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/util/isInteropObservable.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/isIterable.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/util/isIterable.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/isIterable.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/util/isIterable.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/isIterable.js b/src/third_party/devtools/node_modules/rxjs/internal/util/isIterable.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/isIterable.js
rename to src/third_party/devtools/node_modules/rxjs/internal/util/isIterable.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/isIterable.js.map b/src/third_party/devtools/node_modules/rxjs/internal/util/isIterable.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/isIterable.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/util/isIterable.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/isNumeric.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/util/isNumeric.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/isNumeric.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/util/isNumeric.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/isNumeric.js b/src/third_party/devtools/node_modules/rxjs/internal/util/isNumeric.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/isNumeric.js
rename to src/third_party/devtools/node_modules/rxjs/internal/util/isNumeric.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/isNumeric.js.map b/src/third_party/devtools/node_modules/rxjs/internal/util/isNumeric.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/isNumeric.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/util/isNumeric.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/isObject.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/util/isObject.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/isObject.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/util/isObject.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/isObject.js b/src/third_party/devtools/node_modules/rxjs/internal/util/isObject.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/isObject.js
rename to src/third_party/devtools/node_modules/rxjs/internal/util/isObject.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/isObject.js.map b/src/third_party/devtools/node_modules/rxjs/internal/util/isObject.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/isObject.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/util/isObject.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/isObservable.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/util/isObservable.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/isObservable.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/util/isObservable.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/isObservable.js b/src/third_party/devtools/node_modules/rxjs/internal/util/isObservable.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/isObservable.js
rename to src/third_party/devtools/node_modules/rxjs/internal/util/isObservable.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/isObservable.js.map b/src/third_party/devtools/node_modules/rxjs/internal/util/isObservable.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/isObservable.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/util/isObservable.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/isPromise.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/util/isPromise.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/isPromise.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/util/isPromise.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/isPromise.js b/src/third_party/devtools/node_modules/rxjs/internal/util/isPromise.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/isPromise.js
rename to src/third_party/devtools/node_modules/rxjs/internal/util/isPromise.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/isPromise.js.map b/src/third_party/devtools/node_modules/rxjs/internal/util/isPromise.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/isPromise.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/util/isPromise.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/isScheduler.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/util/isScheduler.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/isScheduler.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/util/isScheduler.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/isScheduler.js b/src/third_party/devtools/node_modules/rxjs/internal/util/isScheduler.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/isScheduler.js
rename to src/third_party/devtools/node_modules/rxjs/internal/util/isScheduler.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/isScheduler.js.map b/src/third_party/devtools/node_modules/rxjs/internal/util/isScheduler.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/isScheduler.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/util/isScheduler.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/noop.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/util/noop.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/noop.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/util/noop.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/noop.js b/src/third_party/devtools/node_modules/rxjs/internal/util/noop.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/noop.js
rename to src/third_party/devtools/node_modules/rxjs/internal/util/noop.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/noop.js.map b/src/third_party/devtools/node_modules/rxjs/internal/util/noop.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/noop.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/util/noop.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/not.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/util/not.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/not.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/util/not.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/not.js b/src/third_party/devtools/node_modules/rxjs/internal/util/not.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/not.js
rename to src/third_party/devtools/node_modules/rxjs/internal/util/not.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/not.js.map b/src/third_party/devtools/node_modules/rxjs/internal/util/not.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/not.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/util/not.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/pipe.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/util/pipe.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/pipe.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/util/pipe.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/pipe.js b/src/third_party/devtools/node_modules/rxjs/internal/util/pipe.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/pipe.js
rename to src/third_party/devtools/node_modules/rxjs/internal/util/pipe.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/pipe.js.map b/src/third_party/devtools/node_modules/rxjs/internal/util/pipe.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/pipe.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/util/pipe.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/root.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/util/root.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/root.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/util/root.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/root.js b/src/third_party/devtools/node_modules/rxjs/internal/util/root.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/root.js
rename to src/third_party/devtools/node_modules/rxjs/internal/util/root.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/root.js.map b/src/third_party/devtools/node_modules/rxjs/internal/util/root.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/root.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/util/root.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/subscribeTo.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/util/subscribeTo.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/subscribeTo.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/util/subscribeTo.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/subscribeTo.js b/src/third_party/devtools/node_modules/rxjs/internal/util/subscribeTo.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/subscribeTo.js
rename to src/third_party/devtools/node_modules/rxjs/internal/util/subscribeTo.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/subscribeTo.js.map b/src/third_party/devtools/node_modules/rxjs/internal/util/subscribeTo.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/subscribeTo.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/util/subscribeTo.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/subscribeToArray.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/util/subscribeToArray.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/subscribeToArray.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/util/subscribeToArray.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/subscribeToArray.js b/src/third_party/devtools/node_modules/rxjs/internal/util/subscribeToArray.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/subscribeToArray.js
rename to src/third_party/devtools/node_modules/rxjs/internal/util/subscribeToArray.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/subscribeToArray.js.map b/src/third_party/devtools/node_modules/rxjs/internal/util/subscribeToArray.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/subscribeToArray.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/util/subscribeToArray.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/subscribeToIterable.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/util/subscribeToIterable.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/subscribeToIterable.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/util/subscribeToIterable.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/subscribeToIterable.js b/src/third_party/devtools/node_modules/rxjs/internal/util/subscribeToIterable.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/subscribeToIterable.js
rename to src/third_party/devtools/node_modules/rxjs/internal/util/subscribeToIterable.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/subscribeToIterable.js.map b/src/third_party/devtools/node_modules/rxjs/internal/util/subscribeToIterable.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/subscribeToIterable.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/util/subscribeToIterable.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/subscribeToObservable.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/util/subscribeToObservable.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/subscribeToObservable.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/util/subscribeToObservable.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/subscribeToObservable.js b/src/third_party/devtools/node_modules/rxjs/internal/util/subscribeToObservable.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/subscribeToObservable.js
rename to src/third_party/devtools/node_modules/rxjs/internal/util/subscribeToObservable.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/subscribeToObservable.js.map b/src/third_party/devtools/node_modules/rxjs/internal/util/subscribeToObservable.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/subscribeToObservable.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/util/subscribeToObservable.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/subscribeToPromise.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/util/subscribeToPromise.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/subscribeToPromise.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/util/subscribeToPromise.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/subscribeToPromise.js b/src/third_party/devtools/node_modules/rxjs/internal/util/subscribeToPromise.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/subscribeToPromise.js
rename to src/third_party/devtools/node_modules/rxjs/internal/util/subscribeToPromise.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/subscribeToPromise.js.map b/src/third_party/devtools/node_modules/rxjs/internal/util/subscribeToPromise.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/subscribeToPromise.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/util/subscribeToPromise.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/subscribeToResult.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/util/subscribeToResult.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/subscribeToResult.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/util/subscribeToResult.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/subscribeToResult.js b/src/third_party/devtools/node_modules/rxjs/internal/util/subscribeToResult.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/subscribeToResult.js
rename to src/third_party/devtools/node_modules/rxjs/internal/util/subscribeToResult.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/subscribeToResult.js.map b/src/third_party/devtools/node_modules/rxjs/internal/util/subscribeToResult.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/subscribeToResult.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/util/subscribeToResult.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/toSubscriber.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/util/toSubscriber.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/toSubscriber.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/util/toSubscriber.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/toSubscriber.js b/src/third_party/devtools/node_modules/rxjs/internal/util/toSubscriber.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/toSubscriber.js
rename to src/third_party/devtools/node_modules/rxjs/internal/util/toSubscriber.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/toSubscriber.js.map b/src/third_party/devtools/node_modules/rxjs/internal/util/toSubscriber.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/toSubscriber.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/util/toSubscriber.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/tryCatch.d.ts b/src/third_party/devtools/node_modules/rxjs/internal/util/tryCatch.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/tryCatch.d.ts
rename to src/third_party/devtools/node_modules/rxjs/internal/util/tryCatch.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/tryCatch.js b/src/third_party/devtools/node_modules/rxjs/internal/util/tryCatch.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/tryCatch.js
rename to src/third_party/devtools/node_modules/rxjs/internal/util/tryCatch.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/tryCatch.js.map b/src/third_party/devtools/node_modules/rxjs/internal/util/tryCatch.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/internal/util/tryCatch.js.map
rename to src/third_party/devtools/node_modules/rxjs/internal/util/tryCatch.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/migrations/collection.json b/src/third_party/devtools/node_modules/rxjs/migrations/collection.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/migrations/collection.json
rename to src/third_party/devtools/node_modules/rxjs/migrations/collection.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/migrations/update-6_0_0/index.js b/src/third_party/devtools/node_modules/rxjs/migrations/update-6_0_0/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/migrations/update-6_0_0/index.js
rename to src/third_party/devtools/node_modules/rxjs/migrations/update-6_0_0/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/migrations/update-6_0_0/index.js.map b/src/third_party/devtools/node_modules/rxjs/migrations/update-6_0_0/index.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/migrations/update-6_0_0/index.js.map
rename to src/third_party/devtools/node_modules/rxjs/migrations/update-6_0_0/index.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/ArrayLikeObservable.d.ts b/src/third_party/devtools/node_modules/rxjs/observable/ArrayLikeObservable.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/ArrayLikeObservable.d.ts
rename to src/third_party/devtools/node_modules/rxjs/observable/ArrayLikeObservable.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/ArrayLikeObservable.js b/src/third_party/devtools/node_modules/rxjs/observable/ArrayLikeObservable.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/ArrayLikeObservable.js
rename to src/third_party/devtools/node_modules/rxjs/observable/ArrayLikeObservable.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/ArrayLikeObservable.js.map b/src/third_party/devtools/node_modules/rxjs/observable/ArrayLikeObservable.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/ArrayLikeObservable.js.map
rename to src/third_party/devtools/node_modules/rxjs/observable/ArrayLikeObservable.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/ArrayObservable.d.ts b/src/third_party/devtools/node_modules/rxjs/observable/ArrayObservable.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/ArrayObservable.d.ts
rename to src/third_party/devtools/node_modules/rxjs/observable/ArrayObservable.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/ArrayObservable.js b/src/third_party/devtools/node_modules/rxjs/observable/ArrayObservable.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/ArrayObservable.js
rename to src/third_party/devtools/node_modules/rxjs/observable/ArrayObservable.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/ArrayObservable.js.map b/src/third_party/devtools/node_modules/rxjs/observable/ArrayObservable.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/ArrayObservable.js.map
rename to src/third_party/devtools/node_modules/rxjs/observable/ArrayObservable.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/BoundCallbackObservable.d.ts b/src/third_party/devtools/node_modules/rxjs/observable/BoundCallbackObservable.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/BoundCallbackObservable.d.ts
rename to src/third_party/devtools/node_modules/rxjs/observable/BoundCallbackObservable.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/BoundCallbackObservable.js b/src/third_party/devtools/node_modules/rxjs/observable/BoundCallbackObservable.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/BoundCallbackObservable.js
rename to src/third_party/devtools/node_modules/rxjs/observable/BoundCallbackObservable.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/BoundCallbackObservable.js.map b/src/third_party/devtools/node_modules/rxjs/observable/BoundCallbackObservable.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/BoundCallbackObservable.js.map
rename to src/third_party/devtools/node_modules/rxjs/observable/BoundCallbackObservable.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/BoundNodeCallbackObservable.d.ts b/src/third_party/devtools/node_modules/rxjs/observable/BoundNodeCallbackObservable.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/BoundNodeCallbackObservable.d.ts
rename to src/third_party/devtools/node_modules/rxjs/observable/BoundNodeCallbackObservable.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/BoundNodeCallbackObservable.js b/src/third_party/devtools/node_modules/rxjs/observable/BoundNodeCallbackObservable.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/BoundNodeCallbackObservable.js
rename to src/third_party/devtools/node_modules/rxjs/observable/BoundNodeCallbackObservable.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/BoundNodeCallbackObservable.js.map b/src/third_party/devtools/node_modules/rxjs/observable/BoundNodeCallbackObservable.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/BoundNodeCallbackObservable.js.map
rename to src/third_party/devtools/node_modules/rxjs/observable/BoundNodeCallbackObservable.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/ConnectableObservable.d.ts b/src/third_party/devtools/node_modules/rxjs/observable/ConnectableObservable.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/ConnectableObservable.d.ts
rename to src/third_party/devtools/node_modules/rxjs/observable/ConnectableObservable.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/ConnectableObservable.js b/src/third_party/devtools/node_modules/rxjs/observable/ConnectableObservable.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/ConnectableObservable.js
rename to src/third_party/devtools/node_modules/rxjs/observable/ConnectableObservable.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/ConnectableObservable.js.map b/src/third_party/devtools/node_modules/rxjs/observable/ConnectableObservable.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/ConnectableObservable.js.map
rename to src/third_party/devtools/node_modules/rxjs/observable/ConnectableObservable.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/DeferObservable.d.ts b/src/third_party/devtools/node_modules/rxjs/observable/DeferObservable.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/DeferObservable.d.ts
rename to src/third_party/devtools/node_modules/rxjs/observable/DeferObservable.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/DeferObservable.js b/src/third_party/devtools/node_modules/rxjs/observable/DeferObservable.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/DeferObservable.js
rename to src/third_party/devtools/node_modules/rxjs/observable/DeferObservable.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/DeferObservable.js.map b/src/third_party/devtools/node_modules/rxjs/observable/DeferObservable.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/DeferObservable.js.map
rename to src/third_party/devtools/node_modules/rxjs/observable/DeferObservable.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/EmptyObservable.d.ts b/src/third_party/devtools/node_modules/rxjs/observable/EmptyObservable.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/EmptyObservable.d.ts
rename to src/third_party/devtools/node_modules/rxjs/observable/EmptyObservable.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/EmptyObservable.js b/src/third_party/devtools/node_modules/rxjs/observable/EmptyObservable.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/EmptyObservable.js
rename to src/third_party/devtools/node_modules/rxjs/observable/EmptyObservable.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/EmptyObservable.js.map b/src/third_party/devtools/node_modules/rxjs/observable/EmptyObservable.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/EmptyObservable.js.map
rename to src/third_party/devtools/node_modules/rxjs/observable/EmptyObservable.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/ErrorObservable.d.ts b/src/third_party/devtools/node_modules/rxjs/observable/ErrorObservable.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/ErrorObservable.d.ts
rename to src/third_party/devtools/node_modules/rxjs/observable/ErrorObservable.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/ErrorObservable.js b/src/third_party/devtools/node_modules/rxjs/observable/ErrorObservable.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/ErrorObservable.js
rename to src/third_party/devtools/node_modules/rxjs/observable/ErrorObservable.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/ErrorObservable.js.map b/src/third_party/devtools/node_modules/rxjs/observable/ErrorObservable.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/ErrorObservable.js.map
rename to src/third_party/devtools/node_modules/rxjs/observable/ErrorObservable.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/ForkJoinObservable.d.ts b/src/third_party/devtools/node_modules/rxjs/observable/ForkJoinObservable.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/ForkJoinObservable.d.ts
rename to src/third_party/devtools/node_modules/rxjs/observable/ForkJoinObservable.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/ForkJoinObservable.js b/src/third_party/devtools/node_modules/rxjs/observable/ForkJoinObservable.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/ForkJoinObservable.js
rename to src/third_party/devtools/node_modules/rxjs/observable/ForkJoinObservable.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/ForkJoinObservable.js.map b/src/third_party/devtools/node_modules/rxjs/observable/ForkJoinObservable.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/ForkJoinObservable.js.map
rename to src/third_party/devtools/node_modules/rxjs/observable/ForkJoinObservable.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/FromEventObservable.d.ts b/src/third_party/devtools/node_modules/rxjs/observable/FromEventObservable.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/FromEventObservable.d.ts
rename to src/third_party/devtools/node_modules/rxjs/observable/FromEventObservable.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/FromEventObservable.js b/src/third_party/devtools/node_modules/rxjs/observable/FromEventObservable.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/FromEventObservable.js
rename to src/third_party/devtools/node_modules/rxjs/observable/FromEventObservable.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/FromEventObservable.js.map b/src/third_party/devtools/node_modules/rxjs/observable/FromEventObservable.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/FromEventObservable.js.map
rename to src/third_party/devtools/node_modules/rxjs/observable/FromEventObservable.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/FromEventPatternObservable.d.ts b/src/third_party/devtools/node_modules/rxjs/observable/FromEventPatternObservable.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/FromEventPatternObservable.d.ts
rename to src/third_party/devtools/node_modules/rxjs/observable/FromEventPatternObservable.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/FromEventPatternObservable.js b/src/third_party/devtools/node_modules/rxjs/observable/FromEventPatternObservable.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/FromEventPatternObservable.js
rename to src/third_party/devtools/node_modules/rxjs/observable/FromEventPatternObservable.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/FromEventPatternObservable.js.map b/src/third_party/devtools/node_modules/rxjs/observable/FromEventPatternObservable.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/FromEventPatternObservable.js.map
rename to src/third_party/devtools/node_modules/rxjs/observable/FromEventPatternObservable.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/FromObservable.d.ts b/src/third_party/devtools/node_modules/rxjs/observable/FromObservable.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/FromObservable.d.ts
rename to src/third_party/devtools/node_modules/rxjs/observable/FromObservable.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/FromObservable.js b/src/third_party/devtools/node_modules/rxjs/observable/FromObservable.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/FromObservable.js
rename to src/third_party/devtools/node_modules/rxjs/observable/FromObservable.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/FromObservable.js.map b/src/third_party/devtools/node_modules/rxjs/observable/FromObservable.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/FromObservable.js.map
rename to src/third_party/devtools/node_modules/rxjs/observable/FromObservable.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/GenerateObservable.d.ts b/src/third_party/devtools/node_modules/rxjs/observable/GenerateObservable.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/GenerateObservable.d.ts
rename to src/third_party/devtools/node_modules/rxjs/observable/GenerateObservable.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/GenerateObservable.js b/src/third_party/devtools/node_modules/rxjs/observable/GenerateObservable.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/GenerateObservable.js
rename to src/third_party/devtools/node_modules/rxjs/observable/GenerateObservable.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/GenerateObservable.js.map b/src/third_party/devtools/node_modules/rxjs/observable/GenerateObservable.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/GenerateObservable.js.map
rename to src/third_party/devtools/node_modules/rxjs/observable/GenerateObservable.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/IfObservable.d.ts b/src/third_party/devtools/node_modules/rxjs/observable/IfObservable.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/IfObservable.d.ts
rename to src/third_party/devtools/node_modules/rxjs/observable/IfObservable.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/IfObservable.js b/src/third_party/devtools/node_modules/rxjs/observable/IfObservable.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/IfObservable.js
rename to src/third_party/devtools/node_modules/rxjs/observable/IfObservable.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/IfObservable.js.map b/src/third_party/devtools/node_modules/rxjs/observable/IfObservable.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/IfObservable.js.map
rename to src/third_party/devtools/node_modules/rxjs/observable/IfObservable.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/IntervalObservable.d.ts b/src/third_party/devtools/node_modules/rxjs/observable/IntervalObservable.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/IntervalObservable.d.ts
rename to src/third_party/devtools/node_modules/rxjs/observable/IntervalObservable.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/IntervalObservable.js b/src/third_party/devtools/node_modules/rxjs/observable/IntervalObservable.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/IntervalObservable.js
rename to src/third_party/devtools/node_modules/rxjs/observable/IntervalObservable.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/IntervalObservable.js.map b/src/third_party/devtools/node_modules/rxjs/observable/IntervalObservable.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/IntervalObservable.js.map
rename to src/third_party/devtools/node_modules/rxjs/observable/IntervalObservable.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/IteratorObservable.d.ts b/src/third_party/devtools/node_modules/rxjs/observable/IteratorObservable.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/IteratorObservable.d.ts
rename to src/third_party/devtools/node_modules/rxjs/observable/IteratorObservable.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/IteratorObservable.js b/src/third_party/devtools/node_modules/rxjs/observable/IteratorObservable.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/IteratorObservable.js
rename to src/third_party/devtools/node_modules/rxjs/observable/IteratorObservable.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/IteratorObservable.js.map b/src/third_party/devtools/node_modules/rxjs/observable/IteratorObservable.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/IteratorObservable.js.map
rename to src/third_party/devtools/node_modules/rxjs/observable/IteratorObservable.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/NeverObservable.d.ts b/src/third_party/devtools/node_modules/rxjs/observable/NeverObservable.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/NeverObservable.d.ts
rename to src/third_party/devtools/node_modules/rxjs/observable/NeverObservable.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/NeverObservable.js b/src/third_party/devtools/node_modules/rxjs/observable/NeverObservable.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/NeverObservable.js
rename to src/third_party/devtools/node_modules/rxjs/observable/NeverObservable.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/NeverObservable.js.map b/src/third_party/devtools/node_modules/rxjs/observable/NeverObservable.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/NeverObservable.js.map
rename to src/third_party/devtools/node_modules/rxjs/observable/NeverObservable.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/PairsObservable.d.ts b/src/third_party/devtools/node_modules/rxjs/observable/PairsObservable.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/PairsObservable.d.ts
rename to src/third_party/devtools/node_modules/rxjs/observable/PairsObservable.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/PairsObservable.js b/src/third_party/devtools/node_modules/rxjs/observable/PairsObservable.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/PairsObservable.js
rename to src/third_party/devtools/node_modules/rxjs/observable/PairsObservable.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/PairsObservable.js.map b/src/third_party/devtools/node_modules/rxjs/observable/PairsObservable.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/PairsObservable.js.map
rename to src/third_party/devtools/node_modules/rxjs/observable/PairsObservable.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/PromiseObservable.d.ts b/src/third_party/devtools/node_modules/rxjs/observable/PromiseObservable.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/PromiseObservable.d.ts
rename to src/third_party/devtools/node_modules/rxjs/observable/PromiseObservable.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/PromiseObservable.js b/src/third_party/devtools/node_modules/rxjs/observable/PromiseObservable.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/PromiseObservable.js
rename to src/third_party/devtools/node_modules/rxjs/observable/PromiseObservable.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/PromiseObservable.js.map b/src/third_party/devtools/node_modules/rxjs/observable/PromiseObservable.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/PromiseObservable.js.map
rename to src/third_party/devtools/node_modules/rxjs/observable/PromiseObservable.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/RangeObservable.d.ts b/src/third_party/devtools/node_modules/rxjs/observable/RangeObservable.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/RangeObservable.d.ts
rename to src/third_party/devtools/node_modules/rxjs/observable/RangeObservable.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/RangeObservable.js b/src/third_party/devtools/node_modules/rxjs/observable/RangeObservable.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/RangeObservable.js
rename to src/third_party/devtools/node_modules/rxjs/observable/RangeObservable.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/RangeObservable.js.map b/src/third_party/devtools/node_modules/rxjs/observable/RangeObservable.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/RangeObservable.js.map
rename to src/third_party/devtools/node_modules/rxjs/observable/RangeObservable.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/ScalarObservable.d.ts b/src/third_party/devtools/node_modules/rxjs/observable/ScalarObservable.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/ScalarObservable.d.ts
rename to src/third_party/devtools/node_modules/rxjs/observable/ScalarObservable.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/ScalarObservable.js b/src/third_party/devtools/node_modules/rxjs/observable/ScalarObservable.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/ScalarObservable.js
rename to src/third_party/devtools/node_modules/rxjs/observable/ScalarObservable.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/ScalarObservable.js.map b/src/third_party/devtools/node_modules/rxjs/observable/ScalarObservable.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/ScalarObservable.js.map
rename to src/third_party/devtools/node_modules/rxjs/observable/ScalarObservable.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/SubscribeOnObservable.d.ts b/src/third_party/devtools/node_modules/rxjs/observable/SubscribeOnObservable.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/SubscribeOnObservable.d.ts
rename to src/third_party/devtools/node_modules/rxjs/observable/SubscribeOnObservable.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/SubscribeOnObservable.js b/src/third_party/devtools/node_modules/rxjs/observable/SubscribeOnObservable.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/SubscribeOnObservable.js
rename to src/third_party/devtools/node_modules/rxjs/observable/SubscribeOnObservable.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/SubscribeOnObservable.js.map b/src/third_party/devtools/node_modules/rxjs/observable/SubscribeOnObservable.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/SubscribeOnObservable.js.map
rename to src/third_party/devtools/node_modules/rxjs/observable/SubscribeOnObservable.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/TimerObservable.d.ts b/src/third_party/devtools/node_modules/rxjs/observable/TimerObservable.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/TimerObservable.d.ts
rename to src/third_party/devtools/node_modules/rxjs/observable/TimerObservable.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/TimerObservable.js b/src/third_party/devtools/node_modules/rxjs/observable/TimerObservable.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/TimerObservable.js
rename to src/third_party/devtools/node_modules/rxjs/observable/TimerObservable.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/TimerObservable.js.map b/src/third_party/devtools/node_modules/rxjs/observable/TimerObservable.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/TimerObservable.js.map
rename to src/third_party/devtools/node_modules/rxjs/observable/TimerObservable.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/UsingObservable.d.ts b/src/third_party/devtools/node_modules/rxjs/observable/UsingObservable.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/UsingObservable.d.ts
rename to src/third_party/devtools/node_modules/rxjs/observable/UsingObservable.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/UsingObservable.js b/src/third_party/devtools/node_modules/rxjs/observable/UsingObservable.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/UsingObservable.js
rename to src/third_party/devtools/node_modules/rxjs/observable/UsingObservable.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/UsingObservable.js.map b/src/third_party/devtools/node_modules/rxjs/observable/UsingObservable.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/UsingObservable.js.map
rename to src/third_party/devtools/node_modules/rxjs/observable/UsingObservable.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/bindCallback.d.ts b/src/third_party/devtools/node_modules/rxjs/observable/bindCallback.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/bindCallback.d.ts
rename to src/third_party/devtools/node_modules/rxjs/observable/bindCallback.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/bindCallback.js b/src/third_party/devtools/node_modules/rxjs/observable/bindCallback.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/bindCallback.js
rename to src/third_party/devtools/node_modules/rxjs/observable/bindCallback.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/bindCallback.js.map b/src/third_party/devtools/node_modules/rxjs/observable/bindCallback.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/bindCallback.js.map
rename to src/third_party/devtools/node_modules/rxjs/observable/bindCallback.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/bindNodeCallback.d.ts b/src/third_party/devtools/node_modules/rxjs/observable/bindNodeCallback.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/bindNodeCallback.d.ts
rename to src/third_party/devtools/node_modules/rxjs/observable/bindNodeCallback.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/bindNodeCallback.js b/src/third_party/devtools/node_modules/rxjs/observable/bindNodeCallback.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/bindNodeCallback.js
rename to src/third_party/devtools/node_modules/rxjs/observable/bindNodeCallback.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/bindNodeCallback.js.map b/src/third_party/devtools/node_modules/rxjs/observable/bindNodeCallback.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/bindNodeCallback.js.map
rename to src/third_party/devtools/node_modules/rxjs/observable/bindNodeCallback.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/combineLatest.d.ts b/src/third_party/devtools/node_modules/rxjs/observable/combineLatest.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/combineLatest.d.ts
rename to src/third_party/devtools/node_modules/rxjs/observable/combineLatest.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/combineLatest.js b/src/third_party/devtools/node_modules/rxjs/observable/combineLatest.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/combineLatest.js
rename to src/third_party/devtools/node_modules/rxjs/observable/combineLatest.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/combineLatest.js.map b/src/third_party/devtools/node_modules/rxjs/observable/combineLatest.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/combineLatest.js.map
rename to src/third_party/devtools/node_modules/rxjs/observable/combineLatest.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/concat.d.ts b/src/third_party/devtools/node_modules/rxjs/observable/concat.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/concat.d.ts
rename to src/third_party/devtools/node_modules/rxjs/observable/concat.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/concat.js b/src/third_party/devtools/node_modules/rxjs/observable/concat.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/concat.js
rename to src/third_party/devtools/node_modules/rxjs/observable/concat.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/concat.js.map b/src/third_party/devtools/node_modules/rxjs/observable/concat.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/concat.js.map
rename to src/third_party/devtools/node_modules/rxjs/observable/concat.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/defer.d.ts b/src/third_party/devtools/node_modules/rxjs/observable/defer.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/defer.d.ts
rename to src/third_party/devtools/node_modules/rxjs/observable/defer.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/defer.js b/src/third_party/devtools/node_modules/rxjs/observable/defer.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/defer.js
rename to src/third_party/devtools/node_modules/rxjs/observable/defer.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/defer.js.map b/src/third_party/devtools/node_modules/rxjs/observable/defer.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/defer.js.map
rename to src/third_party/devtools/node_modules/rxjs/observable/defer.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/dom/AjaxObservable.d.ts b/src/third_party/devtools/node_modules/rxjs/observable/dom/AjaxObservable.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/dom/AjaxObservable.d.ts
rename to src/third_party/devtools/node_modules/rxjs/observable/dom/AjaxObservable.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/dom/AjaxObservable.js b/src/third_party/devtools/node_modules/rxjs/observable/dom/AjaxObservable.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/dom/AjaxObservable.js
rename to src/third_party/devtools/node_modules/rxjs/observable/dom/AjaxObservable.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/dom/AjaxObservable.js.map b/src/third_party/devtools/node_modules/rxjs/observable/dom/AjaxObservable.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/dom/AjaxObservable.js.map
rename to src/third_party/devtools/node_modules/rxjs/observable/dom/AjaxObservable.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/dom/WebSocketSubject.d.ts b/src/third_party/devtools/node_modules/rxjs/observable/dom/WebSocketSubject.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/dom/WebSocketSubject.d.ts
rename to src/third_party/devtools/node_modules/rxjs/observable/dom/WebSocketSubject.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/dom/WebSocketSubject.js b/src/third_party/devtools/node_modules/rxjs/observable/dom/WebSocketSubject.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/dom/WebSocketSubject.js
rename to src/third_party/devtools/node_modules/rxjs/observable/dom/WebSocketSubject.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/dom/WebSocketSubject.js.map b/src/third_party/devtools/node_modules/rxjs/observable/dom/WebSocketSubject.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/dom/WebSocketSubject.js.map
rename to src/third_party/devtools/node_modules/rxjs/observable/dom/WebSocketSubject.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/dom/ajax.d.ts b/src/third_party/devtools/node_modules/rxjs/observable/dom/ajax.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/dom/ajax.d.ts
rename to src/third_party/devtools/node_modules/rxjs/observable/dom/ajax.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/dom/ajax.js b/src/third_party/devtools/node_modules/rxjs/observable/dom/ajax.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/dom/ajax.js
rename to src/third_party/devtools/node_modules/rxjs/observable/dom/ajax.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/dom/ajax.js.map b/src/third_party/devtools/node_modules/rxjs/observable/dom/ajax.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/dom/ajax.js.map
rename to src/third_party/devtools/node_modules/rxjs/observable/dom/ajax.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/dom/webSocket.d.ts b/src/third_party/devtools/node_modules/rxjs/observable/dom/webSocket.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/dom/webSocket.d.ts
rename to src/third_party/devtools/node_modules/rxjs/observable/dom/webSocket.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/dom/webSocket.js b/src/third_party/devtools/node_modules/rxjs/observable/dom/webSocket.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/dom/webSocket.js
rename to src/third_party/devtools/node_modules/rxjs/observable/dom/webSocket.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/dom/webSocket.js.map b/src/third_party/devtools/node_modules/rxjs/observable/dom/webSocket.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/dom/webSocket.js.map
rename to src/third_party/devtools/node_modules/rxjs/observable/dom/webSocket.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/empty.d.ts b/src/third_party/devtools/node_modules/rxjs/observable/empty.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/empty.d.ts
rename to src/third_party/devtools/node_modules/rxjs/observable/empty.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/empty.js b/src/third_party/devtools/node_modules/rxjs/observable/empty.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/empty.js
rename to src/third_party/devtools/node_modules/rxjs/observable/empty.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/empty.js.map b/src/third_party/devtools/node_modules/rxjs/observable/empty.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/empty.js.map
rename to src/third_party/devtools/node_modules/rxjs/observable/empty.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/forkJoin.d.ts b/src/third_party/devtools/node_modules/rxjs/observable/forkJoin.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/forkJoin.d.ts
rename to src/third_party/devtools/node_modules/rxjs/observable/forkJoin.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/forkJoin.js b/src/third_party/devtools/node_modules/rxjs/observable/forkJoin.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/forkJoin.js
rename to src/third_party/devtools/node_modules/rxjs/observable/forkJoin.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/forkJoin.js.map b/src/third_party/devtools/node_modules/rxjs/observable/forkJoin.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/forkJoin.js.map
rename to src/third_party/devtools/node_modules/rxjs/observable/forkJoin.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/from.d.ts b/src/third_party/devtools/node_modules/rxjs/observable/from.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/from.d.ts
rename to src/third_party/devtools/node_modules/rxjs/observable/from.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/from.js b/src/third_party/devtools/node_modules/rxjs/observable/from.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/from.js
rename to src/third_party/devtools/node_modules/rxjs/observable/from.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/from.js.map b/src/third_party/devtools/node_modules/rxjs/observable/from.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/from.js.map
rename to src/third_party/devtools/node_modules/rxjs/observable/from.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/fromArray.d.ts b/src/third_party/devtools/node_modules/rxjs/observable/fromArray.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/fromArray.d.ts
rename to src/third_party/devtools/node_modules/rxjs/observable/fromArray.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/fromArray.js b/src/third_party/devtools/node_modules/rxjs/observable/fromArray.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/fromArray.js
rename to src/third_party/devtools/node_modules/rxjs/observable/fromArray.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/fromArray.js.map b/src/third_party/devtools/node_modules/rxjs/observable/fromArray.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/fromArray.js.map
rename to src/third_party/devtools/node_modules/rxjs/observable/fromArray.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/fromEvent.d.ts b/src/third_party/devtools/node_modules/rxjs/observable/fromEvent.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/fromEvent.d.ts
rename to src/third_party/devtools/node_modules/rxjs/observable/fromEvent.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/fromEvent.js b/src/third_party/devtools/node_modules/rxjs/observable/fromEvent.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/fromEvent.js
rename to src/third_party/devtools/node_modules/rxjs/observable/fromEvent.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/fromEvent.js.map b/src/third_party/devtools/node_modules/rxjs/observable/fromEvent.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/fromEvent.js.map
rename to src/third_party/devtools/node_modules/rxjs/observable/fromEvent.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/fromEventPattern.d.ts b/src/third_party/devtools/node_modules/rxjs/observable/fromEventPattern.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/fromEventPattern.d.ts
rename to src/third_party/devtools/node_modules/rxjs/observable/fromEventPattern.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/fromEventPattern.js b/src/third_party/devtools/node_modules/rxjs/observable/fromEventPattern.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/fromEventPattern.js
rename to src/third_party/devtools/node_modules/rxjs/observable/fromEventPattern.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/fromEventPattern.js.map b/src/third_party/devtools/node_modules/rxjs/observable/fromEventPattern.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/fromEventPattern.js.map
rename to src/third_party/devtools/node_modules/rxjs/observable/fromEventPattern.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/fromIterable.d.ts b/src/third_party/devtools/node_modules/rxjs/observable/fromIterable.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/fromIterable.d.ts
rename to src/third_party/devtools/node_modules/rxjs/observable/fromIterable.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/fromIterable.js b/src/third_party/devtools/node_modules/rxjs/observable/fromIterable.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/fromIterable.js
rename to src/third_party/devtools/node_modules/rxjs/observable/fromIterable.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/fromIterable.js.map b/src/third_party/devtools/node_modules/rxjs/observable/fromIterable.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/fromIterable.js.map
rename to src/third_party/devtools/node_modules/rxjs/observable/fromIterable.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/fromPromise.d.ts b/src/third_party/devtools/node_modules/rxjs/observable/fromPromise.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/fromPromise.d.ts
rename to src/third_party/devtools/node_modules/rxjs/observable/fromPromise.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/fromPromise.js b/src/third_party/devtools/node_modules/rxjs/observable/fromPromise.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/fromPromise.js
rename to src/third_party/devtools/node_modules/rxjs/observable/fromPromise.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/fromPromise.js.map b/src/third_party/devtools/node_modules/rxjs/observable/fromPromise.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/fromPromise.js.map
rename to src/third_party/devtools/node_modules/rxjs/observable/fromPromise.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/generate.d.ts b/src/third_party/devtools/node_modules/rxjs/observable/generate.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/generate.d.ts
rename to src/third_party/devtools/node_modules/rxjs/observable/generate.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/generate.js b/src/third_party/devtools/node_modules/rxjs/observable/generate.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/generate.js
rename to src/third_party/devtools/node_modules/rxjs/observable/generate.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/generate.js.map b/src/third_party/devtools/node_modules/rxjs/observable/generate.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/generate.js.map
rename to src/third_party/devtools/node_modules/rxjs/observable/generate.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/if.d.ts b/src/third_party/devtools/node_modules/rxjs/observable/if.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/if.d.ts
rename to src/third_party/devtools/node_modules/rxjs/observable/if.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/if.js b/src/third_party/devtools/node_modules/rxjs/observable/if.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/if.js
rename to src/third_party/devtools/node_modules/rxjs/observable/if.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/if.js.map b/src/third_party/devtools/node_modules/rxjs/observable/if.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/if.js.map
rename to src/third_party/devtools/node_modules/rxjs/observable/if.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/interval.d.ts b/src/third_party/devtools/node_modules/rxjs/observable/interval.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/interval.d.ts
rename to src/third_party/devtools/node_modules/rxjs/observable/interval.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/interval.js b/src/third_party/devtools/node_modules/rxjs/observable/interval.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/interval.js
rename to src/third_party/devtools/node_modules/rxjs/observable/interval.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/interval.js.map b/src/third_party/devtools/node_modules/rxjs/observable/interval.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/interval.js.map
rename to src/third_party/devtools/node_modules/rxjs/observable/interval.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/merge.d.ts b/src/third_party/devtools/node_modules/rxjs/observable/merge.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/merge.d.ts
rename to src/third_party/devtools/node_modules/rxjs/observable/merge.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/merge.js b/src/third_party/devtools/node_modules/rxjs/observable/merge.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/merge.js
rename to src/third_party/devtools/node_modules/rxjs/observable/merge.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/merge.js.map b/src/third_party/devtools/node_modules/rxjs/observable/merge.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/merge.js.map
rename to src/third_party/devtools/node_modules/rxjs/observable/merge.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/never.d.ts b/src/third_party/devtools/node_modules/rxjs/observable/never.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/never.d.ts
rename to src/third_party/devtools/node_modules/rxjs/observable/never.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/never.js b/src/third_party/devtools/node_modules/rxjs/observable/never.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/never.js
rename to src/third_party/devtools/node_modules/rxjs/observable/never.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/never.js.map b/src/third_party/devtools/node_modules/rxjs/observable/never.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/never.js.map
rename to src/third_party/devtools/node_modules/rxjs/observable/never.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/of.d.ts b/src/third_party/devtools/node_modules/rxjs/observable/of.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/of.d.ts
rename to src/third_party/devtools/node_modules/rxjs/observable/of.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/of.js b/src/third_party/devtools/node_modules/rxjs/observable/of.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/of.js
rename to src/third_party/devtools/node_modules/rxjs/observable/of.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/of.js.map b/src/third_party/devtools/node_modules/rxjs/observable/of.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/of.js.map
rename to src/third_party/devtools/node_modules/rxjs/observable/of.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/onErrorResumeNext.d.ts b/src/third_party/devtools/node_modules/rxjs/observable/onErrorResumeNext.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/onErrorResumeNext.d.ts
rename to src/third_party/devtools/node_modules/rxjs/observable/onErrorResumeNext.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/onErrorResumeNext.js b/src/third_party/devtools/node_modules/rxjs/observable/onErrorResumeNext.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/onErrorResumeNext.js
rename to src/third_party/devtools/node_modules/rxjs/observable/onErrorResumeNext.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/onErrorResumeNext.js.map b/src/third_party/devtools/node_modules/rxjs/observable/onErrorResumeNext.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/onErrorResumeNext.js.map
rename to src/third_party/devtools/node_modules/rxjs/observable/onErrorResumeNext.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/pairs.d.ts b/src/third_party/devtools/node_modules/rxjs/observable/pairs.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/pairs.d.ts
rename to src/third_party/devtools/node_modules/rxjs/observable/pairs.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/pairs.js b/src/third_party/devtools/node_modules/rxjs/observable/pairs.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/pairs.js
rename to src/third_party/devtools/node_modules/rxjs/observable/pairs.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/pairs.js.map b/src/third_party/devtools/node_modules/rxjs/observable/pairs.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/pairs.js.map
rename to src/third_party/devtools/node_modules/rxjs/observable/pairs.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/race.d.ts b/src/third_party/devtools/node_modules/rxjs/observable/race.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/race.d.ts
rename to src/third_party/devtools/node_modules/rxjs/observable/race.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/race.js b/src/third_party/devtools/node_modules/rxjs/observable/race.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/race.js
rename to src/third_party/devtools/node_modules/rxjs/observable/race.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/race.js.map b/src/third_party/devtools/node_modules/rxjs/observable/race.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/race.js.map
rename to src/third_party/devtools/node_modules/rxjs/observable/race.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/range.d.ts b/src/third_party/devtools/node_modules/rxjs/observable/range.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/range.d.ts
rename to src/third_party/devtools/node_modules/rxjs/observable/range.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/range.js b/src/third_party/devtools/node_modules/rxjs/observable/range.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/range.js
rename to src/third_party/devtools/node_modules/rxjs/observable/range.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/range.js.map b/src/third_party/devtools/node_modules/rxjs/observable/range.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/range.js.map
rename to src/third_party/devtools/node_modules/rxjs/observable/range.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/throw.d.ts b/src/third_party/devtools/node_modules/rxjs/observable/throw.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/throw.d.ts
rename to src/third_party/devtools/node_modules/rxjs/observable/throw.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/throw.js b/src/third_party/devtools/node_modules/rxjs/observable/throw.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/throw.js
rename to src/third_party/devtools/node_modules/rxjs/observable/throw.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/throw.js.map b/src/third_party/devtools/node_modules/rxjs/observable/throw.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/throw.js.map
rename to src/third_party/devtools/node_modules/rxjs/observable/throw.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/timer.d.ts b/src/third_party/devtools/node_modules/rxjs/observable/timer.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/timer.d.ts
rename to src/third_party/devtools/node_modules/rxjs/observable/timer.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/timer.js b/src/third_party/devtools/node_modules/rxjs/observable/timer.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/timer.js
rename to src/third_party/devtools/node_modules/rxjs/observable/timer.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/timer.js.map b/src/third_party/devtools/node_modules/rxjs/observable/timer.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/timer.js.map
rename to src/third_party/devtools/node_modules/rxjs/observable/timer.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/using.d.ts b/src/third_party/devtools/node_modules/rxjs/observable/using.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/using.d.ts
rename to src/third_party/devtools/node_modules/rxjs/observable/using.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/using.js b/src/third_party/devtools/node_modules/rxjs/observable/using.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/using.js
rename to src/third_party/devtools/node_modules/rxjs/observable/using.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/using.js.map b/src/third_party/devtools/node_modules/rxjs/observable/using.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/using.js.map
rename to src/third_party/devtools/node_modules/rxjs/observable/using.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/zip.d.ts b/src/third_party/devtools/node_modules/rxjs/observable/zip.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/zip.d.ts
rename to src/third_party/devtools/node_modules/rxjs/observable/zip.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/zip.js b/src/third_party/devtools/node_modules/rxjs/observable/zip.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/zip.js
rename to src/third_party/devtools/node_modules/rxjs/observable/zip.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/zip.js.map b/src/third_party/devtools/node_modules/rxjs/observable/zip.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/observable/zip.js.map
rename to src/third_party/devtools/node_modules/rxjs/observable/zip.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/audit.d.ts b/src/third_party/devtools/node_modules/rxjs/operator/audit.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/audit.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operator/audit.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/audit.js b/src/third_party/devtools/node_modules/rxjs/operator/audit.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/audit.js
rename to src/third_party/devtools/node_modules/rxjs/operator/audit.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/audit.js.map b/src/third_party/devtools/node_modules/rxjs/operator/audit.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/audit.js.map
rename to src/third_party/devtools/node_modules/rxjs/operator/audit.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/auditTime.d.ts b/src/third_party/devtools/node_modules/rxjs/operator/auditTime.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/auditTime.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operator/auditTime.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/auditTime.js b/src/third_party/devtools/node_modules/rxjs/operator/auditTime.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/auditTime.js
rename to src/third_party/devtools/node_modules/rxjs/operator/auditTime.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/auditTime.js.map b/src/third_party/devtools/node_modules/rxjs/operator/auditTime.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/auditTime.js.map
rename to src/third_party/devtools/node_modules/rxjs/operator/auditTime.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/buffer.d.ts b/src/third_party/devtools/node_modules/rxjs/operator/buffer.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/buffer.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operator/buffer.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/buffer.js b/src/third_party/devtools/node_modules/rxjs/operator/buffer.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/buffer.js
rename to src/third_party/devtools/node_modules/rxjs/operator/buffer.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/buffer.js.map b/src/third_party/devtools/node_modules/rxjs/operator/buffer.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/buffer.js.map
rename to src/third_party/devtools/node_modules/rxjs/operator/buffer.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/bufferCount.d.ts b/src/third_party/devtools/node_modules/rxjs/operator/bufferCount.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/bufferCount.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operator/bufferCount.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/bufferCount.js b/src/third_party/devtools/node_modules/rxjs/operator/bufferCount.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/bufferCount.js
rename to src/third_party/devtools/node_modules/rxjs/operator/bufferCount.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/bufferCount.js.map b/src/third_party/devtools/node_modules/rxjs/operator/bufferCount.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/bufferCount.js.map
rename to src/third_party/devtools/node_modules/rxjs/operator/bufferCount.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/bufferTime.d.ts b/src/third_party/devtools/node_modules/rxjs/operator/bufferTime.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/bufferTime.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operator/bufferTime.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/bufferTime.js b/src/third_party/devtools/node_modules/rxjs/operator/bufferTime.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/bufferTime.js
rename to src/third_party/devtools/node_modules/rxjs/operator/bufferTime.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/bufferTime.js.map b/src/third_party/devtools/node_modules/rxjs/operator/bufferTime.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/bufferTime.js.map
rename to src/third_party/devtools/node_modules/rxjs/operator/bufferTime.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/bufferToggle.d.ts b/src/third_party/devtools/node_modules/rxjs/operator/bufferToggle.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/bufferToggle.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operator/bufferToggle.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/bufferToggle.js b/src/third_party/devtools/node_modules/rxjs/operator/bufferToggle.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/bufferToggle.js
rename to src/third_party/devtools/node_modules/rxjs/operator/bufferToggle.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/bufferToggle.js.map b/src/third_party/devtools/node_modules/rxjs/operator/bufferToggle.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/bufferToggle.js.map
rename to src/third_party/devtools/node_modules/rxjs/operator/bufferToggle.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/bufferWhen.d.ts b/src/third_party/devtools/node_modules/rxjs/operator/bufferWhen.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/bufferWhen.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operator/bufferWhen.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/bufferWhen.js b/src/third_party/devtools/node_modules/rxjs/operator/bufferWhen.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/bufferWhen.js
rename to src/third_party/devtools/node_modules/rxjs/operator/bufferWhen.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/bufferWhen.js.map b/src/third_party/devtools/node_modules/rxjs/operator/bufferWhen.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/bufferWhen.js.map
rename to src/third_party/devtools/node_modules/rxjs/operator/bufferWhen.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/catch.d.ts b/src/third_party/devtools/node_modules/rxjs/operator/catch.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/catch.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operator/catch.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/catch.js b/src/third_party/devtools/node_modules/rxjs/operator/catch.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/catch.js
rename to src/third_party/devtools/node_modules/rxjs/operator/catch.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/catch.js.map b/src/third_party/devtools/node_modules/rxjs/operator/catch.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/catch.js.map
rename to src/third_party/devtools/node_modules/rxjs/operator/catch.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/combineAll.d.ts b/src/third_party/devtools/node_modules/rxjs/operator/combineAll.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/combineAll.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operator/combineAll.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/combineAll.js b/src/third_party/devtools/node_modules/rxjs/operator/combineAll.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/combineAll.js
rename to src/third_party/devtools/node_modules/rxjs/operator/combineAll.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/combineAll.js.map b/src/third_party/devtools/node_modules/rxjs/operator/combineAll.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/combineAll.js.map
rename to src/third_party/devtools/node_modules/rxjs/operator/combineAll.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/combineLatest.d.ts b/src/third_party/devtools/node_modules/rxjs/operator/combineLatest.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/combineLatest.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operator/combineLatest.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/combineLatest.js b/src/third_party/devtools/node_modules/rxjs/operator/combineLatest.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/combineLatest.js
rename to src/third_party/devtools/node_modules/rxjs/operator/combineLatest.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/combineLatest.js.map b/src/third_party/devtools/node_modules/rxjs/operator/combineLatest.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/combineLatest.js.map
rename to src/third_party/devtools/node_modules/rxjs/operator/combineLatest.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/concat.d.ts b/src/third_party/devtools/node_modules/rxjs/operator/concat.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/concat.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operator/concat.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/concat.js b/src/third_party/devtools/node_modules/rxjs/operator/concat.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/concat.js
rename to src/third_party/devtools/node_modules/rxjs/operator/concat.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/concat.js.map b/src/third_party/devtools/node_modules/rxjs/operator/concat.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/concat.js.map
rename to src/third_party/devtools/node_modules/rxjs/operator/concat.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/concatAll.d.ts b/src/third_party/devtools/node_modules/rxjs/operator/concatAll.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/concatAll.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operator/concatAll.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/concatAll.js b/src/third_party/devtools/node_modules/rxjs/operator/concatAll.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/concatAll.js
rename to src/third_party/devtools/node_modules/rxjs/operator/concatAll.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/concatAll.js.map b/src/third_party/devtools/node_modules/rxjs/operator/concatAll.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/concatAll.js.map
rename to src/third_party/devtools/node_modules/rxjs/operator/concatAll.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/concatMap.d.ts b/src/third_party/devtools/node_modules/rxjs/operator/concatMap.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/concatMap.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operator/concatMap.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/concatMap.js b/src/third_party/devtools/node_modules/rxjs/operator/concatMap.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/concatMap.js
rename to src/third_party/devtools/node_modules/rxjs/operator/concatMap.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/concatMap.js.map b/src/third_party/devtools/node_modules/rxjs/operator/concatMap.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/concatMap.js.map
rename to src/third_party/devtools/node_modules/rxjs/operator/concatMap.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/concatMapTo.d.ts b/src/third_party/devtools/node_modules/rxjs/operator/concatMapTo.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/concatMapTo.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operator/concatMapTo.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/concatMapTo.js b/src/third_party/devtools/node_modules/rxjs/operator/concatMapTo.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/concatMapTo.js
rename to src/third_party/devtools/node_modules/rxjs/operator/concatMapTo.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/concatMapTo.js.map b/src/third_party/devtools/node_modules/rxjs/operator/concatMapTo.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/concatMapTo.js.map
rename to src/third_party/devtools/node_modules/rxjs/operator/concatMapTo.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/count.d.ts b/src/third_party/devtools/node_modules/rxjs/operator/count.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/count.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operator/count.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/count.js b/src/third_party/devtools/node_modules/rxjs/operator/count.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/count.js
rename to src/third_party/devtools/node_modules/rxjs/operator/count.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/count.js.map b/src/third_party/devtools/node_modules/rxjs/operator/count.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/count.js.map
rename to src/third_party/devtools/node_modules/rxjs/operator/count.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/debounce.d.ts b/src/third_party/devtools/node_modules/rxjs/operator/debounce.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/debounce.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operator/debounce.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/debounce.js b/src/third_party/devtools/node_modules/rxjs/operator/debounce.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/debounce.js
rename to src/third_party/devtools/node_modules/rxjs/operator/debounce.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/debounce.js.map b/src/third_party/devtools/node_modules/rxjs/operator/debounce.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/debounce.js.map
rename to src/third_party/devtools/node_modules/rxjs/operator/debounce.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/debounceTime.d.ts b/src/third_party/devtools/node_modules/rxjs/operator/debounceTime.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/debounceTime.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operator/debounceTime.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/debounceTime.js b/src/third_party/devtools/node_modules/rxjs/operator/debounceTime.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/debounceTime.js
rename to src/third_party/devtools/node_modules/rxjs/operator/debounceTime.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/debounceTime.js.map b/src/third_party/devtools/node_modules/rxjs/operator/debounceTime.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/debounceTime.js.map
rename to src/third_party/devtools/node_modules/rxjs/operator/debounceTime.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/defaultIfEmpty.d.ts b/src/third_party/devtools/node_modules/rxjs/operator/defaultIfEmpty.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/defaultIfEmpty.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operator/defaultIfEmpty.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/defaultIfEmpty.js b/src/third_party/devtools/node_modules/rxjs/operator/defaultIfEmpty.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/defaultIfEmpty.js
rename to src/third_party/devtools/node_modules/rxjs/operator/defaultIfEmpty.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/defaultIfEmpty.js.map b/src/third_party/devtools/node_modules/rxjs/operator/defaultIfEmpty.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/defaultIfEmpty.js.map
rename to src/third_party/devtools/node_modules/rxjs/operator/defaultIfEmpty.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/delay.d.ts b/src/third_party/devtools/node_modules/rxjs/operator/delay.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/delay.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operator/delay.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/delay.js b/src/third_party/devtools/node_modules/rxjs/operator/delay.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/delay.js
rename to src/third_party/devtools/node_modules/rxjs/operator/delay.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/delay.js.map b/src/third_party/devtools/node_modules/rxjs/operator/delay.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/delay.js.map
rename to src/third_party/devtools/node_modules/rxjs/operator/delay.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/delayWhen.d.ts b/src/third_party/devtools/node_modules/rxjs/operator/delayWhen.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/delayWhen.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operator/delayWhen.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/delayWhen.js b/src/third_party/devtools/node_modules/rxjs/operator/delayWhen.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/delayWhen.js
rename to src/third_party/devtools/node_modules/rxjs/operator/delayWhen.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/delayWhen.js.map b/src/third_party/devtools/node_modules/rxjs/operator/delayWhen.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/delayWhen.js.map
rename to src/third_party/devtools/node_modules/rxjs/operator/delayWhen.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/dematerialize.d.ts b/src/third_party/devtools/node_modules/rxjs/operator/dematerialize.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/dematerialize.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operator/dematerialize.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/dematerialize.js b/src/third_party/devtools/node_modules/rxjs/operator/dematerialize.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/dematerialize.js
rename to src/third_party/devtools/node_modules/rxjs/operator/dematerialize.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/dematerialize.js.map b/src/third_party/devtools/node_modules/rxjs/operator/dematerialize.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/dematerialize.js.map
rename to src/third_party/devtools/node_modules/rxjs/operator/dematerialize.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/distinct.d.ts b/src/third_party/devtools/node_modules/rxjs/operator/distinct.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/distinct.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operator/distinct.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/distinct.js b/src/third_party/devtools/node_modules/rxjs/operator/distinct.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/distinct.js
rename to src/third_party/devtools/node_modules/rxjs/operator/distinct.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/distinct.js.map b/src/third_party/devtools/node_modules/rxjs/operator/distinct.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/distinct.js.map
rename to src/third_party/devtools/node_modules/rxjs/operator/distinct.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/distinctUntilChanged.d.ts b/src/third_party/devtools/node_modules/rxjs/operator/distinctUntilChanged.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/distinctUntilChanged.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operator/distinctUntilChanged.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/distinctUntilChanged.js b/src/third_party/devtools/node_modules/rxjs/operator/distinctUntilChanged.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/distinctUntilChanged.js
rename to src/third_party/devtools/node_modules/rxjs/operator/distinctUntilChanged.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/distinctUntilChanged.js.map b/src/third_party/devtools/node_modules/rxjs/operator/distinctUntilChanged.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/distinctUntilChanged.js.map
rename to src/third_party/devtools/node_modules/rxjs/operator/distinctUntilChanged.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/distinctUntilKeyChanged.d.ts b/src/third_party/devtools/node_modules/rxjs/operator/distinctUntilKeyChanged.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/distinctUntilKeyChanged.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operator/distinctUntilKeyChanged.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/distinctUntilKeyChanged.js b/src/third_party/devtools/node_modules/rxjs/operator/distinctUntilKeyChanged.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/distinctUntilKeyChanged.js
rename to src/third_party/devtools/node_modules/rxjs/operator/distinctUntilKeyChanged.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/distinctUntilKeyChanged.js.map b/src/third_party/devtools/node_modules/rxjs/operator/distinctUntilKeyChanged.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/distinctUntilKeyChanged.js.map
rename to src/third_party/devtools/node_modules/rxjs/operator/distinctUntilKeyChanged.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/do.d.ts b/src/third_party/devtools/node_modules/rxjs/operator/do.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/do.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operator/do.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/do.js b/src/third_party/devtools/node_modules/rxjs/operator/do.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/do.js
rename to src/third_party/devtools/node_modules/rxjs/operator/do.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/do.js.map b/src/third_party/devtools/node_modules/rxjs/operator/do.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/do.js.map
rename to src/third_party/devtools/node_modules/rxjs/operator/do.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/elementAt.d.ts b/src/third_party/devtools/node_modules/rxjs/operator/elementAt.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/elementAt.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operator/elementAt.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/elementAt.js b/src/third_party/devtools/node_modules/rxjs/operator/elementAt.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/elementAt.js
rename to src/third_party/devtools/node_modules/rxjs/operator/elementAt.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/elementAt.js.map b/src/third_party/devtools/node_modules/rxjs/operator/elementAt.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/elementAt.js.map
rename to src/third_party/devtools/node_modules/rxjs/operator/elementAt.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/every.d.ts b/src/third_party/devtools/node_modules/rxjs/operator/every.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/every.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operator/every.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/every.js b/src/third_party/devtools/node_modules/rxjs/operator/every.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/every.js
rename to src/third_party/devtools/node_modules/rxjs/operator/every.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/every.js.map b/src/third_party/devtools/node_modules/rxjs/operator/every.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/every.js.map
rename to src/third_party/devtools/node_modules/rxjs/operator/every.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/exhaust.d.ts b/src/third_party/devtools/node_modules/rxjs/operator/exhaust.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/exhaust.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operator/exhaust.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/exhaust.js b/src/third_party/devtools/node_modules/rxjs/operator/exhaust.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/exhaust.js
rename to src/third_party/devtools/node_modules/rxjs/operator/exhaust.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/exhaust.js.map b/src/third_party/devtools/node_modules/rxjs/operator/exhaust.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/exhaust.js.map
rename to src/third_party/devtools/node_modules/rxjs/operator/exhaust.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/exhaustMap.d.ts b/src/third_party/devtools/node_modules/rxjs/operator/exhaustMap.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/exhaustMap.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operator/exhaustMap.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/exhaustMap.js b/src/third_party/devtools/node_modules/rxjs/operator/exhaustMap.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/exhaustMap.js
rename to src/third_party/devtools/node_modules/rxjs/operator/exhaustMap.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/exhaustMap.js.map b/src/third_party/devtools/node_modules/rxjs/operator/exhaustMap.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/exhaustMap.js.map
rename to src/third_party/devtools/node_modules/rxjs/operator/exhaustMap.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/expand.d.ts b/src/third_party/devtools/node_modules/rxjs/operator/expand.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/expand.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operator/expand.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/expand.js b/src/third_party/devtools/node_modules/rxjs/operator/expand.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/expand.js
rename to src/third_party/devtools/node_modules/rxjs/operator/expand.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/expand.js.map b/src/third_party/devtools/node_modules/rxjs/operator/expand.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/expand.js.map
rename to src/third_party/devtools/node_modules/rxjs/operator/expand.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/filter.d.ts b/src/third_party/devtools/node_modules/rxjs/operator/filter.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/filter.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operator/filter.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/filter.js b/src/third_party/devtools/node_modules/rxjs/operator/filter.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/filter.js
rename to src/third_party/devtools/node_modules/rxjs/operator/filter.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/filter.js.map b/src/third_party/devtools/node_modules/rxjs/operator/filter.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/filter.js.map
rename to src/third_party/devtools/node_modules/rxjs/operator/filter.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/finally.d.ts b/src/third_party/devtools/node_modules/rxjs/operator/finally.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/finally.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operator/finally.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/finally.js b/src/third_party/devtools/node_modules/rxjs/operator/finally.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/finally.js
rename to src/third_party/devtools/node_modules/rxjs/operator/finally.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/finally.js.map b/src/third_party/devtools/node_modules/rxjs/operator/finally.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/finally.js.map
rename to src/third_party/devtools/node_modules/rxjs/operator/finally.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/find.d.ts b/src/third_party/devtools/node_modules/rxjs/operator/find.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/find.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operator/find.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/find.js b/src/third_party/devtools/node_modules/rxjs/operator/find.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/find.js
rename to src/third_party/devtools/node_modules/rxjs/operator/find.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/find.js.map b/src/third_party/devtools/node_modules/rxjs/operator/find.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/find.js.map
rename to src/third_party/devtools/node_modules/rxjs/operator/find.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/findIndex.d.ts b/src/third_party/devtools/node_modules/rxjs/operator/findIndex.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/findIndex.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operator/findIndex.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/findIndex.js b/src/third_party/devtools/node_modules/rxjs/operator/findIndex.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/findIndex.js
rename to src/third_party/devtools/node_modules/rxjs/operator/findIndex.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/findIndex.js.map b/src/third_party/devtools/node_modules/rxjs/operator/findIndex.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/findIndex.js.map
rename to src/third_party/devtools/node_modules/rxjs/operator/findIndex.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/first.d.ts b/src/third_party/devtools/node_modules/rxjs/operator/first.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/first.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operator/first.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/first.js b/src/third_party/devtools/node_modules/rxjs/operator/first.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/first.js
rename to src/third_party/devtools/node_modules/rxjs/operator/first.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/first.js.map b/src/third_party/devtools/node_modules/rxjs/operator/first.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/first.js.map
rename to src/third_party/devtools/node_modules/rxjs/operator/first.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/groupBy.d.ts b/src/third_party/devtools/node_modules/rxjs/operator/groupBy.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/groupBy.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operator/groupBy.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/groupBy.js b/src/third_party/devtools/node_modules/rxjs/operator/groupBy.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/groupBy.js
rename to src/third_party/devtools/node_modules/rxjs/operator/groupBy.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/groupBy.js.map b/src/third_party/devtools/node_modules/rxjs/operator/groupBy.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/groupBy.js.map
rename to src/third_party/devtools/node_modules/rxjs/operator/groupBy.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/ignoreElements.d.ts b/src/third_party/devtools/node_modules/rxjs/operator/ignoreElements.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/ignoreElements.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operator/ignoreElements.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/ignoreElements.js b/src/third_party/devtools/node_modules/rxjs/operator/ignoreElements.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/ignoreElements.js
rename to src/third_party/devtools/node_modules/rxjs/operator/ignoreElements.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/ignoreElements.js.map b/src/third_party/devtools/node_modules/rxjs/operator/ignoreElements.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/ignoreElements.js.map
rename to src/third_party/devtools/node_modules/rxjs/operator/ignoreElements.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/isEmpty.d.ts b/src/third_party/devtools/node_modules/rxjs/operator/isEmpty.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/isEmpty.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operator/isEmpty.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/isEmpty.js b/src/third_party/devtools/node_modules/rxjs/operator/isEmpty.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/isEmpty.js
rename to src/third_party/devtools/node_modules/rxjs/operator/isEmpty.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/isEmpty.js.map b/src/third_party/devtools/node_modules/rxjs/operator/isEmpty.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/isEmpty.js.map
rename to src/third_party/devtools/node_modules/rxjs/operator/isEmpty.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/last.d.ts b/src/third_party/devtools/node_modules/rxjs/operator/last.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/last.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operator/last.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/last.js b/src/third_party/devtools/node_modules/rxjs/operator/last.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/last.js
rename to src/third_party/devtools/node_modules/rxjs/operator/last.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/last.js.map b/src/third_party/devtools/node_modules/rxjs/operator/last.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/last.js.map
rename to src/third_party/devtools/node_modules/rxjs/operator/last.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/let.d.ts b/src/third_party/devtools/node_modules/rxjs/operator/let.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/let.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operator/let.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/let.js b/src/third_party/devtools/node_modules/rxjs/operator/let.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/let.js
rename to src/third_party/devtools/node_modules/rxjs/operator/let.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/let.js.map b/src/third_party/devtools/node_modules/rxjs/operator/let.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/let.js.map
rename to src/third_party/devtools/node_modules/rxjs/operator/let.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/map.d.ts b/src/third_party/devtools/node_modules/rxjs/operator/map.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/map.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operator/map.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/map.js b/src/third_party/devtools/node_modules/rxjs/operator/map.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/map.js
rename to src/third_party/devtools/node_modules/rxjs/operator/map.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/map.js.map b/src/third_party/devtools/node_modules/rxjs/operator/map.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/map.js.map
rename to src/third_party/devtools/node_modules/rxjs/operator/map.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/mapTo.d.ts b/src/third_party/devtools/node_modules/rxjs/operator/mapTo.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/mapTo.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operator/mapTo.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/mapTo.js b/src/third_party/devtools/node_modules/rxjs/operator/mapTo.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/mapTo.js
rename to src/third_party/devtools/node_modules/rxjs/operator/mapTo.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/mapTo.js.map b/src/third_party/devtools/node_modules/rxjs/operator/mapTo.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/mapTo.js.map
rename to src/third_party/devtools/node_modules/rxjs/operator/mapTo.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/materialize.d.ts b/src/third_party/devtools/node_modules/rxjs/operator/materialize.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/materialize.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operator/materialize.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/materialize.js b/src/third_party/devtools/node_modules/rxjs/operator/materialize.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/materialize.js
rename to src/third_party/devtools/node_modules/rxjs/operator/materialize.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/materialize.js.map b/src/third_party/devtools/node_modules/rxjs/operator/materialize.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/materialize.js.map
rename to src/third_party/devtools/node_modules/rxjs/operator/materialize.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/max.d.ts b/src/third_party/devtools/node_modules/rxjs/operator/max.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/max.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operator/max.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/max.js b/src/third_party/devtools/node_modules/rxjs/operator/max.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/max.js
rename to src/third_party/devtools/node_modules/rxjs/operator/max.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/max.js.map b/src/third_party/devtools/node_modules/rxjs/operator/max.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/max.js.map
rename to src/third_party/devtools/node_modules/rxjs/operator/max.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/merge.d.ts b/src/third_party/devtools/node_modules/rxjs/operator/merge.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/merge.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operator/merge.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/merge.js b/src/third_party/devtools/node_modules/rxjs/operator/merge.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/merge.js
rename to src/third_party/devtools/node_modules/rxjs/operator/merge.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/merge.js.map b/src/third_party/devtools/node_modules/rxjs/operator/merge.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/merge.js.map
rename to src/third_party/devtools/node_modules/rxjs/operator/merge.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/mergeAll.d.ts b/src/third_party/devtools/node_modules/rxjs/operator/mergeAll.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/mergeAll.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operator/mergeAll.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/mergeAll.js b/src/third_party/devtools/node_modules/rxjs/operator/mergeAll.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/mergeAll.js
rename to src/third_party/devtools/node_modules/rxjs/operator/mergeAll.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/mergeAll.js.map b/src/third_party/devtools/node_modules/rxjs/operator/mergeAll.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/mergeAll.js.map
rename to src/third_party/devtools/node_modules/rxjs/operator/mergeAll.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/mergeMap.d.ts b/src/third_party/devtools/node_modules/rxjs/operator/mergeMap.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/mergeMap.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operator/mergeMap.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/mergeMap.js b/src/third_party/devtools/node_modules/rxjs/operator/mergeMap.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/mergeMap.js
rename to src/third_party/devtools/node_modules/rxjs/operator/mergeMap.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/mergeMap.js.map b/src/third_party/devtools/node_modules/rxjs/operator/mergeMap.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/mergeMap.js.map
rename to src/third_party/devtools/node_modules/rxjs/operator/mergeMap.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/mergeMapTo.d.ts b/src/third_party/devtools/node_modules/rxjs/operator/mergeMapTo.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/mergeMapTo.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operator/mergeMapTo.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/mergeMapTo.js b/src/third_party/devtools/node_modules/rxjs/operator/mergeMapTo.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/mergeMapTo.js
rename to src/third_party/devtools/node_modules/rxjs/operator/mergeMapTo.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/mergeMapTo.js.map b/src/third_party/devtools/node_modules/rxjs/operator/mergeMapTo.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/mergeMapTo.js.map
rename to src/third_party/devtools/node_modules/rxjs/operator/mergeMapTo.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/mergeScan.d.ts b/src/third_party/devtools/node_modules/rxjs/operator/mergeScan.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/mergeScan.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operator/mergeScan.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/mergeScan.js b/src/third_party/devtools/node_modules/rxjs/operator/mergeScan.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/mergeScan.js
rename to src/third_party/devtools/node_modules/rxjs/operator/mergeScan.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/mergeScan.js.map b/src/third_party/devtools/node_modules/rxjs/operator/mergeScan.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/mergeScan.js.map
rename to src/third_party/devtools/node_modules/rxjs/operator/mergeScan.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/min.d.ts b/src/third_party/devtools/node_modules/rxjs/operator/min.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/min.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operator/min.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/min.js b/src/third_party/devtools/node_modules/rxjs/operator/min.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/min.js
rename to src/third_party/devtools/node_modules/rxjs/operator/min.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/min.js.map b/src/third_party/devtools/node_modules/rxjs/operator/min.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/min.js.map
rename to src/third_party/devtools/node_modules/rxjs/operator/min.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/multicast.d.ts b/src/third_party/devtools/node_modules/rxjs/operator/multicast.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/multicast.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operator/multicast.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/multicast.js b/src/third_party/devtools/node_modules/rxjs/operator/multicast.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/multicast.js
rename to src/third_party/devtools/node_modules/rxjs/operator/multicast.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/multicast.js.map b/src/third_party/devtools/node_modules/rxjs/operator/multicast.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/multicast.js.map
rename to src/third_party/devtools/node_modules/rxjs/operator/multicast.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/observeOn.d.ts b/src/third_party/devtools/node_modules/rxjs/operator/observeOn.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/observeOn.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operator/observeOn.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/observeOn.js b/src/third_party/devtools/node_modules/rxjs/operator/observeOn.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/observeOn.js
rename to src/third_party/devtools/node_modules/rxjs/operator/observeOn.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/observeOn.js.map b/src/third_party/devtools/node_modules/rxjs/operator/observeOn.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/observeOn.js.map
rename to src/third_party/devtools/node_modules/rxjs/operator/observeOn.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/onErrorResumeNext.d.ts b/src/third_party/devtools/node_modules/rxjs/operator/onErrorResumeNext.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/onErrorResumeNext.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operator/onErrorResumeNext.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/onErrorResumeNext.js b/src/third_party/devtools/node_modules/rxjs/operator/onErrorResumeNext.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/onErrorResumeNext.js
rename to src/third_party/devtools/node_modules/rxjs/operator/onErrorResumeNext.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/onErrorResumeNext.js.map b/src/third_party/devtools/node_modules/rxjs/operator/onErrorResumeNext.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/onErrorResumeNext.js.map
rename to src/third_party/devtools/node_modules/rxjs/operator/onErrorResumeNext.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/pairwise.d.ts b/src/third_party/devtools/node_modules/rxjs/operator/pairwise.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/pairwise.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operator/pairwise.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/pairwise.js b/src/third_party/devtools/node_modules/rxjs/operator/pairwise.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/pairwise.js
rename to src/third_party/devtools/node_modules/rxjs/operator/pairwise.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/pairwise.js.map b/src/third_party/devtools/node_modules/rxjs/operator/pairwise.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/pairwise.js.map
rename to src/third_party/devtools/node_modules/rxjs/operator/pairwise.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/partition.d.ts b/src/third_party/devtools/node_modules/rxjs/operator/partition.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/partition.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operator/partition.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/partition.js b/src/third_party/devtools/node_modules/rxjs/operator/partition.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/partition.js
rename to src/third_party/devtools/node_modules/rxjs/operator/partition.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/partition.js.map b/src/third_party/devtools/node_modules/rxjs/operator/partition.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/partition.js.map
rename to src/third_party/devtools/node_modules/rxjs/operator/partition.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/pluck.d.ts b/src/third_party/devtools/node_modules/rxjs/operator/pluck.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/pluck.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operator/pluck.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/pluck.js b/src/third_party/devtools/node_modules/rxjs/operator/pluck.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/pluck.js
rename to src/third_party/devtools/node_modules/rxjs/operator/pluck.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/pluck.js.map b/src/third_party/devtools/node_modules/rxjs/operator/pluck.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/pluck.js.map
rename to src/third_party/devtools/node_modules/rxjs/operator/pluck.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/publish.d.ts b/src/third_party/devtools/node_modules/rxjs/operator/publish.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/publish.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operator/publish.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/publish.js b/src/third_party/devtools/node_modules/rxjs/operator/publish.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/publish.js
rename to src/third_party/devtools/node_modules/rxjs/operator/publish.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/publish.js.map b/src/third_party/devtools/node_modules/rxjs/operator/publish.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/publish.js.map
rename to src/third_party/devtools/node_modules/rxjs/operator/publish.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/publishBehavior.d.ts b/src/third_party/devtools/node_modules/rxjs/operator/publishBehavior.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/publishBehavior.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operator/publishBehavior.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/publishBehavior.js b/src/third_party/devtools/node_modules/rxjs/operator/publishBehavior.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/publishBehavior.js
rename to src/third_party/devtools/node_modules/rxjs/operator/publishBehavior.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/publishBehavior.js.map b/src/third_party/devtools/node_modules/rxjs/operator/publishBehavior.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/publishBehavior.js.map
rename to src/third_party/devtools/node_modules/rxjs/operator/publishBehavior.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/publishLast.d.ts b/src/third_party/devtools/node_modules/rxjs/operator/publishLast.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/publishLast.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operator/publishLast.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/publishLast.js b/src/third_party/devtools/node_modules/rxjs/operator/publishLast.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/publishLast.js
rename to src/third_party/devtools/node_modules/rxjs/operator/publishLast.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/publishLast.js.map b/src/third_party/devtools/node_modules/rxjs/operator/publishLast.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/publishLast.js.map
rename to src/third_party/devtools/node_modules/rxjs/operator/publishLast.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/publishReplay.d.ts b/src/third_party/devtools/node_modules/rxjs/operator/publishReplay.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/publishReplay.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operator/publishReplay.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/publishReplay.js b/src/third_party/devtools/node_modules/rxjs/operator/publishReplay.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/publishReplay.js
rename to src/third_party/devtools/node_modules/rxjs/operator/publishReplay.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/publishReplay.js.map b/src/third_party/devtools/node_modules/rxjs/operator/publishReplay.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/publishReplay.js.map
rename to src/third_party/devtools/node_modules/rxjs/operator/publishReplay.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/race.d.ts b/src/third_party/devtools/node_modules/rxjs/operator/race.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/race.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operator/race.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/race.js b/src/third_party/devtools/node_modules/rxjs/operator/race.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/race.js
rename to src/third_party/devtools/node_modules/rxjs/operator/race.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/race.js.map b/src/third_party/devtools/node_modules/rxjs/operator/race.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/race.js.map
rename to src/third_party/devtools/node_modules/rxjs/operator/race.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/reduce.d.ts b/src/third_party/devtools/node_modules/rxjs/operator/reduce.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/reduce.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operator/reduce.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/reduce.js b/src/third_party/devtools/node_modules/rxjs/operator/reduce.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/reduce.js
rename to src/third_party/devtools/node_modules/rxjs/operator/reduce.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/reduce.js.map b/src/third_party/devtools/node_modules/rxjs/operator/reduce.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/reduce.js.map
rename to src/third_party/devtools/node_modules/rxjs/operator/reduce.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/repeat.d.ts b/src/third_party/devtools/node_modules/rxjs/operator/repeat.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/repeat.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operator/repeat.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/repeat.js b/src/third_party/devtools/node_modules/rxjs/operator/repeat.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/repeat.js
rename to src/third_party/devtools/node_modules/rxjs/operator/repeat.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/repeat.js.map b/src/third_party/devtools/node_modules/rxjs/operator/repeat.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/repeat.js.map
rename to src/third_party/devtools/node_modules/rxjs/operator/repeat.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/repeatWhen.d.ts b/src/third_party/devtools/node_modules/rxjs/operator/repeatWhen.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/repeatWhen.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operator/repeatWhen.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/repeatWhen.js b/src/third_party/devtools/node_modules/rxjs/operator/repeatWhen.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/repeatWhen.js
rename to src/third_party/devtools/node_modules/rxjs/operator/repeatWhen.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/repeatWhen.js.map b/src/third_party/devtools/node_modules/rxjs/operator/repeatWhen.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/repeatWhen.js.map
rename to src/third_party/devtools/node_modules/rxjs/operator/repeatWhen.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/retry.d.ts b/src/third_party/devtools/node_modules/rxjs/operator/retry.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/retry.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operator/retry.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/retry.js b/src/third_party/devtools/node_modules/rxjs/operator/retry.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/retry.js
rename to src/third_party/devtools/node_modules/rxjs/operator/retry.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/retry.js.map b/src/third_party/devtools/node_modules/rxjs/operator/retry.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/retry.js.map
rename to src/third_party/devtools/node_modules/rxjs/operator/retry.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/retryWhen.d.ts b/src/third_party/devtools/node_modules/rxjs/operator/retryWhen.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/retryWhen.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operator/retryWhen.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/retryWhen.js b/src/third_party/devtools/node_modules/rxjs/operator/retryWhen.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/retryWhen.js
rename to src/third_party/devtools/node_modules/rxjs/operator/retryWhen.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/retryWhen.js.map b/src/third_party/devtools/node_modules/rxjs/operator/retryWhen.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/retryWhen.js.map
rename to src/third_party/devtools/node_modules/rxjs/operator/retryWhen.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/sample.d.ts b/src/third_party/devtools/node_modules/rxjs/operator/sample.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/sample.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operator/sample.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/sample.js b/src/third_party/devtools/node_modules/rxjs/operator/sample.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/sample.js
rename to src/third_party/devtools/node_modules/rxjs/operator/sample.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/sample.js.map b/src/third_party/devtools/node_modules/rxjs/operator/sample.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/sample.js.map
rename to src/third_party/devtools/node_modules/rxjs/operator/sample.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/sampleTime.d.ts b/src/third_party/devtools/node_modules/rxjs/operator/sampleTime.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/sampleTime.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operator/sampleTime.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/sampleTime.js b/src/third_party/devtools/node_modules/rxjs/operator/sampleTime.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/sampleTime.js
rename to src/third_party/devtools/node_modules/rxjs/operator/sampleTime.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/sampleTime.js.map b/src/third_party/devtools/node_modules/rxjs/operator/sampleTime.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/sampleTime.js.map
rename to src/third_party/devtools/node_modules/rxjs/operator/sampleTime.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/scan.d.ts b/src/third_party/devtools/node_modules/rxjs/operator/scan.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/scan.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operator/scan.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/scan.js b/src/third_party/devtools/node_modules/rxjs/operator/scan.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/scan.js
rename to src/third_party/devtools/node_modules/rxjs/operator/scan.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/scan.js.map b/src/third_party/devtools/node_modules/rxjs/operator/scan.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/scan.js.map
rename to src/third_party/devtools/node_modules/rxjs/operator/scan.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/sequenceEqual.d.ts b/src/third_party/devtools/node_modules/rxjs/operator/sequenceEqual.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/sequenceEqual.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operator/sequenceEqual.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/sequenceEqual.js b/src/third_party/devtools/node_modules/rxjs/operator/sequenceEqual.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/sequenceEqual.js
rename to src/third_party/devtools/node_modules/rxjs/operator/sequenceEqual.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/sequenceEqual.js.map b/src/third_party/devtools/node_modules/rxjs/operator/sequenceEqual.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/sequenceEqual.js.map
rename to src/third_party/devtools/node_modules/rxjs/operator/sequenceEqual.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/share.d.ts b/src/third_party/devtools/node_modules/rxjs/operator/share.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/share.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operator/share.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/share.js b/src/third_party/devtools/node_modules/rxjs/operator/share.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/share.js
rename to src/third_party/devtools/node_modules/rxjs/operator/share.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/share.js.map b/src/third_party/devtools/node_modules/rxjs/operator/share.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/share.js.map
rename to src/third_party/devtools/node_modules/rxjs/operator/share.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/shareReplay.d.ts b/src/third_party/devtools/node_modules/rxjs/operator/shareReplay.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/shareReplay.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operator/shareReplay.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/shareReplay.js b/src/third_party/devtools/node_modules/rxjs/operator/shareReplay.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/shareReplay.js
rename to src/third_party/devtools/node_modules/rxjs/operator/shareReplay.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/shareReplay.js.map b/src/third_party/devtools/node_modules/rxjs/operator/shareReplay.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/shareReplay.js.map
rename to src/third_party/devtools/node_modules/rxjs/operator/shareReplay.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/single.d.ts b/src/third_party/devtools/node_modules/rxjs/operator/single.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/single.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operator/single.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/single.js b/src/third_party/devtools/node_modules/rxjs/operator/single.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/single.js
rename to src/third_party/devtools/node_modules/rxjs/operator/single.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/single.js.map b/src/third_party/devtools/node_modules/rxjs/operator/single.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/single.js.map
rename to src/third_party/devtools/node_modules/rxjs/operator/single.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/skip.d.ts b/src/third_party/devtools/node_modules/rxjs/operator/skip.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/skip.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operator/skip.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/skip.js b/src/third_party/devtools/node_modules/rxjs/operator/skip.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/skip.js
rename to src/third_party/devtools/node_modules/rxjs/operator/skip.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/skip.js.map b/src/third_party/devtools/node_modules/rxjs/operator/skip.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/skip.js.map
rename to src/third_party/devtools/node_modules/rxjs/operator/skip.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/skipLast.d.ts b/src/third_party/devtools/node_modules/rxjs/operator/skipLast.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/skipLast.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operator/skipLast.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/skipLast.js b/src/third_party/devtools/node_modules/rxjs/operator/skipLast.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/skipLast.js
rename to src/third_party/devtools/node_modules/rxjs/operator/skipLast.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/skipLast.js.map b/src/third_party/devtools/node_modules/rxjs/operator/skipLast.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/skipLast.js.map
rename to src/third_party/devtools/node_modules/rxjs/operator/skipLast.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/skipUntil.d.ts b/src/third_party/devtools/node_modules/rxjs/operator/skipUntil.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/skipUntil.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operator/skipUntil.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/skipUntil.js b/src/third_party/devtools/node_modules/rxjs/operator/skipUntil.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/skipUntil.js
rename to src/third_party/devtools/node_modules/rxjs/operator/skipUntil.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/skipUntil.js.map b/src/third_party/devtools/node_modules/rxjs/operator/skipUntil.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/skipUntil.js.map
rename to src/third_party/devtools/node_modules/rxjs/operator/skipUntil.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/skipWhile.d.ts b/src/third_party/devtools/node_modules/rxjs/operator/skipWhile.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/skipWhile.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operator/skipWhile.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/skipWhile.js b/src/third_party/devtools/node_modules/rxjs/operator/skipWhile.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/skipWhile.js
rename to src/third_party/devtools/node_modules/rxjs/operator/skipWhile.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/skipWhile.js.map b/src/third_party/devtools/node_modules/rxjs/operator/skipWhile.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/skipWhile.js.map
rename to src/third_party/devtools/node_modules/rxjs/operator/skipWhile.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/startWith.d.ts b/src/third_party/devtools/node_modules/rxjs/operator/startWith.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/startWith.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operator/startWith.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/startWith.js b/src/third_party/devtools/node_modules/rxjs/operator/startWith.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/startWith.js
rename to src/third_party/devtools/node_modules/rxjs/operator/startWith.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/startWith.js.map b/src/third_party/devtools/node_modules/rxjs/operator/startWith.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/startWith.js.map
rename to src/third_party/devtools/node_modules/rxjs/operator/startWith.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/subscribeOn.d.ts b/src/third_party/devtools/node_modules/rxjs/operator/subscribeOn.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/subscribeOn.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operator/subscribeOn.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/subscribeOn.js b/src/third_party/devtools/node_modules/rxjs/operator/subscribeOn.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/subscribeOn.js
rename to src/third_party/devtools/node_modules/rxjs/operator/subscribeOn.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/subscribeOn.js.map b/src/third_party/devtools/node_modules/rxjs/operator/subscribeOn.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/subscribeOn.js.map
rename to src/third_party/devtools/node_modules/rxjs/operator/subscribeOn.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/switch.d.ts b/src/third_party/devtools/node_modules/rxjs/operator/switch.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/switch.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operator/switch.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/switch.js b/src/third_party/devtools/node_modules/rxjs/operator/switch.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/switch.js
rename to src/third_party/devtools/node_modules/rxjs/operator/switch.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/switch.js.map b/src/third_party/devtools/node_modules/rxjs/operator/switch.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/switch.js.map
rename to src/third_party/devtools/node_modules/rxjs/operator/switch.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/switchMap.d.ts b/src/third_party/devtools/node_modules/rxjs/operator/switchMap.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/switchMap.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operator/switchMap.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/switchMap.js b/src/third_party/devtools/node_modules/rxjs/operator/switchMap.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/switchMap.js
rename to src/third_party/devtools/node_modules/rxjs/operator/switchMap.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/switchMap.js.map b/src/third_party/devtools/node_modules/rxjs/operator/switchMap.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/switchMap.js.map
rename to src/third_party/devtools/node_modules/rxjs/operator/switchMap.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/switchMapTo.d.ts b/src/third_party/devtools/node_modules/rxjs/operator/switchMapTo.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/switchMapTo.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operator/switchMapTo.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/switchMapTo.js b/src/third_party/devtools/node_modules/rxjs/operator/switchMapTo.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/switchMapTo.js
rename to src/third_party/devtools/node_modules/rxjs/operator/switchMapTo.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/switchMapTo.js.map b/src/third_party/devtools/node_modules/rxjs/operator/switchMapTo.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/switchMapTo.js.map
rename to src/third_party/devtools/node_modules/rxjs/operator/switchMapTo.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/take.d.ts b/src/third_party/devtools/node_modules/rxjs/operator/take.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/take.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operator/take.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/take.js b/src/third_party/devtools/node_modules/rxjs/operator/take.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/take.js
rename to src/third_party/devtools/node_modules/rxjs/operator/take.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/take.js.map b/src/third_party/devtools/node_modules/rxjs/operator/take.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/take.js.map
rename to src/third_party/devtools/node_modules/rxjs/operator/take.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/takeLast.d.ts b/src/third_party/devtools/node_modules/rxjs/operator/takeLast.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/takeLast.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operator/takeLast.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/takeLast.js b/src/third_party/devtools/node_modules/rxjs/operator/takeLast.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/takeLast.js
rename to src/third_party/devtools/node_modules/rxjs/operator/takeLast.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/takeLast.js.map b/src/third_party/devtools/node_modules/rxjs/operator/takeLast.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/takeLast.js.map
rename to src/third_party/devtools/node_modules/rxjs/operator/takeLast.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/takeUntil.d.ts b/src/third_party/devtools/node_modules/rxjs/operator/takeUntil.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/takeUntil.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operator/takeUntil.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/takeUntil.js b/src/third_party/devtools/node_modules/rxjs/operator/takeUntil.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/takeUntil.js
rename to src/third_party/devtools/node_modules/rxjs/operator/takeUntil.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/takeUntil.js.map b/src/third_party/devtools/node_modules/rxjs/operator/takeUntil.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/takeUntil.js.map
rename to src/third_party/devtools/node_modules/rxjs/operator/takeUntil.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/takeWhile.d.ts b/src/third_party/devtools/node_modules/rxjs/operator/takeWhile.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/takeWhile.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operator/takeWhile.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/takeWhile.js b/src/third_party/devtools/node_modules/rxjs/operator/takeWhile.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/takeWhile.js
rename to src/third_party/devtools/node_modules/rxjs/operator/takeWhile.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/takeWhile.js.map b/src/third_party/devtools/node_modules/rxjs/operator/takeWhile.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/takeWhile.js.map
rename to src/third_party/devtools/node_modules/rxjs/operator/takeWhile.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/throttle.d.ts b/src/third_party/devtools/node_modules/rxjs/operator/throttle.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/throttle.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operator/throttle.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/throttle.js b/src/third_party/devtools/node_modules/rxjs/operator/throttle.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/throttle.js
rename to src/third_party/devtools/node_modules/rxjs/operator/throttle.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/throttle.js.map b/src/third_party/devtools/node_modules/rxjs/operator/throttle.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/throttle.js.map
rename to src/third_party/devtools/node_modules/rxjs/operator/throttle.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/throttleTime.d.ts b/src/third_party/devtools/node_modules/rxjs/operator/throttleTime.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/throttleTime.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operator/throttleTime.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/throttleTime.js b/src/third_party/devtools/node_modules/rxjs/operator/throttleTime.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/throttleTime.js
rename to src/third_party/devtools/node_modules/rxjs/operator/throttleTime.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/throttleTime.js.map b/src/third_party/devtools/node_modules/rxjs/operator/throttleTime.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/throttleTime.js.map
rename to src/third_party/devtools/node_modules/rxjs/operator/throttleTime.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/timeInterval.d.ts b/src/third_party/devtools/node_modules/rxjs/operator/timeInterval.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/timeInterval.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operator/timeInterval.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/timeInterval.js b/src/third_party/devtools/node_modules/rxjs/operator/timeInterval.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/timeInterval.js
rename to src/third_party/devtools/node_modules/rxjs/operator/timeInterval.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/timeInterval.js.map b/src/third_party/devtools/node_modules/rxjs/operator/timeInterval.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/timeInterval.js.map
rename to src/third_party/devtools/node_modules/rxjs/operator/timeInterval.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/timeout.d.ts b/src/third_party/devtools/node_modules/rxjs/operator/timeout.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/timeout.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operator/timeout.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/timeout.js b/src/third_party/devtools/node_modules/rxjs/operator/timeout.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/timeout.js
rename to src/third_party/devtools/node_modules/rxjs/operator/timeout.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/timeout.js.map b/src/third_party/devtools/node_modules/rxjs/operator/timeout.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/timeout.js.map
rename to src/third_party/devtools/node_modules/rxjs/operator/timeout.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/timeoutWith.d.ts b/src/third_party/devtools/node_modules/rxjs/operator/timeoutWith.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/timeoutWith.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operator/timeoutWith.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/timeoutWith.js b/src/third_party/devtools/node_modules/rxjs/operator/timeoutWith.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/timeoutWith.js
rename to src/third_party/devtools/node_modules/rxjs/operator/timeoutWith.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/timeoutWith.js.map b/src/third_party/devtools/node_modules/rxjs/operator/timeoutWith.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/timeoutWith.js.map
rename to src/third_party/devtools/node_modules/rxjs/operator/timeoutWith.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/timestamp.d.ts b/src/third_party/devtools/node_modules/rxjs/operator/timestamp.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/timestamp.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operator/timestamp.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/timestamp.js b/src/third_party/devtools/node_modules/rxjs/operator/timestamp.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/timestamp.js
rename to src/third_party/devtools/node_modules/rxjs/operator/timestamp.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/timestamp.js.map b/src/third_party/devtools/node_modules/rxjs/operator/timestamp.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/timestamp.js.map
rename to src/third_party/devtools/node_modules/rxjs/operator/timestamp.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/toArray.d.ts b/src/third_party/devtools/node_modules/rxjs/operator/toArray.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/toArray.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operator/toArray.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/toArray.js b/src/third_party/devtools/node_modules/rxjs/operator/toArray.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/toArray.js
rename to src/third_party/devtools/node_modules/rxjs/operator/toArray.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/toArray.js.map b/src/third_party/devtools/node_modules/rxjs/operator/toArray.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/toArray.js.map
rename to src/third_party/devtools/node_modules/rxjs/operator/toArray.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/toPromise.d.ts b/src/third_party/devtools/node_modules/rxjs/operator/toPromise.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/toPromise.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operator/toPromise.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/toPromise.js b/src/third_party/devtools/node_modules/rxjs/operator/toPromise.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/toPromise.js
rename to src/third_party/devtools/node_modules/rxjs/operator/toPromise.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/toPromise.js.map b/src/third_party/devtools/node_modules/rxjs/operator/toPromise.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/toPromise.js.map
rename to src/third_party/devtools/node_modules/rxjs/operator/toPromise.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/window.d.ts b/src/third_party/devtools/node_modules/rxjs/operator/window.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/window.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operator/window.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/window.js b/src/third_party/devtools/node_modules/rxjs/operator/window.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/window.js
rename to src/third_party/devtools/node_modules/rxjs/operator/window.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/window.js.map b/src/third_party/devtools/node_modules/rxjs/operator/window.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/window.js.map
rename to src/third_party/devtools/node_modules/rxjs/operator/window.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/windowCount.d.ts b/src/third_party/devtools/node_modules/rxjs/operator/windowCount.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/windowCount.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operator/windowCount.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/windowCount.js b/src/third_party/devtools/node_modules/rxjs/operator/windowCount.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/windowCount.js
rename to src/third_party/devtools/node_modules/rxjs/operator/windowCount.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/windowCount.js.map b/src/third_party/devtools/node_modules/rxjs/operator/windowCount.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/windowCount.js.map
rename to src/third_party/devtools/node_modules/rxjs/operator/windowCount.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/windowTime.d.ts b/src/third_party/devtools/node_modules/rxjs/operator/windowTime.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/windowTime.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operator/windowTime.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/windowTime.js b/src/third_party/devtools/node_modules/rxjs/operator/windowTime.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/windowTime.js
rename to src/third_party/devtools/node_modules/rxjs/operator/windowTime.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/windowTime.js.map b/src/third_party/devtools/node_modules/rxjs/operator/windowTime.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/windowTime.js.map
rename to src/third_party/devtools/node_modules/rxjs/operator/windowTime.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/windowToggle.d.ts b/src/third_party/devtools/node_modules/rxjs/operator/windowToggle.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/windowToggle.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operator/windowToggle.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/windowToggle.js b/src/third_party/devtools/node_modules/rxjs/operator/windowToggle.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/windowToggle.js
rename to src/third_party/devtools/node_modules/rxjs/operator/windowToggle.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/windowToggle.js.map b/src/third_party/devtools/node_modules/rxjs/operator/windowToggle.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/windowToggle.js.map
rename to src/third_party/devtools/node_modules/rxjs/operator/windowToggle.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/windowWhen.d.ts b/src/third_party/devtools/node_modules/rxjs/operator/windowWhen.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/windowWhen.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operator/windowWhen.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/windowWhen.js b/src/third_party/devtools/node_modules/rxjs/operator/windowWhen.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/windowWhen.js
rename to src/third_party/devtools/node_modules/rxjs/operator/windowWhen.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/windowWhen.js.map b/src/third_party/devtools/node_modules/rxjs/operator/windowWhen.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/windowWhen.js.map
rename to src/third_party/devtools/node_modules/rxjs/operator/windowWhen.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/withLatestFrom.d.ts b/src/third_party/devtools/node_modules/rxjs/operator/withLatestFrom.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/withLatestFrom.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operator/withLatestFrom.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/withLatestFrom.js b/src/third_party/devtools/node_modules/rxjs/operator/withLatestFrom.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/withLatestFrom.js
rename to src/third_party/devtools/node_modules/rxjs/operator/withLatestFrom.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/withLatestFrom.js.map b/src/third_party/devtools/node_modules/rxjs/operator/withLatestFrom.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/withLatestFrom.js.map
rename to src/third_party/devtools/node_modules/rxjs/operator/withLatestFrom.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/zip.d.ts b/src/third_party/devtools/node_modules/rxjs/operator/zip.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/zip.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operator/zip.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/zip.js b/src/third_party/devtools/node_modules/rxjs/operator/zip.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/zip.js
rename to src/third_party/devtools/node_modules/rxjs/operator/zip.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/zip.js.map b/src/third_party/devtools/node_modules/rxjs/operator/zip.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/zip.js.map
rename to src/third_party/devtools/node_modules/rxjs/operator/zip.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/zipAll.d.ts b/src/third_party/devtools/node_modules/rxjs/operator/zipAll.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/zipAll.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operator/zipAll.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/zipAll.js b/src/third_party/devtools/node_modules/rxjs/operator/zipAll.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/zipAll.js
rename to src/third_party/devtools/node_modules/rxjs/operator/zipAll.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/zipAll.js.map b/src/third_party/devtools/node_modules/rxjs/operator/zipAll.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operator/zipAll.js.map
rename to src/third_party/devtools/node_modules/rxjs/operator/zipAll.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/audit.d.ts b/src/third_party/devtools/node_modules/rxjs/operators/audit.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/audit.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operators/audit.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/audit.js b/src/third_party/devtools/node_modules/rxjs/operators/audit.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/audit.js
rename to src/third_party/devtools/node_modules/rxjs/operators/audit.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/audit.js.map b/src/third_party/devtools/node_modules/rxjs/operators/audit.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/audit.js.map
rename to src/third_party/devtools/node_modules/rxjs/operators/audit.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/auditTime.d.ts b/src/third_party/devtools/node_modules/rxjs/operators/auditTime.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/auditTime.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operators/auditTime.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/auditTime.js b/src/third_party/devtools/node_modules/rxjs/operators/auditTime.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/auditTime.js
rename to src/third_party/devtools/node_modules/rxjs/operators/auditTime.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/auditTime.js.map b/src/third_party/devtools/node_modules/rxjs/operators/auditTime.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/auditTime.js.map
rename to src/third_party/devtools/node_modules/rxjs/operators/auditTime.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/buffer.d.ts b/src/third_party/devtools/node_modules/rxjs/operators/buffer.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/buffer.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operators/buffer.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/buffer.js b/src/third_party/devtools/node_modules/rxjs/operators/buffer.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/buffer.js
rename to src/third_party/devtools/node_modules/rxjs/operators/buffer.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/buffer.js.map b/src/third_party/devtools/node_modules/rxjs/operators/buffer.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/buffer.js.map
rename to src/third_party/devtools/node_modules/rxjs/operators/buffer.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/bufferCount.d.ts b/src/third_party/devtools/node_modules/rxjs/operators/bufferCount.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/bufferCount.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operators/bufferCount.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/bufferCount.js b/src/third_party/devtools/node_modules/rxjs/operators/bufferCount.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/bufferCount.js
rename to src/third_party/devtools/node_modules/rxjs/operators/bufferCount.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/bufferCount.js.map b/src/third_party/devtools/node_modules/rxjs/operators/bufferCount.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/bufferCount.js.map
rename to src/third_party/devtools/node_modules/rxjs/operators/bufferCount.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/bufferTime.d.ts b/src/third_party/devtools/node_modules/rxjs/operators/bufferTime.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/bufferTime.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operators/bufferTime.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/bufferTime.js b/src/third_party/devtools/node_modules/rxjs/operators/bufferTime.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/bufferTime.js
rename to src/third_party/devtools/node_modules/rxjs/operators/bufferTime.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/bufferTime.js.map b/src/third_party/devtools/node_modules/rxjs/operators/bufferTime.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/bufferTime.js.map
rename to src/third_party/devtools/node_modules/rxjs/operators/bufferTime.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/bufferToggle.d.ts b/src/third_party/devtools/node_modules/rxjs/operators/bufferToggle.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/bufferToggle.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operators/bufferToggle.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/bufferToggle.js b/src/third_party/devtools/node_modules/rxjs/operators/bufferToggle.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/bufferToggle.js
rename to src/third_party/devtools/node_modules/rxjs/operators/bufferToggle.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/bufferToggle.js.map b/src/third_party/devtools/node_modules/rxjs/operators/bufferToggle.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/bufferToggle.js.map
rename to src/third_party/devtools/node_modules/rxjs/operators/bufferToggle.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/bufferWhen.d.ts b/src/third_party/devtools/node_modules/rxjs/operators/bufferWhen.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/bufferWhen.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operators/bufferWhen.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/bufferWhen.js b/src/third_party/devtools/node_modules/rxjs/operators/bufferWhen.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/bufferWhen.js
rename to src/third_party/devtools/node_modules/rxjs/operators/bufferWhen.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/bufferWhen.js.map b/src/third_party/devtools/node_modules/rxjs/operators/bufferWhen.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/bufferWhen.js.map
rename to src/third_party/devtools/node_modules/rxjs/operators/bufferWhen.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/catchError.d.ts b/src/third_party/devtools/node_modules/rxjs/operators/catchError.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/catchError.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operators/catchError.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/catchError.js b/src/third_party/devtools/node_modules/rxjs/operators/catchError.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/catchError.js
rename to src/third_party/devtools/node_modules/rxjs/operators/catchError.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/catchError.js.map b/src/third_party/devtools/node_modules/rxjs/operators/catchError.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/catchError.js.map
rename to src/third_party/devtools/node_modules/rxjs/operators/catchError.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/combineAll.d.ts b/src/third_party/devtools/node_modules/rxjs/operators/combineAll.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/combineAll.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operators/combineAll.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/combineAll.js b/src/third_party/devtools/node_modules/rxjs/operators/combineAll.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/combineAll.js
rename to src/third_party/devtools/node_modules/rxjs/operators/combineAll.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/combineAll.js.map b/src/third_party/devtools/node_modules/rxjs/operators/combineAll.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/combineAll.js.map
rename to src/third_party/devtools/node_modules/rxjs/operators/combineAll.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/combineLatest.d.ts b/src/third_party/devtools/node_modules/rxjs/operators/combineLatest.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/combineLatest.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operators/combineLatest.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/combineLatest.js b/src/third_party/devtools/node_modules/rxjs/operators/combineLatest.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/combineLatest.js
rename to src/third_party/devtools/node_modules/rxjs/operators/combineLatest.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/combineLatest.js.map b/src/third_party/devtools/node_modules/rxjs/operators/combineLatest.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/combineLatest.js.map
rename to src/third_party/devtools/node_modules/rxjs/operators/combineLatest.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/concat.d.ts b/src/third_party/devtools/node_modules/rxjs/operators/concat.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/concat.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operators/concat.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/concat.js b/src/third_party/devtools/node_modules/rxjs/operators/concat.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/concat.js
rename to src/third_party/devtools/node_modules/rxjs/operators/concat.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/concat.js.map b/src/third_party/devtools/node_modules/rxjs/operators/concat.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/concat.js.map
rename to src/third_party/devtools/node_modules/rxjs/operators/concat.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/concatAll.d.ts b/src/third_party/devtools/node_modules/rxjs/operators/concatAll.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/concatAll.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operators/concatAll.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/concatAll.js b/src/third_party/devtools/node_modules/rxjs/operators/concatAll.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/concatAll.js
rename to src/third_party/devtools/node_modules/rxjs/operators/concatAll.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/concatAll.js.map b/src/third_party/devtools/node_modules/rxjs/operators/concatAll.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/concatAll.js.map
rename to src/third_party/devtools/node_modules/rxjs/operators/concatAll.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/concatMap.d.ts b/src/third_party/devtools/node_modules/rxjs/operators/concatMap.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/concatMap.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operators/concatMap.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/concatMap.js b/src/third_party/devtools/node_modules/rxjs/operators/concatMap.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/concatMap.js
rename to src/third_party/devtools/node_modules/rxjs/operators/concatMap.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/concatMap.js.map b/src/third_party/devtools/node_modules/rxjs/operators/concatMap.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/concatMap.js.map
rename to src/third_party/devtools/node_modules/rxjs/operators/concatMap.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/concatMapTo.d.ts b/src/third_party/devtools/node_modules/rxjs/operators/concatMapTo.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/concatMapTo.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operators/concatMapTo.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/concatMapTo.js b/src/third_party/devtools/node_modules/rxjs/operators/concatMapTo.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/concatMapTo.js
rename to src/third_party/devtools/node_modules/rxjs/operators/concatMapTo.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/concatMapTo.js.map b/src/third_party/devtools/node_modules/rxjs/operators/concatMapTo.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/concatMapTo.js.map
rename to src/third_party/devtools/node_modules/rxjs/operators/concatMapTo.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/count.d.ts b/src/third_party/devtools/node_modules/rxjs/operators/count.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/count.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operators/count.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/count.js b/src/third_party/devtools/node_modules/rxjs/operators/count.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/count.js
rename to src/third_party/devtools/node_modules/rxjs/operators/count.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/count.js.map b/src/third_party/devtools/node_modules/rxjs/operators/count.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/count.js.map
rename to src/third_party/devtools/node_modules/rxjs/operators/count.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/debounce.d.ts b/src/third_party/devtools/node_modules/rxjs/operators/debounce.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/debounce.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operators/debounce.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/debounce.js b/src/third_party/devtools/node_modules/rxjs/operators/debounce.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/debounce.js
rename to src/third_party/devtools/node_modules/rxjs/operators/debounce.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/debounce.js.map b/src/third_party/devtools/node_modules/rxjs/operators/debounce.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/debounce.js.map
rename to src/third_party/devtools/node_modules/rxjs/operators/debounce.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/debounceTime.d.ts b/src/third_party/devtools/node_modules/rxjs/operators/debounceTime.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/debounceTime.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operators/debounceTime.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/debounceTime.js b/src/third_party/devtools/node_modules/rxjs/operators/debounceTime.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/debounceTime.js
rename to src/third_party/devtools/node_modules/rxjs/operators/debounceTime.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/debounceTime.js.map b/src/third_party/devtools/node_modules/rxjs/operators/debounceTime.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/debounceTime.js.map
rename to src/third_party/devtools/node_modules/rxjs/operators/debounceTime.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/defaultIfEmpty.d.ts b/src/third_party/devtools/node_modules/rxjs/operators/defaultIfEmpty.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/defaultIfEmpty.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operators/defaultIfEmpty.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/defaultIfEmpty.js b/src/third_party/devtools/node_modules/rxjs/operators/defaultIfEmpty.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/defaultIfEmpty.js
rename to src/third_party/devtools/node_modules/rxjs/operators/defaultIfEmpty.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/defaultIfEmpty.js.map b/src/third_party/devtools/node_modules/rxjs/operators/defaultIfEmpty.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/defaultIfEmpty.js.map
rename to src/third_party/devtools/node_modules/rxjs/operators/defaultIfEmpty.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/delay.d.ts b/src/third_party/devtools/node_modules/rxjs/operators/delay.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/delay.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operators/delay.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/delay.js b/src/third_party/devtools/node_modules/rxjs/operators/delay.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/delay.js
rename to src/third_party/devtools/node_modules/rxjs/operators/delay.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/delay.js.map b/src/third_party/devtools/node_modules/rxjs/operators/delay.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/delay.js.map
rename to src/third_party/devtools/node_modules/rxjs/operators/delay.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/delayWhen.d.ts b/src/third_party/devtools/node_modules/rxjs/operators/delayWhen.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/delayWhen.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operators/delayWhen.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/delayWhen.js b/src/third_party/devtools/node_modules/rxjs/operators/delayWhen.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/delayWhen.js
rename to src/third_party/devtools/node_modules/rxjs/operators/delayWhen.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/delayWhen.js.map b/src/third_party/devtools/node_modules/rxjs/operators/delayWhen.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/delayWhen.js.map
rename to src/third_party/devtools/node_modules/rxjs/operators/delayWhen.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/dematerialize.d.ts b/src/third_party/devtools/node_modules/rxjs/operators/dematerialize.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/dematerialize.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operators/dematerialize.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/dematerialize.js b/src/third_party/devtools/node_modules/rxjs/operators/dematerialize.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/dematerialize.js
rename to src/third_party/devtools/node_modules/rxjs/operators/dematerialize.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/dematerialize.js.map b/src/third_party/devtools/node_modules/rxjs/operators/dematerialize.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/dematerialize.js.map
rename to src/third_party/devtools/node_modules/rxjs/operators/dematerialize.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/distinct.d.ts b/src/third_party/devtools/node_modules/rxjs/operators/distinct.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/distinct.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operators/distinct.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/distinct.js b/src/third_party/devtools/node_modules/rxjs/operators/distinct.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/distinct.js
rename to src/third_party/devtools/node_modules/rxjs/operators/distinct.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/distinct.js.map b/src/third_party/devtools/node_modules/rxjs/operators/distinct.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/distinct.js.map
rename to src/third_party/devtools/node_modules/rxjs/operators/distinct.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/distinctUntilChanged.d.ts b/src/third_party/devtools/node_modules/rxjs/operators/distinctUntilChanged.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/distinctUntilChanged.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operators/distinctUntilChanged.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/distinctUntilChanged.js b/src/third_party/devtools/node_modules/rxjs/operators/distinctUntilChanged.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/distinctUntilChanged.js
rename to src/third_party/devtools/node_modules/rxjs/operators/distinctUntilChanged.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/distinctUntilChanged.js.map b/src/third_party/devtools/node_modules/rxjs/operators/distinctUntilChanged.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/distinctUntilChanged.js.map
rename to src/third_party/devtools/node_modules/rxjs/operators/distinctUntilChanged.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/distinctUntilKeyChanged.d.ts b/src/third_party/devtools/node_modules/rxjs/operators/distinctUntilKeyChanged.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/distinctUntilKeyChanged.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operators/distinctUntilKeyChanged.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/distinctUntilKeyChanged.js b/src/third_party/devtools/node_modules/rxjs/operators/distinctUntilKeyChanged.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/distinctUntilKeyChanged.js
rename to src/third_party/devtools/node_modules/rxjs/operators/distinctUntilKeyChanged.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/distinctUntilKeyChanged.js.map b/src/third_party/devtools/node_modules/rxjs/operators/distinctUntilKeyChanged.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/distinctUntilKeyChanged.js.map
rename to src/third_party/devtools/node_modules/rxjs/operators/distinctUntilKeyChanged.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/elementAt.d.ts b/src/third_party/devtools/node_modules/rxjs/operators/elementAt.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/elementAt.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operators/elementAt.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/elementAt.js b/src/third_party/devtools/node_modules/rxjs/operators/elementAt.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/elementAt.js
rename to src/third_party/devtools/node_modules/rxjs/operators/elementAt.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/elementAt.js.map b/src/third_party/devtools/node_modules/rxjs/operators/elementAt.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/elementAt.js.map
rename to src/third_party/devtools/node_modules/rxjs/operators/elementAt.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/every.d.ts b/src/third_party/devtools/node_modules/rxjs/operators/every.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/every.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operators/every.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/every.js b/src/third_party/devtools/node_modules/rxjs/operators/every.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/every.js
rename to src/third_party/devtools/node_modules/rxjs/operators/every.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/every.js.map b/src/third_party/devtools/node_modules/rxjs/operators/every.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/every.js.map
rename to src/third_party/devtools/node_modules/rxjs/operators/every.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/exhaust.d.ts b/src/third_party/devtools/node_modules/rxjs/operators/exhaust.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/exhaust.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operators/exhaust.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/exhaust.js b/src/third_party/devtools/node_modules/rxjs/operators/exhaust.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/exhaust.js
rename to src/third_party/devtools/node_modules/rxjs/operators/exhaust.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/exhaust.js.map b/src/third_party/devtools/node_modules/rxjs/operators/exhaust.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/exhaust.js.map
rename to src/third_party/devtools/node_modules/rxjs/operators/exhaust.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/exhaustMap.d.ts b/src/third_party/devtools/node_modules/rxjs/operators/exhaustMap.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/exhaustMap.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operators/exhaustMap.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/exhaustMap.js b/src/third_party/devtools/node_modules/rxjs/operators/exhaustMap.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/exhaustMap.js
rename to src/third_party/devtools/node_modules/rxjs/operators/exhaustMap.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/exhaustMap.js.map b/src/third_party/devtools/node_modules/rxjs/operators/exhaustMap.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/exhaustMap.js.map
rename to src/third_party/devtools/node_modules/rxjs/operators/exhaustMap.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/expand.d.ts b/src/third_party/devtools/node_modules/rxjs/operators/expand.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/expand.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operators/expand.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/expand.js b/src/third_party/devtools/node_modules/rxjs/operators/expand.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/expand.js
rename to src/third_party/devtools/node_modules/rxjs/operators/expand.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/expand.js.map b/src/third_party/devtools/node_modules/rxjs/operators/expand.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/expand.js.map
rename to src/third_party/devtools/node_modules/rxjs/operators/expand.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/filter.d.ts b/src/third_party/devtools/node_modules/rxjs/operators/filter.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/filter.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operators/filter.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/filter.js b/src/third_party/devtools/node_modules/rxjs/operators/filter.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/filter.js
rename to src/third_party/devtools/node_modules/rxjs/operators/filter.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/filter.js.map b/src/third_party/devtools/node_modules/rxjs/operators/filter.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/filter.js.map
rename to src/third_party/devtools/node_modules/rxjs/operators/filter.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/finalize.d.ts b/src/third_party/devtools/node_modules/rxjs/operators/finalize.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/finalize.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operators/finalize.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/finalize.js b/src/third_party/devtools/node_modules/rxjs/operators/finalize.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/finalize.js
rename to src/third_party/devtools/node_modules/rxjs/operators/finalize.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/finalize.js.map b/src/third_party/devtools/node_modules/rxjs/operators/finalize.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/finalize.js.map
rename to src/third_party/devtools/node_modules/rxjs/operators/finalize.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/find.d.ts b/src/third_party/devtools/node_modules/rxjs/operators/find.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/find.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operators/find.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/find.js b/src/third_party/devtools/node_modules/rxjs/operators/find.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/find.js
rename to src/third_party/devtools/node_modules/rxjs/operators/find.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/find.js.map b/src/third_party/devtools/node_modules/rxjs/operators/find.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/find.js.map
rename to src/third_party/devtools/node_modules/rxjs/operators/find.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/findIndex.d.ts b/src/third_party/devtools/node_modules/rxjs/operators/findIndex.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/findIndex.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operators/findIndex.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/findIndex.js b/src/third_party/devtools/node_modules/rxjs/operators/findIndex.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/findIndex.js
rename to src/third_party/devtools/node_modules/rxjs/operators/findIndex.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/findIndex.js.map b/src/third_party/devtools/node_modules/rxjs/operators/findIndex.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/findIndex.js.map
rename to src/third_party/devtools/node_modules/rxjs/operators/findIndex.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/first.d.ts b/src/third_party/devtools/node_modules/rxjs/operators/first.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/first.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operators/first.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/first.js b/src/third_party/devtools/node_modules/rxjs/operators/first.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/first.js
rename to src/third_party/devtools/node_modules/rxjs/operators/first.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/first.js.map b/src/third_party/devtools/node_modules/rxjs/operators/first.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/first.js.map
rename to src/third_party/devtools/node_modules/rxjs/operators/first.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/groupBy.d.ts b/src/third_party/devtools/node_modules/rxjs/operators/groupBy.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/groupBy.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operators/groupBy.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/groupBy.js b/src/third_party/devtools/node_modules/rxjs/operators/groupBy.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/groupBy.js
rename to src/third_party/devtools/node_modules/rxjs/operators/groupBy.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/groupBy.js.map b/src/third_party/devtools/node_modules/rxjs/operators/groupBy.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/groupBy.js.map
rename to src/third_party/devtools/node_modules/rxjs/operators/groupBy.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/ignoreElements.d.ts b/src/third_party/devtools/node_modules/rxjs/operators/ignoreElements.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/ignoreElements.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operators/ignoreElements.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/ignoreElements.js b/src/third_party/devtools/node_modules/rxjs/operators/ignoreElements.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/ignoreElements.js
rename to src/third_party/devtools/node_modules/rxjs/operators/ignoreElements.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/ignoreElements.js.map b/src/third_party/devtools/node_modules/rxjs/operators/ignoreElements.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/ignoreElements.js.map
rename to src/third_party/devtools/node_modules/rxjs/operators/ignoreElements.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/index.d.ts b/src/third_party/devtools/node_modules/rxjs/operators/index.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/index.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operators/index.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/index.js b/src/third_party/devtools/node_modules/rxjs/operators/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/index.js
rename to src/third_party/devtools/node_modules/rxjs/operators/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/index.js.map b/src/third_party/devtools/node_modules/rxjs/operators/index.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/index.js.map
rename to src/third_party/devtools/node_modules/rxjs/operators/index.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/isEmpty.d.ts b/src/third_party/devtools/node_modules/rxjs/operators/isEmpty.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/isEmpty.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operators/isEmpty.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/isEmpty.js b/src/third_party/devtools/node_modules/rxjs/operators/isEmpty.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/isEmpty.js
rename to src/third_party/devtools/node_modules/rxjs/operators/isEmpty.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/isEmpty.js.map b/src/third_party/devtools/node_modules/rxjs/operators/isEmpty.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/isEmpty.js.map
rename to src/third_party/devtools/node_modules/rxjs/operators/isEmpty.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/last.d.ts b/src/third_party/devtools/node_modules/rxjs/operators/last.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/last.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operators/last.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/last.js b/src/third_party/devtools/node_modules/rxjs/operators/last.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/last.js
rename to src/third_party/devtools/node_modules/rxjs/operators/last.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/last.js.map b/src/third_party/devtools/node_modules/rxjs/operators/last.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/last.js.map
rename to src/third_party/devtools/node_modules/rxjs/operators/last.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/map.d.ts b/src/third_party/devtools/node_modules/rxjs/operators/map.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/map.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operators/map.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/map.js b/src/third_party/devtools/node_modules/rxjs/operators/map.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/map.js
rename to src/third_party/devtools/node_modules/rxjs/operators/map.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/map.js.map b/src/third_party/devtools/node_modules/rxjs/operators/map.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/map.js.map
rename to src/third_party/devtools/node_modules/rxjs/operators/map.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/mapTo.d.ts b/src/third_party/devtools/node_modules/rxjs/operators/mapTo.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/mapTo.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operators/mapTo.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/mapTo.js b/src/third_party/devtools/node_modules/rxjs/operators/mapTo.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/mapTo.js
rename to src/third_party/devtools/node_modules/rxjs/operators/mapTo.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/mapTo.js.map b/src/third_party/devtools/node_modules/rxjs/operators/mapTo.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/mapTo.js.map
rename to src/third_party/devtools/node_modules/rxjs/operators/mapTo.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/materialize.d.ts b/src/third_party/devtools/node_modules/rxjs/operators/materialize.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/materialize.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operators/materialize.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/materialize.js b/src/third_party/devtools/node_modules/rxjs/operators/materialize.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/materialize.js
rename to src/third_party/devtools/node_modules/rxjs/operators/materialize.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/materialize.js.map b/src/third_party/devtools/node_modules/rxjs/operators/materialize.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/materialize.js.map
rename to src/third_party/devtools/node_modules/rxjs/operators/materialize.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/max.d.ts b/src/third_party/devtools/node_modules/rxjs/operators/max.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/max.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operators/max.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/max.js b/src/third_party/devtools/node_modules/rxjs/operators/max.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/max.js
rename to src/third_party/devtools/node_modules/rxjs/operators/max.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/max.js.map b/src/third_party/devtools/node_modules/rxjs/operators/max.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/max.js.map
rename to src/third_party/devtools/node_modules/rxjs/operators/max.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/merge.d.ts b/src/third_party/devtools/node_modules/rxjs/operators/merge.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/merge.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operators/merge.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/merge.js b/src/third_party/devtools/node_modules/rxjs/operators/merge.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/merge.js
rename to src/third_party/devtools/node_modules/rxjs/operators/merge.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/merge.js.map b/src/third_party/devtools/node_modules/rxjs/operators/merge.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/merge.js.map
rename to src/third_party/devtools/node_modules/rxjs/operators/merge.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/mergeAll.d.ts b/src/third_party/devtools/node_modules/rxjs/operators/mergeAll.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/mergeAll.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operators/mergeAll.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/mergeAll.js b/src/third_party/devtools/node_modules/rxjs/operators/mergeAll.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/mergeAll.js
rename to src/third_party/devtools/node_modules/rxjs/operators/mergeAll.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/mergeAll.js.map b/src/third_party/devtools/node_modules/rxjs/operators/mergeAll.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/mergeAll.js.map
rename to src/third_party/devtools/node_modules/rxjs/operators/mergeAll.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/mergeMap.d.ts b/src/third_party/devtools/node_modules/rxjs/operators/mergeMap.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/mergeMap.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operators/mergeMap.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/mergeMap.js b/src/third_party/devtools/node_modules/rxjs/operators/mergeMap.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/mergeMap.js
rename to src/third_party/devtools/node_modules/rxjs/operators/mergeMap.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/mergeMap.js.map b/src/third_party/devtools/node_modules/rxjs/operators/mergeMap.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/mergeMap.js.map
rename to src/third_party/devtools/node_modules/rxjs/operators/mergeMap.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/mergeMapTo.d.ts b/src/third_party/devtools/node_modules/rxjs/operators/mergeMapTo.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/mergeMapTo.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operators/mergeMapTo.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/mergeMapTo.js b/src/third_party/devtools/node_modules/rxjs/operators/mergeMapTo.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/mergeMapTo.js
rename to src/third_party/devtools/node_modules/rxjs/operators/mergeMapTo.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/mergeMapTo.js.map b/src/third_party/devtools/node_modules/rxjs/operators/mergeMapTo.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/mergeMapTo.js.map
rename to src/third_party/devtools/node_modules/rxjs/operators/mergeMapTo.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/mergeScan.d.ts b/src/third_party/devtools/node_modules/rxjs/operators/mergeScan.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/mergeScan.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operators/mergeScan.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/mergeScan.js b/src/third_party/devtools/node_modules/rxjs/operators/mergeScan.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/mergeScan.js
rename to src/third_party/devtools/node_modules/rxjs/operators/mergeScan.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/mergeScan.js.map b/src/third_party/devtools/node_modules/rxjs/operators/mergeScan.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/mergeScan.js.map
rename to src/third_party/devtools/node_modules/rxjs/operators/mergeScan.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/min.d.ts b/src/third_party/devtools/node_modules/rxjs/operators/min.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/min.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operators/min.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/min.js b/src/third_party/devtools/node_modules/rxjs/operators/min.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/min.js
rename to src/third_party/devtools/node_modules/rxjs/operators/min.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/min.js.map b/src/third_party/devtools/node_modules/rxjs/operators/min.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/min.js.map
rename to src/third_party/devtools/node_modules/rxjs/operators/min.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/multicast.d.ts b/src/third_party/devtools/node_modules/rxjs/operators/multicast.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/multicast.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operators/multicast.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/multicast.js b/src/third_party/devtools/node_modules/rxjs/operators/multicast.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/multicast.js
rename to src/third_party/devtools/node_modules/rxjs/operators/multicast.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/multicast.js.map b/src/third_party/devtools/node_modules/rxjs/operators/multicast.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/multicast.js.map
rename to src/third_party/devtools/node_modules/rxjs/operators/multicast.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/observeOn.d.ts b/src/third_party/devtools/node_modules/rxjs/operators/observeOn.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/observeOn.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operators/observeOn.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/observeOn.js b/src/third_party/devtools/node_modules/rxjs/operators/observeOn.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/observeOn.js
rename to src/third_party/devtools/node_modules/rxjs/operators/observeOn.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/observeOn.js.map b/src/third_party/devtools/node_modules/rxjs/operators/observeOn.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/observeOn.js.map
rename to src/third_party/devtools/node_modules/rxjs/operators/observeOn.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/onErrorResumeNext.d.ts b/src/third_party/devtools/node_modules/rxjs/operators/onErrorResumeNext.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/onErrorResumeNext.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operators/onErrorResumeNext.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/onErrorResumeNext.js b/src/third_party/devtools/node_modules/rxjs/operators/onErrorResumeNext.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/onErrorResumeNext.js
rename to src/third_party/devtools/node_modules/rxjs/operators/onErrorResumeNext.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/onErrorResumeNext.js.map b/src/third_party/devtools/node_modules/rxjs/operators/onErrorResumeNext.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/onErrorResumeNext.js.map
rename to src/third_party/devtools/node_modules/rxjs/operators/onErrorResumeNext.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/package.json b/src/third_party/devtools/node_modules/rxjs/operators/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/package.json
rename to src/third_party/devtools/node_modules/rxjs/operators/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/pairwise.d.ts b/src/third_party/devtools/node_modules/rxjs/operators/pairwise.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/pairwise.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operators/pairwise.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/pairwise.js b/src/third_party/devtools/node_modules/rxjs/operators/pairwise.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/pairwise.js
rename to src/third_party/devtools/node_modules/rxjs/operators/pairwise.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/pairwise.js.map b/src/third_party/devtools/node_modules/rxjs/operators/pairwise.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/pairwise.js.map
rename to src/third_party/devtools/node_modules/rxjs/operators/pairwise.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/partition.d.ts b/src/third_party/devtools/node_modules/rxjs/operators/partition.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/partition.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operators/partition.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/partition.js b/src/third_party/devtools/node_modules/rxjs/operators/partition.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/partition.js
rename to src/third_party/devtools/node_modules/rxjs/operators/partition.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/partition.js.map b/src/third_party/devtools/node_modules/rxjs/operators/partition.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/partition.js.map
rename to src/third_party/devtools/node_modules/rxjs/operators/partition.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/pluck.d.ts b/src/third_party/devtools/node_modules/rxjs/operators/pluck.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/pluck.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operators/pluck.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/pluck.js b/src/third_party/devtools/node_modules/rxjs/operators/pluck.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/pluck.js
rename to src/third_party/devtools/node_modules/rxjs/operators/pluck.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/pluck.js.map b/src/third_party/devtools/node_modules/rxjs/operators/pluck.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/pluck.js.map
rename to src/third_party/devtools/node_modules/rxjs/operators/pluck.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/publish.d.ts b/src/third_party/devtools/node_modules/rxjs/operators/publish.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/publish.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operators/publish.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/publish.js b/src/third_party/devtools/node_modules/rxjs/operators/publish.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/publish.js
rename to src/third_party/devtools/node_modules/rxjs/operators/publish.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/publish.js.map b/src/third_party/devtools/node_modules/rxjs/operators/publish.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/publish.js.map
rename to src/third_party/devtools/node_modules/rxjs/operators/publish.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/publishBehavior.d.ts b/src/third_party/devtools/node_modules/rxjs/operators/publishBehavior.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/publishBehavior.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operators/publishBehavior.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/publishBehavior.js b/src/third_party/devtools/node_modules/rxjs/operators/publishBehavior.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/publishBehavior.js
rename to src/third_party/devtools/node_modules/rxjs/operators/publishBehavior.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/publishBehavior.js.map b/src/third_party/devtools/node_modules/rxjs/operators/publishBehavior.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/publishBehavior.js.map
rename to src/third_party/devtools/node_modules/rxjs/operators/publishBehavior.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/publishLast.d.ts b/src/third_party/devtools/node_modules/rxjs/operators/publishLast.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/publishLast.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operators/publishLast.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/publishLast.js b/src/third_party/devtools/node_modules/rxjs/operators/publishLast.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/publishLast.js
rename to src/third_party/devtools/node_modules/rxjs/operators/publishLast.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/publishLast.js.map b/src/third_party/devtools/node_modules/rxjs/operators/publishLast.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/publishLast.js.map
rename to src/third_party/devtools/node_modules/rxjs/operators/publishLast.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/publishReplay.d.ts b/src/third_party/devtools/node_modules/rxjs/operators/publishReplay.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/publishReplay.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operators/publishReplay.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/publishReplay.js b/src/third_party/devtools/node_modules/rxjs/operators/publishReplay.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/publishReplay.js
rename to src/third_party/devtools/node_modules/rxjs/operators/publishReplay.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/publishReplay.js.map b/src/third_party/devtools/node_modules/rxjs/operators/publishReplay.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/publishReplay.js.map
rename to src/third_party/devtools/node_modules/rxjs/operators/publishReplay.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/race.d.ts b/src/third_party/devtools/node_modules/rxjs/operators/race.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/race.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operators/race.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/race.js b/src/third_party/devtools/node_modules/rxjs/operators/race.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/race.js
rename to src/third_party/devtools/node_modules/rxjs/operators/race.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/race.js.map b/src/third_party/devtools/node_modules/rxjs/operators/race.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/race.js.map
rename to src/third_party/devtools/node_modules/rxjs/operators/race.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/reduce.d.ts b/src/third_party/devtools/node_modules/rxjs/operators/reduce.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/reduce.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operators/reduce.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/reduce.js b/src/third_party/devtools/node_modules/rxjs/operators/reduce.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/reduce.js
rename to src/third_party/devtools/node_modules/rxjs/operators/reduce.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/reduce.js.map b/src/third_party/devtools/node_modules/rxjs/operators/reduce.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/reduce.js.map
rename to src/third_party/devtools/node_modules/rxjs/operators/reduce.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/refCount.d.ts b/src/third_party/devtools/node_modules/rxjs/operators/refCount.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/refCount.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operators/refCount.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/refCount.js b/src/third_party/devtools/node_modules/rxjs/operators/refCount.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/refCount.js
rename to src/third_party/devtools/node_modules/rxjs/operators/refCount.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/refCount.js.map b/src/third_party/devtools/node_modules/rxjs/operators/refCount.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/refCount.js.map
rename to src/third_party/devtools/node_modules/rxjs/operators/refCount.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/repeat.d.ts b/src/third_party/devtools/node_modules/rxjs/operators/repeat.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/repeat.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operators/repeat.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/repeat.js b/src/third_party/devtools/node_modules/rxjs/operators/repeat.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/repeat.js
rename to src/third_party/devtools/node_modules/rxjs/operators/repeat.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/repeat.js.map b/src/third_party/devtools/node_modules/rxjs/operators/repeat.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/repeat.js.map
rename to src/third_party/devtools/node_modules/rxjs/operators/repeat.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/repeatWhen.d.ts b/src/third_party/devtools/node_modules/rxjs/operators/repeatWhen.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/repeatWhen.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operators/repeatWhen.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/repeatWhen.js b/src/third_party/devtools/node_modules/rxjs/operators/repeatWhen.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/repeatWhen.js
rename to src/third_party/devtools/node_modules/rxjs/operators/repeatWhen.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/repeatWhen.js.map b/src/third_party/devtools/node_modules/rxjs/operators/repeatWhen.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/repeatWhen.js.map
rename to src/third_party/devtools/node_modules/rxjs/operators/repeatWhen.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/retry.d.ts b/src/third_party/devtools/node_modules/rxjs/operators/retry.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/retry.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operators/retry.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/retry.js b/src/third_party/devtools/node_modules/rxjs/operators/retry.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/retry.js
rename to src/third_party/devtools/node_modules/rxjs/operators/retry.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/retry.js.map b/src/third_party/devtools/node_modules/rxjs/operators/retry.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/retry.js.map
rename to src/third_party/devtools/node_modules/rxjs/operators/retry.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/retryWhen.d.ts b/src/third_party/devtools/node_modules/rxjs/operators/retryWhen.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/retryWhen.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operators/retryWhen.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/retryWhen.js b/src/third_party/devtools/node_modules/rxjs/operators/retryWhen.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/retryWhen.js
rename to src/third_party/devtools/node_modules/rxjs/operators/retryWhen.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/retryWhen.js.map b/src/third_party/devtools/node_modules/rxjs/operators/retryWhen.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/retryWhen.js.map
rename to src/third_party/devtools/node_modules/rxjs/operators/retryWhen.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/sample.d.ts b/src/third_party/devtools/node_modules/rxjs/operators/sample.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/sample.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operators/sample.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/sample.js b/src/third_party/devtools/node_modules/rxjs/operators/sample.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/sample.js
rename to src/third_party/devtools/node_modules/rxjs/operators/sample.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/sample.js.map b/src/third_party/devtools/node_modules/rxjs/operators/sample.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/sample.js.map
rename to src/third_party/devtools/node_modules/rxjs/operators/sample.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/sampleTime.d.ts b/src/third_party/devtools/node_modules/rxjs/operators/sampleTime.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/sampleTime.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operators/sampleTime.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/sampleTime.js b/src/third_party/devtools/node_modules/rxjs/operators/sampleTime.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/sampleTime.js
rename to src/third_party/devtools/node_modules/rxjs/operators/sampleTime.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/sampleTime.js.map b/src/third_party/devtools/node_modules/rxjs/operators/sampleTime.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/sampleTime.js.map
rename to src/third_party/devtools/node_modules/rxjs/operators/sampleTime.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/scan.d.ts b/src/third_party/devtools/node_modules/rxjs/operators/scan.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/scan.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operators/scan.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/scan.js b/src/third_party/devtools/node_modules/rxjs/operators/scan.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/scan.js
rename to src/third_party/devtools/node_modules/rxjs/operators/scan.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/scan.js.map b/src/third_party/devtools/node_modules/rxjs/operators/scan.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/scan.js.map
rename to src/third_party/devtools/node_modules/rxjs/operators/scan.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/sequenceEqual.d.ts b/src/third_party/devtools/node_modules/rxjs/operators/sequenceEqual.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/sequenceEqual.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operators/sequenceEqual.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/sequenceEqual.js b/src/third_party/devtools/node_modules/rxjs/operators/sequenceEqual.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/sequenceEqual.js
rename to src/third_party/devtools/node_modules/rxjs/operators/sequenceEqual.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/sequenceEqual.js.map b/src/third_party/devtools/node_modules/rxjs/operators/sequenceEqual.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/sequenceEqual.js.map
rename to src/third_party/devtools/node_modules/rxjs/operators/sequenceEqual.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/share.d.ts b/src/third_party/devtools/node_modules/rxjs/operators/share.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/share.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operators/share.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/share.js b/src/third_party/devtools/node_modules/rxjs/operators/share.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/share.js
rename to src/third_party/devtools/node_modules/rxjs/operators/share.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/share.js.map b/src/third_party/devtools/node_modules/rxjs/operators/share.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/share.js.map
rename to src/third_party/devtools/node_modules/rxjs/operators/share.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/shareReplay.d.ts b/src/third_party/devtools/node_modules/rxjs/operators/shareReplay.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/shareReplay.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operators/shareReplay.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/shareReplay.js b/src/third_party/devtools/node_modules/rxjs/operators/shareReplay.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/shareReplay.js
rename to src/third_party/devtools/node_modules/rxjs/operators/shareReplay.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/shareReplay.js.map b/src/third_party/devtools/node_modules/rxjs/operators/shareReplay.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/shareReplay.js.map
rename to src/third_party/devtools/node_modules/rxjs/operators/shareReplay.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/single.d.ts b/src/third_party/devtools/node_modules/rxjs/operators/single.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/single.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operators/single.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/single.js b/src/third_party/devtools/node_modules/rxjs/operators/single.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/single.js
rename to src/third_party/devtools/node_modules/rxjs/operators/single.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/single.js.map b/src/third_party/devtools/node_modules/rxjs/operators/single.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/single.js.map
rename to src/third_party/devtools/node_modules/rxjs/operators/single.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/skip.d.ts b/src/third_party/devtools/node_modules/rxjs/operators/skip.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/skip.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operators/skip.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/skip.js b/src/third_party/devtools/node_modules/rxjs/operators/skip.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/skip.js
rename to src/third_party/devtools/node_modules/rxjs/operators/skip.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/skip.js.map b/src/third_party/devtools/node_modules/rxjs/operators/skip.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/skip.js.map
rename to src/third_party/devtools/node_modules/rxjs/operators/skip.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/skipLast.d.ts b/src/third_party/devtools/node_modules/rxjs/operators/skipLast.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/skipLast.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operators/skipLast.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/skipLast.js b/src/third_party/devtools/node_modules/rxjs/operators/skipLast.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/skipLast.js
rename to src/third_party/devtools/node_modules/rxjs/operators/skipLast.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/skipLast.js.map b/src/third_party/devtools/node_modules/rxjs/operators/skipLast.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/skipLast.js.map
rename to src/third_party/devtools/node_modules/rxjs/operators/skipLast.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/skipUntil.d.ts b/src/third_party/devtools/node_modules/rxjs/operators/skipUntil.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/skipUntil.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operators/skipUntil.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/skipUntil.js b/src/third_party/devtools/node_modules/rxjs/operators/skipUntil.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/skipUntil.js
rename to src/third_party/devtools/node_modules/rxjs/operators/skipUntil.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/skipUntil.js.map b/src/third_party/devtools/node_modules/rxjs/operators/skipUntil.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/skipUntil.js.map
rename to src/third_party/devtools/node_modules/rxjs/operators/skipUntil.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/skipWhile.d.ts b/src/third_party/devtools/node_modules/rxjs/operators/skipWhile.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/skipWhile.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operators/skipWhile.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/skipWhile.js b/src/third_party/devtools/node_modules/rxjs/operators/skipWhile.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/skipWhile.js
rename to src/third_party/devtools/node_modules/rxjs/operators/skipWhile.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/skipWhile.js.map b/src/third_party/devtools/node_modules/rxjs/operators/skipWhile.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/skipWhile.js.map
rename to src/third_party/devtools/node_modules/rxjs/operators/skipWhile.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/startWith.d.ts b/src/third_party/devtools/node_modules/rxjs/operators/startWith.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/startWith.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operators/startWith.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/startWith.js b/src/third_party/devtools/node_modules/rxjs/operators/startWith.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/startWith.js
rename to src/third_party/devtools/node_modules/rxjs/operators/startWith.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/startWith.js.map b/src/third_party/devtools/node_modules/rxjs/operators/startWith.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/startWith.js.map
rename to src/third_party/devtools/node_modules/rxjs/operators/startWith.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/subscribeOn.d.ts b/src/third_party/devtools/node_modules/rxjs/operators/subscribeOn.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/subscribeOn.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operators/subscribeOn.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/subscribeOn.js b/src/third_party/devtools/node_modules/rxjs/operators/subscribeOn.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/subscribeOn.js
rename to src/third_party/devtools/node_modules/rxjs/operators/subscribeOn.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/subscribeOn.js.map b/src/third_party/devtools/node_modules/rxjs/operators/subscribeOn.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/subscribeOn.js.map
rename to src/third_party/devtools/node_modules/rxjs/operators/subscribeOn.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/switchAll.d.ts b/src/third_party/devtools/node_modules/rxjs/operators/switchAll.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/switchAll.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operators/switchAll.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/switchAll.js b/src/third_party/devtools/node_modules/rxjs/operators/switchAll.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/switchAll.js
rename to src/third_party/devtools/node_modules/rxjs/operators/switchAll.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/switchAll.js.map b/src/third_party/devtools/node_modules/rxjs/operators/switchAll.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/switchAll.js.map
rename to src/third_party/devtools/node_modules/rxjs/operators/switchAll.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/switchMap.d.ts b/src/third_party/devtools/node_modules/rxjs/operators/switchMap.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/switchMap.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operators/switchMap.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/switchMap.js b/src/third_party/devtools/node_modules/rxjs/operators/switchMap.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/switchMap.js
rename to src/third_party/devtools/node_modules/rxjs/operators/switchMap.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/switchMap.js.map b/src/third_party/devtools/node_modules/rxjs/operators/switchMap.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/switchMap.js.map
rename to src/third_party/devtools/node_modules/rxjs/operators/switchMap.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/switchMapTo.d.ts b/src/third_party/devtools/node_modules/rxjs/operators/switchMapTo.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/switchMapTo.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operators/switchMapTo.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/switchMapTo.js b/src/third_party/devtools/node_modules/rxjs/operators/switchMapTo.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/switchMapTo.js
rename to src/third_party/devtools/node_modules/rxjs/operators/switchMapTo.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/switchMapTo.js.map b/src/third_party/devtools/node_modules/rxjs/operators/switchMapTo.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/switchMapTo.js.map
rename to src/third_party/devtools/node_modules/rxjs/operators/switchMapTo.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/take.d.ts b/src/third_party/devtools/node_modules/rxjs/operators/take.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/take.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operators/take.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/take.js b/src/third_party/devtools/node_modules/rxjs/operators/take.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/take.js
rename to src/third_party/devtools/node_modules/rxjs/operators/take.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/take.js.map b/src/third_party/devtools/node_modules/rxjs/operators/take.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/take.js.map
rename to src/third_party/devtools/node_modules/rxjs/operators/take.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/takeLast.d.ts b/src/third_party/devtools/node_modules/rxjs/operators/takeLast.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/takeLast.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operators/takeLast.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/takeLast.js b/src/third_party/devtools/node_modules/rxjs/operators/takeLast.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/takeLast.js
rename to src/third_party/devtools/node_modules/rxjs/operators/takeLast.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/takeLast.js.map b/src/third_party/devtools/node_modules/rxjs/operators/takeLast.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/takeLast.js.map
rename to src/third_party/devtools/node_modules/rxjs/operators/takeLast.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/takeUntil.d.ts b/src/third_party/devtools/node_modules/rxjs/operators/takeUntil.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/takeUntil.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operators/takeUntil.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/takeUntil.js b/src/third_party/devtools/node_modules/rxjs/operators/takeUntil.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/takeUntil.js
rename to src/third_party/devtools/node_modules/rxjs/operators/takeUntil.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/takeUntil.js.map b/src/third_party/devtools/node_modules/rxjs/operators/takeUntil.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/takeUntil.js.map
rename to src/third_party/devtools/node_modules/rxjs/operators/takeUntil.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/takeWhile.d.ts b/src/third_party/devtools/node_modules/rxjs/operators/takeWhile.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/takeWhile.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operators/takeWhile.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/takeWhile.js b/src/third_party/devtools/node_modules/rxjs/operators/takeWhile.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/takeWhile.js
rename to src/third_party/devtools/node_modules/rxjs/operators/takeWhile.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/takeWhile.js.map b/src/third_party/devtools/node_modules/rxjs/operators/takeWhile.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/takeWhile.js.map
rename to src/third_party/devtools/node_modules/rxjs/operators/takeWhile.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/tap.d.ts b/src/third_party/devtools/node_modules/rxjs/operators/tap.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/tap.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operators/tap.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/tap.js b/src/third_party/devtools/node_modules/rxjs/operators/tap.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/tap.js
rename to src/third_party/devtools/node_modules/rxjs/operators/tap.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/tap.js.map b/src/third_party/devtools/node_modules/rxjs/operators/tap.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/tap.js.map
rename to src/third_party/devtools/node_modules/rxjs/operators/tap.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/throttle.d.ts b/src/third_party/devtools/node_modules/rxjs/operators/throttle.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/throttle.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operators/throttle.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/throttle.js b/src/third_party/devtools/node_modules/rxjs/operators/throttle.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/throttle.js
rename to src/third_party/devtools/node_modules/rxjs/operators/throttle.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/throttle.js.map b/src/third_party/devtools/node_modules/rxjs/operators/throttle.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/throttle.js.map
rename to src/third_party/devtools/node_modules/rxjs/operators/throttle.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/throttleTime.d.ts b/src/third_party/devtools/node_modules/rxjs/operators/throttleTime.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/throttleTime.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operators/throttleTime.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/throttleTime.js b/src/third_party/devtools/node_modules/rxjs/operators/throttleTime.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/throttleTime.js
rename to src/third_party/devtools/node_modules/rxjs/operators/throttleTime.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/throttleTime.js.map b/src/third_party/devtools/node_modules/rxjs/operators/throttleTime.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/throttleTime.js.map
rename to src/third_party/devtools/node_modules/rxjs/operators/throttleTime.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/throwIfEmpty.d.ts b/src/third_party/devtools/node_modules/rxjs/operators/throwIfEmpty.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/throwIfEmpty.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operators/throwIfEmpty.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/throwIfEmpty.js b/src/third_party/devtools/node_modules/rxjs/operators/throwIfEmpty.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/throwIfEmpty.js
rename to src/third_party/devtools/node_modules/rxjs/operators/throwIfEmpty.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/throwIfEmpty.js.map b/src/third_party/devtools/node_modules/rxjs/operators/throwIfEmpty.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/throwIfEmpty.js.map
rename to src/third_party/devtools/node_modules/rxjs/operators/throwIfEmpty.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/timeInterval.d.ts b/src/third_party/devtools/node_modules/rxjs/operators/timeInterval.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/timeInterval.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operators/timeInterval.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/timeInterval.js b/src/third_party/devtools/node_modules/rxjs/operators/timeInterval.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/timeInterval.js
rename to src/third_party/devtools/node_modules/rxjs/operators/timeInterval.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/timeInterval.js.map b/src/third_party/devtools/node_modules/rxjs/operators/timeInterval.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/timeInterval.js.map
rename to src/third_party/devtools/node_modules/rxjs/operators/timeInterval.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/timeout.d.ts b/src/third_party/devtools/node_modules/rxjs/operators/timeout.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/timeout.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operators/timeout.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/timeout.js b/src/third_party/devtools/node_modules/rxjs/operators/timeout.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/timeout.js
rename to src/third_party/devtools/node_modules/rxjs/operators/timeout.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/timeout.js.map b/src/third_party/devtools/node_modules/rxjs/operators/timeout.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/timeout.js.map
rename to src/third_party/devtools/node_modules/rxjs/operators/timeout.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/timeoutWith.d.ts b/src/third_party/devtools/node_modules/rxjs/operators/timeoutWith.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/timeoutWith.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operators/timeoutWith.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/timeoutWith.js b/src/third_party/devtools/node_modules/rxjs/operators/timeoutWith.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/timeoutWith.js
rename to src/third_party/devtools/node_modules/rxjs/operators/timeoutWith.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/timeoutWith.js.map b/src/third_party/devtools/node_modules/rxjs/operators/timeoutWith.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/timeoutWith.js.map
rename to src/third_party/devtools/node_modules/rxjs/operators/timeoutWith.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/timestamp.d.ts b/src/third_party/devtools/node_modules/rxjs/operators/timestamp.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/timestamp.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operators/timestamp.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/timestamp.js b/src/third_party/devtools/node_modules/rxjs/operators/timestamp.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/timestamp.js
rename to src/third_party/devtools/node_modules/rxjs/operators/timestamp.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/timestamp.js.map b/src/third_party/devtools/node_modules/rxjs/operators/timestamp.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/timestamp.js.map
rename to src/third_party/devtools/node_modules/rxjs/operators/timestamp.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/toArray.d.ts b/src/third_party/devtools/node_modules/rxjs/operators/toArray.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/toArray.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operators/toArray.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/toArray.js b/src/third_party/devtools/node_modules/rxjs/operators/toArray.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/toArray.js
rename to src/third_party/devtools/node_modules/rxjs/operators/toArray.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/toArray.js.map b/src/third_party/devtools/node_modules/rxjs/operators/toArray.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/toArray.js.map
rename to src/third_party/devtools/node_modules/rxjs/operators/toArray.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/window.d.ts b/src/third_party/devtools/node_modules/rxjs/operators/window.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/window.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operators/window.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/window.js b/src/third_party/devtools/node_modules/rxjs/operators/window.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/window.js
rename to src/third_party/devtools/node_modules/rxjs/operators/window.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/window.js.map b/src/third_party/devtools/node_modules/rxjs/operators/window.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/window.js.map
rename to src/third_party/devtools/node_modules/rxjs/operators/window.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/windowCount.d.ts b/src/third_party/devtools/node_modules/rxjs/operators/windowCount.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/windowCount.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operators/windowCount.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/windowCount.js b/src/third_party/devtools/node_modules/rxjs/operators/windowCount.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/windowCount.js
rename to src/third_party/devtools/node_modules/rxjs/operators/windowCount.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/windowCount.js.map b/src/third_party/devtools/node_modules/rxjs/operators/windowCount.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/windowCount.js.map
rename to src/third_party/devtools/node_modules/rxjs/operators/windowCount.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/windowTime.d.ts b/src/third_party/devtools/node_modules/rxjs/operators/windowTime.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/windowTime.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operators/windowTime.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/windowTime.js b/src/third_party/devtools/node_modules/rxjs/operators/windowTime.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/windowTime.js
rename to src/third_party/devtools/node_modules/rxjs/operators/windowTime.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/windowTime.js.map b/src/third_party/devtools/node_modules/rxjs/operators/windowTime.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/windowTime.js.map
rename to src/third_party/devtools/node_modules/rxjs/operators/windowTime.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/windowToggle.d.ts b/src/third_party/devtools/node_modules/rxjs/operators/windowToggle.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/windowToggle.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operators/windowToggle.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/windowToggle.js b/src/third_party/devtools/node_modules/rxjs/operators/windowToggle.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/windowToggle.js
rename to src/third_party/devtools/node_modules/rxjs/operators/windowToggle.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/windowToggle.js.map b/src/third_party/devtools/node_modules/rxjs/operators/windowToggle.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/windowToggle.js.map
rename to src/third_party/devtools/node_modules/rxjs/operators/windowToggle.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/windowWhen.d.ts b/src/third_party/devtools/node_modules/rxjs/operators/windowWhen.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/windowWhen.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operators/windowWhen.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/windowWhen.js b/src/third_party/devtools/node_modules/rxjs/operators/windowWhen.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/windowWhen.js
rename to src/third_party/devtools/node_modules/rxjs/operators/windowWhen.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/windowWhen.js.map b/src/third_party/devtools/node_modules/rxjs/operators/windowWhen.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/windowWhen.js.map
rename to src/third_party/devtools/node_modules/rxjs/operators/windowWhen.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/withLatestFrom.d.ts b/src/third_party/devtools/node_modules/rxjs/operators/withLatestFrom.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/withLatestFrom.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operators/withLatestFrom.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/withLatestFrom.js b/src/third_party/devtools/node_modules/rxjs/operators/withLatestFrom.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/withLatestFrom.js
rename to src/third_party/devtools/node_modules/rxjs/operators/withLatestFrom.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/withLatestFrom.js.map b/src/third_party/devtools/node_modules/rxjs/operators/withLatestFrom.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/withLatestFrom.js.map
rename to src/third_party/devtools/node_modules/rxjs/operators/withLatestFrom.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/zip.d.ts b/src/third_party/devtools/node_modules/rxjs/operators/zip.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/zip.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operators/zip.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/zip.js b/src/third_party/devtools/node_modules/rxjs/operators/zip.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/zip.js
rename to src/third_party/devtools/node_modules/rxjs/operators/zip.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/zip.js.map b/src/third_party/devtools/node_modules/rxjs/operators/zip.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/zip.js.map
rename to src/third_party/devtools/node_modules/rxjs/operators/zip.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/zipAll.d.ts b/src/third_party/devtools/node_modules/rxjs/operators/zipAll.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/zipAll.d.ts
rename to src/third_party/devtools/node_modules/rxjs/operators/zipAll.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/zipAll.js b/src/third_party/devtools/node_modules/rxjs/operators/zipAll.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/zipAll.js
rename to src/third_party/devtools/node_modules/rxjs/operators/zipAll.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/zipAll.js.map b/src/third_party/devtools/node_modules/rxjs/operators/zipAll.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/operators/zipAll.js.map
rename to src/third_party/devtools/node_modules/rxjs/operators/zipAll.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/package.json b/src/third_party/devtools/node_modules/rxjs/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/package.json
rename to src/third_party/devtools/node_modules/rxjs/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/scheduler/animationFrame.d.ts b/src/third_party/devtools/node_modules/rxjs/scheduler/animationFrame.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/scheduler/animationFrame.d.ts
rename to src/third_party/devtools/node_modules/rxjs/scheduler/animationFrame.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/scheduler/animationFrame.js b/src/third_party/devtools/node_modules/rxjs/scheduler/animationFrame.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/scheduler/animationFrame.js
rename to src/third_party/devtools/node_modules/rxjs/scheduler/animationFrame.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/scheduler/animationFrame.js.map b/src/third_party/devtools/node_modules/rxjs/scheduler/animationFrame.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/scheduler/animationFrame.js.map
rename to src/third_party/devtools/node_modules/rxjs/scheduler/animationFrame.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/scheduler/asap.d.ts b/src/third_party/devtools/node_modules/rxjs/scheduler/asap.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/scheduler/asap.d.ts
rename to src/third_party/devtools/node_modules/rxjs/scheduler/asap.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/scheduler/asap.js b/src/third_party/devtools/node_modules/rxjs/scheduler/asap.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/scheduler/asap.js
rename to src/third_party/devtools/node_modules/rxjs/scheduler/asap.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/scheduler/asap.js.map b/src/third_party/devtools/node_modules/rxjs/scheduler/asap.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/scheduler/asap.js.map
rename to src/third_party/devtools/node_modules/rxjs/scheduler/asap.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/scheduler/async.d.ts b/src/third_party/devtools/node_modules/rxjs/scheduler/async.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/scheduler/async.d.ts
rename to src/third_party/devtools/node_modules/rxjs/scheduler/async.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/scheduler/async.js b/src/third_party/devtools/node_modules/rxjs/scheduler/async.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/scheduler/async.js
rename to src/third_party/devtools/node_modules/rxjs/scheduler/async.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/scheduler/async.js.map b/src/third_party/devtools/node_modules/rxjs/scheduler/async.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/scheduler/async.js.map
rename to src/third_party/devtools/node_modules/rxjs/scheduler/async.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/scheduler/queue.d.ts b/src/third_party/devtools/node_modules/rxjs/scheduler/queue.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/scheduler/queue.d.ts
rename to src/third_party/devtools/node_modules/rxjs/scheduler/queue.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/scheduler/queue.js b/src/third_party/devtools/node_modules/rxjs/scheduler/queue.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/scheduler/queue.js
rename to src/third_party/devtools/node_modules/rxjs/scheduler/queue.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/scheduler/queue.js.map b/src/third_party/devtools/node_modules/rxjs/scheduler/queue.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/scheduler/queue.js.map
rename to src/third_party/devtools/node_modules/rxjs/scheduler/queue.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/AsyncSubject.ts b/src/third_party/devtools/node_modules/rxjs/src/AsyncSubject.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/AsyncSubject.ts
rename to src/third_party/devtools/node_modules/rxjs/src/AsyncSubject.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/BehaviorSubject.ts b/src/third_party/devtools/node_modules/rxjs/src/BehaviorSubject.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/BehaviorSubject.ts
rename to src/third_party/devtools/node_modules/rxjs/src/BehaviorSubject.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/InnerSubscriber.ts b/src/third_party/devtools/node_modules/rxjs/src/InnerSubscriber.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/InnerSubscriber.ts
rename to src/third_party/devtools/node_modules/rxjs/src/InnerSubscriber.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/LICENSE.txt b/src/third_party/devtools/node_modules/rxjs/src/LICENSE.txt
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/LICENSE.txt
rename to src/third_party/devtools/node_modules/rxjs/src/LICENSE.txt
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/MiscJSDoc.ts b/src/third_party/devtools/node_modules/rxjs/src/MiscJSDoc.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/MiscJSDoc.ts
rename to src/third_party/devtools/node_modules/rxjs/src/MiscJSDoc.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/Notification.ts b/src/third_party/devtools/node_modules/rxjs/src/Notification.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/Notification.ts
rename to src/third_party/devtools/node_modules/rxjs/src/Notification.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/Observable.ts b/src/third_party/devtools/node_modules/rxjs/src/Observable.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/Observable.ts
rename to src/third_party/devtools/node_modules/rxjs/src/Observable.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/Observer.ts b/src/third_party/devtools/node_modules/rxjs/src/Observer.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/Observer.ts
rename to src/third_party/devtools/node_modules/rxjs/src/Observer.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/Operator.ts b/src/third_party/devtools/node_modules/rxjs/src/Operator.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/Operator.ts
rename to src/third_party/devtools/node_modules/rxjs/src/Operator.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/OuterSubscriber.ts b/src/third_party/devtools/node_modules/rxjs/src/OuterSubscriber.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/OuterSubscriber.ts
rename to src/third_party/devtools/node_modules/rxjs/src/OuterSubscriber.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/README.md b/src/third_party/devtools/node_modules/rxjs/src/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/README.md
rename to src/third_party/devtools/node_modules/rxjs/src/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/ReplaySubject.ts b/src/third_party/devtools/node_modules/rxjs/src/ReplaySubject.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/ReplaySubject.ts
rename to src/third_party/devtools/node_modules/rxjs/src/ReplaySubject.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/Rx.global.js b/src/third_party/devtools/node_modules/rxjs/src/Rx.global.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/Rx.global.js
rename to src/third_party/devtools/node_modules/rxjs/src/Rx.global.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/Rx.ts b/src/third_party/devtools/node_modules/rxjs/src/Rx.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/Rx.ts
rename to src/third_party/devtools/node_modules/rxjs/src/Rx.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/Scheduler.ts b/src/third_party/devtools/node_modules/rxjs/src/Scheduler.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/Scheduler.ts
rename to src/third_party/devtools/node_modules/rxjs/src/Scheduler.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/Subject.ts b/src/third_party/devtools/node_modules/rxjs/src/Subject.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/Subject.ts
rename to src/third_party/devtools/node_modules/rxjs/src/Subject.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/SubjectSubscription.ts b/src/third_party/devtools/node_modules/rxjs/src/SubjectSubscription.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/SubjectSubscription.ts
rename to src/third_party/devtools/node_modules/rxjs/src/SubjectSubscription.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/Subscriber.ts b/src/third_party/devtools/node_modules/rxjs/src/Subscriber.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/Subscriber.ts
rename to src/third_party/devtools/node_modules/rxjs/src/Subscriber.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/Subscription.ts b/src/third_party/devtools/node_modules/rxjs/src/Subscription.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/Subscription.ts
rename to src/third_party/devtools/node_modules/rxjs/src/Subscription.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/observable/bindCallback.ts b/src/third_party/devtools/node_modules/rxjs/src/add/observable/bindCallback.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/observable/bindCallback.ts
rename to src/third_party/devtools/node_modules/rxjs/src/add/observable/bindCallback.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/observable/bindNodeCallback.ts b/src/third_party/devtools/node_modules/rxjs/src/add/observable/bindNodeCallback.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/observable/bindNodeCallback.ts
rename to src/third_party/devtools/node_modules/rxjs/src/add/observable/bindNodeCallback.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/observable/combineLatest.ts b/src/third_party/devtools/node_modules/rxjs/src/add/observable/combineLatest.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/observable/combineLatest.ts
rename to src/third_party/devtools/node_modules/rxjs/src/add/observable/combineLatest.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/observable/concat.ts b/src/third_party/devtools/node_modules/rxjs/src/add/observable/concat.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/observable/concat.ts
rename to src/third_party/devtools/node_modules/rxjs/src/add/observable/concat.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/observable/defer.ts b/src/third_party/devtools/node_modules/rxjs/src/add/observable/defer.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/observable/defer.ts
rename to src/third_party/devtools/node_modules/rxjs/src/add/observable/defer.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/observable/dom/ajax.ts b/src/third_party/devtools/node_modules/rxjs/src/add/observable/dom/ajax.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/observable/dom/ajax.ts
rename to src/third_party/devtools/node_modules/rxjs/src/add/observable/dom/ajax.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/observable/dom/webSocket.ts b/src/third_party/devtools/node_modules/rxjs/src/add/observable/dom/webSocket.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/observable/dom/webSocket.ts
rename to src/third_party/devtools/node_modules/rxjs/src/add/observable/dom/webSocket.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/observable/empty.ts b/src/third_party/devtools/node_modules/rxjs/src/add/observable/empty.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/observable/empty.ts
rename to src/third_party/devtools/node_modules/rxjs/src/add/observable/empty.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/observable/forkJoin.ts b/src/third_party/devtools/node_modules/rxjs/src/add/observable/forkJoin.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/observable/forkJoin.ts
rename to src/third_party/devtools/node_modules/rxjs/src/add/observable/forkJoin.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/observable/from.ts b/src/third_party/devtools/node_modules/rxjs/src/add/observable/from.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/observable/from.ts
rename to src/third_party/devtools/node_modules/rxjs/src/add/observable/from.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/observable/fromEvent.ts b/src/third_party/devtools/node_modules/rxjs/src/add/observable/fromEvent.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/observable/fromEvent.ts
rename to src/third_party/devtools/node_modules/rxjs/src/add/observable/fromEvent.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/observable/fromEventPattern.ts b/src/third_party/devtools/node_modules/rxjs/src/add/observable/fromEventPattern.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/observable/fromEventPattern.ts
rename to src/third_party/devtools/node_modules/rxjs/src/add/observable/fromEventPattern.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/observable/fromPromise.ts b/src/third_party/devtools/node_modules/rxjs/src/add/observable/fromPromise.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/observable/fromPromise.ts
rename to src/third_party/devtools/node_modules/rxjs/src/add/observable/fromPromise.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/observable/generate.ts b/src/third_party/devtools/node_modules/rxjs/src/add/observable/generate.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/observable/generate.ts
rename to src/third_party/devtools/node_modules/rxjs/src/add/observable/generate.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/observable/if.ts b/src/third_party/devtools/node_modules/rxjs/src/add/observable/if.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/observable/if.ts
rename to src/third_party/devtools/node_modules/rxjs/src/add/observable/if.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/observable/interval.ts b/src/third_party/devtools/node_modules/rxjs/src/add/observable/interval.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/observable/interval.ts
rename to src/third_party/devtools/node_modules/rxjs/src/add/observable/interval.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/observable/merge.ts b/src/third_party/devtools/node_modules/rxjs/src/add/observable/merge.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/observable/merge.ts
rename to src/third_party/devtools/node_modules/rxjs/src/add/observable/merge.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/observable/never.ts b/src/third_party/devtools/node_modules/rxjs/src/add/observable/never.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/observable/never.ts
rename to src/third_party/devtools/node_modules/rxjs/src/add/observable/never.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/observable/of.ts b/src/third_party/devtools/node_modules/rxjs/src/add/observable/of.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/observable/of.ts
rename to src/third_party/devtools/node_modules/rxjs/src/add/observable/of.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/observable/onErrorResumeNext.ts b/src/third_party/devtools/node_modules/rxjs/src/add/observable/onErrorResumeNext.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/observable/onErrorResumeNext.ts
rename to src/third_party/devtools/node_modules/rxjs/src/add/observable/onErrorResumeNext.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/observable/pairs.ts b/src/third_party/devtools/node_modules/rxjs/src/add/observable/pairs.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/observable/pairs.ts
rename to src/third_party/devtools/node_modules/rxjs/src/add/observable/pairs.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/observable/race.ts b/src/third_party/devtools/node_modules/rxjs/src/add/observable/race.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/observable/race.ts
rename to src/third_party/devtools/node_modules/rxjs/src/add/observable/race.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/observable/range.ts b/src/third_party/devtools/node_modules/rxjs/src/add/observable/range.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/observable/range.ts
rename to src/third_party/devtools/node_modules/rxjs/src/add/observable/range.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/observable/throw.ts b/src/third_party/devtools/node_modules/rxjs/src/add/observable/throw.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/observable/throw.ts
rename to src/third_party/devtools/node_modules/rxjs/src/add/observable/throw.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/observable/timer.ts b/src/third_party/devtools/node_modules/rxjs/src/add/observable/timer.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/observable/timer.ts
rename to src/third_party/devtools/node_modules/rxjs/src/add/observable/timer.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/observable/using.ts b/src/third_party/devtools/node_modules/rxjs/src/add/observable/using.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/observable/using.ts
rename to src/third_party/devtools/node_modules/rxjs/src/add/observable/using.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/observable/zip.ts b/src/third_party/devtools/node_modules/rxjs/src/add/observable/zip.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/observable/zip.ts
rename to src/third_party/devtools/node_modules/rxjs/src/add/observable/zip.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/audit.ts b/src/third_party/devtools/node_modules/rxjs/src/add/operator/audit.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/audit.ts
rename to src/third_party/devtools/node_modules/rxjs/src/add/operator/audit.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/auditTime.ts b/src/third_party/devtools/node_modules/rxjs/src/add/operator/auditTime.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/auditTime.ts
rename to src/third_party/devtools/node_modules/rxjs/src/add/operator/auditTime.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/buffer.ts b/src/third_party/devtools/node_modules/rxjs/src/add/operator/buffer.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/buffer.ts
rename to src/third_party/devtools/node_modules/rxjs/src/add/operator/buffer.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/bufferCount.ts b/src/third_party/devtools/node_modules/rxjs/src/add/operator/bufferCount.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/bufferCount.ts
rename to src/third_party/devtools/node_modules/rxjs/src/add/operator/bufferCount.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/bufferTime.ts b/src/third_party/devtools/node_modules/rxjs/src/add/operator/bufferTime.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/bufferTime.ts
rename to src/third_party/devtools/node_modules/rxjs/src/add/operator/bufferTime.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/bufferToggle.ts b/src/third_party/devtools/node_modules/rxjs/src/add/operator/bufferToggle.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/bufferToggle.ts
rename to src/third_party/devtools/node_modules/rxjs/src/add/operator/bufferToggle.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/bufferWhen.ts b/src/third_party/devtools/node_modules/rxjs/src/add/operator/bufferWhen.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/bufferWhen.ts
rename to src/third_party/devtools/node_modules/rxjs/src/add/operator/bufferWhen.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/catch.ts b/src/third_party/devtools/node_modules/rxjs/src/add/operator/catch.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/catch.ts
rename to src/third_party/devtools/node_modules/rxjs/src/add/operator/catch.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/combineAll.ts b/src/third_party/devtools/node_modules/rxjs/src/add/operator/combineAll.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/combineAll.ts
rename to src/third_party/devtools/node_modules/rxjs/src/add/operator/combineAll.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/combineLatest.ts b/src/third_party/devtools/node_modules/rxjs/src/add/operator/combineLatest.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/combineLatest.ts
rename to src/third_party/devtools/node_modules/rxjs/src/add/operator/combineLatest.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/concat.ts b/src/third_party/devtools/node_modules/rxjs/src/add/operator/concat.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/concat.ts
rename to src/third_party/devtools/node_modules/rxjs/src/add/operator/concat.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/concatAll.ts b/src/third_party/devtools/node_modules/rxjs/src/add/operator/concatAll.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/concatAll.ts
rename to src/third_party/devtools/node_modules/rxjs/src/add/operator/concatAll.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/concatMap.ts b/src/third_party/devtools/node_modules/rxjs/src/add/operator/concatMap.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/concatMap.ts
rename to src/third_party/devtools/node_modules/rxjs/src/add/operator/concatMap.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/concatMapTo.ts b/src/third_party/devtools/node_modules/rxjs/src/add/operator/concatMapTo.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/concatMapTo.ts
rename to src/third_party/devtools/node_modules/rxjs/src/add/operator/concatMapTo.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/count.ts b/src/third_party/devtools/node_modules/rxjs/src/add/operator/count.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/count.ts
rename to src/third_party/devtools/node_modules/rxjs/src/add/operator/count.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/debounce.ts b/src/third_party/devtools/node_modules/rxjs/src/add/operator/debounce.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/debounce.ts
rename to src/third_party/devtools/node_modules/rxjs/src/add/operator/debounce.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/debounceTime.ts b/src/third_party/devtools/node_modules/rxjs/src/add/operator/debounceTime.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/debounceTime.ts
rename to src/third_party/devtools/node_modules/rxjs/src/add/operator/debounceTime.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/defaultIfEmpty.ts b/src/third_party/devtools/node_modules/rxjs/src/add/operator/defaultIfEmpty.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/defaultIfEmpty.ts
rename to src/third_party/devtools/node_modules/rxjs/src/add/operator/defaultIfEmpty.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/delay.ts b/src/third_party/devtools/node_modules/rxjs/src/add/operator/delay.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/delay.ts
rename to src/third_party/devtools/node_modules/rxjs/src/add/operator/delay.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/delayWhen.ts b/src/third_party/devtools/node_modules/rxjs/src/add/operator/delayWhen.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/delayWhen.ts
rename to src/third_party/devtools/node_modules/rxjs/src/add/operator/delayWhen.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/dematerialize.ts b/src/third_party/devtools/node_modules/rxjs/src/add/operator/dematerialize.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/dematerialize.ts
rename to src/third_party/devtools/node_modules/rxjs/src/add/operator/dematerialize.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/distinct.ts b/src/third_party/devtools/node_modules/rxjs/src/add/operator/distinct.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/distinct.ts
rename to src/third_party/devtools/node_modules/rxjs/src/add/operator/distinct.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/distinctUntilChanged.ts b/src/third_party/devtools/node_modules/rxjs/src/add/operator/distinctUntilChanged.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/distinctUntilChanged.ts
rename to src/third_party/devtools/node_modules/rxjs/src/add/operator/distinctUntilChanged.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/distinctUntilKeyChanged.ts b/src/third_party/devtools/node_modules/rxjs/src/add/operator/distinctUntilKeyChanged.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/distinctUntilKeyChanged.ts
rename to src/third_party/devtools/node_modules/rxjs/src/add/operator/distinctUntilKeyChanged.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/do.ts b/src/third_party/devtools/node_modules/rxjs/src/add/operator/do.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/do.ts
rename to src/third_party/devtools/node_modules/rxjs/src/add/operator/do.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/elementAt.ts b/src/third_party/devtools/node_modules/rxjs/src/add/operator/elementAt.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/elementAt.ts
rename to src/third_party/devtools/node_modules/rxjs/src/add/operator/elementAt.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/every.ts b/src/third_party/devtools/node_modules/rxjs/src/add/operator/every.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/every.ts
rename to src/third_party/devtools/node_modules/rxjs/src/add/operator/every.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/exhaust.ts b/src/third_party/devtools/node_modules/rxjs/src/add/operator/exhaust.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/exhaust.ts
rename to src/third_party/devtools/node_modules/rxjs/src/add/operator/exhaust.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/exhaustMap.ts b/src/third_party/devtools/node_modules/rxjs/src/add/operator/exhaustMap.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/exhaustMap.ts
rename to src/third_party/devtools/node_modules/rxjs/src/add/operator/exhaustMap.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/expand.ts b/src/third_party/devtools/node_modules/rxjs/src/add/operator/expand.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/expand.ts
rename to src/third_party/devtools/node_modules/rxjs/src/add/operator/expand.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/filter.ts b/src/third_party/devtools/node_modules/rxjs/src/add/operator/filter.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/filter.ts
rename to src/third_party/devtools/node_modules/rxjs/src/add/operator/filter.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/finally.ts b/src/third_party/devtools/node_modules/rxjs/src/add/operator/finally.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/finally.ts
rename to src/third_party/devtools/node_modules/rxjs/src/add/operator/finally.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/find.ts b/src/third_party/devtools/node_modules/rxjs/src/add/operator/find.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/find.ts
rename to src/third_party/devtools/node_modules/rxjs/src/add/operator/find.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/findIndex.ts b/src/third_party/devtools/node_modules/rxjs/src/add/operator/findIndex.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/findIndex.ts
rename to src/third_party/devtools/node_modules/rxjs/src/add/operator/findIndex.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/first.ts b/src/third_party/devtools/node_modules/rxjs/src/add/operator/first.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/first.ts
rename to src/third_party/devtools/node_modules/rxjs/src/add/operator/first.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/groupBy.ts b/src/third_party/devtools/node_modules/rxjs/src/add/operator/groupBy.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/groupBy.ts
rename to src/third_party/devtools/node_modules/rxjs/src/add/operator/groupBy.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/ignoreElements.ts b/src/third_party/devtools/node_modules/rxjs/src/add/operator/ignoreElements.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/ignoreElements.ts
rename to src/third_party/devtools/node_modules/rxjs/src/add/operator/ignoreElements.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/isEmpty.ts b/src/third_party/devtools/node_modules/rxjs/src/add/operator/isEmpty.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/isEmpty.ts
rename to src/third_party/devtools/node_modules/rxjs/src/add/operator/isEmpty.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/last.ts b/src/third_party/devtools/node_modules/rxjs/src/add/operator/last.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/last.ts
rename to src/third_party/devtools/node_modules/rxjs/src/add/operator/last.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/let.ts b/src/third_party/devtools/node_modules/rxjs/src/add/operator/let.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/let.ts
rename to src/third_party/devtools/node_modules/rxjs/src/add/operator/let.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/map.ts b/src/third_party/devtools/node_modules/rxjs/src/add/operator/map.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/map.ts
rename to src/third_party/devtools/node_modules/rxjs/src/add/operator/map.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/mapTo.ts b/src/third_party/devtools/node_modules/rxjs/src/add/operator/mapTo.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/mapTo.ts
rename to src/third_party/devtools/node_modules/rxjs/src/add/operator/mapTo.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/materialize.ts b/src/third_party/devtools/node_modules/rxjs/src/add/operator/materialize.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/materialize.ts
rename to src/third_party/devtools/node_modules/rxjs/src/add/operator/materialize.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/max.ts b/src/third_party/devtools/node_modules/rxjs/src/add/operator/max.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/max.ts
rename to src/third_party/devtools/node_modules/rxjs/src/add/operator/max.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/merge.ts b/src/third_party/devtools/node_modules/rxjs/src/add/operator/merge.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/merge.ts
rename to src/third_party/devtools/node_modules/rxjs/src/add/operator/merge.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/mergeAll.ts b/src/third_party/devtools/node_modules/rxjs/src/add/operator/mergeAll.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/mergeAll.ts
rename to src/third_party/devtools/node_modules/rxjs/src/add/operator/mergeAll.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/mergeMap.ts b/src/third_party/devtools/node_modules/rxjs/src/add/operator/mergeMap.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/mergeMap.ts
rename to src/third_party/devtools/node_modules/rxjs/src/add/operator/mergeMap.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/mergeMapTo.ts b/src/third_party/devtools/node_modules/rxjs/src/add/operator/mergeMapTo.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/mergeMapTo.ts
rename to src/third_party/devtools/node_modules/rxjs/src/add/operator/mergeMapTo.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/mergeScan.ts b/src/third_party/devtools/node_modules/rxjs/src/add/operator/mergeScan.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/mergeScan.ts
rename to src/third_party/devtools/node_modules/rxjs/src/add/operator/mergeScan.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/min.ts b/src/third_party/devtools/node_modules/rxjs/src/add/operator/min.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/min.ts
rename to src/third_party/devtools/node_modules/rxjs/src/add/operator/min.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/multicast.ts b/src/third_party/devtools/node_modules/rxjs/src/add/operator/multicast.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/multicast.ts
rename to src/third_party/devtools/node_modules/rxjs/src/add/operator/multicast.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/observeOn.ts b/src/third_party/devtools/node_modules/rxjs/src/add/operator/observeOn.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/observeOn.ts
rename to src/third_party/devtools/node_modules/rxjs/src/add/operator/observeOn.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/onErrorResumeNext.ts b/src/third_party/devtools/node_modules/rxjs/src/add/operator/onErrorResumeNext.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/onErrorResumeNext.ts
rename to src/third_party/devtools/node_modules/rxjs/src/add/operator/onErrorResumeNext.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/pairwise.ts b/src/third_party/devtools/node_modules/rxjs/src/add/operator/pairwise.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/pairwise.ts
rename to src/third_party/devtools/node_modules/rxjs/src/add/operator/pairwise.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/partition.ts b/src/third_party/devtools/node_modules/rxjs/src/add/operator/partition.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/partition.ts
rename to src/third_party/devtools/node_modules/rxjs/src/add/operator/partition.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/pluck.ts b/src/third_party/devtools/node_modules/rxjs/src/add/operator/pluck.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/pluck.ts
rename to src/third_party/devtools/node_modules/rxjs/src/add/operator/pluck.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/publish.ts b/src/third_party/devtools/node_modules/rxjs/src/add/operator/publish.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/publish.ts
rename to src/third_party/devtools/node_modules/rxjs/src/add/operator/publish.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/publishBehavior.ts b/src/third_party/devtools/node_modules/rxjs/src/add/operator/publishBehavior.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/publishBehavior.ts
rename to src/third_party/devtools/node_modules/rxjs/src/add/operator/publishBehavior.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/publishLast.ts b/src/third_party/devtools/node_modules/rxjs/src/add/operator/publishLast.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/publishLast.ts
rename to src/third_party/devtools/node_modules/rxjs/src/add/operator/publishLast.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/publishReplay.ts b/src/third_party/devtools/node_modules/rxjs/src/add/operator/publishReplay.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/publishReplay.ts
rename to src/third_party/devtools/node_modules/rxjs/src/add/operator/publishReplay.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/race.ts b/src/third_party/devtools/node_modules/rxjs/src/add/operator/race.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/race.ts
rename to src/third_party/devtools/node_modules/rxjs/src/add/operator/race.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/reduce.ts b/src/third_party/devtools/node_modules/rxjs/src/add/operator/reduce.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/reduce.ts
rename to src/third_party/devtools/node_modules/rxjs/src/add/operator/reduce.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/repeat.ts b/src/third_party/devtools/node_modules/rxjs/src/add/operator/repeat.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/repeat.ts
rename to src/third_party/devtools/node_modules/rxjs/src/add/operator/repeat.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/repeatWhen.ts b/src/third_party/devtools/node_modules/rxjs/src/add/operator/repeatWhen.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/repeatWhen.ts
rename to src/third_party/devtools/node_modules/rxjs/src/add/operator/repeatWhen.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/retry.ts b/src/third_party/devtools/node_modules/rxjs/src/add/operator/retry.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/retry.ts
rename to src/third_party/devtools/node_modules/rxjs/src/add/operator/retry.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/retryWhen.ts b/src/third_party/devtools/node_modules/rxjs/src/add/operator/retryWhen.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/retryWhen.ts
rename to src/third_party/devtools/node_modules/rxjs/src/add/operator/retryWhen.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/sample.ts b/src/third_party/devtools/node_modules/rxjs/src/add/operator/sample.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/sample.ts
rename to src/third_party/devtools/node_modules/rxjs/src/add/operator/sample.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/sampleTime.ts b/src/third_party/devtools/node_modules/rxjs/src/add/operator/sampleTime.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/sampleTime.ts
rename to src/third_party/devtools/node_modules/rxjs/src/add/operator/sampleTime.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/scan.ts b/src/third_party/devtools/node_modules/rxjs/src/add/operator/scan.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/scan.ts
rename to src/third_party/devtools/node_modules/rxjs/src/add/operator/scan.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/sequenceEqual.ts b/src/third_party/devtools/node_modules/rxjs/src/add/operator/sequenceEqual.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/sequenceEqual.ts
rename to src/third_party/devtools/node_modules/rxjs/src/add/operator/sequenceEqual.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/share.ts b/src/third_party/devtools/node_modules/rxjs/src/add/operator/share.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/share.ts
rename to src/third_party/devtools/node_modules/rxjs/src/add/operator/share.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/shareReplay.ts b/src/third_party/devtools/node_modules/rxjs/src/add/operator/shareReplay.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/shareReplay.ts
rename to src/third_party/devtools/node_modules/rxjs/src/add/operator/shareReplay.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/single.ts b/src/third_party/devtools/node_modules/rxjs/src/add/operator/single.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/single.ts
rename to src/third_party/devtools/node_modules/rxjs/src/add/operator/single.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/skip.ts b/src/third_party/devtools/node_modules/rxjs/src/add/operator/skip.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/skip.ts
rename to src/third_party/devtools/node_modules/rxjs/src/add/operator/skip.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/skipLast.ts b/src/third_party/devtools/node_modules/rxjs/src/add/operator/skipLast.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/skipLast.ts
rename to src/third_party/devtools/node_modules/rxjs/src/add/operator/skipLast.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/skipUntil.ts b/src/third_party/devtools/node_modules/rxjs/src/add/operator/skipUntil.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/skipUntil.ts
rename to src/third_party/devtools/node_modules/rxjs/src/add/operator/skipUntil.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/skipWhile.ts b/src/third_party/devtools/node_modules/rxjs/src/add/operator/skipWhile.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/skipWhile.ts
rename to src/third_party/devtools/node_modules/rxjs/src/add/operator/skipWhile.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/startWith.ts b/src/third_party/devtools/node_modules/rxjs/src/add/operator/startWith.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/startWith.ts
rename to src/third_party/devtools/node_modules/rxjs/src/add/operator/startWith.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/subscribeOn.ts b/src/third_party/devtools/node_modules/rxjs/src/add/operator/subscribeOn.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/subscribeOn.ts
rename to src/third_party/devtools/node_modules/rxjs/src/add/operator/subscribeOn.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/switch.ts b/src/third_party/devtools/node_modules/rxjs/src/add/operator/switch.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/switch.ts
rename to src/third_party/devtools/node_modules/rxjs/src/add/operator/switch.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/switchMap.ts b/src/third_party/devtools/node_modules/rxjs/src/add/operator/switchMap.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/switchMap.ts
rename to src/third_party/devtools/node_modules/rxjs/src/add/operator/switchMap.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/switchMapTo.ts b/src/third_party/devtools/node_modules/rxjs/src/add/operator/switchMapTo.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/switchMapTo.ts
rename to src/third_party/devtools/node_modules/rxjs/src/add/operator/switchMapTo.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/take.ts b/src/third_party/devtools/node_modules/rxjs/src/add/operator/take.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/take.ts
rename to src/third_party/devtools/node_modules/rxjs/src/add/operator/take.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/takeLast.ts b/src/third_party/devtools/node_modules/rxjs/src/add/operator/takeLast.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/takeLast.ts
rename to src/third_party/devtools/node_modules/rxjs/src/add/operator/takeLast.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/takeUntil.ts b/src/third_party/devtools/node_modules/rxjs/src/add/operator/takeUntil.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/takeUntil.ts
rename to src/third_party/devtools/node_modules/rxjs/src/add/operator/takeUntil.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/takeWhile.ts b/src/third_party/devtools/node_modules/rxjs/src/add/operator/takeWhile.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/takeWhile.ts
rename to src/third_party/devtools/node_modules/rxjs/src/add/operator/takeWhile.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/throttle.ts b/src/third_party/devtools/node_modules/rxjs/src/add/operator/throttle.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/throttle.ts
rename to src/third_party/devtools/node_modules/rxjs/src/add/operator/throttle.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/throttleTime.ts b/src/third_party/devtools/node_modules/rxjs/src/add/operator/throttleTime.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/throttleTime.ts
rename to src/third_party/devtools/node_modules/rxjs/src/add/operator/throttleTime.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/timeInterval.ts b/src/third_party/devtools/node_modules/rxjs/src/add/operator/timeInterval.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/timeInterval.ts
rename to src/third_party/devtools/node_modules/rxjs/src/add/operator/timeInterval.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/timeout.ts b/src/third_party/devtools/node_modules/rxjs/src/add/operator/timeout.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/timeout.ts
rename to src/third_party/devtools/node_modules/rxjs/src/add/operator/timeout.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/timeoutWith.ts b/src/third_party/devtools/node_modules/rxjs/src/add/operator/timeoutWith.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/timeoutWith.ts
rename to src/third_party/devtools/node_modules/rxjs/src/add/operator/timeoutWith.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/timestamp.ts b/src/third_party/devtools/node_modules/rxjs/src/add/operator/timestamp.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/timestamp.ts
rename to src/third_party/devtools/node_modules/rxjs/src/add/operator/timestamp.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/toArray.ts b/src/third_party/devtools/node_modules/rxjs/src/add/operator/toArray.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/toArray.ts
rename to src/third_party/devtools/node_modules/rxjs/src/add/operator/toArray.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/toPromise.ts b/src/third_party/devtools/node_modules/rxjs/src/add/operator/toPromise.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/toPromise.ts
rename to src/third_party/devtools/node_modules/rxjs/src/add/operator/toPromise.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/window.ts b/src/third_party/devtools/node_modules/rxjs/src/add/operator/window.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/window.ts
rename to src/third_party/devtools/node_modules/rxjs/src/add/operator/window.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/windowCount.ts b/src/third_party/devtools/node_modules/rxjs/src/add/operator/windowCount.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/windowCount.ts
rename to src/third_party/devtools/node_modules/rxjs/src/add/operator/windowCount.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/windowTime.ts b/src/third_party/devtools/node_modules/rxjs/src/add/operator/windowTime.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/windowTime.ts
rename to src/third_party/devtools/node_modules/rxjs/src/add/operator/windowTime.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/windowToggle.ts b/src/third_party/devtools/node_modules/rxjs/src/add/operator/windowToggle.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/windowToggle.ts
rename to src/third_party/devtools/node_modules/rxjs/src/add/operator/windowToggle.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/windowWhen.ts b/src/third_party/devtools/node_modules/rxjs/src/add/operator/windowWhen.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/windowWhen.ts
rename to src/third_party/devtools/node_modules/rxjs/src/add/operator/windowWhen.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/withLatestFrom.ts b/src/third_party/devtools/node_modules/rxjs/src/add/operator/withLatestFrom.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/withLatestFrom.ts
rename to src/third_party/devtools/node_modules/rxjs/src/add/operator/withLatestFrom.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/zip.ts b/src/third_party/devtools/node_modules/rxjs/src/add/operator/zip.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/zip.ts
rename to src/third_party/devtools/node_modules/rxjs/src/add/operator/zip.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/zipAll.ts b/src/third_party/devtools/node_modules/rxjs/src/add/operator/zipAll.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/add/operator/zipAll.ts
rename to src/third_party/devtools/node_modules/rxjs/src/add/operator/zipAll.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/ajax/index.ts b/src/third_party/devtools/node_modules/rxjs/src/ajax/index.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/ajax/index.ts
rename to src/third_party/devtools/node_modules/rxjs/src/ajax/index.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/ajax/package.json b/src/third_party/devtools/node_modules/rxjs/src/ajax/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/ajax/package.json
rename to src/third_party/devtools/node_modules/rxjs/src/ajax/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/fetch/index.ts b/src/third_party/devtools/node_modules/rxjs/src/fetch/index.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/fetch/index.ts
rename to src/third_party/devtools/node_modules/rxjs/src/fetch/index.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/fetch/package.json b/src/third_party/devtools/node_modules/rxjs/src/fetch/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/fetch/package.json
rename to src/third_party/devtools/node_modules/rxjs/src/fetch/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/index.ts b/src/third_party/devtools/node_modules/rxjs/src/index.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/index.ts
rename to src/third_party/devtools/node_modules/rxjs/src/index.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/interfaces.ts b/src/third_party/devtools/node_modules/rxjs/src/interfaces.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/interfaces.ts
rename to src/third_party/devtools/node_modules/rxjs/src/interfaces.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal-compatibility/index.ts b/src/third_party/devtools/node_modules/rxjs/src/internal-compatibility/index.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal-compatibility/index.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal-compatibility/index.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal-compatibility/package.json b/src/third_party/devtools/node_modules/rxjs/src/internal-compatibility/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal-compatibility/package.json
rename to src/third_party/devtools/node_modules/rxjs/src/internal-compatibility/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/AsyncSubject.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/AsyncSubject.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/AsyncSubject.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/AsyncSubject.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/BehaviorSubject.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/BehaviorSubject.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/BehaviorSubject.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/BehaviorSubject.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/InnerSubscriber.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/InnerSubscriber.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/InnerSubscriber.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/InnerSubscriber.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/Notification.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/Notification.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/Notification.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/Notification.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/Observable.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/Observable.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/Observable.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/Observable.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/Observer.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/Observer.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/Observer.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/Observer.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/Operator.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/Operator.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/Operator.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/Operator.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/OuterSubscriber.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/OuterSubscriber.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/OuterSubscriber.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/OuterSubscriber.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/ReplaySubject.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/ReplaySubject.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/ReplaySubject.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/ReplaySubject.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/Rx.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/Rx.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/Rx.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/Rx.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/Scheduler.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/Scheduler.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/Scheduler.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/Scheduler.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/Subject.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/Subject.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/Subject.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/Subject.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/SubjectSubscription.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/SubjectSubscription.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/SubjectSubscription.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/SubjectSubscription.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/Subscriber.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/Subscriber.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/Subscriber.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/Subscriber.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/Subscription.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/Subscription.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/Subscription.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/Subscription.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/config.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/config.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/config.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/config.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/observable/ConnectableObservable.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/observable/ConnectableObservable.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/observable/ConnectableObservable.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/observable/ConnectableObservable.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/observable/SubscribeOnObservable.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/observable/SubscribeOnObservable.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/observable/SubscribeOnObservable.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/observable/SubscribeOnObservable.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/observable/bindCallback.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/observable/bindCallback.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/observable/bindCallback.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/observable/bindCallback.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/observable/bindNodeCallback.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/observable/bindNodeCallback.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/observable/bindNodeCallback.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/observable/bindNodeCallback.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/observable/combineLatest.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/observable/combineLatest.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/observable/combineLatest.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/observable/combineLatest.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/observable/concat.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/observable/concat.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/observable/concat.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/observable/concat.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/observable/defer.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/observable/defer.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/observable/defer.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/observable/defer.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/observable/dom/AjaxObservable.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/observable/dom/AjaxObservable.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/observable/dom/AjaxObservable.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/observable/dom/AjaxObservable.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/observable/dom/MiscJSDoc.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/observable/dom/MiscJSDoc.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/observable/dom/MiscJSDoc.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/observable/dom/MiscJSDoc.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/observable/dom/WebSocketSubject.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/observable/dom/WebSocketSubject.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/observable/dom/WebSocketSubject.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/observable/dom/WebSocketSubject.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/observable/dom/ajax.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/observable/dom/ajax.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/observable/dom/ajax.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/observable/dom/ajax.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/observable/dom/fetch.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/observable/dom/fetch.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/observable/dom/fetch.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/observable/dom/fetch.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/observable/dom/webSocket.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/observable/dom/webSocket.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/observable/dom/webSocket.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/observable/dom/webSocket.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/observable/empty.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/observable/empty.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/observable/empty.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/observable/empty.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/observable/forkJoin.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/observable/forkJoin.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/observable/forkJoin.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/observable/forkJoin.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/observable/from.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/observable/from.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/observable/from.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/observable/from.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/observable/fromArray.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/observable/fromArray.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/observable/fromArray.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/observable/fromArray.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/observable/fromEvent.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/observable/fromEvent.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/observable/fromEvent.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/observable/fromEvent.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/observable/fromEventPattern.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/observable/fromEventPattern.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/observable/fromEventPattern.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/observable/fromEventPattern.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/observable/fromIterable.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/observable/fromIterable.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/observable/fromIterable.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/observable/fromIterable.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/observable/fromObservable.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/observable/fromObservable.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/observable/fromObservable.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/observable/fromObservable.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/observable/fromPromise.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/observable/fromPromise.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/observable/fromPromise.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/observable/fromPromise.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/observable/generate.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/observable/generate.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/observable/generate.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/observable/generate.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/observable/iif.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/observable/iif.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/observable/iif.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/observable/iif.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/observable/interval.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/observable/interval.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/observable/interval.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/observable/interval.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/observable/merge.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/observable/merge.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/observable/merge.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/observable/merge.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/observable/never.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/observable/never.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/observable/never.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/observable/never.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/observable/of.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/observable/of.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/observable/of.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/observable/of.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/observable/onErrorResumeNext.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/observable/onErrorResumeNext.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/observable/onErrorResumeNext.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/observable/onErrorResumeNext.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/observable/pairs.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/observable/pairs.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/observable/pairs.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/observable/pairs.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/observable/partition.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/observable/partition.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/observable/partition.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/observable/partition.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/observable/race.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/observable/race.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/observable/race.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/observable/race.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/observable/range.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/observable/range.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/observable/range.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/observable/range.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/observable/throwError.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/observable/throwError.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/observable/throwError.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/observable/throwError.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/observable/timer.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/observable/timer.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/observable/timer.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/observable/timer.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/observable/using.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/observable/using.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/observable/using.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/observable/using.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/observable/zip.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/observable/zip.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/observable/zip.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/observable/zip.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/audit.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/operators/audit.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/audit.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/operators/audit.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/auditTime.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/operators/auditTime.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/auditTime.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/operators/auditTime.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/buffer.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/operators/buffer.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/buffer.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/operators/buffer.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/bufferCount.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/operators/bufferCount.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/bufferCount.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/operators/bufferCount.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/bufferTime.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/operators/bufferTime.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/bufferTime.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/operators/bufferTime.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/bufferToggle.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/operators/bufferToggle.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/bufferToggle.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/operators/bufferToggle.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/bufferWhen.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/operators/bufferWhen.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/bufferWhen.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/operators/bufferWhen.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/catchError.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/operators/catchError.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/catchError.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/operators/catchError.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/combineAll.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/operators/combineAll.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/combineAll.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/operators/combineAll.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/combineLatest.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/operators/combineLatest.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/combineLatest.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/operators/combineLatest.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/concat.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/operators/concat.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/concat.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/operators/concat.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/concatAll.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/operators/concatAll.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/concatAll.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/operators/concatAll.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/concatMap.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/operators/concatMap.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/concatMap.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/operators/concatMap.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/concatMapTo.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/operators/concatMapTo.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/concatMapTo.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/operators/concatMapTo.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/count.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/operators/count.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/count.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/operators/count.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/debounce.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/operators/debounce.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/debounce.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/operators/debounce.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/debounceTime.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/operators/debounceTime.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/debounceTime.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/operators/debounceTime.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/defaultIfEmpty.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/operators/defaultIfEmpty.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/defaultIfEmpty.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/operators/defaultIfEmpty.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/delay.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/operators/delay.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/delay.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/operators/delay.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/delayWhen.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/operators/delayWhen.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/delayWhen.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/operators/delayWhen.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/dematerialize.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/operators/dematerialize.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/dematerialize.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/operators/dematerialize.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/distinct.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/operators/distinct.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/distinct.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/operators/distinct.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/distinctUntilChanged.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/operators/distinctUntilChanged.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/distinctUntilChanged.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/operators/distinctUntilChanged.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/distinctUntilKeyChanged.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/operators/distinctUntilKeyChanged.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/distinctUntilKeyChanged.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/operators/distinctUntilKeyChanged.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/elementAt.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/operators/elementAt.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/elementAt.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/operators/elementAt.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/endWith.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/operators/endWith.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/endWith.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/operators/endWith.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/every.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/operators/every.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/every.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/operators/every.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/exhaust.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/operators/exhaust.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/exhaust.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/operators/exhaust.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/exhaustMap.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/operators/exhaustMap.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/exhaustMap.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/operators/exhaustMap.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/expand.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/operators/expand.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/expand.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/operators/expand.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/filter.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/operators/filter.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/filter.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/operators/filter.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/finalize.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/operators/finalize.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/finalize.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/operators/finalize.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/find.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/operators/find.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/find.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/operators/find.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/findIndex.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/operators/findIndex.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/findIndex.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/operators/findIndex.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/first.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/operators/first.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/first.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/operators/first.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/groupBy.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/operators/groupBy.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/groupBy.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/operators/groupBy.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/ignoreElements.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/operators/ignoreElements.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/ignoreElements.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/operators/ignoreElements.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/index.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/operators/index.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/index.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/operators/index.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/isEmpty.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/operators/isEmpty.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/isEmpty.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/operators/isEmpty.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/last.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/operators/last.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/last.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/operators/last.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/map.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/operators/map.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/map.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/operators/map.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/mapTo.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/operators/mapTo.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/mapTo.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/operators/mapTo.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/materialize.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/operators/materialize.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/materialize.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/operators/materialize.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/max.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/operators/max.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/max.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/operators/max.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/merge.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/operators/merge.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/merge.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/operators/merge.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/mergeAll.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/operators/mergeAll.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/mergeAll.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/operators/mergeAll.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/mergeMap.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/operators/mergeMap.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/mergeMap.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/operators/mergeMap.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/mergeMapTo.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/operators/mergeMapTo.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/mergeMapTo.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/operators/mergeMapTo.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/mergeScan.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/operators/mergeScan.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/mergeScan.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/operators/mergeScan.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/min.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/operators/min.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/min.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/operators/min.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/multicast.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/operators/multicast.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/multicast.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/operators/multicast.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/observeOn.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/operators/observeOn.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/observeOn.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/operators/observeOn.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/onErrorResumeNext.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/operators/onErrorResumeNext.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/onErrorResumeNext.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/operators/onErrorResumeNext.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/pairwise.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/operators/pairwise.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/pairwise.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/operators/pairwise.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/partition.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/operators/partition.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/partition.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/operators/partition.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/pluck.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/operators/pluck.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/pluck.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/operators/pluck.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/publish.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/operators/publish.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/publish.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/operators/publish.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/publishBehavior.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/operators/publishBehavior.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/publishBehavior.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/operators/publishBehavior.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/publishLast.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/operators/publishLast.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/publishLast.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/operators/publishLast.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/publishReplay.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/operators/publishReplay.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/publishReplay.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/operators/publishReplay.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/race.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/operators/race.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/race.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/operators/race.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/reduce.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/operators/reduce.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/reduce.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/operators/reduce.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/refCount.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/operators/refCount.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/refCount.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/operators/refCount.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/repeat.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/operators/repeat.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/repeat.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/operators/repeat.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/repeatWhen.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/operators/repeatWhen.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/repeatWhen.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/operators/repeatWhen.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/retry.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/operators/retry.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/retry.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/operators/retry.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/retryWhen.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/operators/retryWhen.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/retryWhen.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/operators/retryWhen.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/sample.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/operators/sample.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/sample.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/operators/sample.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/sampleTime.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/operators/sampleTime.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/sampleTime.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/operators/sampleTime.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/scan.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/operators/scan.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/scan.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/operators/scan.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/sequenceEqual.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/operators/sequenceEqual.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/sequenceEqual.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/operators/sequenceEqual.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/share.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/operators/share.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/share.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/operators/share.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/shareReplay.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/operators/shareReplay.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/shareReplay.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/operators/shareReplay.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/single.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/operators/single.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/single.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/operators/single.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/skip.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/operators/skip.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/skip.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/operators/skip.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/skipLast.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/operators/skipLast.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/skipLast.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/operators/skipLast.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/skipUntil.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/operators/skipUntil.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/skipUntil.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/operators/skipUntil.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/skipWhile.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/operators/skipWhile.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/skipWhile.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/operators/skipWhile.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/startWith.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/operators/startWith.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/startWith.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/operators/startWith.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/subscribeOn.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/operators/subscribeOn.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/subscribeOn.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/operators/subscribeOn.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/switchAll.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/operators/switchAll.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/switchAll.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/operators/switchAll.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/switchMap.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/operators/switchMap.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/switchMap.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/operators/switchMap.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/switchMapTo.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/operators/switchMapTo.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/switchMapTo.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/operators/switchMapTo.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/take.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/operators/take.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/take.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/operators/take.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/takeLast.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/operators/takeLast.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/takeLast.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/operators/takeLast.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/takeUntil.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/operators/takeUntil.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/takeUntil.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/operators/takeUntil.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/takeWhile.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/operators/takeWhile.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/takeWhile.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/operators/takeWhile.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/tap.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/operators/tap.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/tap.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/operators/tap.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/throttle.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/operators/throttle.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/throttle.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/operators/throttle.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/throttleTime.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/operators/throttleTime.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/throttleTime.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/operators/throttleTime.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/throwIfEmpty.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/operators/throwIfEmpty.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/throwIfEmpty.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/operators/throwIfEmpty.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/timeInterval.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/operators/timeInterval.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/timeInterval.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/operators/timeInterval.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/timeout.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/operators/timeout.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/timeout.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/operators/timeout.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/timeoutWith.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/operators/timeoutWith.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/timeoutWith.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/operators/timeoutWith.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/timestamp.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/operators/timestamp.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/timestamp.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/operators/timestamp.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/toArray.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/operators/toArray.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/toArray.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/operators/toArray.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/window.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/operators/window.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/window.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/operators/window.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/windowCount.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/operators/windowCount.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/windowCount.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/operators/windowCount.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/windowTime.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/operators/windowTime.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/windowTime.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/operators/windowTime.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/windowToggle.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/operators/windowToggle.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/windowToggle.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/operators/windowToggle.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/windowWhen.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/operators/windowWhen.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/windowWhen.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/operators/windowWhen.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/withLatestFrom.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/operators/withLatestFrom.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/withLatestFrom.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/operators/withLatestFrom.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/zip.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/operators/zip.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/zip.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/operators/zip.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/zipAll.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/operators/zipAll.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/operators/zipAll.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/operators/zipAll.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/scheduled/scheduleArray.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/scheduled/scheduleArray.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/scheduled/scheduleArray.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/scheduled/scheduleArray.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/scheduled/scheduleIterable.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/scheduled/scheduleIterable.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/scheduled/scheduleIterable.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/scheduled/scheduleIterable.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/scheduled/scheduleObservable.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/scheduled/scheduleObservable.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/scheduled/scheduleObservable.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/scheduled/scheduleObservable.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/scheduled/schedulePromise.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/scheduled/schedulePromise.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/scheduled/schedulePromise.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/scheduled/schedulePromise.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/scheduled/scheduled.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/scheduled/scheduled.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/scheduled/scheduled.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/scheduled/scheduled.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/scheduler/Action.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/scheduler/Action.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/scheduler/Action.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/scheduler/Action.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/scheduler/AnimationFrameAction.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/scheduler/AnimationFrameAction.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/scheduler/AnimationFrameAction.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/scheduler/AnimationFrameAction.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/scheduler/AnimationFrameScheduler.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/scheduler/AnimationFrameScheduler.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/scheduler/AnimationFrameScheduler.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/scheduler/AnimationFrameScheduler.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/scheduler/AsapAction.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/scheduler/AsapAction.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/scheduler/AsapAction.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/scheduler/AsapAction.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/scheduler/AsapScheduler.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/scheduler/AsapScheduler.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/scheduler/AsapScheduler.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/scheduler/AsapScheduler.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/scheduler/AsyncAction.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/scheduler/AsyncAction.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/scheduler/AsyncAction.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/scheduler/AsyncAction.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/scheduler/AsyncScheduler.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/scheduler/AsyncScheduler.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/scheduler/AsyncScheduler.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/scheduler/AsyncScheduler.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/scheduler/QueueAction.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/scheduler/QueueAction.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/scheduler/QueueAction.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/scheduler/QueueAction.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/scheduler/QueueScheduler.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/scheduler/QueueScheduler.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/scheduler/QueueScheduler.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/scheduler/QueueScheduler.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/scheduler/VirtualTimeScheduler.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/scheduler/VirtualTimeScheduler.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/scheduler/VirtualTimeScheduler.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/scheduler/VirtualTimeScheduler.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/scheduler/animationFrame.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/scheduler/animationFrame.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/scheduler/animationFrame.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/scheduler/animationFrame.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/scheduler/asap.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/scheduler/asap.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/scheduler/asap.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/scheduler/asap.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/scheduler/async.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/scheduler/async.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/scheduler/async.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/scheduler/async.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/scheduler/queue.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/scheduler/queue.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/scheduler/queue.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/scheduler/queue.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/symbol/iterator.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/symbol/iterator.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/symbol/iterator.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/symbol/iterator.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/symbol/observable.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/symbol/observable.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/symbol/observable.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/symbol/observable.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/symbol/rxSubscriber.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/symbol/rxSubscriber.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/symbol/rxSubscriber.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/symbol/rxSubscriber.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/testing/ColdObservable.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/testing/ColdObservable.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/testing/ColdObservable.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/testing/ColdObservable.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/testing/HotObservable.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/testing/HotObservable.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/testing/HotObservable.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/testing/HotObservable.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/testing/SubscriptionLog.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/testing/SubscriptionLog.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/testing/SubscriptionLog.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/testing/SubscriptionLog.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/testing/SubscriptionLoggable.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/testing/SubscriptionLoggable.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/testing/SubscriptionLoggable.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/testing/SubscriptionLoggable.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/testing/TestMessage.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/testing/TestMessage.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/testing/TestMessage.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/testing/TestMessage.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/testing/TestScheduler.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/testing/TestScheduler.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/testing/TestScheduler.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/testing/TestScheduler.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/types.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/types.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/types.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/types.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/umd.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/umd.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/umd.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/umd.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/util/ArgumentOutOfRangeError.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/util/ArgumentOutOfRangeError.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/util/ArgumentOutOfRangeError.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/util/ArgumentOutOfRangeError.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/util/EmptyError.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/util/EmptyError.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/util/EmptyError.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/util/EmptyError.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/util/Immediate.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/util/Immediate.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/util/Immediate.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/util/Immediate.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/util/ObjectUnsubscribedError.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/util/ObjectUnsubscribedError.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/util/ObjectUnsubscribedError.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/util/ObjectUnsubscribedError.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/util/TimeoutError.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/util/TimeoutError.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/util/TimeoutError.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/util/TimeoutError.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/util/UnsubscriptionError.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/util/UnsubscriptionError.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/util/UnsubscriptionError.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/util/UnsubscriptionError.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/util/applyMixins.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/util/applyMixins.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/util/applyMixins.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/util/applyMixins.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/util/canReportError.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/util/canReportError.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/util/canReportError.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/util/canReportError.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/util/errorObject.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/util/errorObject.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/util/errorObject.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/util/errorObject.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/util/hostReportError.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/util/hostReportError.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/util/hostReportError.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/util/hostReportError.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/util/identity.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/util/identity.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/util/identity.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/util/identity.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/util/isArray.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/util/isArray.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/util/isArray.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/util/isArray.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/util/isArrayLike.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/util/isArrayLike.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/util/isArrayLike.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/util/isArrayLike.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/util/isDate.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/util/isDate.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/util/isDate.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/util/isDate.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/util/isFunction.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/util/isFunction.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/util/isFunction.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/util/isFunction.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/util/isInteropObservable.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/util/isInteropObservable.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/util/isInteropObservable.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/util/isInteropObservable.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/util/isIterable.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/util/isIterable.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/util/isIterable.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/util/isIterable.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/util/isNumeric.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/util/isNumeric.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/util/isNumeric.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/util/isNumeric.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/util/isObject.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/util/isObject.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/util/isObject.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/util/isObject.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/util/isObservable.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/util/isObservable.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/util/isObservable.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/util/isObservable.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/util/isPromise.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/util/isPromise.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/util/isPromise.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/util/isPromise.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/util/isScheduler.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/util/isScheduler.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/util/isScheduler.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/util/isScheduler.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/util/noop.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/util/noop.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/util/noop.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/util/noop.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/util/not.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/util/not.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/util/not.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/util/not.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/util/pipe.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/util/pipe.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/util/pipe.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/util/pipe.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/util/root.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/util/root.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/util/root.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/util/root.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/util/subscribeTo.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/util/subscribeTo.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/util/subscribeTo.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/util/subscribeTo.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/util/subscribeToArray.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/util/subscribeToArray.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/util/subscribeToArray.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/util/subscribeToArray.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/util/subscribeToIterable.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/util/subscribeToIterable.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/util/subscribeToIterable.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/util/subscribeToIterable.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/util/subscribeToObservable.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/util/subscribeToObservable.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/util/subscribeToObservable.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/util/subscribeToObservable.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/util/subscribeToPromise.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/util/subscribeToPromise.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/util/subscribeToPromise.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/util/subscribeToPromise.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/util/subscribeToResult.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/util/subscribeToResult.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/util/subscribeToResult.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/util/subscribeToResult.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/util/toSubscriber.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/util/toSubscriber.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/util/toSubscriber.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/util/toSubscriber.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/util/tryCatch.ts b/src/third_party/devtools/node_modules/rxjs/src/internal/util/tryCatch.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/internal/util/tryCatch.ts
rename to src/third_party/devtools/node_modules/rxjs/src/internal/util/tryCatch.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/observable/ArrayLikeObservable.ts b/src/third_party/devtools/node_modules/rxjs/src/observable/ArrayLikeObservable.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/observable/ArrayLikeObservable.ts
rename to src/third_party/devtools/node_modules/rxjs/src/observable/ArrayLikeObservable.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/observable/ArrayObservable.ts b/src/third_party/devtools/node_modules/rxjs/src/observable/ArrayObservable.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/observable/ArrayObservable.ts
rename to src/third_party/devtools/node_modules/rxjs/src/observable/ArrayObservable.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/observable/BoundCallbackObservable.ts b/src/third_party/devtools/node_modules/rxjs/src/observable/BoundCallbackObservable.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/observable/BoundCallbackObservable.ts
rename to src/third_party/devtools/node_modules/rxjs/src/observable/BoundCallbackObservable.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/observable/BoundNodeCallbackObservable.ts b/src/third_party/devtools/node_modules/rxjs/src/observable/BoundNodeCallbackObservable.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/observable/BoundNodeCallbackObservable.ts
rename to src/third_party/devtools/node_modules/rxjs/src/observable/BoundNodeCallbackObservable.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/observable/ConnectableObservable.ts b/src/third_party/devtools/node_modules/rxjs/src/observable/ConnectableObservable.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/observable/ConnectableObservable.ts
rename to src/third_party/devtools/node_modules/rxjs/src/observable/ConnectableObservable.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/observable/DeferObservable.ts b/src/third_party/devtools/node_modules/rxjs/src/observable/DeferObservable.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/observable/DeferObservable.ts
rename to src/third_party/devtools/node_modules/rxjs/src/observable/DeferObservable.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/observable/EmptyObservable.ts b/src/third_party/devtools/node_modules/rxjs/src/observable/EmptyObservable.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/observable/EmptyObservable.ts
rename to src/third_party/devtools/node_modules/rxjs/src/observable/EmptyObservable.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/observable/ErrorObservable.ts b/src/third_party/devtools/node_modules/rxjs/src/observable/ErrorObservable.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/observable/ErrorObservable.ts
rename to src/third_party/devtools/node_modules/rxjs/src/observable/ErrorObservable.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/observable/ForkJoinObservable.ts b/src/third_party/devtools/node_modules/rxjs/src/observable/ForkJoinObservable.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/observable/ForkJoinObservable.ts
rename to src/third_party/devtools/node_modules/rxjs/src/observable/ForkJoinObservable.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/observable/FromEventObservable.ts b/src/third_party/devtools/node_modules/rxjs/src/observable/FromEventObservable.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/observable/FromEventObservable.ts
rename to src/third_party/devtools/node_modules/rxjs/src/observable/FromEventObservable.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/observable/FromEventPatternObservable.ts b/src/third_party/devtools/node_modules/rxjs/src/observable/FromEventPatternObservable.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/observable/FromEventPatternObservable.ts
rename to src/third_party/devtools/node_modules/rxjs/src/observable/FromEventPatternObservable.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/observable/FromObservable.ts b/src/third_party/devtools/node_modules/rxjs/src/observable/FromObservable.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/observable/FromObservable.ts
rename to src/third_party/devtools/node_modules/rxjs/src/observable/FromObservable.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/observable/GenerateObservable.ts b/src/third_party/devtools/node_modules/rxjs/src/observable/GenerateObservable.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/observable/GenerateObservable.ts
rename to src/third_party/devtools/node_modules/rxjs/src/observable/GenerateObservable.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/observable/IfObservable.ts b/src/third_party/devtools/node_modules/rxjs/src/observable/IfObservable.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/observable/IfObservable.ts
rename to src/third_party/devtools/node_modules/rxjs/src/observable/IfObservable.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/observable/IntervalObservable.ts b/src/third_party/devtools/node_modules/rxjs/src/observable/IntervalObservable.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/observable/IntervalObservable.ts
rename to src/third_party/devtools/node_modules/rxjs/src/observable/IntervalObservable.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/observable/IteratorObservable.ts b/src/third_party/devtools/node_modules/rxjs/src/observable/IteratorObservable.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/observable/IteratorObservable.ts
rename to src/third_party/devtools/node_modules/rxjs/src/observable/IteratorObservable.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/observable/NeverObservable.ts b/src/third_party/devtools/node_modules/rxjs/src/observable/NeverObservable.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/observable/NeverObservable.ts
rename to src/third_party/devtools/node_modules/rxjs/src/observable/NeverObservable.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/observable/PairsObservable.ts b/src/third_party/devtools/node_modules/rxjs/src/observable/PairsObservable.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/observable/PairsObservable.ts
rename to src/third_party/devtools/node_modules/rxjs/src/observable/PairsObservable.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/observable/PromiseObservable.ts b/src/third_party/devtools/node_modules/rxjs/src/observable/PromiseObservable.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/observable/PromiseObservable.ts
rename to src/third_party/devtools/node_modules/rxjs/src/observable/PromiseObservable.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/observable/RangeObservable.ts b/src/third_party/devtools/node_modules/rxjs/src/observable/RangeObservable.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/observable/RangeObservable.ts
rename to src/third_party/devtools/node_modules/rxjs/src/observable/RangeObservable.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/observable/ScalarObservable.ts b/src/third_party/devtools/node_modules/rxjs/src/observable/ScalarObservable.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/observable/ScalarObservable.ts
rename to src/third_party/devtools/node_modules/rxjs/src/observable/ScalarObservable.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/observable/SubscribeOnObservable.ts b/src/third_party/devtools/node_modules/rxjs/src/observable/SubscribeOnObservable.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/observable/SubscribeOnObservable.ts
rename to src/third_party/devtools/node_modules/rxjs/src/observable/SubscribeOnObservable.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/observable/TimerObservable.ts b/src/third_party/devtools/node_modules/rxjs/src/observable/TimerObservable.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/observable/TimerObservable.ts
rename to src/third_party/devtools/node_modules/rxjs/src/observable/TimerObservable.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/observable/UsingObservable.ts b/src/third_party/devtools/node_modules/rxjs/src/observable/UsingObservable.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/observable/UsingObservable.ts
rename to src/third_party/devtools/node_modules/rxjs/src/observable/UsingObservable.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/observable/bindCallback.ts b/src/third_party/devtools/node_modules/rxjs/src/observable/bindCallback.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/observable/bindCallback.ts
rename to src/third_party/devtools/node_modules/rxjs/src/observable/bindCallback.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/observable/bindNodeCallback.ts b/src/third_party/devtools/node_modules/rxjs/src/observable/bindNodeCallback.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/observable/bindNodeCallback.ts
rename to src/third_party/devtools/node_modules/rxjs/src/observable/bindNodeCallback.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/observable/combineLatest.ts b/src/third_party/devtools/node_modules/rxjs/src/observable/combineLatest.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/observable/combineLatest.ts
rename to src/third_party/devtools/node_modules/rxjs/src/observable/combineLatest.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/observable/concat.ts b/src/third_party/devtools/node_modules/rxjs/src/observable/concat.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/observable/concat.ts
rename to src/third_party/devtools/node_modules/rxjs/src/observable/concat.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/observable/defer.ts b/src/third_party/devtools/node_modules/rxjs/src/observable/defer.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/observable/defer.ts
rename to src/third_party/devtools/node_modules/rxjs/src/observable/defer.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/observable/dom/AjaxObservable.ts b/src/third_party/devtools/node_modules/rxjs/src/observable/dom/AjaxObservable.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/observable/dom/AjaxObservable.ts
rename to src/third_party/devtools/node_modules/rxjs/src/observable/dom/AjaxObservable.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/observable/dom/WebSocketSubject.ts b/src/third_party/devtools/node_modules/rxjs/src/observable/dom/WebSocketSubject.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/observable/dom/WebSocketSubject.ts
rename to src/third_party/devtools/node_modules/rxjs/src/observable/dom/WebSocketSubject.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/observable/dom/ajax.ts b/src/third_party/devtools/node_modules/rxjs/src/observable/dom/ajax.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/observable/dom/ajax.ts
rename to src/third_party/devtools/node_modules/rxjs/src/observable/dom/ajax.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/observable/dom/webSocket.ts b/src/third_party/devtools/node_modules/rxjs/src/observable/dom/webSocket.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/observable/dom/webSocket.ts
rename to src/third_party/devtools/node_modules/rxjs/src/observable/dom/webSocket.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/observable/empty.ts b/src/third_party/devtools/node_modules/rxjs/src/observable/empty.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/observable/empty.ts
rename to src/third_party/devtools/node_modules/rxjs/src/observable/empty.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/observable/forkJoin.ts b/src/third_party/devtools/node_modules/rxjs/src/observable/forkJoin.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/observable/forkJoin.ts
rename to src/third_party/devtools/node_modules/rxjs/src/observable/forkJoin.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/observable/from.ts b/src/third_party/devtools/node_modules/rxjs/src/observable/from.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/observable/from.ts
rename to src/third_party/devtools/node_modules/rxjs/src/observable/from.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/observable/fromArray.ts b/src/third_party/devtools/node_modules/rxjs/src/observable/fromArray.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/observable/fromArray.ts
rename to src/third_party/devtools/node_modules/rxjs/src/observable/fromArray.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/observable/fromEvent.ts b/src/third_party/devtools/node_modules/rxjs/src/observable/fromEvent.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/observable/fromEvent.ts
rename to src/third_party/devtools/node_modules/rxjs/src/observable/fromEvent.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/observable/fromEventPattern.ts b/src/third_party/devtools/node_modules/rxjs/src/observable/fromEventPattern.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/observable/fromEventPattern.ts
rename to src/third_party/devtools/node_modules/rxjs/src/observable/fromEventPattern.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/observable/fromIterable.ts b/src/third_party/devtools/node_modules/rxjs/src/observable/fromIterable.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/observable/fromIterable.ts
rename to src/third_party/devtools/node_modules/rxjs/src/observable/fromIterable.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/observable/fromPromise.ts b/src/third_party/devtools/node_modules/rxjs/src/observable/fromPromise.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/observable/fromPromise.ts
rename to src/third_party/devtools/node_modules/rxjs/src/observable/fromPromise.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/observable/generate.ts b/src/third_party/devtools/node_modules/rxjs/src/observable/generate.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/observable/generate.ts
rename to src/third_party/devtools/node_modules/rxjs/src/observable/generate.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/observable/if.ts b/src/third_party/devtools/node_modules/rxjs/src/observable/if.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/observable/if.ts
rename to src/third_party/devtools/node_modules/rxjs/src/observable/if.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/observable/interval.ts b/src/third_party/devtools/node_modules/rxjs/src/observable/interval.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/observable/interval.ts
rename to src/third_party/devtools/node_modules/rxjs/src/observable/interval.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/observable/merge.ts b/src/third_party/devtools/node_modules/rxjs/src/observable/merge.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/observable/merge.ts
rename to src/third_party/devtools/node_modules/rxjs/src/observable/merge.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/observable/never.ts b/src/third_party/devtools/node_modules/rxjs/src/observable/never.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/observable/never.ts
rename to src/third_party/devtools/node_modules/rxjs/src/observable/never.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/observable/of.ts b/src/third_party/devtools/node_modules/rxjs/src/observable/of.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/observable/of.ts
rename to src/third_party/devtools/node_modules/rxjs/src/observable/of.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/observable/onErrorResumeNext.ts b/src/third_party/devtools/node_modules/rxjs/src/observable/onErrorResumeNext.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/observable/onErrorResumeNext.ts
rename to src/third_party/devtools/node_modules/rxjs/src/observable/onErrorResumeNext.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/observable/pairs.ts b/src/third_party/devtools/node_modules/rxjs/src/observable/pairs.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/observable/pairs.ts
rename to src/third_party/devtools/node_modules/rxjs/src/observable/pairs.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/observable/race.ts b/src/third_party/devtools/node_modules/rxjs/src/observable/race.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/observable/race.ts
rename to src/third_party/devtools/node_modules/rxjs/src/observable/race.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/observable/range.ts b/src/third_party/devtools/node_modules/rxjs/src/observable/range.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/observable/range.ts
rename to src/third_party/devtools/node_modules/rxjs/src/observable/range.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/observable/throw.ts b/src/third_party/devtools/node_modules/rxjs/src/observable/throw.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/observable/throw.ts
rename to src/third_party/devtools/node_modules/rxjs/src/observable/throw.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/observable/timer.ts b/src/third_party/devtools/node_modules/rxjs/src/observable/timer.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/observable/timer.ts
rename to src/third_party/devtools/node_modules/rxjs/src/observable/timer.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/observable/using.ts b/src/third_party/devtools/node_modules/rxjs/src/observable/using.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/observable/using.ts
rename to src/third_party/devtools/node_modules/rxjs/src/observable/using.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/observable/zip.ts b/src/third_party/devtools/node_modules/rxjs/src/observable/zip.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/observable/zip.ts
rename to src/third_party/devtools/node_modules/rxjs/src/observable/zip.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/audit.ts b/src/third_party/devtools/node_modules/rxjs/src/operator/audit.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/audit.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operator/audit.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/auditTime.ts b/src/third_party/devtools/node_modules/rxjs/src/operator/auditTime.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/auditTime.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operator/auditTime.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/buffer.ts b/src/third_party/devtools/node_modules/rxjs/src/operator/buffer.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/buffer.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operator/buffer.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/bufferCount.ts b/src/third_party/devtools/node_modules/rxjs/src/operator/bufferCount.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/bufferCount.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operator/bufferCount.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/bufferTime.ts b/src/third_party/devtools/node_modules/rxjs/src/operator/bufferTime.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/bufferTime.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operator/bufferTime.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/bufferToggle.ts b/src/third_party/devtools/node_modules/rxjs/src/operator/bufferToggle.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/bufferToggle.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operator/bufferToggle.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/bufferWhen.ts b/src/third_party/devtools/node_modules/rxjs/src/operator/bufferWhen.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/bufferWhen.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operator/bufferWhen.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/catch.ts b/src/third_party/devtools/node_modules/rxjs/src/operator/catch.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/catch.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operator/catch.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/combineAll.ts b/src/third_party/devtools/node_modules/rxjs/src/operator/combineAll.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/combineAll.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operator/combineAll.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/combineLatest.ts b/src/third_party/devtools/node_modules/rxjs/src/operator/combineLatest.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/combineLatest.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operator/combineLatest.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/concat.ts b/src/third_party/devtools/node_modules/rxjs/src/operator/concat.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/concat.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operator/concat.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/concatAll.ts b/src/third_party/devtools/node_modules/rxjs/src/operator/concatAll.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/concatAll.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operator/concatAll.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/concatMap.ts b/src/third_party/devtools/node_modules/rxjs/src/operator/concatMap.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/concatMap.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operator/concatMap.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/concatMapTo.ts b/src/third_party/devtools/node_modules/rxjs/src/operator/concatMapTo.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/concatMapTo.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operator/concatMapTo.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/count.ts b/src/third_party/devtools/node_modules/rxjs/src/operator/count.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/count.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operator/count.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/debounce.ts b/src/third_party/devtools/node_modules/rxjs/src/operator/debounce.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/debounce.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operator/debounce.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/debounceTime.ts b/src/third_party/devtools/node_modules/rxjs/src/operator/debounceTime.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/debounceTime.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operator/debounceTime.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/defaultIfEmpty.ts b/src/third_party/devtools/node_modules/rxjs/src/operator/defaultIfEmpty.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/defaultIfEmpty.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operator/defaultIfEmpty.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/delay.ts b/src/third_party/devtools/node_modules/rxjs/src/operator/delay.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/delay.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operator/delay.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/delayWhen.ts b/src/third_party/devtools/node_modules/rxjs/src/operator/delayWhen.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/delayWhen.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operator/delayWhen.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/dematerialize.ts b/src/third_party/devtools/node_modules/rxjs/src/operator/dematerialize.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/dematerialize.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operator/dematerialize.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/distinct.ts b/src/third_party/devtools/node_modules/rxjs/src/operator/distinct.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/distinct.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operator/distinct.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/distinctUntilChanged.ts b/src/third_party/devtools/node_modules/rxjs/src/operator/distinctUntilChanged.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/distinctUntilChanged.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operator/distinctUntilChanged.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/distinctUntilKeyChanged.ts b/src/third_party/devtools/node_modules/rxjs/src/operator/distinctUntilKeyChanged.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/distinctUntilKeyChanged.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operator/distinctUntilKeyChanged.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/do.ts b/src/third_party/devtools/node_modules/rxjs/src/operator/do.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/do.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operator/do.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/elementAt.ts b/src/third_party/devtools/node_modules/rxjs/src/operator/elementAt.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/elementAt.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operator/elementAt.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/every.ts b/src/third_party/devtools/node_modules/rxjs/src/operator/every.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/every.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operator/every.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/exhaust.ts b/src/third_party/devtools/node_modules/rxjs/src/operator/exhaust.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/exhaust.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operator/exhaust.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/exhaustMap.ts b/src/third_party/devtools/node_modules/rxjs/src/operator/exhaustMap.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/exhaustMap.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operator/exhaustMap.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/expand.ts b/src/third_party/devtools/node_modules/rxjs/src/operator/expand.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/expand.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operator/expand.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/filter.ts b/src/third_party/devtools/node_modules/rxjs/src/operator/filter.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/filter.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operator/filter.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/finally.ts b/src/third_party/devtools/node_modules/rxjs/src/operator/finally.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/finally.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operator/finally.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/find.ts b/src/third_party/devtools/node_modules/rxjs/src/operator/find.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/find.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operator/find.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/findIndex.ts b/src/third_party/devtools/node_modules/rxjs/src/operator/findIndex.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/findIndex.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operator/findIndex.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/first.ts b/src/third_party/devtools/node_modules/rxjs/src/operator/first.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/first.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operator/first.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/groupBy.ts b/src/third_party/devtools/node_modules/rxjs/src/operator/groupBy.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/groupBy.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operator/groupBy.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/ignoreElements.ts b/src/third_party/devtools/node_modules/rxjs/src/operator/ignoreElements.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/ignoreElements.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operator/ignoreElements.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/isEmpty.ts b/src/third_party/devtools/node_modules/rxjs/src/operator/isEmpty.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/isEmpty.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operator/isEmpty.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/last.ts b/src/third_party/devtools/node_modules/rxjs/src/operator/last.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/last.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operator/last.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/let.ts b/src/third_party/devtools/node_modules/rxjs/src/operator/let.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/let.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operator/let.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/map.ts b/src/third_party/devtools/node_modules/rxjs/src/operator/map.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/map.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operator/map.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/mapTo.ts b/src/third_party/devtools/node_modules/rxjs/src/operator/mapTo.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/mapTo.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operator/mapTo.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/materialize.ts b/src/third_party/devtools/node_modules/rxjs/src/operator/materialize.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/materialize.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operator/materialize.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/max.ts b/src/third_party/devtools/node_modules/rxjs/src/operator/max.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/max.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operator/max.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/merge.ts b/src/third_party/devtools/node_modules/rxjs/src/operator/merge.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/merge.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operator/merge.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/mergeAll.ts b/src/third_party/devtools/node_modules/rxjs/src/operator/mergeAll.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/mergeAll.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operator/mergeAll.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/mergeMap.ts b/src/third_party/devtools/node_modules/rxjs/src/operator/mergeMap.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/mergeMap.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operator/mergeMap.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/mergeMapTo.ts b/src/third_party/devtools/node_modules/rxjs/src/operator/mergeMapTo.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/mergeMapTo.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operator/mergeMapTo.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/mergeScan.ts b/src/third_party/devtools/node_modules/rxjs/src/operator/mergeScan.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/mergeScan.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operator/mergeScan.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/min.ts b/src/third_party/devtools/node_modules/rxjs/src/operator/min.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/min.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operator/min.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/multicast.ts b/src/third_party/devtools/node_modules/rxjs/src/operator/multicast.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/multicast.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operator/multicast.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/observeOn.ts b/src/third_party/devtools/node_modules/rxjs/src/operator/observeOn.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/observeOn.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operator/observeOn.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/onErrorResumeNext.ts b/src/third_party/devtools/node_modules/rxjs/src/operator/onErrorResumeNext.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/onErrorResumeNext.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operator/onErrorResumeNext.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/pairwise.ts b/src/third_party/devtools/node_modules/rxjs/src/operator/pairwise.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/pairwise.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operator/pairwise.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/partition.ts b/src/third_party/devtools/node_modules/rxjs/src/operator/partition.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/partition.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operator/partition.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/pluck.ts b/src/third_party/devtools/node_modules/rxjs/src/operator/pluck.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/pluck.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operator/pluck.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/publish.ts b/src/third_party/devtools/node_modules/rxjs/src/operator/publish.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/publish.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operator/publish.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/publishBehavior.ts b/src/third_party/devtools/node_modules/rxjs/src/operator/publishBehavior.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/publishBehavior.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operator/publishBehavior.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/publishLast.ts b/src/third_party/devtools/node_modules/rxjs/src/operator/publishLast.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/publishLast.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operator/publishLast.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/publishReplay.ts b/src/third_party/devtools/node_modules/rxjs/src/operator/publishReplay.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/publishReplay.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operator/publishReplay.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/race.ts b/src/third_party/devtools/node_modules/rxjs/src/operator/race.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/race.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operator/race.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/reduce.ts b/src/third_party/devtools/node_modules/rxjs/src/operator/reduce.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/reduce.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operator/reduce.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/repeat.ts b/src/third_party/devtools/node_modules/rxjs/src/operator/repeat.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/repeat.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operator/repeat.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/repeatWhen.ts b/src/third_party/devtools/node_modules/rxjs/src/operator/repeatWhen.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/repeatWhen.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operator/repeatWhen.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/retry.ts b/src/third_party/devtools/node_modules/rxjs/src/operator/retry.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/retry.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operator/retry.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/retryWhen.ts b/src/third_party/devtools/node_modules/rxjs/src/operator/retryWhen.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/retryWhen.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operator/retryWhen.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/sample.ts b/src/third_party/devtools/node_modules/rxjs/src/operator/sample.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/sample.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operator/sample.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/sampleTime.ts b/src/third_party/devtools/node_modules/rxjs/src/operator/sampleTime.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/sampleTime.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operator/sampleTime.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/scan.ts b/src/third_party/devtools/node_modules/rxjs/src/operator/scan.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/scan.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operator/scan.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/sequenceEqual.ts b/src/third_party/devtools/node_modules/rxjs/src/operator/sequenceEqual.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/sequenceEqual.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operator/sequenceEqual.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/share.ts b/src/third_party/devtools/node_modules/rxjs/src/operator/share.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/share.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operator/share.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/shareReplay.ts b/src/third_party/devtools/node_modules/rxjs/src/operator/shareReplay.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/shareReplay.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operator/shareReplay.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/single.ts b/src/third_party/devtools/node_modules/rxjs/src/operator/single.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/single.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operator/single.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/skip.ts b/src/third_party/devtools/node_modules/rxjs/src/operator/skip.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/skip.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operator/skip.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/skipLast.ts b/src/third_party/devtools/node_modules/rxjs/src/operator/skipLast.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/skipLast.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operator/skipLast.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/skipUntil.ts b/src/third_party/devtools/node_modules/rxjs/src/operator/skipUntil.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/skipUntil.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operator/skipUntil.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/skipWhile.ts b/src/third_party/devtools/node_modules/rxjs/src/operator/skipWhile.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/skipWhile.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operator/skipWhile.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/startWith.ts b/src/third_party/devtools/node_modules/rxjs/src/operator/startWith.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/startWith.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operator/startWith.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/subscribeOn.ts b/src/third_party/devtools/node_modules/rxjs/src/operator/subscribeOn.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/subscribeOn.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operator/subscribeOn.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/switch.ts b/src/third_party/devtools/node_modules/rxjs/src/operator/switch.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/switch.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operator/switch.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/switchMap.ts b/src/third_party/devtools/node_modules/rxjs/src/operator/switchMap.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/switchMap.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operator/switchMap.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/switchMapTo.ts b/src/third_party/devtools/node_modules/rxjs/src/operator/switchMapTo.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/switchMapTo.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operator/switchMapTo.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/take.ts b/src/third_party/devtools/node_modules/rxjs/src/operator/take.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/take.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operator/take.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/takeLast.ts b/src/third_party/devtools/node_modules/rxjs/src/operator/takeLast.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/takeLast.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operator/takeLast.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/takeUntil.ts b/src/third_party/devtools/node_modules/rxjs/src/operator/takeUntil.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/takeUntil.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operator/takeUntil.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/takeWhile.ts b/src/third_party/devtools/node_modules/rxjs/src/operator/takeWhile.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/takeWhile.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operator/takeWhile.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/throttle.ts b/src/third_party/devtools/node_modules/rxjs/src/operator/throttle.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/throttle.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operator/throttle.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/throttleTime.ts b/src/third_party/devtools/node_modules/rxjs/src/operator/throttleTime.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/throttleTime.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operator/throttleTime.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/timeInterval.ts b/src/third_party/devtools/node_modules/rxjs/src/operator/timeInterval.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/timeInterval.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operator/timeInterval.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/timeout.ts b/src/third_party/devtools/node_modules/rxjs/src/operator/timeout.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/timeout.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operator/timeout.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/timeoutWith.ts b/src/third_party/devtools/node_modules/rxjs/src/operator/timeoutWith.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/timeoutWith.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operator/timeoutWith.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/timestamp.ts b/src/third_party/devtools/node_modules/rxjs/src/operator/timestamp.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/timestamp.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operator/timestamp.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/toArray.ts b/src/third_party/devtools/node_modules/rxjs/src/operator/toArray.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/toArray.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operator/toArray.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/toPromise.ts b/src/third_party/devtools/node_modules/rxjs/src/operator/toPromise.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/toPromise.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operator/toPromise.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/window.ts b/src/third_party/devtools/node_modules/rxjs/src/operator/window.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/window.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operator/window.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/windowCount.ts b/src/third_party/devtools/node_modules/rxjs/src/operator/windowCount.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/windowCount.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operator/windowCount.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/windowTime.ts b/src/third_party/devtools/node_modules/rxjs/src/operator/windowTime.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/windowTime.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operator/windowTime.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/windowToggle.ts b/src/third_party/devtools/node_modules/rxjs/src/operator/windowToggle.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/windowToggle.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operator/windowToggle.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/windowWhen.ts b/src/third_party/devtools/node_modules/rxjs/src/operator/windowWhen.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/windowWhen.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operator/windowWhen.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/withLatestFrom.ts b/src/third_party/devtools/node_modules/rxjs/src/operator/withLatestFrom.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/withLatestFrom.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operator/withLatestFrom.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/zip.ts b/src/third_party/devtools/node_modules/rxjs/src/operator/zip.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/zip.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operator/zip.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/zipAll.ts b/src/third_party/devtools/node_modules/rxjs/src/operator/zipAll.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operator/zipAll.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operator/zipAll.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/audit.ts b/src/third_party/devtools/node_modules/rxjs/src/operators/audit.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/audit.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operators/audit.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/auditTime.ts b/src/third_party/devtools/node_modules/rxjs/src/operators/auditTime.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/auditTime.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operators/auditTime.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/buffer.ts b/src/third_party/devtools/node_modules/rxjs/src/operators/buffer.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/buffer.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operators/buffer.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/bufferCount.ts b/src/third_party/devtools/node_modules/rxjs/src/operators/bufferCount.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/bufferCount.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operators/bufferCount.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/bufferTime.ts b/src/third_party/devtools/node_modules/rxjs/src/operators/bufferTime.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/bufferTime.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operators/bufferTime.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/bufferToggle.ts b/src/third_party/devtools/node_modules/rxjs/src/operators/bufferToggle.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/bufferToggle.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operators/bufferToggle.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/bufferWhen.ts b/src/third_party/devtools/node_modules/rxjs/src/operators/bufferWhen.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/bufferWhen.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operators/bufferWhen.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/catchError.ts b/src/third_party/devtools/node_modules/rxjs/src/operators/catchError.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/catchError.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operators/catchError.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/combineAll.ts b/src/third_party/devtools/node_modules/rxjs/src/operators/combineAll.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/combineAll.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operators/combineAll.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/combineLatest.ts b/src/third_party/devtools/node_modules/rxjs/src/operators/combineLatest.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/combineLatest.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operators/combineLatest.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/concat.ts b/src/third_party/devtools/node_modules/rxjs/src/operators/concat.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/concat.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operators/concat.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/concatAll.ts b/src/third_party/devtools/node_modules/rxjs/src/operators/concatAll.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/concatAll.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operators/concatAll.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/concatMap.ts b/src/third_party/devtools/node_modules/rxjs/src/operators/concatMap.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/concatMap.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operators/concatMap.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/concatMapTo.ts b/src/third_party/devtools/node_modules/rxjs/src/operators/concatMapTo.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/concatMapTo.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operators/concatMapTo.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/count.ts b/src/third_party/devtools/node_modules/rxjs/src/operators/count.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/count.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operators/count.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/debounce.ts b/src/third_party/devtools/node_modules/rxjs/src/operators/debounce.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/debounce.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operators/debounce.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/debounceTime.ts b/src/third_party/devtools/node_modules/rxjs/src/operators/debounceTime.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/debounceTime.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operators/debounceTime.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/defaultIfEmpty.ts b/src/third_party/devtools/node_modules/rxjs/src/operators/defaultIfEmpty.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/defaultIfEmpty.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operators/defaultIfEmpty.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/delay.ts b/src/third_party/devtools/node_modules/rxjs/src/operators/delay.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/delay.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operators/delay.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/delayWhen.ts b/src/third_party/devtools/node_modules/rxjs/src/operators/delayWhen.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/delayWhen.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operators/delayWhen.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/dematerialize.ts b/src/third_party/devtools/node_modules/rxjs/src/operators/dematerialize.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/dematerialize.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operators/dematerialize.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/distinct.ts b/src/third_party/devtools/node_modules/rxjs/src/operators/distinct.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/distinct.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operators/distinct.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/distinctUntilChanged.ts b/src/third_party/devtools/node_modules/rxjs/src/operators/distinctUntilChanged.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/distinctUntilChanged.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operators/distinctUntilChanged.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/distinctUntilKeyChanged.ts b/src/third_party/devtools/node_modules/rxjs/src/operators/distinctUntilKeyChanged.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/distinctUntilKeyChanged.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operators/distinctUntilKeyChanged.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/elementAt.ts b/src/third_party/devtools/node_modules/rxjs/src/operators/elementAt.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/elementAt.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operators/elementAt.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/every.ts b/src/third_party/devtools/node_modules/rxjs/src/operators/every.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/every.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operators/every.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/exhaust.ts b/src/third_party/devtools/node_modules/rxjs/src/operators/exhaust.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/exhaust.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operators/exhaust.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/exhaustMap.ts b/src/third_party/devtools/node_modules/rxjs/src/operators/exhaustMap.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/exhaustMap.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operators/exhaustMap.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/expand.ts b/src/third_party/devtools/node_modules/rxjs/src/operators/expand.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/expand.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operators/expand.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/filter.ts b/src/third_party/devtools/node_modules/rxjs/src/operators/filter.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/filter.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operators/filter.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/finalize.ts b/src/third_party/devtools/node_modules/rxjs/src/operators/finalize.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/finalize.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operators/finalize.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/find.ts b/src/third_party/devtools/node_modules/rxjs/src/operators/find.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/find.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operators/find.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/findIndex.ts b/src/third_party/devtools/node_modules/rxjs/src/operators/findIndex.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/findIndex.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operators/findIndex.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/first.ts b/src/third_party/devtools/node_modules/rxjs/src/operators/first.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/first.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operators/first.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/groupBy.ts b/src/third_party/devtools/node_modules/rxjs/src/operators/groupBy.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/groupBy.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operators/groupBy.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/ignoreElements.ts b/src/third_party/devtools/node_modules/rxjs/src/operators/ignoreElements.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/ignoreElements.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operators/ignoreElements.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/index.ts b/src/third_party/devtools/node_modules/rxjs/src/operators/index.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/index.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operators/index.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/isEmpty.ts b/src/third_party/devtools/node_modules/rxjs/src/operators/isEmpty.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/isEmpty.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operators/isEmpty.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/last.ts b/src/third_party/devtools/node_modules/rxjs/src/operators/last.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/last.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operators/last.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/map.ts b/src/third_party/devtools/node_modules/rxjs/src/operators/map.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/map.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operators/map.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/mapTo.ts b/src/third_party/devtools/node_modules/rxjs/src/operators/mapTo.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/mapTo.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operators/mapTo.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/materialize.ts b/src/third_party/devtools/node_modules/rxjs/src/operators/materialize.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/materialize.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operators/materialize.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/max.ts b/src/third_party/devtools/node_modules/rxjs/src/operators/max.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/max.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operators/max.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/merge.ts b/src/third_party/devtools/node_modules/rxjs/src/operators/merge.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/merge.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operators/merge.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/mergeAll.ts b/src/third_party/devtools/node_modules/rxjs/src/operators/mergeAll.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/mergeAll.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operators/mergeAll.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/mergeMap.ts b/src/third_party/devtools/node_modules/rxjs/src/operators/mergeMap.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/mergeMap.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operators/mergeMap.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/mergeMapTo.ts b/src/third_party/devtools/node_modules/rxjs/src/operators/mergeMapTo.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/mergeMapTo.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operators/mergeMapTo.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/mergeScan.ts b/src/third_party/devtools/node_modules/rxjs/src/operators/mergeScan.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/mergeScan.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operators/mergeScan.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/min.ts b/src/third_party/devtools/node_modules/rxjs/src/operators/min.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/min.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operators/min.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/multicast.ts b/src/third_party/devtools/node_modules/rxjs/src/operators/multicast.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/multicast.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operators/multicast.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/observeOn.ts b/src/third_party/devtools/node_modules/rxjs/src/operators/observeOn.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/observeOn.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operators/observeOn.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/onErrorResumeNext.ts b/src/third_party/devtools/node_modules/rxjs/src/operators/onErrorResumeNext.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/onErrorResumeNext.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operators/onErrorResumeNext.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/package.json b/src/third_party/devtools/node_modules/rxjs/src/operators/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/package.json
rename to src/third_party/devtools/node_modules/rxjs/src/operators/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/pairwise.ts b/src/third_party/devtools/node_modules/rxjs/src/operators/pairwise.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/pairwise.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operators/pairwise.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/partition.ts b/src/third_party/devtools/node_modules/rxjs/src/operators/partition.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/partition.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operators/partition.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/pluck.ts b/src/third_party/devtools/node_modules/rxjs/src/operators/pluck.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/pluck.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operators/pluck.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/publish.ts b/src/third_party/devtools/node_modules/rxjs/src/operators/publish.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/publish.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operators/publish.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/publishBehavior.ts b/src/third_party/devtools/node_modules/rxjs/src/operators/publishBehavior.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/publishBehavior.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operators/publishBehavior.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/publishLast.ts b/src/third_party/devtools/node_modules/rxjs/src/operators/publishLast.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/publishLast.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operators/publishLast.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/publishReplay.ts b/src/third_party/devtools/node_modules/rxjs/src/operators/publishReplay.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/publishReplay.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operators/publishReplay.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/race.ts b/src/third_party/devtools/node_modules/rxjs/src/operators/race.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/race.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operators/race.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/reduce.ts b/src/third_party/devtools/node_modules/rxjs/src/operators/reduce.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/reduce.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operators/reduce.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/refCount.ts b/src/third_party/devtools/node_modules/rxjs/src/operators/refCount.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/refCount.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operators/refCount.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/repeat.ts b/src/third_party/devtools/node_modules/rxjs/src/operators/repeat.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/repeat.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operators/repeat.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/repeatWhen.ts b/src/third_party/devtools/node_modules/rxjs/src/operators/repeatWhen.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/repeatWhen.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operators/repeatWhen.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/retry.ts b/src/third_party/devtools/node_modules/rxjs/src/operators/retry.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/retry.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operators/retry.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/retryWhen.ts b/src/third_party/devtools/node_modules/rxjs/src/operators/retryWhen.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/retryWhen.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operators/retryWhen.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/sample.ts b/src/third_party/devtools/node_modules/rxjs/src/operators/sample.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/sample.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operators/sample.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/sampleTime.ts b/src/third_party/devtools/node_modules/rxjs/src/operators/sampleTime.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/sampleTime.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operators/sampleTime.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/scan.ts b/src/third_party/devtools/node_modules/rxjs/src/operators/scan.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/scan.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operators/scan.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/sequenceEqual.ts b/src/third_party/devtools/node_modules/rxjs/src/operators/sequenceEqual.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/sequenceEqual.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operators/sequenceEqual.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/share.ts b/src/third_party/devtools/node_modules/rxjs/src/operators/share.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/share.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operators/share.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/shareReplay.ts b/src/third_party/devtools/node_modules/rxjs/src/operators/shareReplay.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/shareReplay.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operators/shareReplay.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/single.ts b/src/third_party/devtools/node_modules/rxjs/src/operators/single.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/single.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operators/single.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/skip.ts b/src/third_party/devtools/node_modules/rxjs/src/operators/skip.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/skip.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operators/skip.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/skipLast.ts b/src/third_party/devtools/node_modules/rxjs/src/operators/skipLast.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/skipLast.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operators/skipLast.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/skipUntil.ts b/src/third_party/devtools/node_modules/rxjs/src/operators/skipUntil.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/skipUntil.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operators/skipUntil.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/skipWhile.ts b/src/third_party/devtools/node_modules/rxjs/src/operators/skipWhile.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/skipWhile.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operators/skipWhile.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/startWith.ts b/src/third_party/devtools/node_modules/rxjs/src/operators/startWith.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/startWith.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operators/startWith.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/subscribeOn.ts b/src/third_party/devtools/node_modules/rxjs/src/operators/subscribeOn.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/subscribeOn.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operators/subscribeOn.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/switchAll.ts b/src/third_party/devtools/node_modules/rxjs/src/operators/switchAll.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/switchAll.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operators/switchAll.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/switchMap.ts b/src/third_party/devtools/node_modules/rxjs/src/operators/switchMap.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/switchMap.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operators/switchMap.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/switchMapTo.ts b/src/third_party/devtools/node_modules/rxjs/src/operators/switchMapTo.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/switchMapTo.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operators/switchMapTo.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/take.ts b/src/third_party/devtools/node_modules/rxjs/src/operators/take.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/take.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operators/take.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/takeLast.ts b/src/third_party/devtools/node_modules/rxjs/src/operators/takeLast.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/takeLast.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operators/takeLast.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/takeUntil.ts b/src/third_party/devtools/node_modules/rxjs/src/operators/takeUntil.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/takeUntil.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operators/takeUntil.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/takeWhile.ts b/src/third_party/devtools/node_modules/rxjs/src/operators/takeWhile.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/takeWhile.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operators/takeWhile.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/tap.ts b/src/third_party/devtools/node_modules/rxjs/src/operators/tap.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/tap.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operators/tap.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/throttle.ts b/src/third_party/devtools/node_modules/rxjs/src/operators/throttle.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/throttle.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operators/throttle.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/throttleTime.ts b/src/third_party/devtools/node_modules/rxjs/src/operators/throttleTime.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/throttleTime.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operators/throttleTime.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/throwIfEmpty.ts b/src/third_party/devtools/node_modules/rxjs/src/operators/throwIfEmpty.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/throwIfEmpty.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operators/throwIfEmpty.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/timeInterval.ts b/src/third_party/devtools/node_modules/rxjs/src/operators/timeInterval.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/timeInterval.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operators/timeInterval.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/timeout.ts b/src/third_party/devtools/node_modules/rxjs/src/operators/timeout.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/timeout.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operators/timeout.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/timeoutWith.ts b/src/third_party/devtools/node_modules/rxjs/src/operators/timeoutWith.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/timeoutWith.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operators/timeoutWith.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/timestamp.ts b/src/third_party/devtools/node_modules/rxjs/src/operators/timestamp.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/timestamp.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operators/timestamp.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/toArray.ts b/src/third_party/devtools/node_modules/rxjs/src/operators/toArray.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/toArray.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operators/toArray.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/window.ts b/src/third_party/devtools/node_modules/rxjs/src/operators/window.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/window.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operators/window.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/windowCount.ts b/src/third_party/devtools/node_modules/rxjs/src/operators/windowCount.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/windowCount.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operators/windowCount.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/windowTime.ts b/src/third_party/devtools/node_modules/rxjs/src/operators/windowTime.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/windowTime.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operators/windowTime.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/windowToggle.ts b/src/third_party/devtools/node_modules/rxjs/src/operators/windowToggle.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/windowToggle.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operators/windowToggle.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/windowWhen.ts b/src/third_party/devtools/node_modules/rxjs/src/operators/windowWhen.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/windowWhen.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operators/windowWhen.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/withLatestFrom.ts b/src/third_party/devtools/node_modules/rxjs/src/operators/withLatestFrom.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/withLatestFrom.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operators/withLatestFrom.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/zip.ts b/src/third_party/devtools/node_modules/rxjs/src/operators/zip.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/zip.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operators/zip.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/zipAll.ts b/src/third_party/devtools/node_modules/rxjs/src/operators/zipAll.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/operators/zipAll.ts
rename to src/third_party/devtools/node_modules/rxjs/src/operators/zipAll.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/scheduler/animationFrame.ts b/src/third_party/devtools/node_modules/rxjs/src/scheduler/animationFrame.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/scheduler/animationFrame.ts
rename to src/third_party/devtools/node_modules/rxjs/src/scheduler/animationFrame.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/scheduler/asap.ts b/src/third_party/devtools/node_modules/rxjs/src/scheduler/asap.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/scheduler/asap.ts
rename to src/third_party/devtools/node_modules/rxjs/src/scheduler/asap.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/scheduler/async.ts b/src/third_party/devtools/node_modules/rxjs/src/scheduler/async.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/scheduler/async.ts
rename to src/third_party/devtools/node_modules/rxjs/src/scheduler/async.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/scheduler/queue.ts b/src/third_party/devtools/node_modules/rxjs/src/scheduler/queue.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/scheduler/queue.ts
rename to src/third_party/devtools/node_modules/rxjs/src/scheduler/queue.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/symbol/iterator.ts b/src/third_party/devtools/node_modules/rxjs/src/symbol/iterator.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/symbol/iterator.ts
rename to src/third_party/devtools/node_modules/rxjs/src/symbol/iterator.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/symbol/observable.ts b/src/third_party/devtools/node_modules/rxjs/src/symbol/observable.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/symbol/observable.ts
rename to src/third_party/devtools/node_modules/rxjs/src/symbol/observable.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/symbol/rxSubscriber.ts b/src/third_party/devtools/node_modules/rxjs/src/symbol/rxSubscriber.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/symbol/rxSubscriber.ts
rename to src/third_party/devtools/node_modules/rxjs/src/symbol/rxSubscriber.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/testing/index.ts b/src/third_party/devtools/node_modules/rxjs/src/testing/index.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/testing/index.ts
rename to src/third_party/devtools/node_modules/rxjs/src/testing/index.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/testing/package.json b/src/third_party/devtools/node_modules/rxjs/src/testing/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/testing/package.json
rename to src/third_party/devtools/node_modules/rxjs/src/testing/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/tsconfig.json b/src/third_party/devtools/node_modules/rxjs/src/tsconfig.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/tsconfig.json
rename to src/third_party/devtools/node_modules/rxjs/src/tsconfig.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/util/ArgumentOutOfRangeError.ts b/src/third_party/devtools/node_modules/rxjs/src/util/ArgumentOutOfRangeError.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/util/ArgumentOutOfRangeError.ts
rename to src/third_party/devtools/node_modules/rxjs/src/util/ArgumentOutOfRangeError.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/util/EmptyError.ts b/src/third_party/devtools/node_modules/rxjs/src/util/EmptyError.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/util/EmptyError.ts
rename to src/third_party/devtools/node_modules/rxjs/src/util/EmptyError.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/util/Immediate.ts b/src/third_party/devtools/node_modules/rxjs/src/util/Immediate.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/util/Immediate.ts
rename to src/third_party/devtools/node_modules/rxjs/src/util/Immediate.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/util/ObjectUnsubscribedError.ts b/src/third_party/devtools/node_modules/rxjs/src/util/ObjectUnsubscribedError.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/util/ObjectUnsubscribedError.ts
rename to src/third_party/devtools/node_modules/rxjs/src/util/ObjectUnsubscribedError.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/util/TimeoutError.ts b/src/third_party/devtools/node_modules/rxjs/src/util/TimeoutError.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/util/TimeoutError.ts
rename to src/third_party/devtools/node_modules/rxjs/src/util/TimeoutError.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/util/UnsubscriptionError.ts b/src/third_party/devtools/node_modules/rxjs/src/util/UnsubscriptionError.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/util/UnsubscriptionError.ts
rename to src/third_party/devtools/node_modules/rxjs/src/util/UnsubscriptionError.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/util/applyMixins.ts b/src/third_party/devtools/node_modules/rxjs/src/util/applyMixins.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/util/applyMixins.ts
rename to src/third_party/devtools/node_modules/rxjs/src/util/applyMixins.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/util/errorObject.ts b/src/third_party/devtools/node_modules/rxjs/src/util/errorObject.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/util/errorObject.ts
rename to src/third_party/devtools/node_modules/rxjs/src/util/errorObject.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/util/hostReportError.ts b/src/third_party/devtools/node_modules/rxjs/src/util/hostReportError.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/util/hostReportError.ts
rename to src/third_party/devtools/node_modules/rxjs/src/util/hostReportError.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/util/identity.ts b/src/third_party/devtools/node_modules/rxjs/src/util/identity.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/util/identity.ts
rename to src/third_party/devtools/node_modules/rxjs/src/util/identity.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/util/isArray.ts b/src/third_party/devtools/node_modules/rxjs/src/util/isArray.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/util/isArray.ts
rename to src/third_party/devtools/node_modules/rxjs/src/util/isArray.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/util/isArrayLike.ts b/src/third_party/devtools/node_modules/rxjs/src/util/isArrayLike.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/util/isArrayLike.ts
rename to src/third_party/devtools/node_modules/rxjs/src/util/isArrayLike.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/util/isDate.ts b/src/third_party/devtools/node_modules/rxjs/src/util/isDate.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/util/isDate.ts
rename to src/third_party/devtools/node_modules/rxjs/src/util/isDate.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/util/isFunction.ts b/src/third_party/devtools/node_modules/rxjs/src/util/isFunction.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/util/isFunction.ts
rename to src/third_party/devtools/node_modules/rxjs/src/util/isFunction.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/util/isIterable.ts b/src/third_party/devtools/node_modules/rxjs/src/util/isIterable.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/util/isIterable.ts
rename to src/third_party/devtools/node_modules/rxjs/src/util/isIterable.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/util/isNumeric.ts b/src/third_party/devtools/node_modules/rxjs/src/util/isNumeric.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/util/isNumeric.ts
rename to src/third_party/devtools/node_modules/rxjs/src/util/isNumeric.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/util/isObject.ts b/src/third_party/devtools/node_modules/rxjs/src/util/isObject.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/util/isObject.ts
rename to src/third_party/devtools/node_modules/rxjs/src/util/isObject.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/util/isObservable.ts b/src/third_party/devtools/node_modules/rxjs/src/util/isObservable.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/util/isObservable.ts
rename to src/third_party/devtools/node_modules/rxjs/src/util/isObservable.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/util/isPromise.ts b/src/third_party/devtools/node_modules/rxjs/src/util/isPromise.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/util/isPromise.ts
rename to src/third_party/devtools/node_modules/rxjs/src/util/isPromise.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/util/isScheduler.ts b/src/third_party/devtools/node_modules/rxjs/src/util/isScheduler.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/util/isScheduler.ts
rename to src/third_party/devtools/node_modules/rxjs/src/util/isScheduler.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/util/noop.ts b/src/third_party/devtools/node_modules/rxjs/src/util/noop.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/util/noop.ts
rename to src/third_party/devtools/node_modules/rxjs/src/util/noop.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/util/not.ts b/src/third_party/devtools/node_modules/rxjs/src/util/not.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/util/not.ts
rename to src/third_party/devtools/node_modules/rxjs/src/util/not.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/util/pipe.ts b/src/third_party/devtools/node_modules/rxjs/src/util/pipe.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/util/pipe.ts
rename to src/third_party/devtools/node_modules/rxjs/src/util/pipe.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/util/root.ts b/src/third_party/devtools/node_modules/rxjs/src/util/root.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/util/root.ts
rename to src/third_party/devtools/node_modules/rxjs/src/util/root.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/util/subscribeTo.ts b/src/third_party/devtools/node_modules/rxjs/src/util/subscribeTo.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/util/subscribeTo.ts
rename to src/third_party/devtools/node_modules/rxjs/src/util/subscribeTo.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/util/subscribeToArray.ts b/src/third_party/devtools/node_modules/rxjs/src/util/subscribeToArray.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/util/subscribeToArray.ts
rename to src/third_party/devtools/node_modules/rxjs/src/util/subscribeToArray.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/util/subscribeToIterable.ts b/src/third_party/devtools/node_modules/rxjs/src/util/subscribeToIterable.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/util/subscribeToIterable.ts
rename to src/third_party/devtools/node_modules/rxjs/src/util/subscribeToIterable.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/util/subscribeToObservable.ts b/src/third_party/devtools/node_modules/rxjs/src/util/subscribeToObservable.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/util/subscribeToObservable.ts
rename to src/third_party/devtools/node_modules/rxjs/src/util/subscribeToObservable.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/util/subscribeToPromise.ts b/src/third_party/devtools/node_modules/rxjs/src/util/subscribeToPromise.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/util/subscribeToPromise.ts
rename to src/third_party/devtools/node_modules/rxjs/src/util/subscribeToPromise.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/util/subscribeToResult.ts b/src/third_party/devtools/node_modules/rxjs/src/util/subscribeToResult.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/util/subscribeToResult.ts
rename to src/third_party/devtools/node_modules/rxjs/src/util/subscribeToResult.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/util/toSubscriber.ts b/src/third_party/devtools/node_modules/rxjs/src/util/toSubscriber.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/util/toSubscriber.ts
rename to src/third_party/devtools/node_modules/rxjs/src/util/toSubscriber.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/util/tryCatch.ts b/src/third_party/devtools/node_modules/rxjs/src/util/tryCatch.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/util/tryCatch.ts
rename to src/third_party/devtools/node_modules/rxjs/src/util/tryCatch.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/webSocket/index.ts b/src/third_party/devtools/node_modules/rxjs/src/webSocket/index.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/webSocket/index.ts
rename to src/third_party/devtools/node_modules/rxjs/src/webSocket/index.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/src/webSocket/package.json b/src/third_party/devtools/node_modules/rxjs/src/webSocket/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/src/webSocket/package.json
rename to src/third_party/devtools/node_modules/rxjs/src/webSocket/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/symbol/iterator.d.ts b/src/third_party/devtools/node_modules/rxjs/symbol/iterator.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/symbol/iterator.d.ts
rename to src/third_party/devtools/node_modules/rxjs/symbol/iterator.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/symbol/iterator.js b/src/third_party/devtools/node_modules/rxjs/symbol/iterator.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/symbol/iterator.js
rename to src/third_party/devtools/node_modules/rxjs/symbol/iterator.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/symbol/iterator.js.map b/src/third_party/devtools/node_modules/rxjs/symbol/iterator.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/symbol/iterator.js.map
rename to src/third_party/devtools/node_modules/rxjs/symbol/iterator.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/symbol/observable.d.ts b/src/third_party/devtools/node_modules/rxjs/symbol/observable.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/symbol/observable.d.ts
rename to src/third_party/devtools/node_modules/rxjs/symbol/observable.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/symbol/observable.js b/src/third_party/devtools/node_modules/rxjs/symbol/observable.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/symbol/observable.js
rename to src/third_party/devtools/node_modules/rxjs/symbol/observable.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/symbol/observable.js.map b/src/third_party/devtools/node_modules/rxjs/symbol/observable.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/symbol/observable.js.map
rename to src/third_party/devtools/node_modules/rxjs/symbol/observable.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/symbol/rxSubscriber.d.ts b/src/third_party/devtools/node_modules/rxjs/symbol/rxSubscriber.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/symbol/rxSubscriber.d.ts
rename to src/third_party/devtools/node_modules/rxjs/symbol/rxSubscriber.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/symbol/rxSubscriber.js b/src/third_party/devtools/node_modules/rxjs/symbol/rxSubscriber.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/symbol/rxSubscriber.js
rename to src/third_party/devtools/node_modules/rxjs/symbol/rxSubscriber.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/symbol/rxSubscriber.js.map b/src/third_party/devtools/node_modules/rxjs/symbol/rxSubscriber.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/symbol/rxSubscriber.js.map
rename to src/third_party/devtools/node_modules/rxjs/symbol/rxSubscriber.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/testing/index.d.ts b/src/third_party/devtools/node_modules/rxjs/testing/index.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/testing/index.d.ts
rename to src/third_party/devtools/node_modules/rxjs/testing/index.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/testing/index.js b/src/third_party/devtools/node_modules/rxjs/testing/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/testing/index.js
rename to src/third_party/devtools/node_modules/rxjs/testing/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/testing/index.js.map b/src/third_party/devtools/node_modules/rxjs/testing/index.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/testing/index.js.map
rename to src/third_party/devtools/node_modules/rxjs/testing/index.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/testing/package.json b/src/third_party/devtools/node_modules/rxjs/testing/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/testing/package.json
rename to src/third_party/devtools/node_modules/rxjs/testing/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/util/ArgumentOutOfRangeError.d.ts b/src/third_party/devtools/node_modules/rxjs/util/ArgumentOutOfRangeError.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/util/ArgumentOutOfRangeError.d.ts
rename to src/third_party/devtools/node_modules/rxjs/util/ArgumentOutOfRangeError.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/util/ArgumentOutOfRangeError.js b/src/third_party/devtools/node_modules/rxjs/util/ArgumentOutOfRangeError.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/util/ArgumentOutOfRangeError.js
rename to src/third_party/devtools/node_modules/rxjs/util/ArgumentOutOfRangeError.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/util/ArgumentOutOfRangeError.js.map b/src/third_party/devtools/node_modules/rxjs/util/ArgumentOutOfRangeError.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/util/ArgumentOutOfRangeError.js.map
rename to src/third_party/devtools/node_modules/rxjs/util/ArgumentOutOfRangeError.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/util/EmptyError.d.ts b/src/third_party/devtools/node_modules/rxjs/util/EmptyError.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/util/EmptyError.d.ts
rename to src/third_party/devtools/node_modules/rxjs/util/EmptyError.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/util/EmptyError.js b/src/third_party/devtools/node_modules/rxjs/util/EmptyError.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/util/EmptyError.js
rename to src/third_party/devtools/node_modules/rxjs/util/EmptyError.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/util/EmptyError.js.map b/src/third_party/devtools/node_modules/rxjs/util/EmptyError.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/util/EmptyError.js.map
rename to src/third_party/devtools/node_modules/rxjs/util/EmptyError.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/util/Immediate.d.ts b/src/third_party/devtools/node_modules/rxjs/util/Immediate.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/util/Immediate.d.ts
rename to src/third_party/devtools/node_modules/rxjs/util/Immediate.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/util/Immediate.js b/src/third_party/devtools/node_modules/rxjs/util/Immediate.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/util/Immediate.js
rename to src/third_party/devtools/node_modules/rxjs/util/Immediate.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/util/Immediate.js.map b/src/third_party/devtools/node_modules/rxjs/util/Immediate.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/util/Immediate.js.map
rename to src/third_party/devtools/node_modules/rxjs/util/Immediate.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/util/ObjectUnsubscribedError.d.ts b/src/third_party/devtools/node_modules/rxjs/util/ObjectUnsubscribedError.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/util/ObjectUnsubscribedError.d.ts
rename to src/third_party/devtools/node_modules/rxjs/util/ObjectUnsubscribedError.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/util/ObjectUnsubscribedError.js b/src/third_party/devtools/node_modules/rxjs/util/ObjectUnsubscribedError.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/util/ObjectUnsubscribedError.js
rename to src/third_party/devtools/node_modules/rxjs/util/ObjectUnsubscribedError.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/util/ObjectUnsubscribedError.js.map b/src/third_party/devtools/node_modules/rxjs/util/ObjectUnsubscribedError.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/util/ObjectUnsubscribedError.js.map
rename to src/third_party/devtools/node_modules/rxjs/util/ObjectUnsubscribedError.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/util/TimeoutError.d.ts b/src/third_party/devtools/node_modules/rxjs/util/TimeoutError.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/util/TimeoutError.d.ts
rename to src/third_party/devtools/node_modules/rxjs/util/TimeoutError.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/util/TimeoutError.js b/src/third_party/devtools/node_modules/rxjs/util/TimeoutError.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/util/TimeoutError.js
rename to src/third_party/devtools/node_modules/rxjs/util/TimeoutError.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/util/TimeoutError.js.map b/src/third_party/devtools/node_modules/rxjs/util/TimeoutError.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/util/TimeoutError.js.map
rename to src/third_party/devtools/node_modules/rxjs/util/TimeoutError.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/util/UnsubscriptionError.d.ts b/src/third_party/devtools/node_modules/rxjs/util/UnsubscriptionError.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/util/UnsubscriptionError.d.ts
rename to src/third_party/devtools/node_modules/rxjs/util/UnsubscriptionError.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/util/UnsubscriptionError.js b/src/third_party/devtools/node_modules/rxjs/util/UnsubscriptionError.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/util/UnsubscriptionError.js
rename to src/third_party/devtools/node_modules/rxjs/util/UnsubscriptionError.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/util/UnsubscriptionError.js.map b/src/third_party/devtools/node_modules/rxjs/util/UnsubscriptionError.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/util/UnsubscriptionError.js.map
rename to src/third_party/devtools/node_modules/rxjs/util/UnsubscriptionError.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/util/applyMixins.d.ts b/src/third_party/devtools/node_modules/rxjs/util/applyMixins.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/util/applyMixins.d.ts
rename to src/third_party/devtools/node_modules/rxjs/util/applyMixins.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/util/applyMixins.js b/src/third_party/devtools/node_modules/rxjs/util/applyMixins.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/util/applyMixins.js
rename to src/third_party/devtools/node_modules/rxjs/util/applyMixins.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/util/applyMixins.js.map b/src/third_party/devtools/node_modules/rxjs/util/applyMixins.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/util/applyMixins.js.map
rename to src/third_party/devtools/node_modules/rxjs/util/applyMixins.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/util/errorObject.d.ts b/src/third_party/devtools/node_modules/rxjs/util/errorObject.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/util/errorObject.d.ts
rename to src/third_party/devtools/node_modules/rxjs/util/errorObject.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/util/errorObject.js b/src/third_party/devtools/node_modules/rxjs/util/errorObject.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/util/errorObject.js
rename to src/third_party/devtools/node_modules/rxjs/util/errorObject.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/util/errorObject.js.map b/src/third_party/devtools/node_modules/rxjs/util/errorObject.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/util/errorObject.js.map
rename to src/third_party/devtools/node_modules/rxjs/util/errorObject.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/util/hostReportError.d.ts b/src/third_party/devtools/node_modules/rxjs/util/hostReportError.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/util/hostReportError.d.ts
rename to src/third_party/devtools/node_modules/rxjs/util/hostReportError.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/util/hostReportError.js b/src/third_party/devtools/node_modules/rxjs/util/hostReportError.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/util/hostReportError.js
rename to src/third_party/devtools/node_modules/rxjs/util/hostReportError.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/util/hostReportError.js.map b/src/third_party/devtools/node_modules/rxjs/util/hostReportError.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/util/hostReportError.js.map
rename to src/third_party/devtools/node_modules/rxjs/util/hostReportError.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/util/identity.d.ts b/src/third_party/devtools/node_modules/rxjs/util/identity.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/util/identity.d.ts
rename to src/third_party/devtools/node_modules/rxjs/util/identity.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/util/identity.js b/src/third_party/devtools/node_modules/rxjs/util/identity.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/util/identity.js
rename to src/third_party/devtools/node_modules/rxjs/util/identity.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/util/identity.js.map b/src/third_party/devtools/node_modules/rxjs/util/identity.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/util/identity.js.map
rename to src/third_party/devtools/node_modules/rxjs/util/identity.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/util/isArray.d.ts b/src/third_party/devtools/node_modules/rxjs/util/isArray.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/util/isArray.d.ts
rename to src/third_party/devtools/node_modules/rxjs/util/isArray.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/util/isArray.js b/src/third_party/devtools/node_modules/rxjs/util/isArray.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/util/isArray.js
rename to src/third_party/devtools/node_modules/rxjs/util/isArray.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/util/isArray.js.map b/src/third_party/devtools/node_modules/rxjs/util/isArray.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/util/isArray.js.map
rename to src/third_party/devtools/node_modules/rxjs/util/isArray.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/util/isArrayLike.d.ts b/src/third_party/devtools/node_modules/rxjs/util/isArrayLike.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/util/isArrayLike.d.ts
rename to src/third_party/devtools/node_modules/rxjs/util/isArrayLike.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/util/isArrayLike.js b/src/third_party/devtools/node_modules/rxjs/util/isArrayLike.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/util/isArrayLike.js
rename to src/third_party/devtools/node_modules/rxjs/util/isArrayLike.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/util/isArrayLike.js.map b/src/third_party/devtools/node_modules/rxjs/util/isArrayLike.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/util/isArrayLike.js.map
rename to src/third_party/devtools/node_modules/rxjs/util/isArrayLike.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/util/isDate.d.ts b/src/third_party/devtools/node_modules/rxjs/util/isDate.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/util/isDate.d.ts
rename to src/third_party/devtools/node_modules/rxjs/util/isDate.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/util/isDate.js b/src/third_party/devtools/node_modules/rxjs/util/isDate.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/util/isDate.js
rename to src/third_party/devtools/node_modules/rxjs/util/isDate.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/util/isDate.js.map b/src/third_party/devtools/node_modules/rxjs/util/isDate.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/util/isDate.js.map
rename to src/third_party/devtools/node_modules/rxjs/util/isDate.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/util/isFunction.d.ts b/src/third_party/devtools/node_modules/rxjs/util/isFunction.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/util/isFunction.d.ts
rename to src/third_party/devtools/node_modules/rxjs/util/isFunction.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/util/isFunction.js b/src/third_party/devtools/node_modules/rxjs/util/isFunction.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/util/isFunction.js
rename to src/third_party/devtools/node_modules/rxjs/util/isFunction.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/util/isFunction.js.map b/src/third_party/devtools/node_modules/rxjs/util/isFunction.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/util/isFunction.js.map
rename to src/third_party/devtools/node_modules/rxjs/util/isFunction.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/util/isIterable.d.ts b/src/third_party/devtools/node_modules/rxjs/util/isIterable.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/util/isIterable.d.ts
rename to src/third_party/devtools/node_modules/rxjs/util/isIterable.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/util/isIterable.js b/src/third_party/devtools/node_modules/rxjs/util/isIterable.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/util/isIterable.js
rename to src/third_party/devtools/node_modules/rxjs/util/isIterable.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/util/isIterable.js.map b/src/third_party/devtools/node_modules/rxjs/util/isIterable.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/util/isIterable.js.map
rename to src/third_party/devtools/node_modules/rxjs/util/isIterable.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/util/isNumeric.d.ts b/src/third_party/devtools/node_modules/rxjs/util/isNumeric.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/util/isNumeric.d.ts
rename to src/third_party/devtools/node_modules/rxjs/util/isNumeric.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/util/isNumeric.js b/src/third_party/devtools/node_modules/rxjs/util/isNumeric.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/util/isNumeric.js
rename to src/third_party/devtools/node_modules/rxjs/util/isNumeric.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/util/isNumeric.js.map b/src/third_party/devtools/node_modules/rxjs/util/isNumeric.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/util/isNumeric.js.map
rename to src/third_party/devtools/node_modules/rxjs/util/isNumeric.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/util/isObject.d.ts b/src/third_party/devtools/node_modules/rxjs/util/isObject.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/util/isObject.d.ts
rename to src/third_party/devtools/node_modules/rxjs/util/isObject.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/util/isObject.js b/src/third_party/devtools/node_modules/rxjs/util/isObject.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/util/isObject.js
rename to src/third_party/devtools/node_modules/rxjs/util/isObject.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/util/isObject.js.map b/src/third_party/devtools/node_modules/rxjs/util/isObject.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/util/isObject.js.map
rename to src/third_party/devtools/node_modules/rxjs/util/isObject.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/util/isObservable.d.ts b/src/third_party/devtools/node_modules/rxjs/util/isObservable.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/util/isObservable.d.ts
rename to src/third_party/devtools/node_modules/rxjs/util/isObservable.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/util/isObservable.js b/src/third_party/devtools/node_modules/rxjs/util/isObservable.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/util/isObservable.js
rename to src/third_party/devtools/node_modules/rxjs/util/isObservable.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/util/isObservable.js.map b/src/third_party/devtools/node_modules/rxjs/util/isObservable.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/util/isObservable.js.map
rename to src/third_party/devtools/node_modules/rxjs/util/isObservable.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/util/isPromise.d.ts b/src/third_party/devtools/node_modules/rxjs/util/isPromise.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/util/isPromise.d.ts
rename to src/third_party/devtools/node_modules/rxjs/util/isPromise.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/util/isPromise.js b/src/third_party/devtools/node_modules/rxjs/util/isPromise.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/util/isPromise.js
rename to src/third_party/devtools/node_modules/rxjs/util/isPromise.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/util/isPromise.js.map b/src/third_party/devtools/node_modules/rxjs/util/isPromise.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/util/isPromise.js.map
rename to src/third_party/devtools/node_modules/rxjs/util/isPromise.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/util/isScheduler.d.ts b/src/third_party/devtools/node_modules/rxjs/util/isScheduler.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/util/isScheduler.d.ts
rename to src/third_party/devtools/node_modules/rxjs/util/isScheduler.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/util/isScheduler.js b/src/third_party/devtools/node_modules/rxjs/util/isScheduler.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/util/isScheduler.js
rename to src/third_party/devtools/node_modules/rxjs/util/isScheduler.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/util/isScheduler.js.map b/src/third_party/devtools/node_modules/rxjs/util/isScheduler.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/util/isScheduler.js.map
rename to src/third_party/devtools/node_modules/rxjs/util/isScheduler.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/util/noop.d.ts b/src/third_party/devtools/node_modules/rxjs/util/noop.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/util/noop.d.ts
rename to src/third_party/devtools/node_modules/rxjs/util/noop.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/util/noop.js b/src/third_party/devtools/node_modules/rxjs/util/noop.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/util/noop.js
rename to src/third_party/devtools/node_modules/rxjs/util/noop.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/util/noop.js.map b/src/third_party/devtools/node_modules/rxjs/util/noop.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/util/noop.js.map
rename to src/third_party/devtools/node_modules/rxjs/util/noop.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/util/not.d.ts b/src/third_party/devtools/node_modules/rxjs/util/not.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/util/not.d.ts
rename to src/third_party/devtools/node_modules/rxjs/util/not.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/util/not.js b/src/third_party/devtools/node_modules/rxjs/util/not.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/util/not.js
rename to src/third_party/devtools/node_modules/rxjs/util/not.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/util/not.js.map b/src/third_party/devtools/node_modules/rxjs/util/not.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/util/not.js.map
rename to src/third_party/devtools/node_modules/rxjs/util/not.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/util/pipe.d.ts b/src/third_party/devtools/node_modules/rxjs/util/pipe.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/util/pipe.d.ts
rename to src/third_party/devtools/node_modules/rxjs/util/pipe.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/util/pipe.js b/src/third_party/devtools/node_modules/rxjs/util/pipe.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/util/pipe.js
rename to src/third_party/devtools/node_modules/rxjs/util/pipe.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/util/pipe.js.map b/src/third_party/devtools/node_modules/rxjs/util/pipe.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/util/pipe.js.map
rename to src/third_party/devtools/node_modules/rxjs/util/pipe.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/util/root.d.ts b/src/third_party/devtools/node_modules/rxjs/util/root.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/util/root.d.ts
rename to src/third_party/devtools/node_modules/rxjs/util/root.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/util/root.js b/src/third_party/devtools/node_modules/rxjs/util/root.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/util/root.js
rename to src/third_party/devtools/node_modules/rxjs/util/root.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/util/root.js.map b/src/third_party/devtools/node_modules/rxjs/util/root.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/util/root.js.map
rename to src/third_party/devtools/node_modules/rxjs/util/root.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/util/subscribeTo.d.ts b/src/third_party/devtools/node_modules/rxjs/util/subscribeTo.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/util/subscribeTo.d.ts
rename to src/third_party/devtools/node_modules/rxjs/util/subscribeTo.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/util/subscribeTo.js b/src/third_party/devtools/node_modules/rxjs/util/subscribeTo.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/util/subscribeTo.js
rename to src/third_party/devtools/node_modules/rxjs/util/subscribeTo.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/util/subscribeTo.js.map b/src/third_party/devtools/node_modules/rxjs/util/subscribeTo.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/util/subscribeTo.js.map
rename to src/third_party/devtools/node_modules/rxjs/util/subscribeTo.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/util/subscribeToArray.d.ts b/src/third_party/devtools/node_modules/rxjs/util/subscribeToArray.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/util/subscribeToArray.d.ts
rename to src/third_party/devtools/node_modules/rxjs/util/subscribeToArray.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/util/subscribeToArray.js b/src/third_party/devtools/node_modules/rxjs/util/subscribeToArray.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/util/subscribeToArray.js
rename to src/third_party/devtools/node_modules/rxjs/util/subscribeToArray.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/util/subscribeToArray.js.map b/src/third_party/devtools/node_modules/rxjs/util/subscribeToArray.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/util/subscribeToArray.js.map
rename to src/third_party/devtools/node_modules/rxjs/util/subscribeToArray.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/util/subscribeToIterable.d.ts b/src/third_party/devtools/node_modules/rxjs/util/subscribeToIterable.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/util/subscribeToIterable.d.ts
rename to src/third_party/devtools/node_modules/rxjs/util/subscribeToIterable.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/util/subscribeToIterable.js b/src/third_party/devtools/node_modules/rxjs/util/subscribeToIterable.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/util/subscribeToIterable.js
rename to src/third_party/devtools/node_modules/rxjs/util/subscribeToIterable.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/util/subscribeToIterable.js.map b/src/third_party/devtools/node_modules/rxjs/util/subscribeToIterable.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/util/subscribeToIterable.js.map
rename to src/third_party/devtools/node_modules/rxjs/util/subscribeToIterable.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/util/subscribeToObservable.d.ts b/src/third_party/devtools/node_modules/rxjs/util/subscribeToObservable.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/util/subscribeToObservable.d.ts
rename to src/third_party/devtools/node_modules/rxjs/util/subscribeToObservable.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/util/subscribeToObservable.js b/src/third_party/devtools/node_modules/rxjs/util/subscribeToObservable.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/util/subscribeToObservable.js
rename to src/third_party/devtools/node_modules/rxjs/util/subscribeToObservable.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/util/subscribeToObservable.js.map b/src/third_party/devtools/node_modules/rxjs/util/subscribeToObservable.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/util/subscribeToObservable.js.map
rename to src/third_party/devtools/node_modules/rxjs/util/subscribeToObservable.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/util/subscribeToPromise.d.ts b/src/third_party/devtools/node_modules/rxjs/util/subscribeToPromise.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/util/subscribeToPromise.d.ts
rename to src/third_party/devtools/node_modules/rxjs/util/subscribeToPromise.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/util/subscribeToPromise.js b/src/third_party/devtools/node_modules/rxjs/util/subscribeToPromise.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/util/subscribeToPromise.js
rename to src/third_party/devtools/node_modules/rxjs/util/subscribeToPromise.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/util/subscribeToPromise.js.map b/src/third_party/devtools/node_modules/rxjs/util/subscribeToPromise.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/util/subscribeToPromise.js.map
rename to src/third_party/devtools/node_modules/rxjs/util/subscribeToPromise.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/util/subscribeToResult.d.ts b/src/third_party/devtools/node_modules/rxjs/util/subscribeToResult.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/util/subscribeToResult.d.ts
rename to src/third_party/devtools/node_modules/rxjs/util/subscribeToResult.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/util/subscribeToResult.js b/src/third_party/devtools/node_modules/rxjs/util/subscribeToResult.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/util/subscribeToResult.js
rename to src/third_party/devtools/node_modules/rxjs/util/subscribeToResult.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/util/subscribeToResult.js.map b/src/third_party/devtools/node_modules/rxjs/util/subscribeToResult.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/util/subscribeToResult.js.map
rename to src/third_party/devtools/node_modules/rxjs/util/subscribeToResult.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/util/toSubscriber.d.ts b/src/third_party/devtools/node_modules/rxjs/util/toSubscriber.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/util/toSubscriber.d.ts
rename to src/third_party/devtools/node_modules/rxjs/util/toSubscriber.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/util/toSubscriber.js b/src/third_party/devtools/node_modules/rxjs/util/toSubscriber.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/util/toSubscriber.js
rename to src/third_party/devtools/node_modules/rxjs/util/toSubscriber.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/util/toSubscriber.js.map b/src/third_party/devtools/node_modules/rxjs/util/toSubscriber.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/util/toSubscriber.js.map
rename to src/third_party/devtools/node_modules/rxjs/util/toSubscriber.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/util/tryCatch.d.ts b/src/third_party/devtools/node_modules/rxjs/util/tryCatch.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/util/tryCatch.d.ts
rename to src/third_party/devtools/node_modules/rxjs/util/tryCatch.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/util/tryCatch.js b/src/third_party/devtools/node_modules/rxjs/util/tryCatch.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/util/tryCatch.js
rename to src/third_party/devtools/node_modules/rxjs/util/tryCatch.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/util/tryCatch.js.map b/src/third_party/devtools/node_modules/rxjs/util/tryCatch.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/util/tryCatch.js.map
rename to src/third_party/devtools/node_modules/rxjs/util/tryCatch.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/webSocket/index.d.ts b/src/third_party/devtools/node_modules/rxjs/webSocket/index.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/webSocket/index.d.ts
rename to src/third_party/devtools/node_modules/rxjs/webSocket/index.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/webSocket/index.js b/src/third_party/devtools/node_modules/rxjs/webSocket/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/webSocket/index.js
rename to src/third_party/devtools/node_modules/rxjs/webSocket/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/webSocket/index.js.map b/src/third_party/devtools/node_modules/rxjs/webSocket/index.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/webSocket/index.js.map
rename to src/third_party/devtools/node_modules/rxjs/webSocket/index.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/rxjs/webSocket/package.json b/src/third_party/devtools/node_modules/rxjs/webSocket/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/rxjs/webSocket/package.json
rename to src/third_party/devtools/node_modules/rxjs/webSocket/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/safe-buffer/LICENSE b/src/third_party/devtools/node_modules/safe-buffer/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/safe-buffer/LICENSE
rename to src/third_party/devtools/node_modules/safe-buffer/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/safe-buffer/README.md b/src/third_party/devtools/node_modules/safe-buffer/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/safe-buffer/README.md
rename to src/third_party/devtools/node_modules/safe-buffer/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/safe-buffer/index.d.ts b/src/third_party/devtools/node_modules/safe-buffer/index.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/safe-buffer/index.d.ts
rename to src/third_party/devtools/node_modules/safe-buffer/index.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/safe-buffer/index.js b/src/third_party/devtools/node_modules/safe-buffer/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/safe-buffer/index.js
rename to src/third_party/devtools/node_modules/safe-buffer/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/safe-buffer/package.json b/src/third_party/devtools/node_modules/safe-buffer/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/safe-buffer/package.json
rename to src/third_party/devtools/node_modules/safe-buffer/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/safer-buffer/LICENSE b/src/third_party/devtools/node_modules/safer-buffer/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/safer-buffer/LICENSE
rename to src/third_party/devtools/node_modules/safer-buffer/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/safer-buffer/Porting-Buffer.md b/src/third_party/devtools/node_modules/safer-buffer/Porting-Buffer.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/safer-buffer/Porting-Buffer.md
rename to src/third_party/devtools/node_modules/safer-buffer/Porting-Buffer.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/safer-buffer/Readme.md b/src/third_party/devtools/node_modules/safer-buffer/Readme.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/safer-buffer/Readme.md
rename to src/third_party/devtools/node_modules/safer-buffer/Readme.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/safer-buffer/dangerous.js b/src/third_party/devtools/node_modules/safer-buffer/dangerous.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/safer-buffer/dangerous.js
rename to src/third_party/devtools/node_modules/safer-buffer/dangerous.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/safer-buffer/package.json b/src/third_party/devtools/node_modules/safer-buffer/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/safer-buffer/package.json
rename to src/third_party/devtools/node_modules/safer-buffer/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/safer-buffer/safer.js b/src/third_party/devtools/node_modules/safer-buffer/safer.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/safer-buffer/safer.js
rename to src/third_party/devtools/node_modules/safer-buffer/safer.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/safer-buffer/tests.js b/src/third_party/devtools/node_modules/safer-buffer/tests.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/safer-buffer/tests.js
rename to src/third_party/devtools/node_modules/safer-buffer/tests.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/semver/CHANGELOG.md b/src/third_party/devtools/node_modules/semver/CHANGELOG.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/semver/CHANGELOG.md
rename to src/third_party/devtools/node_modules/semver/CHANGELOG.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/semver/LICENSE b/src/third_party/devtools/node_modules/semver/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/semver/LICENSE
rename to src/third_party/devtools/node_modules/semver/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/semver/README.md b/src/third_party/devtools/node_modules/semver/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/semver/README.md
rename to src/third_party/devtools/node_modules/semver/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/semver/bin/semver b/src/third_party/devtools/node_modules/semver/bin/semver
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/semver/bin/semver
rename to src/third_party/devtools/node_modules/semver/bin/semver
diff --git a/src/cobalt/debug/remote/devtools/node_modules/semver/package.json b/src/third_party/devtools/node_modules/semver/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/semver/package.json
rename to src/third_party/devtools/node_modules/semver/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/semver/range.bnf b/src/third_party/devtools/node_modules/semver/range.bnf
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/semver/range.bnf
rename to src/third_party/devtools/node_modules/semver/range.bnf
diff --git a/src/cobalt/debug/remote/devtools/node_modules/semver/semver.js b/src/third_party/devtools/node_modules/semver/semver.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/semver/semver.js
rename to src/third_party/devtools/node_modules/semver/semver.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/set-blocking/CHANGELOG.md b/src/third_party/devtools/node_modules/set-blocking/CHANGELOG.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/set-blocking/CHANGELOG.md
rename to src/third_party/devtools/node_modules/set-blocking/CHANGELOG.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/set-blocking/LICENSE.txt b/src/third_party/devtools/node_modules/set-blocking/LICENSE.txt
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/set-blocking/LICENSE.txt
rename to src/third_party/devtools/node_modules/set-blocking/LICENSE.txt
diff --git a/src/cobalt/debug/remote/devtools/node_modules/set-blocking/README.md b/src/third_party/devtools/node_modules/set-blocking/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/set-blocking/README.md
rename to src/third_party/devtools/node_modules/set-blocking/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/set-blocking/index.js b/src/third_party/devtools/node_modules/set-blocking/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/set-blocking/index.js
rename to src/third_party/devtools/node_modules/set-blocking/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/set-blocking/package.json b/src/third_party/devtools/node_modules/set-blocking/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/set-blocking/package.json
rename to src/third_party/devtools/node_modules/set-blocking/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/setimmediate/LICENSE.txt b/src/third_party/devtools/node_modules/setimmediate/LICENSE.txt
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/setimmediate/LICENSE.txt
rename to src/third_party/devtools/node_modules/setimmediate/LICENSE.txt
diff --git a/src/cobalt/debug/remote/devtools/node_modules/setimmediate/package.json b/src/third_party/devtools/node_modules/setimmediate/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/setimmediate/package.json
rename to src/third_party/devtools/node_modules/setimmediate/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/setimmediate/setImmediate.js b/src/third_party/devtools/node_modules/setimmediate/setImmediate.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/setimmediate/setImmediate.js
rename to src/third_party/devtools/node_modules/setimmediate/setImmediate.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/setprototypeof/LICENSE b/src/third_party/devtools/node_modules/setprototypeof/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/setprototypeof/LICENSE
rename to src/third_party/devtools/node_modules/setprototypeof/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/setprototypeof/README.md b/src/third_party/devtools/node_modules/setprototypeof/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/setprototypeof/README.md
rename to src/third_party/devtools/node_modules/setprototypeof/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/setprototypeof/index.d.ts b/src/third_party/devtools/node_modules/setprototypeof/index.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/setprototypeof/index.d.ts
rename to src/third_party/devtools/node_modules/setprototypeof/index.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/setprototypeof/index.js b/src/third_party/devtools/node_modules/setprototypeof/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/setprototypeof/index.js
rename to src/third_party/devtools/node_modules/setprototypeof/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/setprototypeof/package.json b/src/third_party/devtools/node_modules/setprototypeof/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/setprototypeof/package.json
rename to src/third_party/devtools/node_modules/setprototypeof/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/setprototypeof/test/index.js b/src/third_party/devtools/node_modules/setprototypeof/test/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/setprototypeof/test/index.js
rename to src/third_party/devtools/node_modules/setprototypeof/test/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/sha.js/.travis.yml b/src/third_party/devtools/node_modules/sha.js/.travis.yml
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/sha.js/.travis.yml
rename to src/third_party/devtools/node_modules/sha.js/.travis.yml
diff --git a/src/cobalt/debug/remote/devtools/node_modules/sha.js/LICENSE b/src/third_party/devtools/node_modules/sha.js/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/sha.js/LICENSE
rename to src/third_party/devtools/node_modules/sha.js/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/sha.js/README.md b/src/third_party/devtools/node_modules/sha.js/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/sha.js/README.md
rename to src/third_party/devtools/node_modules/sha.js/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/sha.js/bin.js b/src/third_party/devtools/node_modules/sha.js/bin.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/sha.js/bin.js
rename to src/third_party/devtools/node_modules/sha.js/bin.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/sha.js/hash.js b/src/third_party/devtools/node_modules/sha.js/hash.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/sha.js/hash.js
rename to src/third_party/devtools/node_modules/sha.js/hash.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/sha.js/index.js b/src/third_party/devtools/node_modules/sha.js/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/sha.js/index.js
rename to src/third_party/devtools/node_modules/sha.js/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/sha.js/package.json b/src/third_party/devtools/node_modules/sha.js/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/sha.js/package.json
rename to src/third_party/devtools/node_modules/sha.js/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/sha.js/sha.js b/src/third_party/devtools/node_modules/sha.js/sha.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/sha.js/sha.js
rename to src/third_party/devtools/node_modules/sha.js/sha.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/sha.js/sha1.js b/src/third_party/devtools/node_modules/sha.js/sha1.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/sha.js/sha1.js
rename to src/third_party/devtools/node_modules/sha.js/sha1.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/sha.js/sha224.js b/src/third_party/devtools/node_modules/sha.js/sha224.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/sha.js/sha224.js
rename to src/third_party/devtools/node_modules/sha.js/sha224.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/sha.js/sha256.js b/src/third_party/devtools/node_modules/sha.js/sha256.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/sha.js/sha256.js
rename to src/third_party/devtools/node_modules/sha.js/sha256.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/sha.js/sha384.js b/src/third_party/devtools/node_modules/sha.js/sha384.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/sha.js/sha384.js
rename to src/third_party/devtools/node_modules/sha.js/sha384.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/sha.js/sha512.js b/src/third_party/devtools/node_modules/sha.js/sha512.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/sha.js/sha512.js
rename to src/third_party/devtools/node_modules/sha.js/sha512.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/sha.js/test/hash.js b/src/third_party/devtools/node_modules/sha.js/test/hash.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/sha.js/test/hash.js
rename to src/third_party/devtools/node_modules/sha.js/test/hash.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/sha.js/test/test.js b/src/third_party/devtools/node_modules/sha.js/test/test.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/sha.js/test/test.js
rename to src/third_party/devtools/node_modules/sha.js/test/test.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/sha.js/test/vectors.js b/src/third_party/devtools/node_modules/sha.js/test/vectors.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/sha.js/test/vectors.js
rename to src/third_party/devtools/node_modules/sha.js/test/vectors.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/shebang-command/LICENSE b/src/third_party/devtools/node_modules/shebang-command/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/shebang-command/LICENSE
rename to src/third_party/devtools/node_modules/shebang-command/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/shebang-command/index.js b/src/third_party/devtools/node_modules/shebang-command/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/shebang-command/index.js
rename to src/third_party/devtools/node_modules/shebang-command/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/shebang-command/package.json b/src/third_party/devtools/node_modules/shebang-command/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/shebang-command/package.json
rename to src/third_party/devtools/node_modules/shebang-command/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/shebang-command/readme.md b/src/third_party/devtools/node_modules/shebang-command/readme.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/shebang-command/readme.md
rename to src/third_party/devtools/node_modules/shebang-command/readme.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/shebang-regex/LICENSE b/src/third_party/devtools/node_modules/shebang-regex/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/shebang-regex/LICENSE
rename to src/third_party/devtools/node_modules/shebang-regex/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/shebang-regex/index.js b/src/third_party/devtools/node_modules/shebang-regex/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/shebang-regex/index.js
rename to src/third_party/devtools/node_modules/shebang-regex/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/shebang-regex/package.json b/src/third_party/devtools/node_modules/shebang-regex/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/shebang-regex/package.json
rename to src/third_party/devtools/node_modules/shebang-regex/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/shebang-regex/readme.md b/src/third_party/devtools/node_modules/shebang-regex/readme.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/shebang-regex/readme.md
rename to src/third_party/devtools/node_modules/shebang-regex/readme.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/signal-exit/CHANGELOG.md b/src/third_party/devtools/node_modules/signal-exit/CHANGELOG.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/signal-exit/CHANGELOG.md
rename to src/third_party/devtools/node_modules/signal-exit/CHANGELOG.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/signal-exit/LICENSE.txt b/src/third_party/devtools/node_modules/signal-exit/LICENSE.txt
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/signal-exit/LICENSE.txt
rename to src/third_party/devtools/node_modules/signal-exit/LICENSE.txt
diff --git a/src/cobalt/debug/remote/devtools/node_modules/signal-exit/README.md b/src/third_party/devtools/node_modules/signal-exit/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/signal-exit/README.md
rename to src/third_party/devtools/node_modules/signal-exit/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/signal-exit/index.js b/src/third_party/devtools/node_modules/signal-exit/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/signal-exit/index.js
rename to src/third_party/devtools/node_modules/signal-exit/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/signal-exit/package.json b/src/third_party/devtools/node_modules/signal-exit/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/signal-exit/package.json
rename to src/third_party/devtools/node_modules/signal-exit/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/signal-exit/signals.js b/src/third_party/devtools/node_modules/signal-exit/signals.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/signal-exit/signals.js
rename to src/third_party/devtools/node_modules/signal-exit/signals.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/slash/index.js b/src/third_party/devtools/node_modules/slash/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/slash/index.js
rename to src/third_party/devtools/node_modules/slash/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/slash/package.json b/src/third_party/devtools/node_modules/slash/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/slash/package.json
rename to src/third_party/devtools/node_modules/slash/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/slash/readme.md b/src/third_party/devtools/node_modules/slash/readme.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/slash/readme.md
rename to src/third_party/devtools/node_modules/slash/readme.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/slice-ansi/LICENSE b/src/third_party/devtools/node_modules/slice-ansi/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/slice-ansi/LICENSE
rename to src/third_party/devtools/node_modules/slice-ansi/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/slice-ansi/index.js b/src/third_party/devtools/node_modules/slice-ansi/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/slice-ansi/index.js
rename to src/third_party/devtools/node_modules/slice-ansi/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/slice-ansi/package.json b/src/third_party/devtools/node_modules/slice-ansi/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/slice-ansi/package.json
rename to src/third_party/devtools/node_modules/slice-ansi/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/slice-ansi/readme.md b/src/third_party/devtools/node_modules/slice-ansi/readme.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/slice-ansi/readme.md
rename to src/third_party/devtools/node_modules/slice-ansi/readme.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/slide/LICENSE b/src/third_party/devtools/node_modules/slide/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/slide/LICENSE
rename to src/third_party/devtools/node_modules/slide/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/slide/README.md b/src/third_party/devtools/node_modules/slide/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/slide/README.md
rename to src/third_party/devtools/node_modules/slide/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/slide/index.js b/src/third_party/devtools/node_modules/slide/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/slide/index.js
rename to src/third_party/devtools/node_modules/slide/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/slide/lib/async-map-ordered.js b/src/third_party/devtools/node_modules/slide/lib/async-map-ordered.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/slide/lib/async-map-ordered.js
rename to src/third_party/devtools/node_modules/slide/lib/async-map-ordered.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/slide/lib/async-map.js b/src/third_party/devtools/node_modules/slide/lib/async-map.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/slide/lib/async-map.js
rename to src/third_party/devtools/node_modules/slide/lib/async-map.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/slide/lib/bind-actor.js b/src/third_party/devtools/node_modules/slide/lib/bind-actor.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/slide/lib/bind-actor.js
rename to src/third_party/devtools/node_modules/slide/lib/bind-actor.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/slide/lib/chain.js b/src/third_party/devtools/node_modules/slide/lib/chain.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/slide/lib/chain.js
rename to src/third_party/devtools/node_modules/slide/lib/chain.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/slide/lib/slide.js b/src/third_party/devtools/node_modules/slide/lib/slide.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/slide/lib/slide.js
rename to src/third_party/devtools/node_modules/slide/lib/slide.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/slide/package.json b/src/third_party/devtools/node_modules/slide/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/slide/package.json
rename to src/third_party/devtools/node_modules/slide/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/socket.io-adapter/.npmignore b/src/third_party/devtools/node_modules/socket.io-adapter/.npmignore
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/socket.io-adapter/.npmignore
rename to src/third_party/devtools/node_modules/socket.io-adapter/.npmignore
diff --git a/src/cobalt/debug/remote/devtools/node_modules/socket.io-adapter/LICENSE b/src/third_party/devtools/node_modules/socket.io-adapter/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/socket.io-adapter/LICENSE
rename to src/third_party/devtools/node_modules/socket.io-adapter/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/socket.io-adapter/Readme.md b/src/third_party/devtools/node_modules/socket.io-adapter/Readme.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/socket.io-adapter/Readme.md
rename to src/third_party/devtools/node_modules/socket.io-adapter/Readme.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/socket.io-adapter/index.js b/src/third_party/devtools/node_modules/socket.io-adapter/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/socket.io-adapter/index.js
rename to src/third_party/devtools/node_modules/socket.io-adapter/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/socket.io-adapter/package.json b/src/third_party/devtools/node_modules/socket.io-adapter/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/socket.io-adapter/package.json
rename to src/third_party/devtools/node_modules/socket.io-adapter/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/socket.io-client/LICENSE b/src/third_party/devtools/node_modules/socket.io-client/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/socket.io-client/LICENSE
rename to src/third_party/devtools/node_modules/socket.io-client/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/socket.io-client/README.md b/src/third_party/devtools/node_modules/socket.io-client/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/socket.io-client/README.md
rename to src/third_party/devtools/node_modules/socket.io-client/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/socket.io-client/dist/socket.io.dev.js b/src/third_party/devtools/node_modules/socket.io-client/dist/socket.io.dev.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/socket.io-client/dist/socket.io.dev.js
rename to src/third_party/devtools/node_modules/socket.io-client/dist/socket.io.dev.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/socket.io-client/dist/socket.io.dev.js.map b/src/third_party/devtools/node_modules/socket.io-client/dist/socket.io.dev.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/socket.io-client/dist/socket.io.dev.js.map
rename to src/third_party/devtools/node_modules/socket.io-client/dist/socket.io.dev.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/socket.io-client/dist/socket.io.js b/src/third_party/devtools/node_modules/socket.io-client/dist/socket.io.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/socket.io-client/dist/socket.io.js
rename to src/third_party/devtools/node_modules/socket.io-client/dist/socket.io.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/socket.io-client/dist/socket.io.js.map b/src/third_party/devtools/node_modules/socket.io-client/dist/socket.io.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/socket.io-client/dist/socket.io.js.map
rename to src/third_party/devtools/node_modules/socket.io-client/dist/socket.io.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/socket.io-client/dist/socket.io.slim.dev.js b/src/third_party/devtools/node_modules/socket.io-client/dist/socket.io.slim.dev.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/socket.io-client/dist/socket.io.slim.dev.js
rename to src/third_party/devtools/node_modules/socket.io-client/dist/socket.io.slim.dev.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/socket.io-client/dist/socket.io.slim.dev.js.map b/src/third_party/devtools/node_modules/socket.io-client/dist/socket.io.slim.dev.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/socket.io-client/dist/socket.io.slim.dev.js.map
rename to src/third_party/devtools/node_modules/socket.io-client/dist/socket.io.slim.dev.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/socket.io-client/dist/socket.io.slim.js b/src/third_party/devtools/node_modules/socket.io-client/dist/socket.io.slim.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/socket.io-client/dist/socket.io.slim.js
rename to src/third_party/devtools/node_modules/socket.io-client/dist/socket.io.slim.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/socket.io-client/dist/socket.io.slim.js.map b/src/third_party/devtools/node_modules/socket.io-client/dist/socket.io.slim.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/socket.io-client/dist/socket.io.slim.js.map
rename to src/third_party/devtools/node_modules/socket.io-client/dist/socket.io.slim.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/socket.io-client/lib/index.js b/src/third_party/devtools/node_modules/socket.io-client/lib/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/socket.io-client/lib/index.js
rename to src/third_party/devtools/node_modules/socket.io-client/lib/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/socket.io-client/lib/manager.js b/src/third_party/devtools/node_modules/socket.io-client/lib/manager.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/socket.io-client/lib/manager.js
rename to src/third_party/devtools/node_modules/socket.io-client/lib/manager.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/socket.io-client/lib/on.js b/src/third_party/devtools/node_modules/socket.io-client/lib/on.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/socket.io-client/lib/on.js
rename to src/third_party/devtools/node_modules/socket.io-client/lib/on.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/socket.io-client/lib/socket.js b/src/third_party/devtools/node_modules/socket.io-client/lib/socket.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/socket.io-client/lib/socket.js
rename to src/third_party/devtools/node_modules/socket.io-client/lib/socket.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/socket.io-client/lib/url.js b/src/third_party/devtools/node_modules/socket.io-client/lib/url.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/socket.io-client/lib/url.js
rename to src/third_party/devtools/node_modules/socket.io-client/lib/url.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/socket.io-client/node_modules/debug/.coveralls.yml b/src/third_party/devtools/node_modules/socket.io-client/node_modules/debug/.coveralls.yml
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/socket.io-client/node_modules/debug/.coveralls.yml
rename to src/third_party/devtools/node_modules/socket.io-client/node_modules/debug/.coveralls.yml
diff --git a/src/cobalt/debug/remote/devtools/node_modules/socket.io-client/node_modules/debug/.eslintrc b/src/third_party/devtools/node_modules/socket.io-client/node_modules/debug/.eslintrc
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/socket.io-client/node_modules/debug/.eslintrc
rename to src/third_party/devtools/node_modules/socket.io-client/node_modules/debug/.eslintrc
diff --git a/src/cobalt/debug/remote/devtools/node_modules/socket.io-client/node_modules/debug/.npmignore b/src/third_party/devtools/node_modules/socket.io-client/node_modules/debug/.npmignore
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/socket.io-client/node_modules/debug/.npmignore
rename to src/third_party/devtools/node_modules/socket.io-client/node_modules/debug/.npmignore
diff --git a/src/cobalt/debug/remote/devtools/node_modules/socket.io-client/node_modules/debug/.travis.yml b/src/third_party/devtools/node_modules/socket.io-client/node_modules/debug/.travis.yml
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/socket.io-client/node_modules/debug/.travis.yml
rename to src/third_party/devtools/node_modules/socket.io-client/node_modules/debug/.travis.yml
diff --git a/src/cobalt/debug/remote/devtools/node_modules/socket.io-client/node_modules/debug/CHANGELOG.md b/src/third_party/devtools/node_modules/socket.io-client/node_modules/debug/CHANGELOG.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/socket.io-client/node_modules/debug/CHANGELOG.md
rename to src/third_party/devtools/node_modules/socket.io-client/node_modules/debug/CHANGELOG.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/socket.io-client/node_modules/debug/LICENSE b/src/third_party/devtools/node_modules/socket.io-client/node_modules/debug/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/socket.io-client/node_modules/debug/LICENSE
rename to src/third_party/devtools/node_modules/socket.io-client/node_modules/debug/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/socket.io-client/node_modules/debug/Makefile b/src/third_party/devtools/node_modules/socket.io-client/node_modules/debug/Makefile
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/socket.io-client/node_modules/debug/Makefile
rename to src/third_party/devtools/node_modules/socket.io-client/node_modules/debug/Makefile
diff --git a/src/cobalt/debug/remote/devtools/node_modules/socket.io-client/node_modules/debug/README.md b/src/third_party/devtools/node_modules/socket.io-client/node_modules/debug/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/socket.io-client/node_modules/debug/README.md
rename to src/third_party/devtools/node_modules/socket.io-client/node_modules/debug/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/socket.io-client/node_modules/debug/karma.conf.js b/src/third_party/devtools/node_modules/socket.io-client/node_modules/debug/karma.conf.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/socket.io-client/node_modules/debug/karma.conf.js
rename to src/third_party/devtools/node_modules/socket.io-client/node_modules/debug/karma.conf.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/socket.io-client/node_modules/debug/node.js b/src/third_party/devtools/node_modules/socket.io-client/node_modules/debug/node.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/socket.io-client/node_modules/debug/node.js
rename to src/third_party/devtools/node_modules/socket.io-client/node_modules/debug/node.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/socket.io-client/node_modules/debug/package.json b/src/third_party/devtools/node_modules/socket.io-client/node_modules/debug/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/socket.io-client/node_modules/debug/package.json
rename to src/third_party/devtools/node_modules/socket.io-client/node_modules/debug/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/socket.io-client/node_modules/debug/src/browser.js b/src/third_party/devtools/node_modules/socket.io-client/node_modules/debug/src/browser.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/socket.io-client/node_modules/debug/src/browser.js
rename to src/third_party/devtools/node_modules/socket.io-client/node_modules/debug/src/browser.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/socket.io-client/node_modules/debug/src/debug.js b/src/third_party/devtools/node_modules/socket.io-client/node_modules/debug/src/debug.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/socket.io-client/node_modules/debug/src/debug.js
rename to src/third_party/devtools/node_modules/socket.io-client/node_modules/debug/src/debug.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/socket.io-client/node_modules/debug/src/index.js b/src/third_party/devtools/node_modules/socket.io-client/node_modules/debug/src/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/socket.io-client/node_modules/debug/src/index.js
rename to src/third_party/devtools/node_modules/socket.io-client/node_modules/debug/src/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/socket.io-client/node_modules/debug/src/node.js b/src/third_party/devtools/node_modules/socket.io-client/node_modules/debug/src/node.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/socket.io-client/node_modules/debug/src/node.js
rename to src/third_party/devtools/node_modules/socket.io-client/node_modules/debug/src/node.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/socket.io-client/node_modules/ms/index.js b/src/third_party/devtools/node_modules/socket.io-client/node_modules/ms/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/socket.io-client/node_modules/ms/index.js
rename to src/third_party/devtools/node_modules/socket.io-client/node_modules/ms/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/socket.io-client/node_modules/ms/license.md b/src/third_party/devtools/node_modules/socket.io-client/node_modules/ms/license.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/socket.io-client/node_modules/ms/license.md
rename to src/third_party/devtools/node_modules/socket.io-client/node_modules/ms/license.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/socket.io-client/node_modules/ms/package.json b/src/third_party/devtools/node_modules/socket.io-client/node_modules/ms/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/socket.io-client/node_modules/ms/package.json
rename to src/third_party/devtools/node_modules/socket.io-client/node_modules/ms/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/socket.io-client/node_modules/ms/readme.md b/src/third_party/devtools/node_modules/socket.io-client/node_modules/ms/readme.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/socket.io-client/node_modules/ms/readme.md
rename to src/third_party/devtools/node_modules/socket.io-client/node_modules/ms/readme.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/socket.io-client/package.json b/src/third_party/devtools/node_modules/socket.io-client/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/socket.io-client/package.json
rename to src/third_party/devtools/node_modules/socket.io-client/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/socket.io-parser/LICENSE b/src/third_party/devtools/node_modules/socket.io-parser/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/socket.io-parser/LICENSE
rename to src/third_party/devtools/node_modules/socket.io-parser/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/socket.io-parser/Readme.md b/src/third_party/devtools/node_modules/socket.io-parser/Readme.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/socket.io-parser/Readme.md
rename to src/third_party/devtools/node_modules/socket.io-parser/Readme.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/socket.io-parser/binary.js b/src/third_party/devtools/node_modules/socket.io-parser/binary.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/socket.io-parser/binary.js
rename to src/third_party/devtools/node_modules/socket.io-parser/binary.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/socket.io-parser/index.js b/src/third_party/devtools/node_modules/socket.io-parser/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/socket.io-parser/index.js
rename to src/third_party/devtools/node_modules/socket.io-parser/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/socket.io-parser/is-buffer.js b/src/third_party/devtools/node_modules/socket.io-parser/is-buffer.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/socket.io-parser/is-buffer.js
rename to src/third_party/devtools/node_modules/socket.io-parser/is-buffer.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/socket.io-parser/node_modules/debug/.coveralls.yml b/src/third_party/devtools/node_modules/socket.io-parser/node_modules/debug/.coveralls.yml
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/socket.io-parser/node_modules/debug/.coveralls.yml
rename to src/third_party/devtools/node_modules/socket.io-parser/node_modules/debug/.coveralls.yml
diff --git a/src/cobalt/debug/remote/devtools/node_modules/socket.io-parser/node_modules/debug/.eslintrc b/src/third_party/devtools/node_modules/socket.io-parser/node_modules/debug/.eslintrc
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/socket.io-parser/node_modules/debug/.eslintrc
rename to src/third_party/devtools/node_modules/socket.io-parser/node_modules/debug/.eslintrc
diff --git a/src/cobalt/debug/remote/devtools/node_modules/socket.io-parser/node_modules/debug/.npmignore b/src/third_party/devtools/node_modules/socket.io-parser/node_modules/debug/.npmignore
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/socket.io-parser/node_modules/debug/.npmignore
rename to src/third_party/devtools/node_modules/socket.io-parser/node_modules/debug/.npmignore
diff --git a/src/cobalt/debug/remote/devtools/node_modules/socket.io-parser/node_modules/debug/.travis.yml b/src/third_party/devtools/node_modules/socket.io-parser/node_modules/debug/.travis.yml
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/socket.io-parser/node_modules/debug/.travis.yml
rename to src/third_party/devtools/node_modules/socket.io-parser/node_modules/debug/.travis.yml
diff --git a/src/cobalt/debug/remote/devtools/node_modules/socket.io-parser/node_modules/debug/CHANGELOG.md b/src/third_party/devtools/node_modules/socket.io-parser/node_modules/debug/CHANGELOG.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/socket.io-parser/node_modules/debug/CHANGELOG.md
rename to src/third_party/devtools/node_modules/socket.io-parser/node_modules/debug/CHANGELOG.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/socket.io-parser/node_modules/debug/LICENSE b/src/third_party/devtools/node_modules/socket.io-parser/node_modules/debug/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/socket.io-parser/node_modules/debug/LICENSE
rename to src/third_party/devtools/node_modules/socket.io-parser/node_modules/debug/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/socket.io-parser/node_modules/debug/Makefile b/src/third_party/devtools/node_modules/socket.io-parser/node_modules/debug/Makefile
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/socket.io-parser/node_modules/debug/Makefile
rename to src/third_party/devtools/node_modules/socket.io-parser/node_modules/debug/Makefile
diff --git a/src/cobalt/debug/remote/devtools/node_modules/socket.io-parser/node_modules/debug/README.md b/src/third_party/devtools/node_modules/socket.io-parser/node_modules/debug/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/socket.io-parser/node_modules/debug/README.md
rename to src/third_party/devtools/node_modules/socket.io-parser/node_modules/debug/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/socket.io-parser/node_modules/debug/karma.conf.js b/src/third_party/devtools/node_modules/socket.io-parser/node_modules/debug/karma.conf.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/socket.io-parser/node_modules/debug/karma.conf.js
rename to src/third_party/devtools/node_modules/socket.io-parser/node_modules/debug/karma.conf.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/socket.io-parser/node_modules/debug/node.js b/src/third_party/devtools/node_modules/socket.io-parser/node_modules/debug/node.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/socket.io-parser/node_modules/debug/node.js
rename to src/third_party/devtools/node_modules/socket.io-parser/node_modules/debug/node.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/socket.io-parser/node_modules/debug/package.json b/src/third_party/devtools/node_modules/socket.io-parser/node_modules/debug/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/socket.io-parser/node_modules/debug/package.json
rename to src/third_party/devtools/node_modules/socket.io-parser/node_modules/debug/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/socket.io-parser/node_modules/debug/src/browser.js b/src/third_party/devtools/node_modules/socket.io-parser/node_modules/debug/src/browser.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/socket.io-parser/node_modules/debug/src/browser.js
rename to src/third_party/devtools/node_modules/socket.io-parser/node_modules/debug/src/browser.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/socket.io-parser/node_modules/debug/src/debug.js b/src/third_party/devtools/node_modules/socket.io-parser/node_modules/debug/src/debug.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/socket.io-parser/node_modules/debug/src/debug.js
rename to src/third_party/devtools/node_modules/socket.io-parser/node_modules/debug/src/debug.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/socket.io-parser/node_modules/debug/src/index.js b/src/third_party/devtools/node_modules/socket.io-parser/node_modules/debug/src/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/socket.io-parser/node_modules/debug/src/index.js
rename to src/third_party/devtools/node_modules/socket.io-parser/node_modules/debug/src/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/socket.io-parser/node_modules/debug/src/node.js b/src/third_party/devtools/node_modules/socket.io-parser/node_modules/debug/src/node.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/socket.io-parser/node_modules/debug/src/node.js
rename to src/third_party/devtools/node_modules/socket.io-parser/node_modules/debug/src/node.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/socket.io-parser/node_modules/ms/index.js b/src/third_party/devtools/node_modules/socket.io-parser/node_modules/ms/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/socket.io-parser/node_modules/ms/index.js
rename to src/third_party/devtools/node_modules/socket.io-parser/node_modules/ms/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/socket.io-parser/node_modules/ms/license.md b/src/third_party/devtools/node_modules/socket.io-parser/node_modules/ms/license.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/socket.io-parser/node_modules/ms/license.md
rename to src/third_party/devtools/node_modules/socket.io-parser/node_modules/ms/license.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/socket.io-parser/node_modules/ms/package.json b/src/third_party/devtools/node_modules/socket.io-parser/node_modules/ms/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/socket.io-parser/node_modules/ms/package.json
rename to src/third_party/devtools/node_modules/socket.io-parser/node_modules/ms/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/socket.io-parser/node_modules/ms/readme.md b/src/third_party/devtools/node_modules/socket.io-parser/node_modules/ms/readme.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/socket.io-parser/node_modules/ms/readme.md
rename to src/third_party/devtools/node_modules/socket.io-parser/node_modules/ms/readme.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/socket.io-parser/package.json b/src/third_party/devtools/node_modules/socket.io-parser/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/socket.io-parser/package.json
rename to src/third_party/devtools/node_modules/socket.io-parser/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/socket.io/LICENSE b/src/third_party/devtools/node_modules/socket.io/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/socket.io/LICENSE
rename to src/third_party/devtools/node_modules/socket.io/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/socket.io/Readme.md b/src/third_party/devtools/node_modules/socket.io/Readme.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/socket.io/Readme.md
rename to src/third_party/devtools/node_modules/socket.io/Readme.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/socket.io/lib/client.js b/src/third_party/devtools/node_modules/socket.io/lib/client.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/socket.io/lib/client.js
rename to src/third_party/devtools/node_modules/socket.io/lib/client.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/socket.io/lib/index.js b/src/third_party/devtools/node_modules/socket.io/lib/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/socket.io/lib/index.js
rename to src/third_party/devtools/node_modules/socket.io/lib/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/socket.io/lib/namespace.js b/src/third_party/devtools/node_modules/socket.io/lib/namespace.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/socket.io/lib/namespace.js
rename to src/third_party/devtools/node_modules/socket.io/lib/namespace.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/socket.io/lib/parent-namespace.js b/src/third_party/devtools/node_modules/socket.io/lib/parent-namespace.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/socket.io/lib/parent-namespace.js
rename to src/third_party/devtools/node_modules/socket.io/lib/parent-namespace.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/socket.io/lib/socket.js b/src/third_party/devtools/node_modules/socket.io/lib/socket.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/socket.io/lib/socket.js
rename to src/third_party/devtools/node_modules/socket.io/lib/socket.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/socket.io/node_modules/debug/.coveralls.yml b/src/third_party/devtools/node_modules/socket.io/node_modules/debug/.coveralls.yml
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/socket.io/node_modules/debug/.coveralls.yml
rename to src/third_party/devtools/node_modules/socket.io/node_modules/debug/.coveralls.yml
diff --git a/src/cobalt/debug/remote/devtools/node_modules/socket.io/node_modules/debug/.eslintrc b/src/third_party/devtools/node_modules/socket.io/node_modules/debug/.eslintrc
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/socket.io/node_modules/debug/.eslintrc
rename to src/third_party/devtools/node_modules/socket.io/node_modules/debug/.eslintrc
diff --git a/src/cobalt/debug/remote/devtools/node_modules/socket.io/node_modules/debug/.npmignore b/src/third_party/devtools/node_modules/socket.io/node_modules/debug/.npmignore
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/socket.io/node_modules/debug/.npmignore
rename to src/third_party/devtools/node_modules/socket.io/node_modules/debug/.npmignore
diff --git a/src/cobalt/debug/remote/devtools/node_modules/socket.io/node_modules/debug/.travis.yml b/src/third_party/devtools/node_modules/socket.io/node_modules/debug/.travis.yml
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/socket.io/node_modules/debug/.travis.yml
rename to src/third_party/devtools/node_modules/socket.io/node_modules/debug/.travis.yml
diff --git a/src/cobalt/debug/remote/devtools/node_modules/socket.io/node_modules/debug/CHANGELOG.md b/src/third_party/devtools/node_modules/socket.io/node_modules/debug/CHANGELOG.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/socket.io/node_modules/debug/CHANGELOG.md
rename to src/third_party/devtools/node_modules/socket.io/node_modules/debug/CHANGELOG.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/socket.io/node_modules/debug/LICENSE b/src/third_party/devtools/node_modules/socket.io/node_modules/debug/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/socket.io/node_modules/debug/LICENSE
rename to src/third_party/devtools/node_modules/socket.io/node_modules/debug/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/socket.io/node_modules/debug/Makefile b/src/third_party/devtools/node_modules/socket.io/node_modules/debug/Makefile
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/socket.io/node_modules/debug/Makefile
rename to src/third_party/devtools/node_modules/socket.io/node_modules/debug/Makefile
diff --git a/src/cobalt/debug/remote/devtools/node_modules/socket.io/node_modules/debug/README.md b/src/third_party/devtools/node_modules/socket.io/node_modules/debug/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/socket.io/node_modules/debug/README.md
rename to src/third_party/devtools/node_modules/socket.io/node_modules/debug/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/socket.io/node_modules/debug/karma.conf.js b/src/third_party/devtools/node_modules/socket.io/node_modules/debug/karma.conf.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/socket.io/node_modules/debug/karma.conf.js
rename to src/third_party/devtools/node_modules/socket.io/node_modules/debug/karma.conf.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/socket.io/node_modules/debug/node.js b/src/third_party/devtools/node_modules/socket.io/node_modules/debug/node.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/socket.io/node_modules/debug/node.js
rename to src/third_party/devtools/node_modules/socket.io/node_modules/debug/node.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/socket.io/node_modules/debug/package.json b/src/third_party/devtools/node_modules/socket.io/node_modules/debug/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/socket.io/node_modules/debug/package.json
rename to src/third_party/devtools/node_modules/socket.io/node_modules/debug/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/socket.io/node_modules/debug/src/browser.js b/src/third_party/devtools/node_modules/socket.io/node_modules/debug/src/browser.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/socket.io/node_modules/debug/src/browser.js
rename to src/third_party/devtools/node_modules/socket.io/node_modules/debug/src/browser.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/socket.io/node_modules/debug/src/debug.js b/src/third_party/devtools/node_modules/socket.io/node_modules/debug/src/debug.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/socket.io/node_modules/debug/src/debug.js
rename to src/third_party/devtools/node_modules/socket.io/node_modules/debug/src/debug.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/socket.io/node_modules/debug/src/index.js b/src/third_party/devtools/node_modules/socket.io/node_modules/debug/src/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/socket.io/node_modules/debug/src/index.js
rename to src/third_party/devtools/node_modules/socket.io/node_modules/debug/src/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/socket.io/node_modules/debug/src/node.js b/src/third_party/devtools/node_modules/socket.io/node_modules/debug/src/node.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/socket.io/node_modules/debug/src/node.js
rename to src/third_party/devtools/node_modules/socket.io/node_modules/debug/src/node.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/socket.io/node_modules/ms/index.js b/src/third_party/devtools/node_modules/socket.io/node_modules/ms/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/socket.io/node_modules/ms/index.js
rename to src/third_party/devtools/node_modules/socket.io/node_modules/ms/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/socket.io/node_modules/ms/license.md b/src/third_party/devtools/node_modules/socket.io/node_modules/ms/license.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/socket.io/node_modules/ms/license.md
rename to src/third_party/devtools/node_modules/socket.io/node_modules/ms/license.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/socket.io/node_modules/ms/package.json b/src/third_party/devtools/node_modules/socket.io/node_modules/ms/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/socket.io/node_modules/ms/package.json
rename to src/third_party/devtools/node_modules/socket.io/node_modules/ms/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/socket.io/node_modules/ms/readme.md b/src/third_party/devtools/node_modules/socket.io/node_modules/ms/readme.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/socket.io/node_modules/ms/readme.md
rename to src/third_party/devtools/node_modules/socket.io/node_modules/ms/readme.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/socket.io/package.json b/src/third_party/devtools/node_modules/socket.io/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/socket.io/package.json
rename to src/third_party/devtools/node_modules/socket.io/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/source-map/CHANGELOG.md b/src/third_party/devtools/node_modules/source-map/CHANGELOG.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/source-map/CHANGELOG.md
rename to src/third_party/devtools/node_modules/source-map/CHANGELOG.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/source-map/LICENSE b/src/third_party/devtools/node_modules/source-map/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/source-map/LICENSE
rename to src/third_party/devtools/node_modules/source-map/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/source-map/README.md b/src/third_party/devtools/node_modules/source-map/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/source-map/README.md
rename to src/third_party/devtools/node_modules/source-map/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/source-map/dist/source-map.debug.js b/src/third_party/devtools/node_modules/source-map/dist/source-map.debug.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/source-map/dist/source-map.debug.js
rename to src/third_party/devtools/node_modules/source-map/dist/source-map.debug.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/source-map/dist/source-map.js b/src/third_party/devtools/node_modules/source-map/dist/source-map.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/source-map/dist/source-map.js
rename to src/third_party/devtools/node_modules/source-map/dist/source-map.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/source-map/dist/source-map.min.js b/src/third_party/devtools/node_modules/source-map/dist/source-map.min.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/source-map/dist/source-map.min.js
rename to src/third_party/devtools/node_modules/source-map/dist/source-map.min.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/source-map/dist/source-map.min.js.map b/src/third_party/devtools/node_modules/source-map/dist/source-map.min.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/source-map/dist/source-map.min.js.map
rename to src/third_party/devtools/node_modules/source-map/dist/source-map.min.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/source-map/lib/array-set.js b/src/third_party/devtools/node_modules/source-map/lib/array-set.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/source-map/lib/array-set.js
rename to src/third_party/devtools/node_modules/source-map/lib/array-set.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/source-map/lib/base64-vlq.js b/src/third_party/devtools/node_modules/source-map/lib/base64-vlq.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/source-map/lib/base64-vlq.js
rename to src/third_party/devtools/node_modules/source-map/lib/base64-vlq.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/source-map/lib/base64.js b/src/third_party/devtools/node_modules/source-map/lib/base64.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/source-map/lib/base64.js
rename to src/third_party/devtools/node_modules/source-map/lib/base64.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/source-map/lib/binary-search.js b/src/third_party/devtools/node_modules/source-map/lib/binary-search.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/source-map/lib/binary-search.js
rename to src/third_party/devtools/node_modules/source-map/lib/binary-search.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/source-map/lib/mapping-list.js b/src/third_party/devtools/node_modules/source-map/lib/mapping-list.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/source-map/lib/mapping-list.js
rename to src/third_party/devtools/node_modules/source-map/lib/mapping-list.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/source-map/lib/quick-sort.js b/src/third_party/devtools/node_modules/source-map/lib/quick-sort.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/source-map/lib/quick-sort.js
rename to src/third_party/devtools/node_modules/source-map/lib/quick-sort.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/source-map/lib/source-map-consumer.js b/src/third_party/devtools/node_modules/source-map/lib/source-map-consumer.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/source-map/lib/source-map-consumer.js
rename to src/third_party/devtools/node_modules/source-map/lib/source-map-consumer.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/source-map/lib/source-map-generator.js b/src/third_party/devtools/node_modules/source-map/lib/source-map-generator.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/source-map/lib/source-map-generator.js
rename to src/third_party/devtools/node_modules/source-map/lib/source-map-generator.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/source-map/lib/source-node.js b/src/third_party/devtools/node_modules/source-map/lib/source-node.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/source-map/lib/source-node.js
rename to src/third_party/devtools/node_modules/source-map/lib/source-node.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/source-map/lib/util.js b/src/third_party/devtools/node_modules/source-map/lib/util.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/source-map/lib/util.js
rename to src/third_party/devtools/node_modules/source-map/lib/util.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/source-map/package.json b/src/third_party/devtools/node_modules/source-map/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/source-map/package.json
rename to src/third_party/devtools/node_modules/source-map/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/source-map/source-map.d.ts b/src/third_party/devtools/node_modules/source-map/source-map.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/source-map/source-map.d.ts
rename to src/third_party/devtools/node_modules/source-map/source-map.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/source-map/source-map.js b/src/third_party/devtools/node_modules/source-map/source-map.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/source-map/source-map.js
rename to src/third_party/devtools/node_modules/source-map/source-map.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/spdx-compare/LICENSE.md b/src/third_party/devtools/node_modules/spdx-compare/LICENSE.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/spdx-compare/LICENSE.md
rename to src/third_party/devtools/node_modules/spdx-compare/LICENSE.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/spdx-compare/README.md b/src/third_party/devtools/node_modules/spdx-compare/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/spdx-compare/README.md
rename to src/third_party/devtools/node_modules/spdx-compare/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/spdx-compare/index.js b/src/third_party/devtools/node_modules/spdx-compare/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/spdx-compare/index.js
rename to src/third_party/devtools/node_modules/spdx-compare/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/spdx-compare/package.json b/src/third_party/devtools/node_modules/spdx-compare/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/spdx-compare/package.json
rename to src/third_party/devtools/node_modules/spdx-compare/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/spdx-compare/test.log b/src/third_party/devtools/node_modules/spdx-compare/test.log
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/spdx-compare/test.log
rename to src/third_party/devtools/node_modules/spdx-compare/test.log
diff --git a/src/cobalt/debug/remote/devtools/node_modules/spdx-correct/LICENSE b/src/third_party/devtools/node_modules/spdx-correct/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/spdx-correct/LICENSE
rename to src/third_party/devtools/node_modules/spdx-correct/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/spdx-correct/README.md b/src/third_party/devtools/node_modules/spdx-correct/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/spdx-correct/README.md
rename to src/third_party/devtools/node_modules/spdx-correct/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/spdx-correct/index.js b/src/third_party/devtools/node_modules/spdx-correct/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/spdx-correct/index.js
rename to src/third_party/devtools/node_modules/spdx-correct/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/spdx-correct/package.json b/src/third_party/devtools/node_modules/spdx-correct/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/spdx-correct/package.json
rename to src/third_party/devtools/node_modules/spdx-correct/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/spdx-exceptions/README.md b/src/third_party/devtools/node_modules/spdx-exceptions/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/spdx-exceptions/README.md
rename to src/third_party/devtools/node_modules/spdx-exceptions/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/spdx-exceptions/index.json b/src/third_party/devtools/node_modules/spdx-exceptions/index.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/spdx-exceptions/index.json
rename to src/third_party/devtools/node_modules/spdx-exceptions/index.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/spdx-exceptions/package.json b/src/third_party/devtools/node_modules/spdx-exceptions/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/spdx-exceptions/package.json
rename to src/third_party/devtools/node_modules/spdx-exceptions/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/spdx-exceptions/test.log b/src/third_party/devtools/node_modules/spdx-exceptions/test.log
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/spdx-exceptions/test.log
rename to src/third_party/devtools/node_modules/spdx-exceptions/test.log
diff --git a/src/cobalt/debug/remote/devtools/node_modules/spdx-expression-parse/AUTHORS b/src/third_party/devtools/node_modules/spdx-expression-parse/AUTHORS
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/spdx-expression-parse/AUTHORS
rename to src/third_party/devtools/node_modules/spdx-expression-parse/AUTHORS
diff --git a/src/cobalt/debug/remote/devtools/node_modules/spdx-expression-parse/LICENSE b/src/third_party/devtools/node_modules/spdx-expression-parse/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/spdx-expression-parse/LICENSE
rename to src/third_party/devtools/node_modules/spdx-expression-parse/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/spdx-expression-parse/README.md b/src/third_party/devtools/node_modules/spdx-expression-parse/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/spdx-expression-parse/README.md
rename to src/third_party/devtools/node_modules/spdx-expression-parse/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/spdx-expression-parse/index.js b/src/third_party/devtools/node_modules/spdx-expression-parse/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/spdx-expression-parse/index.js
rename to src/third_party/devtools/node_modules/spdx-expression-parse/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/spdx-expression-parse/package.json b/src/third_party/devtools/node_modules/spdx-expression-parse/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/spdx-expression-parse/package.json
rename to src/third_party/devtools/node_modules/spdx-expression-parse/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/spdx-expression-parse/parse.js b/src/third_party/devtools/node_modules/spdx-expression-parse/parse.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/spdx-expression-parse/parse.js
rename to src/third_party/devtools/node_modules/spdx-expression-parse/parse.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/spdx-expression-parse/scan.js b/src/third_party/devtools/node_modules/spdx-expression-parse/scan.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/spdx-expression-parse/scan.js
rename to src/third_party/devtools/node_modules/spdx-expression-parse/scan.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/spdx-license-ids/README.md b/src/third_party/devtools/node_modules/spdx-license-ids/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/spdx-license-ids/README.md
rename to src/third_party/devtools/node_modules/spdx-license-ids/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/spdx-license-ids/deprecated.json b/src/third_party/devtools/node_modules/spdx-license-ids/deprecated.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/spdx-license-ids/deprecated.json
rename to src/third_party/devtools/node_modules/spdx-license-ids/deprecated.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/spdx-license-ids/index.json b/src/third_party/devtools/node_modules/spdx-license-ids/index.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/spdx-license-ids/index.json
rename to src/third_party/devtools/node_modules/spdx-license-ids/index.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/spdx-license-ids/package.json b/src/third_party/devtools/node_modules/spdx-license-ids/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/spdx-license-ids/package.json
rename to src/third_party/devtools/node_modules/spdx-license-ids/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/spdx-ranges/LICENSE.md b/src/third_party/devtools/node_modules/spdx-ranges/LICENSE.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/spdx-ranges/LICENSE.md
rename to src/third_party/devtools/node_modules/spdx-ranges/LICENSE.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/spdx-ranges/README.md b/src/third_party/devtools/node_modules/spdx-ranges/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/spdx-ranges/README.md
rename to src/third_party/devtools/node_modules/spdx-ranges/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/spdx-ranges/index.json b/src/third_party/devtools/node_modules/spdx-ranges/index.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/spdx-ranges/index.json
rename to src/third_party/devtools/node_modules/spdx-ranges/index.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/spdx-ranges/outdated.log b/src/third_party/devtools/node_modules/spdx-ranges/outdated.log
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/spdx-ranges/outdated.log
rename to src/third_party/devtools/node_modules/spdx-ranges/outdated.log
diff --git a/src/cobalt/debug/remote/devtools/node_modules/spdx-ranges/package.json b/src/third_party/devtools/node_modules/spdx-ranges/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/spdx-ranges/package.json
rename to src/third_party/devtools/node_modules/spdx-ranges/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/spdx-satisfies/LICENSE b/src/third_party/devtools/node_modules/spdx-satisfies/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/spdx-satisfies/LICENSE
rename to src/third_party/devtools/node_modules/spdx-satisfies/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/spdx-satisfies/README.md b/src/third_party/devtools/node_modules/spdx-satisfies/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/spdx-satisfies/README.md
rename to src/third_party/devtools/node_modules/spdx-satisfies/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/spdx-satisfies/index.js b/src/third_party/devtools/node_modules/spdx-satisfies/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/spdx-satisfies/index.js
rename to src/third_party/devtools/node_modules/spdx-satisfies/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/spdx-satisfies/package.json b/src/third_party/devtools/node_modules/spdx-satisfies/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/spdx-satisfies/package.json
rename to src/third_party/devtools/node_modules/spdx-satisfies/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/spdx-satisfies/test.log b/src/third_party/devtools/node_modules/spdx-satisfies/test.log
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/spdx-satisfies/test.log
rename to src/third_party/devtools/node_modules/spdx-satisfies/test.log
diff --git a/src/cobalt/debug/remote/devtools/node_modules/sprintf-js/.npmignore b/src/third_party/devtools/node_modules/sprintf-js/.npmignore
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/sprintf-js/.npmignore
rename to src/third_party/devtools/node_modules/sprintf-js/.npmignore
diff --git a/src/cobalt/debug/remote/devtools/node_modules/sprintf-js/LICENSE b/src/third_party/devtools/node_modules/sprintf-js/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/sprintf-js/LICENSE
rename to src/third_party/devtools/node_modules/sprintf-js/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/sprintf-js/README.md b/src/third_party/devtools/node_modules/sprintf-js/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/sprintf-js/README.md
rename to src/third_party/devtools/node_modules/sprintf-js/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/sprintf-js/bower.json b/src/third_party/devtools/node_modules/sprintf-js/bower.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/sprintf-js/bower.json
rename to src/third_party/devtools/node_modules/sprintf-js/bower.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/sprintf-js/demo/angular.html b/src/third_party/devtools/node_modules/sprintf-js/demo/angular.html
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/sprintf-js/demo/angular.html
rename to src/third_party/devtools/node_modules/sprintf-js/demo/angular.html
diff --git a/src/cobalt/debug/remote/devtools/node_modules/sprintf-js/dist/angular-sprintf.min.js b/src/third_party/devtools/node_modules/sprintf-js/dist/angular-sprintf.min.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/sprintf-js/dist/angular-sprintf.min.js
rename to src/third_party/devtools/node_modules/sprintf-js/dist/angular-sprintf.min.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/sprintf-js/dist/angular-sprintf.min.js.map b/src/third_party/devtools/node_modules/sprintf-js/dist/angular-sprintf.min.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/sprintf-js/dist/angular-sprintf.min.js.map
rename to src/third_party/devtools/node_modules/sprintf-js/dist/angular-sprintf.min.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/sprintf-js/dist/angular-sprintf.min.map b/src/third_party/devtools/node_modules/sprintf-js/dist/angular-sprintf.min.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/sprintf-js/dist/angular-sprintf.min.map
rename to src/third_party/devtools/node_modules/sprintf-js/dist/angular-sprintf.min.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/sprintf-js/dist/sprintf.min.js b/src/third_party/devtools/node_modules/sprintf-js/dist/sprintf.min.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/sprintf-js/dist/sprintf.min.js
rename to src/third_party/devtools/node_modules/sprintf-js/dist/sprintf.min.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/sprintf-js/dist/sprintf.min.js.map b/src/third_party/devtools/node_modules/sprintf-js/dist/sprintf.min.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/sprintf-js/dist/sprintf.min.js.map
rename to src/third_party/devtools/node_modules/sprintf-js/dist/sprintf.min.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/sprintf-js/dist/sprintf.min.map b/src/third_party/devtools/node_modules/sprintf-js/dist/sprintf.min.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/sprintf-js/dist/sprintf.min.map
rename to src/third_party/devtools/node_modules/sprintf-js/dist/sprintf.min.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/sprintf-js/gruntfile.js b/src/third_party/devtools/node_modules/sprintf-js/gruntfile.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/sprintf-js/gruntfile.js
rename to src/third_party/devtools/node_modules/sprintf-js/gruntfile.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/sprintf-js/package.json b/src/third_party/devtools/node_modules/sprintf-js/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/sprintf-js/package.json
rename to src/third_party/devtools/node_modules/sprintf-js/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/sprintf-js/src/angular-sprintf.js b/src/third_party/devtools/node_modules/sprintf-js/src/angular-sprintf.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/sprintf-js/src/angular-sprintf.js
rename to src/third_party/devtools/node_modules/sprintf-js/src/angular-sprintf.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/sprintf-js/src/sprintf.js b/src/third_party/devtools/node_modules/sprintf-js/src/sprintf.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/sprintf-js/src/sprintf.js
rename to src/third_party/devtools/node_modules/sprintf-js/src/sprintf.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/sprintf-js/test/test.js b/src/third_party/devtools/node_modules/sprintf-js/test/test.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/sprintf-js/test/test.js
rename to src/third_party/devtools/node_modules/sprintf-js/test/test.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/statuses/HISTORY.md b/src/third_party/devtools/node_modules/statuses/HISTORY.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/statuses/HISTORY.md
rename to src/third_party/devtools/node_modules/statuses/HISTORY.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/statuses/LICENSE b/src/third_party/devtools/node_modules/statuses/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/statuses/LICENSE
rename to src/third_party/devtools/node_modules/statuses/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/statuses/README.md b/src/third_party/devtools/node_modules/statuses/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/statuses/README.md
rename to src/third_party/devtools/node_modules/statuses/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/statuses/codes.json b/src/third_party/devtools/node_modules/statuses/codes.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/statuses/codes.json
rename to src/third_party/devtools/node_modules/statuses/codes.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/statuses/index.js b/src/third_party/devtools/node_modules/statuses/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/statuses/index.js
rename to src/third_party/devtools/node_modules/statuses/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/statuses/package.json b/src/third_party/devtools/node_modules/statuses/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/statuses/package.json
rename to src/third_party/devtools/node_modules/statuses/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/stream-browserify/.travis.yml b/src/third_party/devtools/node_modules/stream-browserify/.travis.yml
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/stream-browserify/.travis.yml
rename to src/third_party/devtools/node_modules/stream-browserify/.travis.yml
diff --git a/src/cobalt/debug/remote/devtools/node_modules/stream-browserify/LICENSE b/src/third_party/devtools/node_modules/stream-browserify/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/stream-browserify/LICENSE
rename to src/third_party/devtools/node_modules/stream-browserify/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/stream-browserify/index.js b/src/third_party/devtools/node_modules/stream-browserify/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/stream-browserify/index.js
rename to src/third_party/devtools/node_modules/stream-browserify/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/stream-browserify/node_modules/isarray/.npmignore b/src/third_party/devtools/node_modules/stream-browserify/node_modules/isarray/.npmignore
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/stream-browserify/node_modules/isarray/.npmignore
rename to src/third_party/devtools/node_modules/stream-browserify/node_modules/isarray/.npmignore
diff --git a/src/cobalt/debug/remote/devtools/node_modules/stream-browserify/node_modules/isarray/.travis.yml b/src/third_party/devtools/node_modules/stream-browserify/node_modules/isarray/.travis.yml
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/stream-browserify/node_modules/isarray/.travis.yml
rename to src/third_party/devtools/node_modules/stream-browserify/node_modules/isarray/.travis.yml
diff --git a/src/cobalt/debug/remote/devtools/node_modules/stream-browserify/node_modules/isarray/Makefile b/src/third_party/devtools/node_modules/stream-browserify/node_modules/isarray/Makefile
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/stream-browserify/node_modules/isarray/Makefile
rename to src/third_party/devtools/node_modules/stream-browserify/node_modules/isarray/Makefile
diff --git a/src/cobalt/debug/remote/devtools/node_modules/stream-browserify/node_modules/isarray/README.md b/src/third_party/devtools/node_modules/stream-browserify/node_modules/isarray/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/stream-browserify/node_modules/isarray/README.md
rename to src/third_party/devtools/node_modules/stream-browserify/node_modules/isarray/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/stream-browserify/node_modules/isarray/component.json b/src/third_party/devtools/node_modules/stream-browserify/node_modules/isarray/component.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/stream-browserify/node_modules/isarray/component.json
rename to src/third_party/devtools/node_modules/stream-browserify/node_modules/isarray/component.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/stream-browserify/node_modules/isarray/index.js b/src/third_party/devtools/node_modules/stream-browserify/node_modules/isarray/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/stream-browserify/node_modules/isarray/index.js
rename to src/third_party/devtools/node_modules/stream-browserify/node_modules/isarray/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/stream-browserify/node_modules/isarray/package.json b/src/third_party/devtools/node_modules/stream-browserify/node_modules/isarray/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/stream-browserify/node_modules/isarray/package.json
rename to src/third_party/devtools/node_modules/stream-browserify/node_modules/isarray/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/stream-browserify/node_modules/isarray/test.js b/src/third_party/devtools/node_modules/stream-browserify/node_modules/isarray/test.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/stream-browserify/node_modules/isarray/test.js
rename to src/third_party/devtools/node_modules/stream-browserify/node_modules/isarray/test.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/stream-browserify/node_modules/readable-stream/.travis.yml b/src/third_party/devtools/node_modules/stream-browserify/node_modules/readable-stream/.travis.yml
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/stream-browserify/node_modules/readable-stream/.travis.yml
rename to src/third_party/devtools/node_modules/stream-browserify/node_modules/readable-stream/.travis.yml
diff --git a/src/cobalt/debug/remote/devtools/node_modules/stream-browserify/node_modules/readable-stream/CONTRIBUTING.md b/src/third_party/devtools/node_modules/stream-browserify/node_modules/readable-stream/CONTRIBUTING.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/stream-browserify/node_modules/readable-stream/CONTRIBUTING.md
rename to src/third_party/devtools/node_modules/stream-browserify/node_modules/readable-stream/CONTRIBUTING.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/stream-browserify/node_modules/readable-stream/GOVERNANCE.md b/src/third_party/devtools/node_modules/stream-browserify/node_modules/readable-stream/GOVERNANCE.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/stream-browserify/node_modules/readable-stream/GOVERNANCE.md
rename to src/third_party/devtools/node_modules/stream-browserify/node_modules/readable-stream/GOVERNANCE.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/stream-browserify/node_modules/readable-stream/LICENSE b/src/third_party/devtools/node_modules/stream-browserify/node_modules/readable-stream/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/stream-browserify/node_modules/readable-stream/LICENSE
rename to src/third_party/devtools/node_modules/stream-browserify/node_modules/readable-stream/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/stream-browserify/node_modules/readable-stream/README.md b/src/third_party/devtools/node_modules/stream-browserify/node_modules/readable-stream/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/stream-browserify/node_modules/readable-stream/README.md
rename to src/third_party/devtools/node_modules/stream-browserify/node_modules/readable-stream/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/stream-browserify/node_modules/readable-stream/doc/wg-meetings/2015-01-30.md b/src/third_party/devtools/node_modules/stream-browserify/node_modules/readable-stream/doc/wg-meetings/2015-01-30.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/stream-browserify/node_modules/readable-stream/doc/wg-meetings/2015-01-30.md
rename to src/third_party/devtools/node_modules/stream-browserify/node_modules/readable-stream/doc/wg-meetings/2015-01-30.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/stream-browserify/node_modules/readable-stream/duplex-browser.js b/src/third_party/devtools/node_modules/stream-browserify/node_modules/readable-stream/duplex-browser.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/stream-browserify/node_modules/readable-stream/duplex-browser.js
rename to src/third_party/devtools/node_modules/stream-browserify/node_modules/readable-stream/duplex-browser.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/stream-browserify/node_modules/readable-stream/duplex.js b/src/third_party/devtools/node_modules/stream-browserify/node_modules/readable-stream/duplex.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/stream-browserify/node_modules/readable-stream/duplex.js
rename to src/third_party/devtools/node_modules/stream-browserify/node_modules/readable-stream/duplex.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/stream-browserify/node_modules/readable-stream/lib/_stream_duplex.js b/src/third_party/devtools/node_modules/stream-browserify/node_modules/readable-stream/lib/_stream_duplex.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/stream-browserify/node_modules/readable-stream/lib/_stream_duplex.js
rename to src/third_party/devtools/node_modules/stream-browserify/node_modules/readable-stream/lib/_stream_duplex.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/stream-browserify/node_modules/readable-stream/lib/_stream_passthrough.js b/src/third_party/devtools/node_modules/stream-browserify/node_modules/readable-stream/lib/_stream_passthrough.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/stream-browserify/node_modules/readable-stream/lib/_stream_passthrough.js
rename to src/third_party/devtools/node_modules/stream-browserify/node_modules/readable-stream/lib/_stream_passthrough.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/stream-browserify/node_modules/readable-stream/lib/_stream_readable.js b/src/third_party/devtools/node_modules/stream-browserify/node_modules/readable-stream/lib/_stream_readable.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/stream-browserify/node_modules/readable-stream/lib/_stream_readable.js
rename to src/third_party/devtools/node_modules/stream-browserify/node_modules/readable-stream/lib/_stream_readable.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/stream-browserify/node_modules/readable-stream/lib/_stream_transform.js b/src/third_party/devtools/node_modules/stream-browserify/node_modules/readable-stream/lib/_stream_transform.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/stream-browserify/node_modules/readable-stream/lib/_stream_transform.js
rename to src/third_party/devtools/node_modules/stream-browserify/node_modules/readable-stream/lib/_stream_transform.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/stream-browserify/node_modules/readable-stream/lib/_stream_writable.js b/src/third_party/devtools/node_modules/stream-browserify/node_modules/readable-stream/lib/_stream_writable.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/stream-browserify/node_modules/readable-stream/lib/_stream_writable.js
rename to src/third_party/devtools/node_modules/stream-browserify/node_modules/readable-stream/lib/_stream_writable.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/BufferList.js b/src/third_party/devtools/node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/BufferList.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/BufferList.js
rename to src/third_party/devtools/node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/BufferList.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/destroy.js b/src/third_party/devtools/node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/destroy.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/destroy.js
rename to src/third_party/devtools/node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/destroy.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/stream-browser.js b/src/third_party/devtools/node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/stream-browser.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/stream-browser.js
rename to src/third_party/devtools/node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/stream-browser.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/stream.js b/src/third_party/devtools/node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/stream.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/stream.js
rename to src/third_party/devtools/node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/stream.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/stream-browserify/node_modules/readable-stream/package.json b/src/third_party/devtools/node_modules/stream-browserify/node_modules/readable-stream/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/stream-browserify/node_modules/readable-stream/package.json
rename to src/third_party/devtools/node_modules/stream-browserify/node_modules/readable-stream/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/stream-browserify/node_modules/readable-stream/passthrough.js b/src/third_party/devtools/node_modules/stream-browserify/node_modules/readable-stream/passthrough.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/stream-browserify/node_modules/readable-stream/passthrough.js
rename to src/third_party/devtools/node_modules/stream-browserify/node_modules/readable-stream/passthrough.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/stream-browserify/node_modules/readable-stream/readable-browser.js b/src/third_party/devtools/node_modules/stream-browserify/node_modules/readable-stream/readable-browser.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/stream-browserify/node_modules/readable-stream/readable-browser.js
rename to src/third_party/devtools/node_modules/stream-browserify/node_modules/readable-stream/readable-browser.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/stream-browserify/node_modules/readable-stream/readable.js b/src/third_party/devtools/node_modules/stream-browserify/node_modules/readable-stream/readable.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/stream-browserify/node_modules/readable-stream/readable.js
rename to src/third_party/devtools/node_modules/stream-browserify/node_modules/readable-stream/readable.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/stream-browserify/node_modules/readable-stream/transform.js b/src/third_party/devtools/node_modules/stream-browserify/node_modules/readable-stream/transform.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/stream-browserify/node_modules/readable-stream/transform.js
rename to src/third_party/devtools/node_modules/stream-browserify/node_modules/readable-stream/transform.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/stream-browserify/node_modules/readable-stream/writable-browser.js b/src/third_party/devtools/node_modules/stream-browserify/node_modules/readable-stream/writable-browser.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/stream-browserify/node_modules/readable-stream/writable-browser.js
rename to src/third_party/devtools/node_modules/stream-browserify/node_modules/readable-stream/writable-browser.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/stream-browserify/node_modules/readable-stream/writable.js b/src/third_party/devtools/node_modules/stream-browserify/node_modules/readable-stream/writable.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/stream-browserify/node_modules/readable-stream/writable.js
rename to src/third_party/devtools/node_modules/stream-browserify/node_modules/readable-stream/writable.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/stream-browserify/node_modules/safe-buffer/LICENSE b/src/third_party/devtools/node_modules/stream-browserify/node_modules/safe-buffer/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/stream-browserify/node_modules/safe-buffer/LICENSE
rename to src/third_party/devtools/node_modules/stream-browserify/node_modules/safe-buffer/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/stream-browserify/node_modules/safe-buffer/README.md b/src/third_party/devtools/node_modules/stream-browserify/node_modules/safe-buffer/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/stream-browserify/node_modules/safe-buffer/README.md
rename to src/third_party/devtools/node_modules/stream-browserify/node_modules/safe-buffer/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/stream-browserify/node_modules/safe-buffer/index.d.ts b/src/third_party/devtools/node_modules/stream-browserify/node_modules/safe-buffer/index.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/stream-browserify/node_modules/safe-buffer/index.d.ts
rename to src/third_party/devtools/node_modules/stream-browserify/node_modules/safe-buffer/index.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/stream-browserify/node_modules/safe-buffer/index.js b/src/third_party/devtools/node_modules/stream-browserify/node_modules/safe-buffer/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/stream-browserify/node_modules/safe-buffer/index.js
rename to src/third_party/devtools/node_modules/stream-browserify/node_modules/safe-buffer/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/stream-browserify/node_modules/safe-buffer/package.json b/src/third_party/devtools/node_modules/stream-browserify/node_modules/safe-buffer/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/stream-browserify/node_modules/safe-buffer/package.json
rename to src/third_party/devtools/node_modules/stream-browserify/node_modules/safe-buffer/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/stream-browserify/node_modules/string_decoder/.travis.yml b/src/third_party/devtools/node_modules/stream-browserify/node_modules/string_decoder/.travis.yml
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/stream-browserify/node_modules/string_decoder/.travis.yml
rename to src/third_party/devtools/node_modules/stream-browserify/node_modules/string_decoder/.travis.yml
diff --git a/src/cobalt/debug/remote/devtools/node_modules/stream-browserify/node_modules/string_decoder/LICENSE b/src/third_party/devtools/node_modules/stream-browserify/node_modules/string_decoder/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/stream-browserify/node_modules/string_decoder/LICENSE
rename to src/third_party/devtools/node_modules/stream-browserify/node_modules/string_decoder/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/stream-browserify/node_modules/string_decoder/README.md b/src/third_party/devtools/node_modules/stream-browserify/node_modules/string_decoder/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/stream-browserify/node_modules/string_decoder/README.md
rename to src/third_party/devtools/node_modules/stream-browserify/node_modules/string_decoder/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/stream-browserify/node_modules/string_decoder/lib/string_decoder.js b/src/third_party/devtools/node_modules/stream-browserify/node_modules/string_decoder/lib/string_decoder.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/stream-browserify/node_modules/string_decoder/lib/string_decoder.js
rename to src/third_party/devtools/node_modules/stream-browserify/node_modules/string_decoder/lib/string_decoder.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/stream-browserify/node_modules/string_decoder/package.json b/src/third_party/devtools/node_modules/stream-browserify/node_modules/string_decoder/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/stream-browserify/node_modules/string_decoder/package.json
rename to src/third_party/devtools/node_modules/stream-browserify/node_modules/string_decoder/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/stream-browserify/package.json b/src/third_party/devtools/node_modules/stream-browserify/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/stream-browserify/package.json
rename to src/third_party/devtools/node_modules/stream-browserify/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/stream-browserify/readme.markdown b/src/third_party/devtools/node_modules/stream-browserify/readme.markdown
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/stream-browserify/readme.markdown
rename to src/third_party/devtools/node_modules/stream-browserify/readme.markdown
diff --git a/src/cobalt/debug/remote/devtools/node_modules/stream-browserify/test/buf.js b/src/third_party/devtools/node_modules/stream-browserify/test/buf.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/stream-browserify/test/buf.js
rename to src/third_party/devtools/node_modules/stream-browserify/test/buf.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/stream-http/LICENSE b/src/third_party/devtools/node_modules/stream-http/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/stream-http/LICENSE
rename to src/third_party/devtools/node_modules/stream-http/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/stream-http/README.md b/src/third_party/devtools/node_modules/stream-http/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/stream-http/README.md
rename to src/third_party/devtools/node_modules/stream-http/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/stream-http/index.js b/src/third_party/devtools/node_modules/stream-http/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/stream-http/index.js
rename to src/third_party/devtools/node_modules/stream-http/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/stream-http/lib/capability.js b/src/third_party/devtools/node_modules/stream-http/lib/capability.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/stream-http/lib/capability.js
rename to src/third_party/devtools/node_modules/stream-http/lib/capability.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/stream-http/lib/request.js b/src/third_party/devtools/node_modules/stream-http/lib/request.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/stream-http/lib/request.js
rename to src/third_party/devtools/node_modules/stream-http/lib/request.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/stream-http/lib/response.js b/src/third_party/devtools/node_modules/stream-http/lib/response.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/stream-http/lib/response.js
rename to src/third_party/devtools/node_modules/stream-http/lib/response.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/stream-http/package.json b/src/third_party/devtools/node_modules/stream-http/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/stream-http/package.json
rename to src/third_party/devtools/node_modules/stream-http/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/streamroller/.travis.yml b/src/third_party/devtools/node_modules/streamroller/.travis.yml
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/streamroller/.travis.yml
rename to src/third_party/devtools/node_modules/streamroller/.travis.yml
diff --git a/src/cobalt/debug/remote/devtools/node_modules/streamroller/CHANGELOG.md b/src/third_party/devtools/node_modules/streamroller/CHANGELOG.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/streamroller/CHANGELOG.md
rename to src/third_party/devtools/node_modules/streamroller/CHANGELOG.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/streamroller/LICENSE b/src/third_party/devtools/node_modules/streamroller/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/streamroller/LICENSE
rename to src/third_party/devtools/node_modules/streamroller/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/streamroller/README.md b/src/third_party/devtools/node_modules/streamroller/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/streamroller/README.md
rename to src/third_party/devtools/node_modules/streamroller/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/streamroller/lib/DateRollingFileStream.js b/src/third_party/devtools/node_modules/streamroller/lib/DateRollingFileStream.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/streamroller/lib/DateRollingFileStream.js
rename to src/third_party/devtools/node_modules/streamroller/lib/DateRollingFileStream.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/streamroller/lib/RollingFileStream.js b/src/third_party/devtools/node_modules/streamroller/lib/RollingFileStream.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/streamroller/lib/RollingFileStream.js
rename to src/third_party/devtools/node_modules/streamroller/lib/RollingFileStream.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/streamroller/lib/RollingFileWriteStream.js b/src/third_party/devtools/node_modules/streamroller/lib/RollingFileWriteStream.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/streamroller/lib/RollingFileWriteStream.js
rename to src/third_party/devtools/node_modules/streamroller/lib/RollingFileWriteStream.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/streamroller/lib/index.js b/src/third_party/devtools/node_modules/streamroller/lib/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/streamroller/lib/index.js
rename to src/third_party/devtools/node_modules/streamroller/lib/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/streamroller/lib/now.js b/src/third_party/devtools/node_modules/streamroller/lib/now.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/streamroller/lib/now.js
rename to src/third_party/devtools/node_modules/streamroller/lib/now.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/streamroller/node_modules/debug/CHANGELOG.md b/src/third_party/devtools/node_modules/streamroller/node_modules/debug/CHANGELOG.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/streamroller/node_modules/debug/CHANGELOG.md
rename to src/third_party/devtools/node_modules/streamroller/node_modules/debug/CHANGELOG.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/streamroller/node_modules/debug/LICENSE b/src/third_party/devtools/node_modules/streamroller/node_modules/debug/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/streamroller/node_modules/debug/LICENSE
rename to src/third_party/devtools/node_modules/streamroller/node_modules/debug/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/streamroller/node_modules/debug/README.md b/src/third_party/devtools/node_modules/streamroller/node_modules/debug/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/streamroller/node_modules/debug/README.md
rename to src/third_party/devtools/node_modules/streamroller/node_modules/debug/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/streamroller/node_modules/debug/dist/debug.js b/src/third_party/devtools/node_modules/streamroller/node_modules/debug/dist/debug.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/streamroller/node_modules/debug/dist/debug.js
rename to src/third_party/devtools/node_modules/streamroller/node_modules/debug/dist/debug.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/streamroller/node_modules/debug/node.js b/src/third_party/devtools/node_modules/streamroller/node_modules/debug/node.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/streamroller/node_modules/debug/node.js
rename to src/third_party/devtools/node_modules/streamroller/node_modules/debug/node.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/streamroller/node_modules/debug/package.json b/src/third_party/devtools/node_modules/streamroller/node_modules/debug/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/streamroller/node_modules/debug/package.json
rename to src/third_party/devtools/node_modules/streamroller/node_modules/debug/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/streamroller/node_modules/debug/src/browser.js b/src/third_party/devtools/node_modules/streamroller/node_modules/debug/src/browser.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/streamroller/node_modules/debug/src/browser.js
rename to src/third_party/devtools/node_modules/streamroller/node_modules/debug/src/browser.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/streamroller/node_modules/debug/src/common.js b/src/third_party/devtools/node_modules/streamroller/node_modules/debug/src/common.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/streamroller/node_modules/debug/src/common.js
rename to src/third_party/devtools/node_modules/streamroller/node_modules/debug/src/common.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/streamroller/node_modules/debug/src/index.js b/src/third_party/devtools/node_modules/streamroller/node_modules/debug/src/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/streamroller/node_modules/debug/src/index.js
rename to src/third_party/devtools/node_modules/streamroller/node_modules/debug/src/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/streamroller/node_modules/debug/src/node.js b/src/third_party/devtools/node_modules/streamroller/node_modules/debug/src/node.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/streamroller/node_modules/debug/src/node.js
rename to src/third_party/devtools/node_modules/streamroller/node_modules/debug/src/node.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/streamroller/package.json b/src/third_party/devtools/node_modules/streamroller/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/streamroller/package.json
rename to src/third_party/devtools/node_modules/streamroller/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/streamroller/test/DateRollingFileStream-test.js b/src/third_party/devtools/node_modules/streamroller/test/DateRollingFileStream-test.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/streamroller/test/DateRollingFileStream-test.js
rename to src/third_party/devtools/node_modules/streamroller/test/DateRollingFileStream-test.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/streamroller/test/RollingFileStream-test.js b/src/third_party/devtools/node_modules/streamroller/test/RollingFileStream-test.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/streamroller/test/RollingFileStream-test.js
rename to src/third_party/devtools/node_modules/streamroller/test/RollingFileStream-test.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/streamroller/test/RollingFileWriteStream-test.js b/src/third_party/devtools/node_modules/streamroller/test/RollingFileWriteStream-test.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/streamroller/test/RollingFileWriteStream-test.js
rename to src/third_party/devtools/node_modules/streamroller/test/RollingFileWriteStream-test.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/string-width/LICENSE b/src/third_party/devtools/node_modules/string-width/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/string-width/LICENSE
rename to src/third_party/devtools/node_modules/string-width/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/string-width/index.js b/src/third_party/devtools/node_modules/string-width/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/string-width/index.js
rename to src/third_party/devtools/node_modules/string-width/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/string-width/package.json b/src/third_party/devtools/node_modules/string-width/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/string-width/package.json
rename to src/third_party/devtools/node_modules/string-width/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/string-width/readme.md b/src/third_party/devtools/node_modules/string-width/readme.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/string-width/readme.md
rename to src/third_party/devtools/node_modules/string-width/readme.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/string.prototype.trimleft/.editorconfig b/src/third_party/devtools/node_modules/string.prototype.trimleft/.editorconfig
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/string.prototype.trimleft/.editorconfig
rename to src/third_party/devtools/node_modules/string.prototype.trimleft/.editorconfig
diff --git a/src/cobalt/debug/remote/devtools/node_modules/string.prototype.trimleft/.eslintrc b/src/third_party/devtools/node_modules/string.prototype.trimleft/.eslintrc
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/string.prototype.trimleft/.eslintrc
rename to src/third_party/devtools/node_modules/string.prototype.trimleft/.eslintrc
diff --git a/src/cobalt/debug/remote/devtools/node_modules/string.prototype.trimleft/.travis.yml b/src/third_party/devtools/node_modules/string.prototype.trimleft/.travis.yml
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/string.prototype.trimleft/.travis.yml
rename to src/third_party/devtools/node_modules/string.prototype.trimleft/.travis.yml
diff --git a/src/cobalt/debug/remote/devtools/node_modules/string.prototype.trimleft/CHANGELOG.md b/src/third_party/devtools/node_modules/string.prototype.trimleft/CHANGELOG.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/string.prototype.trimleft/CHANGELOG.md
rename to src/third_party/devtools/node_modules/string.prototype.trimleft/CHANGELOG.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/string.prototype.trimleft/LICENSE b/src/third_party/devtools/node_modules/string.prototype.trimleft/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/string.prototype.trimleft/LICENSE
rename to src/third_party/devtools/node_modules/string.prototype.trimleft/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/string.prototype.trimleft/README.md b/src/third_party/devtools/node_modules/string.prototype.trimleft/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/string.prototype.trimleft/README.md
rename to src/third_party/devtools/node_modules/string.prototype.trimleft/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/string.prototype.trimleft/auto.js b/src/third_party/devtools/node_modules/string.prototype.trimleft/auto.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/string.prototype.trimleft/auto.js
rename to src/third_party/devtools/node_modules/string.prototype.trimleft/auto.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/string.prototype.trimleft/implementation.js b/src/third_party/devtools/node_modules/string.prototype.trimleft/implementation.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/string.prototype.trimleft/implementation.js
rename to src/third_party/devtools/node_modules/string.prototype.trimleft/implementation.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/string.prototype.trimleft/index.js b/src/third_party/devtools/node_modules/string.prototype.trimleft/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/string.prototype.trimleft/index.js
rename to src/third_party/devtools/node_modules/string.prototype.trimleft/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/string.prototype.trimleft/package.json b/src/third_party/devtools/node_modules/string.prototype.trimleft/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/string.prototype.trimleft/package.json
rename to src/third_party/devtools/node_modules/string.prototype.trimleft/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/string.prototype.trimleft/polyfill.js b/src/third_party/devtools/node_modules/string.prototype.trimleft/polyfill.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/string.prototype.trimleft/polyfill.js
rename to src/third_party/devtools/node_modules/string.prototype.trimleft/polyfill.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/string.prototype.trimleft/shim.js b/src/third_party/devtools/node_modules/string.prototype.trimleft/shim.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/string.prototype.trimleft/shim.js
rename to src/third_party/devtools/node_modules/string.prototype.trimleft/shim.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/string.prototype.trimleft/test/index.js b/src/third_party/devtools/node_modules/string.prototype.trimleft/test/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/string.prototype.trimleft/test/index.js
rename to src/third_party/devtools/node_modules/string.prototype.trimleft/test/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/string.prototype.trimleft/test/shimmed.js b/src/third_party/devtools/node_modules/string.prototype.trimleft/test/shimmed.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/string.prototype.trimleft/test/shimmed.js
rename to src/third_party/devtools/node_modules/string.prototype.trimleft/test/shimmed.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/string.prototype.trimleft/test/tests.js b/src/third_party/devtools/node_modules/string.prototype.trimleft/test/tests.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/string.prototype.trimleft/test/tests.js
rename to src/third_party/devtools/node_modules/string.prototype.trimleft/test/tests.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/string.prototype.trimright/.editorconfig b/src/third_party/devtools/node_modules/string.prototype.trimright/.editorconfig
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/string.prototype.trimright/.editorconfig
rename to src/third_party/devtools/node_modules/string.prototype.trimright/.editorconfig
diff --git a/src/cobalt/debug/remote/devtools/node_modules/string.prototype.trimright/.eslintrc b/src/third_party/devtools/node_modules/string.prototype.trimright/.eslintrc
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/string.prototype.trimright/.eslintrc
rename to src/third_party/devtools/node_modules/string.prototype.trimright/.eslintrc
diff --git a/src/cobalt/debug/remote/devtools/node_modules/string.prototype.trimright/.travis.yml b/src/third_party/devtools/node_modules/string.prototype.trimright/.travis.yml
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/string.prototype.trimright/.travis.yml
rename to src/third_party/devtools/node_modules/string.prototype.trimright/.travis.yml
diff --git a/src/cobalt/debug/remote/devtools/node_modules/string.prototype.trimright/CHANGELOG.md b/src/third_party/devtools/node_modules/string.prototype.trimright/CHANGELOG.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/string.prototype.trimright/CHANGELOG.md
rename to src/third_party/devtools/node_modules/string.prototype.trimright/CHANGELOG.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/string.prototype.trimright/LICENSE b/src/third_party/devtools/node_modules/string.prototype.trimright/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/string.prototype.trimright/LICENSE
rename to src/third_party/devtools/node_modules/string.prototype.trimright/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/string.prototype.trimright/README.md b/src/third_party/devtools/node_modules/string.prototype.trimright/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/string.prototype.trimright/README.md
rename to src/third_party/devtools/node_modules/string.prototype.trimright/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/string.prototype.trimright/auto.js b/src/third_party/devtools/node_modules/string.prototype.trimright/auto.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/string.prototype.trimright/auto.js
rename to src/third_party/devtools/node_modules/string.prototype.trimright/auto.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/string.prototype.trimright/implementation.js b/src/third_party/devtools/node_modules/string.prototype.trimright/implementation.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/string.prototype.trimright/implementation.js
rename to src/third_party/devtools/node_modules/string.prototype.trimright/implementation.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/string.prototype.trimright/index.js b/src/third_party/devtools/node_modules/string.prototype.trimright/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/string.prototype.trimright/index.js
rename to src/third_party/devtools/node_modules/string.prototype.trimright/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/string.prototype.trimright/package.json b/src/third_party/devtools/node_modules/string.prototype.trimright/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/string.prototype.trimright/package.json
rename to src/third_party/devtools/node_modules/string.prototype.trimright/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/string.prototype.trimright/polyfill.js b/src/third_party/devtools/node_modules/string.prototype.trimright/polyfill.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/string.prototype.trimright/polyfill.js
rename to src/third_party/devtools/node_modules/string.prototype.trimright/polyfill.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/string.prototype.trimright/shim.js b/src/third_party/devtools/node_modules/string.prototype.trimright/shim.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/string.prototype.trimright/shim.js
rename to src/third_party/devtools/node_modules/string.prototype.trimright/shim.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/string.prototype.trimright/test/index.js b/src/third_party/devtools/node_modules/string.prototype.trimright/test/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/string.prototype.trimright/test/index.js
rename to src/third_party/devtools/node_modules/string.prototype.trimright/test/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/string.prototype.trimright/test/shimmed.js b/src/third_party/devtools/node_modules/string.prototype.trimright/test/shimmed.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/string.prototype.trimright/test/shimmed.js
rename to src/third_party/devtools/node_modules/string.prototype.trimright/test/shimmed.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/string.prototype.trimright/test/tests.js b/src/third_party/devtools/node_modules/string.prototype.trimright/test/tests.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/string.prototype.trimright/test/tests.js
rename to src/third_party/devtools/node_modules/string.prototype.trimright/test/tests.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/string_decoder/LICENSE b/src/third_party/devtools/node_modules/string_decoder/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/string_decoder/LICENSE
rename to src/third_party/devtools/node_modules/string_decoder/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/string_decoder/README.md b/src/third_party/devtools/node_modules/string_decoder/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/string_decoder/README.md
rename to src/third_party/devtools/node_modules/string_decoder/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/string_decoder/lib/string_decoder.js b/src/third_party/devtools/node_modules/string_decoder/lib/string_decoder.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/string_decoder/lib/string_decoder.js
rename to src/third_party/devtools/node_modules/string_decoder/lib/string_decoder.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/string_decoder/package.json b/src/third_party/devtools/node_modules/string_decoder/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/string_decoder/package.json
rename to src/third_party/devtools/node_modules/string_decoder/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/strip-ansi/LICENSE b/src/third_party/devtools/node_modules/strip-ansi/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/strip-ansi/LICENSE
rename to src/third_party/devtools/node_modules/strip-ansi/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/strip-ansi/index.js b/src/third_party/devtools/node_modules/strip-ansi/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/strip-ansi/index.js
rename to src/third_party/devtools/node_modules/strip-ansi/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/strip-ansi/package.json b/src/third_party/devtools/node_modules/strip-ansi/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/strip-ansi/package.json
rename to src/third_party/devtools/node_modules/strip-ansi/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/strip-ansi/readme.md b/src/third_party/devtools/node_modules/strip-ansi/readme.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/strip-ansi/readme.md
rename to src/third_party/devtools/node_modules/strip-ansi/readme.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/strip-bom/index.js b/src/third_party/devtools/node_modules/strip-bom/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/strip-bom/index.js
rename to src/third_party/devtools/node_modules/strip-bom/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/strip-bom/license b/src/third_party/devtools/node_modules/strip-bom/license
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/strip-bom/license
rename to src/third_party/devtools/node_modules/strip-bom/license
diff --git a/src/cobalt/debug/remote/devtools/node_modules/strip-bom/package.json b/src/third_party/devtools/node_modules/strip-bom/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/strip-bom/package.json
rename to src/third_party/devtools/node_modules/strip-bom/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/strip-bom/readme.md b/src/third_party/devtools/node_modules/strip-bom/readme.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/strip-bom/readme.md
rename to src/third_party/devtools/node_modules/strip-bom/readme.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/strip-eof/index.js b/src/third_party/devtools/node_modules/strip-eof/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/strip-eof/index.js
rename to src/third_party/devtools/node_modules/strip-eof/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/strip-eof/license b/src/third_party/devtools/node_modules/strip-eof/license
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/strip-eof/license
rename to src/third_party/devtools/node_modules/strip-eof/license
diff --git a/src/cobalt/debug/remote/devtools/node_modules/strip-eof/package.json b/src/third_party/devtools/node_modules/strip-eof/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/strip-eof/package.json
rename to src/third_party/devtools/node_modules/strip-eof/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/strip-eof/readme.md b/src/third_party/devtools/node_modules/strip-eof/readme.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/strip-eof/readme.md
rename to src/third_party/devtools/node_modules/strip-eof/readme.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/strip-indent/cli.js b/src/third_party/devtools/node_modules/strip-indent/cli.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/strip-indent/cli.js
rename to src/third_party/devtools/node_modules/strip-indent/cli.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/strip-indent/index.js b/src/third_party/devtools/node_modules/strip-indent/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/strip-indent/index.js
rename to src/third_party/devtools/node_modules/strip-indent/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/strip-indent/license b/src/third_party/devtools/node_modules/strip-indent/license
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/strip-indent/license
rename to src/third_party/devtools/node_modules/strip-indent/license
diff --git a/src/cobalt/debug/remote/devtools/node_modules/strip-indent/package.json b/src/third_party/devtools/node_modules/strip-indent/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/strip-indent/package.json
rename to src/third_party/devtools/node_modules/strip-indent/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/strip-indent/readme.md b/src/third_party/devtools/node_modules/strip-indent/readme.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/strip-indent/readme.md
rename to src/third_party/devtools/node_modules/strip-indent/readme.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/strip-json-comments/LICENSE b/src/third_party/devtools/node_modules/strip-json-comments/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/strip-json-comments/LICENSE
rename to src/third_party/devtools/node_modules/strip-json-comments/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/strip-json-comments/index.js b/src/third_party/devtools/node_modules/strip-json-comments/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/strip-json-comments/index.js
rename to src/third_party/devtools/node_modules/strip-json-comments/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/strip-json-comments/package.json b/src/third_party/devtools/node_modules/strip-json-comments/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/strip-json-comments/package.json
rename to src/third_party/devtools/node_modules/strip-json-comments/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/strip-json-comments/readme.md b/src/third_party/devtools/node_modules/strip-json-comments/readme.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/strip-json-comments/readme.md
rename to src/third_party/devtools/node_modules/strip-json-comments/readme.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/supports-color/LICENSE b/src/third_party/devtools/node_modules/supports-color/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/supports-color/LICENSE
rename to src/third_party/devtools/node_modules/supports-color/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/supports-color/browser.js b/src/third_party/devtools/node_modules/supports-color/browser.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/supports-color/browser.js
rename to src/third_party/devtools/node_modules/supports-color/browser.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/supports-color/index.js b/src/third_party/devtools/node_modules/supports-color/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/supports-color/index.js
rename to src/third_party/devtools/node_modules/supports-color/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/supports-color/package.json b/src/third_party/devtools/node_modules/supports-color/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/supports-color/package.json
rename to src/third_party/devtools/node_modules/supports-color/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/supports-color/readme.md b/src/third_party/devtools/node_modules/supports-color/readme.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/supports-color/readme.md
rename to src/third_party/devtools/node_modules/supports-color/readme.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/table/LICENSE b/src/third_party/devtools/node_modules/table/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/table/LICENSE
rename to src/third_party/devtools/node_modules/table/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/table/README.md b/src/third_party/devtools/node_modules/table/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/table/README.md
rename to src/third_party/devtools/node_modules/table/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/table/dist/alignString.js b/src/third_party/devtools/node_modules/table/dist/alignString.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/table/dist/alignString.js
rename to src/third_party/devtools/node_modules/table/dist/alignString.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/table/dist/alignString.js.flow b/src/third_party/devtools/node_modules/table/dist/alignString.js.flow
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/table/dist/alignString.js.flow
rename to src/third_party/devtools/node_modules/table/dist/alignString.js.flow
diff --git a/src/cobalt/debug/remote/devtools/node_modules/table/dist/alignString.js.map b/src/third_party/devtools/node_modules/table/dist/alignString.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/table/dist/alignString.js.map
rename to src/third_party/devtools/node_modules/table/dist/alignString.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/table/dist/alignTableData.js b/src/third_party/devtools/node_modules/table/dist/alignTableData.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/table/dist/alignTableData.js
rename to src/third_party/devtools/node_modules/table/dist/alignTableData.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/table/dist/alignTableData.js.flow b/src/third_party/devtools/node_modules/table/dist/alignTableData.js.flow
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/table/dist/alignTableData.js.flow
rename to src/third_party/devtools/node_modules/table/dist/alignTableData.js.flow
diff --git a/src/cobalt/debug/remote/devtools/node_modules/table/dist/alignTableData.js.map b/src/third_party/devtools/node_modules/table/dist/alignTableData.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/table/dist/alignTableData.js.map
rename to src/third_party/devtools/node_modules/table/dist/alignTableData.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/table/dist/calculateCellHeight.js b/src/third_party/devtools/node_modules/table/dist/calculateCellHeight.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/table/dist/calculateCellHeight.js
rename to src/third_party/devtools/node_modules/table/dist/calculateCellHeight.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/table/dist/calculateCellHeight.js.flow b/src/third_party/devtools/node_modules/table/dist/calculateCellHeight.js.flow
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/table/dist/calculateCellHeight.js.flow
rename to src/third_party/devtools/node_modules/table/dist/calculateCellHeight.js.flow
diff --git a/src/cobalt/debug/remote/devtools/node_modules/table/dist/calculateCellHeight.js.map b/src/third_party/devtools/node_modules/table/dist/calculateCellHeight.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/table/dist/calculateCellHeight.js.map
rename to src/third_party/devtools/node_modules/table/dist/calculateCellHeight.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/table/dist/calculateCellWidthIndex.js b/src/third_party/devtools/node_modules/table/dist/calculateCellWidthIndex.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/table/dist/calculateCellWidthIndex.js
rename to src/third_party/devtools/node_modules/table/dist/calculateCellWidthIndex.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/table/dist/calculateCellWidthIndex.js.flow b/src/third_party/devtools/node_modules/table/dist/calculateCellWidthIndex.js.flow
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/table/dist/calculateCellWidthIndex.js.flow
rename to src/third_party/devtools/node_modules/table/dist/calculateCellWidthIndex.js.flow
diff --git a/src/cobalt/debug/remote/devtools/node_modules/table/dist/calculateCellWidthIndex.js.map b/src/third_party/devtools/node_modules/table/dist/calculateCellWidthIndex.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/table/dist/calculateCellWidthIndex.js.map
rename to src/third_party/devtools/node_modules/table/dist/calculateCellWidthIndex.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/table/dist/calculateMaximumColumnWidthIndex.js b/src/third_party/devtools/node_modules/table/dist/calculateMaximumColumnWidthIndex.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/table/dist/calculateMaximumColumnWidthIndex.js
rename to src/third_party/devtools/node_modules/table/dist/calculateMaximumColumnWidthIndex.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/table/dist/calculateMaximumColumnWidthIndex.js.flow b/src/third_party/devtools/node_modules/table/dist/calculateMaximumColumnWidthIndex.js.flow
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/table/dist/calculateMaximumColumnWidthIndex.js.flow
rename to src/third_party/devtools/node_modules/table/dist/calculateMaximumColumnWidthIndex.js.flow
diff --git a/src/cobalt/debug/remote/devtools/node_modules/table/dist/calculateMaximumColumnWidthIndex.js.map b/src/third_party/devtools/node_modules/table/dist/calculateMaximumColumnWidthIndex.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/table/dist/calculateMaximumColumnWidthIndex.js.map
rename to src/third_party/devtools/node_modules/table/dist/calculateMaximumColumnWidthIndex.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/table/dist/calculateRowHeightIndex.js b/src/third_party/devtools/node_modules/table/dist/calculateRowHeightIndex.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/table/dist/calculateRowHeightIndex.js
rename to src/third_party/devtools/node_modules/table/dist/calculateRowHeightIndex.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/table/dist/calculateRowHeightIndex.js.flow b/src/third_party/devtools/node_modules/table/dist/calculateRowHeightIndex.js.flow
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/table/dist/calculateRowHeightIndex.js.flow
rename to src/third_party/devtools/node_modules/table/dist/calculateRowHeightIndex.js.flow
diff --git a/src/cobalt/debug/remote/devtools/node_modules/table/dist/calculateRowHeightIndex.js.map b/src/third_party/devtools/node_modules/table/dist/calculateRowHeightIndex.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/table/dist/calculateRowHeightIndex.js.map
rename to src/third_party/devtools/node_modules/table/dist/calculateRowHeightIndex.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/table/dist/createStream.js b/src/third_party/devtools/node_modules/table/dist/createStream.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/table/dist/createStream.js
rename to src/third_party/devtools/node_modules/table/dist/createStream.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/table/dist/createStream.js.flow b/src/third_party/devtools/node_modules/table/dist/createStream.js.flow
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/table/dist/createStream.js.flow
rename to src/third_party/devtools/node_modules/table/dist/createStream.js.flow
diff --git a/src/cobalt/debug/remote/devtools/node_modules/table/dist/createStream.js.map b/src/third_party/devtools/node_modules/table/dist/createStream.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/table/dist/createStream.js.map
rename to src/third_party/devtools/node_modules/table/dist/createStream.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/table/dist/drawBorder.js b/src/third_party/devtools/node_modules/table/dist/drawBorder.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/table/dist/drawBorder.js
rename to src/third_party/devtools/node_modules/table/dist/drawBorder.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/table/dist/drawBorder.js.flow b/src/third_party/devtools/node_modules/table/dist/drawBorder.js.flow
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/table/dist/drawBorder.js.flow
rename to src/third_party/devtools/node_modules/table/dist/drawBorder.js.flow
diff --git a/src/cobalt/debug/remote/devtools/node_modules/table/dist/drawBorder.js.map b/src/third_party/devtools/node_modules/table/dist/drawBorder.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/table/dist/drawBorder.js.map
rename to src/third_party/devtools/node_modules/table/dist/drawBorder.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/table/dist/drawRow.js b/src/third_party/devtools/node_modules/table/dist/drawRow.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/table/dist/drawRow.js
rename to src/third_party/devtools/node_modules/table/dist/drawRow.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/table/dist/drawRow.js.flow b/src/third_party/devtools/node_modules/table/dist/drawRow.js.flow
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/table/dist/drawRow.js.flow
rename to src/third_party/devtools/node_modules/table/dist/drawRow.js.flow
diff --git a/src/cobalt/debug/remote/devtools/node_modules/table/dist/drawRow.js.map b/src/third_party/devtools/node_modules/table/dist/drawRow.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/table/dist/drawRow.js.map
rename to src/third_party/devtools/node_modules/table/dist/drawRow.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/table/dist/drawTable.js b/src/third_party/devtools/node_modules/table/dist/drawTable.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/table/dist/drawTable.js
rename to src/third_party/devtools/node_modules/table/dist/drawTable.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/table/dist/drawTable.js.flow b/src/third_party/devtools/node_modules/table/dist/drawTable.js.flow
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/table/dist/drawTable.js.flow
rename to src/third_party/devtools/node_modules/table/dist/drawTable.js.flow
diff --git a/src/cobalt/debug/remote/devtools/node_modules/table/dist/drawTable.js.map b/src/third_party/devtools/node_modules/table/dist/drawTable.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/table/dist/drawTable.js.map
rename to src/third_party/devtools/node_modules/table/dist/drawTable.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/table/dist/getBorderCharacters.js b/src/third_party/devtools/node_modules/table/dist/getBorderCharacters.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/table/dist/getBorderCharacters.js
rename to src/third_party/devtools/node_modules/table/dist/getBorderCharacters.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/table/dist/getBorderCharacters.js.flow b/src/third_party/devtools/node_modules/table/dist/getBorderCharacters.js.flow
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/table/dist/getBorderCharacters.js.flow
rename to src/third_party/devtools/node_modules/table/dist/getBorderCharacters.js.flow
diff --git a/src/cobalt/debug/remote/devtools/node_modules/table/dist/getBorderCharacters.js.map b/src/third_party/devtools/node_modules/table/dist/getBorderCharacters.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/table/dist/getBorderCharacters.js.map
rename to src/third_party/devtools/node_modules/table/dist/getBorderCharacters.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/table/dist/index.js b/src/third_party/devtools/node_modules/table/dist/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/table/dist/index.js
rename to src/third_party/devtools/node_modules/table/dist/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/table/dist/index.js.flow b/src/third_party/devtools/node_modules/table/dist/index.js.flow
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/table/dist/index.js.flow
rename to src/third_party/devtools/node_modules/table/dist/index.js.flow
diff --git a/src/cobalt/debug/remote/devtools/node_modules/table/dist/index.js.map b/src/third_party/devtools/node_modules/table/dist/index.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/table/dist/index.js.map
rename to src/third_party/devtools/node_modules/table/dist/index.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/table/dist/makeConfig.js b/src/third_party/devtools/node_modules/table/dist/makeConfig.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/table/dist/makeConfig.js
rename to src/third_party/devtools/node_modules/table/dist/makeConfig.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/table/dist/makeConfig.js.flow b/src/third_party/devtools/node_modules/table/dist/makeConfig.js.flow
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/table/dist/makeConfig.js.flow
rename to src/third_party/devtools/node_modules/table/dist/makeConfig.js.flow
diff --git a/src/cobalt/debug/remote/devtools/node_modules/table/dist/makeConfig.js.map b/src/third_party/devtools/node_modules/table/dist/makeConfig.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/table/dist/makeConfig.js.map
rename to src/third_party/devtools/node_modules/table/dist/makeConfig.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/table/dist/makeStreamConfig.js b/src/third_party/devtools/node_modules/table/dist/makeStreamConfig.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/table/dist/makeStreamConfig.js
rename to src/third_party/devtools/node_modules/table/dist/makeStreamConfig.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/table/dist/makeStreamConfig.js.flow b/src/third_party/devtools/node_modules/table/dist/makeStreamConfig.js.flow
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/table/dist/makeStreamConfig.js.flow
rename to src/third_party/devtools/node_modules/table/dist/makeStreamConfig.js.flow
diff --git a/src/cobalt/debug/remote/devtools/node_modules/table/dist/makeStreamConfig.js.map b/src/third_party/devtools/node_modules/table/dist/makeStreamConfig.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/table/dist/makeStreamConfig.js.map
rename to src/third_party/devtools/node_modules/table/dist/makeStreamConfig.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/table/dist/mapDataUsingRowHeightIndex.js b/src/third_party/devtools/node_modules/table/dist/mapDataUsingRowHeightIndex.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/table/dist/mapDataUsingRowHeightIndex.js
rename to src/third_party/devtools/node_modules/table/dist/mapDataUsingRowHeightIndex.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/table/dist/mapDataUsingRowHeightIndex.js.flow b/src/third_party/devtools/node_modules/table/dist/mapDataUsingRowHeightIndex.js.flow
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/table/dist/mapDataUsingRowHeightIndex.js.flow
rename to src/third_party/devtools/node_modules/table/dist/mapDataUsingRowHeightIndex.js.flow
diff --git a/src/cobalt/debug/remote/devtools/node_modules/table/dist/mapDataUsingRowHeightIndex.js.map b/src/third_party/devtools/node_modules/table/dist/mapDataUsingRowHeightIndex.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/table/dist/mapDataUsingRowHeightIndex.js.map
rename to src/third_party/devtools/node_modules/table/dist/mapDataUsingRowHeightIndex.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/table/dist/padTableData.js b/src/third_party/devtools/node_modules/table/dist/padTableData.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/table/dist/padTableData.js
rename to src/third_party/devtools/node_modules/table/dist/padTableData.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/table/dist/padTableData.js.flow b/src/third_party/devtools/node_modules/table/dist/padTableData.js.flow
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/table/dist/padTableData.js.flow
rename to src/third_party/devtools/node_modules/table/dist/padTableData.js.flow
diff --git a/src/cobalt/debug/remote/devtools/node_modules/table/dist/padTableData.js.map b/src/third_party/devtools/node_modules/table/dist/padTableData.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/table/dist/padTableData.js.map
rename to src/third_party/devtools/node_modules/table/dist/padTableData.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/table/dist/schemas/config.json b/src/third_party/devtools/node_modules/table/dist/schemas/config.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/table/dist/schemas/config.json
rename to src/third_party/devtools/node_modules/table/dist/schemas/config.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/table/dist/schemas/streamConfig.json b/src/third_party/devtools/node_modules/table/dist/schemas/streamConfig.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/table/dist/schemas/streamConfig.json
rename to src/third_party/devtools/node_modules/table/dist/schemas/streamConfig.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/table/dist/stringifyTableData.js b/src/third_party/devtools/node_modules/table/dist/stringifyTableData.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/table/dist/stringifyTableData.js
rename to src/third_party/devtools/node_modules/table/dist/stringifyTableData.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/table/dist/stringifyTableData.js.flow b/src/third_party/devtools/node_modules/table/dist/stringifyTableData.js.flow
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/table/dist/stringifyTableData.js.flow
rename to src/third_party/devtools/node_modules/table/dist/stringifyTableData.js.flow
diff --git a/src/cobalt/debug/remote/devtools/node_modules/table/dist/stringifyTableData.js.map b/src/third_party/devtools/node_modules/table/dist/stringifyTableData.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/table/dist/stringifyTableData.js.map
rename to src/third_party/devtools/node_modules/table/dist/stringifyTableData.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/table/dist/table.js b/src/third_party/devtools/node_modules/table/dist/table.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/table/dist/table.js
rename to src/third_party/devtools/node_modules/table/dist/table.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/table/dist/table.js.flow b/src/third_party/devtools/node_modules/table/dist/table.js.flow
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/table/dist/table.js.flow
rename to src/third_party/devtools/node_modules/table/dist/table.js.flow
diff --git a/src/cobalt/debug/remote/devtools/node_modules/table/dist/table.js.map b/src/third_party/devtools/node_modules/table/dist/table.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/table/dist/table.js.map
rename to src/third_party/devtools/node_modules/table/dist/table.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/table/dist/truncateTableData.js b/src/third_party/devtools/node_modules/table/dist/truncateTableData.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/table/dist/truncateTableData.js
rename to src/third_party/devtools/node_modules/table/dist/truncateTableData.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/table/dist/truncateTableData.js.flow b/src/third_party/devtools/node_modules/table/dist/truncateTableData.js.flow
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/table/dist/truncateTableData.js.flow
rename to src/third_party/devtools/node_modules/table/dist/truncateTableData.js.flow
diff --git a/src/cobalt/debug/remote/devtools/node_modules/table/dist/truncateTableData.js.map b/src/third_party/devtools/node_modules/table/dist/truncateTableData.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/table/dist/truncateTableData.js.map
rename to src/third_party/devtools/node_modules/table/dist/truncateTableData.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/table/dist/validateConfig.js b/src/third_party/devtools/node_modules/table/dist/validateConfig.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/table/dist/validateConfig.js
rename to src/third_party/devtools/node_modules/table/dist/validateConfig.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/table/dist/validateConfig.js.flow b/src/third_party/devtools/node_modules/table/dist/validateConfig.js.flow
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/table/dist/validateConfig.js.flow
rename to src/third_party/devtools/node_modules/table/dist/validateConfig.js.flow
diff --git a/src/cobalt/debug/remote/devtools/node_modules/table/dist/validateConfig.js.map b/src/third_party/devtools/node_modules/table/dist/validateConfig.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/table/dist/validateConfig.js.map
rename to src/third_party/devtools/node_modules/table/dist/validateConfig.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/table/dist/validateStreamConfig.js b/src/third_party/devtools/node_modules/table/dist/validateStreamConfig.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/table/dist/validateStreamConfig.js
rename to src/third_party/devtools/node_modules/table/dist/validateStreamConfig.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/table/dist/validateTableData.js b/src/third_party/devtools/node_modules/table/dist/validateTableData.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/table/dist/validateTableData.js
rename to src/third_party/devtools/node_modules/table/dist/validateTableData.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/table/dist/validateTableData.js.flow b/src/third_party/devtools/node_modules/table/dist/validateTableData.js.flow
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/table/dist/validateTableData.js.flow
rename to src/third_party/devtools/node_modules/table/dist/validateTableData.js.flow
diff --git a/src/cobalt/debug/remote/devtools/node_modules/table/dist/validateTableData.js.map b/src/third_party/devtools/node_modules/table/dist/validateTableData.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/table/dist/validateTableData.js.map
rename to src/third_party/devtools/node_modules/table/dist/validateTableData.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/table/dist/wrapCell.js b/src/third_party/devtools/node_modules/table/dist/wrapCell.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/table/dist/wrapCell.js
rename to src/third_party/devtools/node_modules/table/dist/wrapCell.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/table/dist/wrapCell.js.flow b/src/third_party/devtools/node_modules/table/dist/wrapCell.js.flow
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/table/dist/wrapCell.js.flow
rename to src/third_party/devtools/node_modules/table/dist/wrapCell.js.flow
diff --git a/src/cobalt/debug/remote/devtools/node_modules/table/dist/wrapCell.js.map b/src/third_party/devtools/node_modules/table/dist/wrapCell.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/table/dist/wrapCell.js.map
rename to src/third_party/devtools/node_modules/table/dist/wrapCell.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/table/dist/wrapString.js b/src/third_party/devtools/node_modules/table/dist/wrapString.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/table/dist/wrapString.js
rename to src/third_party/devtools/node_modules/table/dist/wrapString.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/table/dist/wrapString.js.flow b/src/third_party/devtools/node_modules/table/dist/wrapString.js.flow
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/table/dist/wrapString.js.flow
rename to src/third_party/devtools/node_modules/table/dist/wrapString.js.flow
diff --git a/src/cobalt/debug/remote/devtools/node_modules/table/dist/wrapString.js.map b/src/third_party/devtools/node_modules/table/dist/wrapString.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/table/dist/wrapString.js.map
rename to src/third_party/devtools/node_modules/table/dist/wrapString.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/table/dist/wrapWord.js b/src/third_party/devtools/node_modules/table/dist/wrapWord.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/table/dist/wrapWord.js
rename to src/third_party/devtools/node_modules/table/dist/wrapWord.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/table/dist/wrapWord.js.flow b/src/third_party/devtools/node_modules/table/dist/wrapWord.js.flow
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/table/dist/wrapWord.js.flow
rename to src/third_party/devtools/node_modules/table/dist/wrapWord.js.flow
diff --git a/src/cobalt/debug/remote/devtools/node_modules/table/dist/wrapWord.js.map b/src/third_party/devtools/node_modules/table/dist/wrapWord.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/table/dist/wrapWord.js.map
rename to src/third_party/devtools/node_modules/table/dist/wrapWord.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/table/node_modules/ansi-regex/index.js b/src/third_party/devtools/node_modules/table/node_modules/ansi-regex/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/table/node_modules/ansi-regex/index.js
rename to src/third_party/devtools/node_modules/table/node_modules/ansi-regex/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/table/node_modules/ansi-regex/license b/src/third_party/devtools/node_modules/table/node_modules/ansi-regex/license
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/table/node_modules/ansi-regex/license
rename to src/third_party/devtools/node_modules/table/node_modules/ansi-regex/license
diff --git a/src/cobalt/debug/remote/devtools/node_modules/table/node_modules/ansi-regex/package.json b/src/third_party/devtools/node_modules/table/node_modules/ansi-regex/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/table/node_modules/ansi-regex/package.json
rename to src/third_party/devtools/node_modules/table/node_modules/ansi-regex/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/table/node_modules/ansi-regex/readme.md b/src/third_party/devtools/node_modules/table/node_modules/ansi-regex/readme.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/table/node_modules/ansi-regex/readme.md
rename to src/third_party/devtools/node_modules/table/node_modules/ansi-regex/readme.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/table/node_modules/string-width/index.js b/src/third_party/devtools/node_modules/table/node_modules/string-width/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/table/node_modules/string-width/index.js
rename to src/third_party/devtools/node_modules/table/node_modules/string-width/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/table/node_modules/string-width/license b/src/third_party/devtools/node_modules/table/node_modules/string-width/license
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/table/node_modules/string-width/license
rename to src/third_party/devtools/node_modules/table/node_modules/string-width/license
diff --git a/src/cobalt/debug/remote/devtools/node_modules/table/node_modules/string-width/package.json b/src/third_party/devtools/node_modules/table/node_modules/string-width/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/table/node_modules/string-width/package.json
rename to src/third_party/devtools/node_modules/table/node_modules/string-width/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/table/node_modules/string-width/readme.md b/src/third_party/devtools/node_modules/table/node_modules/string-width/readme.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/table/node_modules/string-width/readme.md
rename to src/third_party/devtools/node_modules/table/node_modules/string-width/readme.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/table/node_modules/strip-ansi/index.d.ts b/src/third_party/devtools/node_modules/table/node_modules/strip-ansi/index.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/table/node_modules/strip-ansi/index.d.ts
rename to src/third_party/devtools/node_modules/table/node_modules/strip-ansi/index.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/table/node_modules/strip-ansi/index.js b/src/third_party/devtools/node_modules/table/node_modules/strip-ansi/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/table/node_modules/strip-ansi/index.js
rename to src/third_party/devtools/node_modules/table/node_modules/strip-ansi/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/table/node_modules/strip-ansi/license b/src/third_party/devtools/node_modules/table/node_modules/strip-ansi/license
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/table/node_modules/strip-ansi/license
rename to src/third_party/devtools/node_modules/table/node_modules/strip-ansi/license
diff --git a/src/cobalt/debug/remote/devtools/node_modules/table/node_modules/strip-ansi/package.json b/src/third_party/devtools/node_modules/table/node_modules/strip-ansi/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/table/node_modules/strip-ansi/package.json
rename to src/third_party/devtools/node_modules/table/node_modules/strip-ansi/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/table/node_modules/strip-ansi/readme.md b/src/third_party/devtools/node_modules/table/node_modules/strip-ansi/readme.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/table/node_modules/strip-ansi/readme.md
rename to src/third_party/devtools/node_modules/table/node_modules/strip-ansi/readme.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/table/package.json b/src/third_party/devtools/node_modules/table/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/table/package.json
rename to src/third_party/devtools/node_modules/table/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/text-table/.travis.yml b/src/third_party/devtools/node_modules/text-table/.travis.yml
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/text-table/.travis.yml
rename to src/third_party/devtools/node_modules/text-table/.travis.yml
diff --git a/src/cobalt/debug/remote/devtools/node_modules/text-table/LICENSE b/src/third_party/devtools/node_modules/text-table/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/text-table/LICENSE
rename to src/third_party/devtools/node_modules/text-table/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/text-table/example/align.js b/src/third_party/devtools/node_modules/text-table/example/align.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/text-table/example/align.js
rename to src/third_party/devtools/node_modules/text-table/example/align.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/text-table/example/center.js b/src/third_party/devtools/node_modules/text-table/example/center.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/text-table/example/center.js
rename to src/third_party/devtools/node_modules/text-table/example/center.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/text-table/example/dotalign.js b/src/third_party/devtools/node_modules/text-table/example/dotalign.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/text-table/example/dotalign.js
rename to src/third_party/devtools/node_modules/text-table/example/dotalign.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/text-table/example/doubledot.js b/src/third_party/devtools/node_modules/text-table/example/doubledot.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/text-table/example/doubledot.js
rename to src/third_party/devtools/node_modules/text-table/example/doubledot.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/text-table/example/table.js b/src/third_party/devtools/node_modules/text-table/example/table.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/text-table/example/table.js
rename to src/third_party/devtools/node_modules/text-table/example/table.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/text-table/index.js b/src/third_party/devtools/node_modules/text-table/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/text-table/index.js
rename to src/third_party/devtools/node_modules/text-table/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/text-table/package.json b/src/third_party/devtools/node_modules/text-table/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/text-table/package.json
rename to src/third_party/devtools/node_modules/text-table/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/text-table/readme.markdown b/src/third_party/devtools/node_modules/text-table/readme.markdown
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/text-table/readme.markdown
rename to src/third_party/devtools/node_modules/text-table/readme.markdown
diff --git a/src/cobalt/debug/remote/devtools/node_modules/text-table/test/align.js b/src/third_party/devtools/node_modules/text-table/test/align.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/text-table/test/align.js
rename to src/third_party/devtools/node_modules/text-table/test/align.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/text-table/test/ansi-colors.js b/src/third_party/devtools/node_modules/text-table/test/ansi-colors.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/text-table/test/ansi-colors.js
rename to src/third_party/devtools/node_modules/text-table/test/ansi-colors.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/text-table/test/center.js b/src/third_party/devtools/node_modules/text-table/test/center.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/text-table/test/center.js
rename to src/third_party/devtools/node_modules/text-table/test/center.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/text-table/test/dotalign.js b/src/third_party/devtools/node_modules/text-table/test/dotalign.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/text-table/test/dotalign.js
rename to src/third_party/devtools/node_modules/text-table/test/dotalign.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/text-table/test/doubledot.js b/src/third_party/devtools/node_modules/text-table/test/doubledot.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/text-table/test/doubledot.js
rename to src/third_party/devtools/node_modules/text-table/test/doubledot.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/text-table/test/table.js b/src/third_party/devtools/node_modules/text-table/test/table.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/text-table/test/table.js
rename to src/third_party/devtools/node_modules/text-table/test/table.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/through/.travis.yml b/src/third_party/devtools/node_modules/through/.travis.yml
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/through/.travis.yml
rename to src/third_party/devtools/node_modules/through/.travis.yml
diff --git a/src/cobalt/debug/remote/devtools/node_modules/through/LICENSE.APACHE2 b/src/third_party/devtools/node_modules/through/LICENSE.APACHE2
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/through/LICENSE.APACHE2
rename to src/third_party/devtools/node_modules/through/LICENSE.APACHE2
diff --git a/src/cobalt/debug/remote/devtools/node_modules/through/LICENSE.MIT b/src/third_party/devtools/node_modules/through/LICENSE.MIT
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/through/LICENSE.MIT
rename to src/third_party/devtools/node_modules/through/LICENSE.MIT
diff --git a/src/cobalt/debug/remote/devtools/node_modules/through/index.js b/src/third_party/devtools/node_modules/through/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/through/index.js
rename to src/third_party/devtools/node_modules/through/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/through/package.json b/src/third_party/devtools/node_modules/through/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/through/package.json
rename to src/third_party/devtools/node_modules/through/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/through/readme.markdown b/src/third_party/devtools/node_modules/through/readme.markdown
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/through/readme.markdown
rename to src/third_party/devtools/node_modules/through/readme.markdown
diff --git a/src/cobalt/debug/remote/devtools/node_modules/through/test/async.js b/src/third_party/devtools/node_modules/through/test/async.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/through/test/async.js
rename to src/third_party/devtools/node_modules/through/test/async.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/through/test/auto-destroy.js b/src/third_party/devtools/node_modules/through/test/auto-destroy.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/through/test/auto-destroy.js
rename to src/third_party/devtools/node_modules/through/test/auto-destroy.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/through/test/buffering.js b/src/third_party/devtools/node_modules/through/test/buffering.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/through/test/buffering.js
rename to src/third_party/devtools/node_modules/through/test/buffering.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/through/test/end.js b/src/third_party/devtools/node_modules/through/test/end.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/through/test/end.js
rename to src/third_party/devtools/node_modules/through/test/end.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/through/test/index.js b/src/third_party/devtools/node_modules/through/test/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/through/test/index.js
rename to src/third_party/devtools/node_modules/through/test/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/through2/LICENSE.md b/src/third_party/devtools/node_modules/through2/LICENSE.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/through2/LICENSE.md
rename to src/third_party/devtools/node_modules/through2/LICENSE.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/through2/README.md b/src/third_party/devtools/node_modules/through2/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/through2/README.md
rename to src/third_party/devtools/node_modules/through2/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/through2/package.json b/src/third_party/devtools/node_modules/through2/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/through2/package.json
rename to src/third_party/devtools/node_modules/through2/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/through2/through2.js b/src/third_party/devtools/node_modules/through2/through2.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/through2/through2.js
rename to src/third_party/devtools/node_modules/through2/through2.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/timers-browserify/CHANGELOG.md b/src/third_party/devtools/node_modules/timers-browserify/CHANGELOG.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/timers-browserify/CHANGELOG.md
rename to src/third_party/devtools/node_modules/timers-browserify/CHANGELOG.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/timers-browserify/LICENSE.md b/src/third_party/devtools/node_modules/timers-browserify/LICENSE.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/timers-browserify/LICENSE.md
rename to src/third_party/devtools/node_modules/timers-browserify/LICENSE.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/timers-browserify/README.md b/src/third_party/devtools/node_modules/timers-browserify/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/timers-browserify/README.md
rename to src/third_party/devtools/node_modules/timers-browserify/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/timers-browserify/main.js b/src/third_party/devtools/node_modules/timers-browserify/main.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/timers-browserify/main.js
rename to src/third_party/devtools/node_modules/timers-browserify/main.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/timers-browserify/package.json b/src/third_party/devtools/node_modules/timers-browserify/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/timers-browserify/package.json
rename to src/third_party/devtools/node_modules/timers-browserify/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/tmp/LICENSE b/src/third_party/devtools/node_modules/tmp/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/tmp/LICENSE
rename to src/third_party/devtools/node_modules/tmp/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/tmp/README.md b/src/third_party/devtools/node_modules/tmp/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/tmp/README.md
rename to src/third_party/devtools/node_modules/tmp/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/tmp/lib/tmp.js b/src/third_party/devtools/node_modules/tmp/lib/tmp.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/tmp/lib/tmp.js
rename to src/third_party/devtools/node_modules/tmp/lib/tmp.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/tmp/package.json b/src/third_party/devtools/node_modules/tmp/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/tmp/package.json
rename to src/third_party/devtools/node_modules/tmp/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/to-array/.npmignore b/src/third_party/devtools/node_modules/to-array/.npmignore
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/to-array/.npmignore
rename to src/third_party/devtools/node_modules/to-array/.npmignore
diff --git a/src/cobalt/debug/remote/devtools/node_modules/to-array/LICENCE b/src/third_party/devtools/node_modules/to-array/LICENCE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/to-array/LICENCE
rename to src/third_party/devtools/node_modules/to-array/LICENCE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/to-array/README.md b/src/third_party/devtools/node_modules/to-array/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/to-array/README.md
rename to src/third_party/devtools/node_modules/to-array/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/to-array/index.js b/src/third_party/devtools/node_modules/to-array/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/to-array/index.js
rename to src/third_party/devtools/node_modules/to-array/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/to-array/package.json b/src/third_party/devtools/node_modules/to-array/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/to-array/package.json
rename to src/third_party/devtools/node_modules/to-array/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/to-fast-properties/index.js b/src/third_party/devtools/node_modules/to-fast-properties/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/to-fast-properties/index.js
rename to src/third_party/devtools/node_modules/to-fast-properties/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/to-fast-properties/license b/src/third_party/devtools/node_modules/to-fast-properties/license
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/to-fast-properties/license
rename to src/third_party/devtools/node_modules/to-fast-properties/license
diff --git a/src/cobalt/debug/remote/devtools/node_modules/to-fast-properties/package.json b/src/third_party/devtools/node_modules/to-fast-properties/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/to-fast-properties/package.json
rename to src/third_party/devtools/node_modules/to-fast-properties/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/to-fast-properties/readme.md b/src/third_party/devtools/node_modules/to-fast-properties/readme.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/to-fast-properties/readme.md
rename to src/third_party/devtools/node_modules/to-fast-properties/readme.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/to-regex-range/LICENSE b/src/third_party/devtools/node_modules/to-regex-range/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/to-regex-range/LICENSE
rename to src/third_party/devtools/node_modules/to-regex-range/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/to-regex-range/README.md b/src/third_party/devtools/node_modules/to-regex-range/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/to-regex-range/README.md
rename to src/third_party/devtools/node_modules/to-regex-range/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/to-regex-range/index.js b/src/third_party/devtools/node_modules/to-regex-range/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/to-regex-range/index.js
rename to src/third_party/devtools/node_modules/to-regex-range/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/to-regex-range/package.json b/src/third_party/devtools/node_modules/to-regex-range/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/to-regex-range/package.json
rename to src/third_party/devtools/node_modules/to-regex-range/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/toidentifier/LICENSE b/src/third_party/devtools/node_modules/toidentifier/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/toidentifier/LICENSE
rename to src/third_party/devtools/node_modules/toidentifier/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/toidentifier/README.md b/src/third_party/devtools/node_modules/toidentifier/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/toidentifier/README.md
rename to src/third_party/devtools/node_modules/toidentifier/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/toidentifier/index.js b/src/third_party/devtools/node_modules/toidentifier/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/toidentifier/index.js
rename to src/third_party/devtools/node_modules/toidentifier/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/toidentifier/package.json b/src/third_party/devtools/node_modules/toidentifier/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/toidentifier/package.json
rename to src/third_party/devtools/node_modules/toidentifier/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/treeify/.travis.yml b/src/third_party/devtools/node_modules/treeify/.travis.yml
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/treeify/.travis.yml
rename to src/third_party/devtools/node_modules/treeify/.travis.yml
diff --git a/src/cobalt/debug/remote/devtools/node_modules/treeify/LICENSE b/src/third_party/devtools/node_modules/treeify/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/treeify/LICENSE
rename to src/third_party/devtools/node_modules/treeify/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/treeify/README.md b/src/third_party/devtools/node_modules/treeify/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/treeify/README.md
rename to src/third_party/devtools/node_modules/treeify/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/treeify/examples/eukaryotes.html b/src/third_party/devtools/node_modules/treeify/examples/eukaryotes.html
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/treeify/examples/eukaryotes.html
rename to src/third_party/devtools/node_modules/treeify/examples/eukaryotes.html
diff --git a/src/cobalt/debug/remote/devtools/node_modules/treeify/examples/eukaryotes.js b/src/third_party/devtools/node_modules/treeify/examples/eukaryotes.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/treeify/examples/eukaryotes.js
rename to src/third_party/devtools/node_modules/treeify/examples/eukaryotes.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/treeify/examples/fs_tree.js b/src/third_party/devtools/node_modules/treeify/examples/fs_tree.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/treeify/examples/fs_tree.js
rename to src/third_party/devtools/node_modules/treeify/examples/fs_tree.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/treeify/package.json b/src/third_party/devtools/node_modules/treeify/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/treeify/package.json
rename to src/third_party/devtools/node_modules/treeify/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/treeify/test/tree-test.js b/src/third_party/devtools/node_modules/treeify/test/tree-test.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/treeify/test/tree-test.js
rename to src/third_party/devtools/node_modules/treeify/test/tree-test.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/treeify/treeify.js b/src/third_party/devtools/node_modules/treeify/treeify.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/treeify/treeify.js
rename to src/third_party/devtools/node_modules/treeify/treeify.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/trim-newlines/index.js b/src/third_party/devtools/node_modules/trim-newlines/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/trim-newlines/index.js
rename to src/third_party/devtools/node_modules/trim-newlines/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/trim-newlines/license b/src/third_party/devtools/node_modules/trim-newlines/license
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/trim-newlines/license
rename to src/third_party/devtools/node_modules/trim-newlines/license
diff --git a/src/cobalt/debug/remote/devtools/node_modules/trim-newlines/package.json b/src/third_party/devtools/node_modules/trim-newlines/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/trim-newlines/package.json
rename to src/third_party/devtools/node_modules/trim-newlines/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/trim-newlines/readme.md b/src/third_party/devtools/node_modules/trim-newlines/readme.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/trim-newlines/readme.md
rename to src/third_party/devtools/node_modules/trim-newlines/readme.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/typescript/CopyrightNotice.txt b/src/third_party/devtools/node_modules/tslib/CopyrightNotice.txt
similarity index 100%
copy from src/cobalt/debug/remote/devtools/node_modules/typescript/CopyrightNotice.txt
copy to src/third_party/devtools/node_modules/tslib/CopyrightNotice.txt
diff --git a/src/cobalt/debug/remote/devtools/node_modules/tslib/LICENSE.txt b/src/third_party/devtools/node_modules/tslib/LICENSE.txt
similarity index 99%
rename from src/cobalt/debug/remote/devtools/node_modules/tslib/LICENSE.txt
rename to src/third_party/devtools/node_modules/tslib/LICENSE.txt
index 8746124..edc24fd 100644
--- a/src/cobalt/debug/remote/devtools/node_modules/tslib/LICENSE.txt
+++ b/src/third_party/devtools/node_modules/tslib/LICENSE.txt
@@ -1,55 +1,55 @@
-Apache License

-

-Version 2.0, January 2004

-

-http://www.apache.org/licenses/ 

-

-TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION

-

-1. Definitions.

-

-"License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document.

-

-"Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License.

-

-"Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity.

-

-"You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License.

-

-"Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files.

-

-"Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types.

-

-"Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below).

-

-"Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof.

-

-"Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution."

-

-"Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work.

-

-2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form.

-

-3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed.

-

-4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions:

-

-You must give any other recipients of the Work or Derivative Works a copy of this License; and

-

-You must cause any modified files to carry prominent notices stating that You changed the files; and

-

-You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and

-

-If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License.

-

-5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions.

-

-6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file.

-

-7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License.

-

-8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages.

-

-9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability.

-

-END OF TERMS AND CONDITIONS

+Apache License
+
+Version 2.0, January 2004
+
+http://www.apache.org/licenses/ 
+
+TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+1. Definitions.
+
+"License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document.
+
+"Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License.
+
+"Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity.
+
+"You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License.
+
+"Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files.
+
+"Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types.
+
+"Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below).
+
+"Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof.
+
+"Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution."
+
+"Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work.
+
+2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form.
+
+3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed.
+
+4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions:
+
+You must give any other recipients of the Work or Derivative Works a copy of this License; and
+
+You must cause any modified files to carry prominent notices stating that You changed the files; and
+
+You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and
+
+If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License.
+
+5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions.
+
+6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file.
+
+7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License.
+
+8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages.
+
+9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability.
+
+END OF TERMS AND CONDITIONS
diff --git a/src/cobalt/debug/remote/devtools/node_modules/tslib/README.md b/src/third_party/devtools/node_modules/tslib/README.md
similarity index 99%
rename from src/cobalt/debug/remote/devtools/node_modules/tslib/README.md
rename to src/third_party/devtools/node_modules/tslib/README.md
index 452862c..da21265 100644
--- a/src/cobalt/debug/remote/devtools/node_modules/tslib/README.md
+++ b/src/third_party/devtools/node_modules/tslib/README.md
@@ -1,134 +1,134 @@
-# tslib

-

-This is a runtime library for [TypeScript](http://www.typescriptlang.org/) that contains all of the TypeScript helper functions.

-

-This library is primarily used by the `--importHelpers` flag in TypeScript.

-When using `--importHelpers`, a module that uses helper functions like `__extends` and `__assign` in the following emitted file:

-

-```ts

-var __assign = (this && this.__assign) || Object.assign || function(t) {

-    for (var s, i = 1, n = arguments.length; i < n; i++) {

-        s = arguments[i];

-        for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))

-            t[p] = s[p];

-    }

-    return t;

-};

-exports.x = {};

-exports.y = __assign({}, exports.x);

-

-```

-

-will instead be emitted as something like the following:

-

-```ts

-var tslib_1 = require("tslib");

-exports.x = {};

-exports.y = tslib_1.__assign({}, exports.x);

-```

-

-Because this can avoid duplicate declarations of things like `__extends`, `__assign`, etc., this means delivering users smaller files on average, as well as less runtime overhead.

-For optimized bundles with TypeScript, you should absolutely consider using `tslib` and `--importHelpers`.

-

-# Installing

-

-For the latest stable version, run:

-

-## npm

-

-```sh

-# TypeScript 2.3.3 or later

-npm install --save tslib

-

-# TypeScript 2.3.2 or earlier

-npm install --save tslib@1.6.1

-```

-

-## bower

-

-```sh

-# TypeScript 2.3.3 or later

-bower install tslib

-

-# TypeScript 2.3.2 or earlier

-bower install tslib@1.6.1

-```

-

-## JSPM

-

-```sh

-# TypeScript 2.3.3 or later

-jspm install tslib

-

-# TypeScript 2.3.2 or earlier

-jspm install tslib@1.6.1

-```

-

-# Usage

-

-Set the `importHelpers` compiler option on the command line:

-

-```

-tsc --importHelpers file.ts

-```

-

-or in your tsconfig.json:

-

-```json

-{

-    "compilerOptions": {

-        "importHelpers": true

-    }

-}

-```

-

-#### For bower and JSPM users

-

-You will need to add a `paths` mapping for `tslib`, e.g. For Bower users:

-

-```json

-{

-    "compilerOptions": {

-        "module": "amd",

-        "importHelpers": true,

-        "baseUrl": "./",

-        "paths": {

-            "tslib" : ["bower_components/tslib/tslib.d.ts"]

-        }

-    }

-}

-```

-

-For JSPM users:

-

-```json

-{

-    "compilerOptions": {

-        "module": "system",

-        "importHelpers": true,

-        "baseUrl": "./",

-        "paths": {

-            "tslib" : ["jspm_packages/npm/tslib@1.10.0/tslib.d.ts"]

-        }

-    }

-}

-```

-

-

-# Contribute

-

-There are many ways to [contribute](https://github.com/Microsoft/TypeScript/blob/master/CONTRIBUTING.md) to TypeScript.

-

-* [Submit bugs](https://github.com/Microsoft/TypeScript/issues) and help us verify fixes as they are checked in.

-* Review the [source code changes](https://github.com/Microsoft/TypeScript/pulls).

-* Engage with other TypeScript users and developers on [StackOverflow](http://stackoverflow.com/questions/tagged/typescript).

-* Join the [#typescript](http://twitter.com/#!/search/realtime/%23typescript) discussion on Twitter.

-* [Contribute bug fixes](https://github.com/Microsoft/TypeScript/blob/master/CONTRIBUTING.md).

-* Read the language specification ([docx](http://go.microsoft.com/fwlink/?LinkId=267121), [pdf](http://go.microsoft.com/fwlink/?LinkId=267238)).

-

-# Documentation

-

-* [Quick tutorial](http://www.typescriptlang.org/Tutorial)

-* [Programming handbook](http://www.typescriptlang.org/Handbook)

-* [Language specification](https://github.com/Microsoft/TypeScript/blob/master/doc/spec.md)

-* [Homepage](http://www.typescriptlang.org/)

+# tslib
+
+This is a runtime library for [TypeScript](http://www.typescriptlang.org/) that contains all of the TypeScript helper functions.
+
+This library is primarily used by the `--importHelpers` flag in TypeScript.
+When using `--importHelpers`, a module that uses helper functions like `__extends` and `__assign` in the following emitted file:
+
+```ts
+var __assign = (this && this.__assign) || Object.assign || function(t) {
+    for (var s, i = 1, n = arguments.length; i < n; i++) {
+        s = arguments[i];
+        for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
+            t[p] = s[p];
+    }
+    return t;
+};
+exports.x = {};
+exports.y = __assign({}, exports.x);
+
+```
+
+will instead be emitted as something like the following:
+
+```ts
+var tslib_1 = require("tslib");
+exports.x = {};
+exports.y = tslib_1.__assign({}, exports.x);
+```
+
+Because this can avoid duplicate declarations of things like `__extends`, `__assign`, etc., this means delivering users smaller files on average, as well as less runtime overhead.
+For optimized bundles with TypeScript, you should absolutely consider using `tslib` and `--importHelpers`.
+
+# Installing
+
+For the latest stable version, run:
+
+## npm
+
+```sh
+# TypeScript 2.3.3 or later
+npm install --save tslib
+
+# TypeScript 2.3.2 or earlier
+npm install --save tslib@1.6.1
+```
+
+## bower
+
+```sh
+# TypeScript 2.3.3 or later
+bower install tslib
+
+# TypeScript 2.3.2 or earlier
+bower install tslib@1.6.1
+```
+
+## JSPM
+
+```sh
+# TypeScript 2.3.3 or later
+jspm install tslib
+
+# TypeScript 2.3.2 or earlier
+jspm install tslib@1.6.1
+```
+
+# Usage
+
+Set the `importHelpers` compiler option on the command line:
+
+```
+tsc --importHelpers file.ts
+```
+
+or in your tsconfig.json:
+
+```json
+{
+    "compilerOptions": {
+        "importHelpers": true
+    }
+}
+```
+
+#### For bower and JSPM users
+
+You will need to add a `paths` mapping for `tslib`, e.g. For Bower users:
+
+```json
+{
+    "compilerOptions": {
+        "module": "amd",
+        "importHelpers": true,
+        "baseUrl": "./",
+        "paths": {
+            "tslib" : ["bower_components/tslib/tslib.d.ts"]
+        }
+    }
+}
+```
+
+For JSPM users:
+
+```json
+{
+    "compilerOptions": {
+        "module": "system",
+        "importHelpers": true,
+        "baseUrl": "./",
+        "paths": {
+            "tslib" : ["jspm_packages/npm/tslib@1.10.0/tslib.d.ts"]
+        }
+    }
+}
+```
+
+
+# Contribute
+
+There are many ways to [contribute](https://github.com/Microsoft/TypeScript/blob/master/CONTRIBUTING.md) to TypeScript.
+
+* [Submit bugs](https://github.com/Microsoft/TypeScript/issues) and help us verify fixes as they are checked in.
+* Review the [source code changes](https://github.com/Microsoft/TypeScript/pulls).
+* Engage with other TypeScript users and developers on [StackOverflow](http://stackoverflow.com/questions/tagged/typescript).
+* Join the [#typescript](http://twitter.com/#!/search/realtime/%23typescript) discussion on Twitter.
+* [Contribute bug fixes](https://github.com/Microsoft/TypeScript/blob/master/CONTRIBUTING.md).
+* Read the language specification ([docx](http://go.microsoft.com/fwlink/?LinkId=267121), [pdf](http://go.microsoft.com/fwlink/?LinkId=267238)).
+
+# Documentation
+
+* [Quick tutorial](http://www.typescriptlang.org/Tutorial)
+* [Programming handbook](http://www.typescriptlang.org/Handbook)
+* [Language specification](https://github.com/Microsoft/TypeScript/blob/master/doc/spec.md)
+* [Homepage](http://www.typescriptlang.org/)
diff --git a/src/cobalt/debug/remote/devtools/node_modules/tslib/package.json b/src/third_party/devtools/node_modules/tslib/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/tslib/package.json
rename to src/third_party/devtools/node_modules/tslib/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/tslib/tslib.d.ts b/src/third_party/devtools/node_modules/tslib/tslib.d.ts
similarity index 99%
rename from src/cobalt/debug/remote/devtools/node_modules/tslib/tslib.d.ts
rename to src/third_party/devtools/node_modules/tslib/tslib.d.ts
index ad89fd7..e5bfc96 100644
--- a/src/cobalt/debug/remote/devtools/node_modules/tslib/tslib.d.ts
+++ b/src/third_party/devtools/node_modules/tslib/tslib.d.ts
@@ -1,34 +1,34 @@
-/*! *****************************************************************************

-Copyright (c) Microsoft Corporation. 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

-

-THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

-KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED

-WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,

-MERCHANTABLITY OR NON-INFRINGEMENT.

-

-See the Apache Version 2.0 License for specific language governing permissions

-and limitations under the License.

-***************************************************************************** */

-export declare function __extends(d: Function, b: Function): void;

-export declare function __assign(t: any, ...sources: any[]): any;

-export declare function __rest(t: any, propertyNames: (string | symbol)[]): any;

-export declare function __decorate(decorators: Function[], target: any, key?: string | symbol, desc?: any): any;

-export declare function __param(paramIndex: number, decorator: Function): Function;

-export declare function __metadata(metadataKey: any, metadataValue: any): Function;

-export declare function __awaiter(thisArg: any, _arguments: any, P: Function, generator: Function): any;

-export declare function __generator(thisArg: any, body: Function): any;

-export declare function __exportStar(m: any, exports: any): void;

-export declare function __values(o: any): any;

-export declare function __read(o: any, n?: number): any[];

-export declare function __spread(...args: any[][]): any[];

-export declare function __spreadArrays(...args: any[][]): any[];

-export declare function __await(v: any): any;

-export declare function __asyncGenerator(thisArg: any, _arguments: any, generator: Function): any;

-export declare function __asyncDelegator(o: any): any;

-export declare function __asyncValues(o: any): any;

-export declare function __makeTemplateObject(cooked: string[], raw: string[]): TemplateStringsArray;

-export declare function __importStar<T>(mod: T): T;

-export declare function __importDefault<T>(mod: T): T | { default: T };

+/*! *****************************************************************************
+Copyright (c) Microsoft Corporation. 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
+
+THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
+WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
+MERCHANTABLITY OR NON-INFRINGEMENT.
+
+See the Apache Version 2.0 License for specific language governing permissions
+and limitations under the License.
+***************************************************************************** */
+export declare function __extends(d: Function, b: Function): void;
+export declare function __assign(t: any, ...sources: any[]): any;
+export declare function __rest(t: any, propertyNames: (string | symbol)[]): any;
+export declare function __decorate(decorators: Function[], target: any, key?: string | symbol, desc?: any): any;
+export declare function __param(paramIndex: number, decorator: Function): Function;
+export declare function __metadata(metadataKey: any, metadataValue: any): Function;
+export declare function __awaiter(thisArg: any, _arguments: any, P: Function, generator: Function): any;
+export declare function __generator(thisArg: any, body: Function): any;
+export declare function __exportStar(m: any, exports: any): void;
+export declare function __values(o: any): any;
+export declare function __read(o: any, n?: number): any[];
+export declare function __spread(...args: any[][]): any[];
+export declare function __spreadArrays(...args: any[][]): any[];
+export declare function __await(v: any): any;
+export declare function __asyncGenerator(thisArg: any, _arguments: any, generator: Function): any;
+export declare function __asyncDelegator(o: any): any;
+export declare function __asyncValues(o: any): any;
+export declare function __makeTemplateObject(cooked: string[], raw: string[]): TemplateStringsArray;
+export declare function __importStar<T>(mod: T): T;
+export declare function __importDefault<T>(mod: T): T | { default: T };
diff --git a/src/cobalt/debug/remote/devtools/node_modules/tslib/tslib.es6.html b/src/third_party/devtools/node_modules/tslib/tslib.es6.html
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/tslib/tslib.es6.html
rename to src/third_party/devtools/node_modules/tslib/tslib.es6.html
diff --git a/src/cobalt/debug/remote/devtools/node_modules/tslib/tslib.es6.js b/src/third_party/devtools/node_modules/tslib/tslib.es6.js
similarity index 99%
rename from src/cobalt/debug/remote/devtools/node_modules/tslib/tslib.es6.js
rename to src/third_party/devtools/node_modules/tslib/tslib.es6.js
index 5055a74..4294ef2 100644
--- a/src/cobalt/debug/remote/devtools/node_modules/tslib/tslib.es6.js
+++ b/src/third_party/devtools/node_modules/tslib/tslib.es6.js
@@ -1,196 +1,196 @@
-/*! *****************************************************************************

-Copyright (c) Microsoft Corporation. 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

-

-THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

-KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED

-WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,

-MERCHANTABLITY OR NON-INFRINGEMENT.

-

-See the Apache Version 2.0 License for specific language governing permissions

-and limitations under the License.

-***************************************************************************** */

-/* global Reflect, Promise */

-

-var extendStatics = function(d, b) {

-    extendStatics = Object.setPrototypeOf ||

-        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||

-        function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };

-    return extendStatics(d, b);

-};

-

-export function __extends(d, b) {

-    extendStatics(d, b);

-    function __() { this.constructor = d; }

-    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());

-}

-

-export var __assign = function() {

-    __assign = Object.assign || function __assign(t) {

-        for (var s, i = 1, n = arguments.length; i < n; i++) {

-            s = arguments[i];

-            for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];

-        }

-        return t;

-    }

-    return __assign.apply(this, arguments);

-}

-

-export function __rest(s, e) {

-    var t = {};

-    for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)

-        t[p] = s[p];

-    if (s != null && typeof Object.getOwnPropertySymbols === "function")

-        for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {

-            if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))

-                t[p[i]] = s[p[i]];

-        }

-    return t;

-}

-

-export function __decorate(decorators, target, key, desc) {

-    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;

-    if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);

-    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;

-    return c > 3 && r && Object.defineProperty(target, key, r), r;

-}

-

-export function __param(paramIndex, decorator) {

-    return function (target, key) { decorator(target, key, paramIndex); }

-}

-

-export function __metadata(metadataKey, metadataValue) {

-    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(metadataKey, metadataValue);

-}

-

-export function __awaiter(thisArg, _arguments, P, generator) {

-    return new (P || (P = Promise))(function (resolve, reject) {

-        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }

-        function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }

-        function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }

-        step((generator = generator.apply(thisArg, _arguments || [])).next());

-    });

-}

-

-export function __generator(thisArg, body) {

-    var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;

-    return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;

-    function verb(n) { return function (v) { return step([n, v]); }; }

-    function step(op) {

-        if (f) throw new TypeError("Generator is already executing.");

-        while (_) try {

-            if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;

-            if (y = 0, t) op = [op[0] & 2, t.value];

-            switch (op[0]) {

-                case 0: case 1: t = op; break;

-                case 4: _.label++; return { value: op[1], done: false };

-                case 5: _.label++; y = op[1]; op = [0]; continue;

-                case 7: op = _.ops.pop(); _.trys.pop(); continue;

-                default:

-                    if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }

-                    if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }

-                    if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }

-                    if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }

-                    if (t[2]) _.ops.pop();

-                    _.trys.pop(); continue;

-            }

-            op = body.call(thisArg, _);

-        } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }

-        if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };

-    }

-}

-

-export function __exportStar(m, exports) {

-    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];

-}

-

-export function __values(o) {

-    var m = typeof Symbol === "function" && o[Symbol.iterator], i = 0;

-    if (m) return m.call(o);

-    return {

-        next: function () {

-            if (o && i >= o.length) o = void 0;

-            return { value: o && o[i++], done: !o };

-        }

-    };

-}

-

-export function __read(o, n) {

-    var m = typeof Symbol === "function" && o[Symbol.iterator];

-    if (!m) return o;

-    var i = m.call(o), r, ar = [], e;

-    try {

-        while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);

-    }

-    catch (error) { e = { error: error }; }

-    finally {

-        try {

-            if (r && !r.done && (m = i["return"])) m.call(i);

-        }

-        finally { if (e) throw e.error; }

-    }

-    return ar;

-}

-

-export function __spread() {

-    for (var ar = [], i = 0; i < arguments.length; i++)

-        ar = ar.concat(__read(arguments[i]));

-    return ar;

-}

-

-export function __spreadArrays() {

-    for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;

-    for (var r = Array(s), k = 0, i = 0; i < il; i++)

-        for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)

-            r[k] = a[j];

-    return r;

-};

-

-export function __await(v) {

-    return this instanceof __await ? (this.v = v, this) : new __await(v);

-}

-

-export function __asyncGenerator(thisArg, _arguments, generator) {

-    if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");

-    var g = generator.apply(thisArg, _arguments || []), i, q = [];

-    return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i;

-    function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }

-    function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }

-    function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }

-    function fulfill(value) { resume("next", value); }

-    function reject(value) { resume("throw", value); }

-    function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }

-}

-

-export function __asyncDelegator(o) {

-    var i, p;

-    return i = {}, verb("next"), verb("throw", function (e) { throw e; }), verb("return"), i[Symbol.iterator] = function () { return this; }, i;

-    function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === "return" } : f ? f(v) : v; } : f; }

-}

-

-export function __asyncValues(o) {

-    if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");

-    var m = o[Symbol.asyncIterator], i;

-    return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i);

-    function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }

-    function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }

-}

-

-export function __makeTemplateObject(cooked, raw) {

-    if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }

-    return cooked;

-};

-

-export function __importStar(mod) {

-    if (mod && mod.__esModule) return mod;

-    var result = {};

-    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];

-    result.default = mod;

-    return result;

-}

-

-export function __importDefault(mod) {

-    return (mod && mod.__esModule) ? mod : { default: mod };

-}

+/*! *****************************************************************************
+Copyright (c) Microsoft Corporation. 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
+
+THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
+WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
+MERCHANTABLITY OR NON-INFRINGEMENT.
+
+See the Apache Version 2.0 License for specific language governing permissions
+and limitations under the License.
+***************************************************************************** */
+/* global Reflect, Promise */
+
+var extendStatics = function(d, b) {
+    extendStatics = Object.setPrototypeOf ||
+        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+        function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
+    return extendStatics(d, b);
+};
+
+export function __extends(d, b) {
+    extendStatics(d, b);
+    function __() { this.constructor = d; }
+    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+}
+
+export var __assign = function() {
+    __assign = Object.assign || function __assign(t) {
+        for (var s, i = 1, n = arguments.length; i < n; i++) {
+            s = arguments[i];
+            for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
+        }
+        return t;
+    }
+    return __assign.apply(this, arguments);
+}
+
+export function __rest(s, e) {
+    var t = {};
+    for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
+        t[p] = s[p];
+    if (s != null && typeof Object.getOwnPropertySymbols === "function")
+        for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
+            if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
+                t[p[i]] = s[p[i]];
+        }
+    return t;
+}
+
+export function __decorate(decorators, target, key, desc) {
+    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
+    if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
+    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
+    return c > 3 && r && Object.defineProperty(target, key, r), r;
+}
+
+export function __param(paramIndex, decorator) {
+    return function (target, key) { decorator(target, key, paramIndex); }
+}
+
+export function __metadata(metadataKey, metadataValue) {
+    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(metadataKey, metadataValue);
+}
+
+export function __awaiter(thisArg, _arguments, P, generator) {
+    return new (P || (P = Promise))(function (resolve, reject) {
+        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
+        function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
+        function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
+        step((generator = generator.apply(thisArg, _arguments || [])).next());
+    });
+}
+
+export function __generator(thisArg, body) {
+    var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
+    return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
+    function verb(n) { return function (v) { return step([n, v]); }; }
+    function step(op) {
+        if (f) throw new TypeError("Generator is already executing.");
+        while (_) try {
+            if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
+            if (y = 0, t) op = [op[0] & 2, t.value];
+            switch (op[0]) {
+                case 0: case 1: t = op; break;
+                case 4: _.label++; return { value: op[1], done: false };
+                case 5: _.label++; y = op[1]; op = [0]; continue;
+                case 7: op = _.ops.pop(); _.trys.pop(); continue;
+                default:
+                    if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
+                    if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
+                    if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
+                    if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
+                    if (t[2]) _.ops.pop();
+                    _.trys.pop(); continue;
+            }
+            op = body.call(thisArg, _);
+        } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
+        if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
+    }
+}
+
+export function __exportStar(m, exports) {
+    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
+}
+
+export function __values(o) {
+    var m = typeof Symbol === "function" && o[Symbol.iterator], i = 0;
+    if (m) return m.call(o);
+    return {
+        next: function () {
+            if (o && i >= o.length) o = void 0;
+            return { value: o && o[i++], done: !o };
+        }
+    };
+}
+
+export function __read(o, n) {
+    var m = typeof Symbol === "function" && o[Symbol.iterator];
+    if (!m) return o;
+    var i = m.call(o), r, ar = [], e;
+    try {
+        while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
+    }
+    catch (error) { e = { error: error }; }
+    finally {
+        try {
+            if (r && !r.done && (m = i["return"])) m.call(i);
+        }
+        finally { if (e) throw e.error; }
+    }
+    return ar;
+}
+
+export function __spread() {
+    for (var ar = [], i = 0; i < arguments.length; i++)
+        ar = ar.concat(__read(arguments[i]));
+    return ar;
+}
+
+export function __spreadArrays() {
+    for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;
+    for (var r = Array(s), k = 0, i = 0; i < il; i++)
+        for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
+            r[k] = a[j];
+    return r;
+};
+
+export function __await(v) {
+    return this instanceof __await ? (this.v = v, this) : new __await(v);
+}
+
+export function __asyncGenerator(thisArg, _arguments, generator) {
+    if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
+    var g = generator.apply(thisArg, _arguments || []), i, q = [];
+    return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i;
+    function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }
+    function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }
+    function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }
+    function fulfill(value) { resume("next", value); }
+    function reject(value) { resume("throw", value); }
+    function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }
+}
+
+export function __asyncDelegator(o) {
+    var i, p;
+    return i = {}, verb("next"), verb("throw", function (e) { throw e; }), verb("return"), i[Symbol.iterator] = function () { return this; }, i;
+    function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === "return" } : f ? f(v) : v; } : f; }
+}
+
+export function __asyncValues(o) {
+    if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
+    var m = o[Symbol.asyncIterator], i;
+    return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i);
+    function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }
+    function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }
+}
+
+export function __makeTemplateObject(cooked, raw) {
+    if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
+    return cooked;
+};
+
+export function __importStar(mod) {
+    if (mod && mod.__esModule) return mod;
+    var result = {};
+    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
+    result.default = mod;
+    return result;
+}
+
+export function __importDefault(mod) {
+    return (mod && mod.__esModule) ? mod : { default: mod };
+}
diff --git a/src/cobalt/debug/remote/devtools/node_modules/tslib/tslib.html b/src/third_party/devtools/node_modules/tslib/tslib.html
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/tslib/tslib.html
rename to src/third_party/devtools/node_modules/tslib/tslib.html
diff --git a/src/cobalt/debug/remote/devtools/node_modules/tslib/tslib.js b/src/third_party/devtools/node_modules/tslib/tslib.js
similarity index 99%
rename from src/cobalt/debug/remote/devtools/node_modules/tslib/tslib.js
rename to src/third_party/devtools/node_modules/tslib/tslib.js
index 34615c1..89f00d6 100644
--- a/src/cobalt/debug/remote/devtools/node_modules/tslib/tslib.js
+++ b/src/third_party/devtools/node_modules/tslib/tslib.js
@@ -1,255 +1,255 @@
-/*! *****************************************************************************

-Copyright (c) Microsoft Corporation. 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

-

-THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

-KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED

-WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,

-MERCHANTABLITY OR NON-INFRINGEMENT.

-

-See the Apache Version 2.0 License for specific language governing permissions

-and limitations under the License.

-***************************************************************************** */

-/* global global, define, System, Reflect, Promise */

-var __extends;

-var __assign;

-var __rest;

-var __decorate;

-var __param;

-var __metadata;

-var __awaiter;

-var __generator;

-var __exportStar;

-var __values;

-var __read;

-var __spread;

-var __spreadArrays;

-var __await;

-var __asyncGenerator;

-var __asyncDelegator;

-var __asyncValues;

-var __makeTemplateObject;

-var __importStar;

-var __importDefault;

-(function (factory) {

-    var root = typeof global === "object" ? global : typeof self === "object" ? self : typeof this === "object" ? this : {};

-    if (typeof define === "function" && define.amd) {

-        define("tslib", ["exports"], function (exports) { factory(createExporter(root, createExporter(exports))); });

-    }

-    else if (typeof module === "object" && typeof module.exports === "object") {

-        factory(createExporter(root, createExporter(module.exports)));

-    }

-    else {

-        factory(createExporter(root));

-    }

-    function createExporter(exports, previous) {

-        if (exports !== root) {

-            if (typeof Object.create === "function") {

-                Object.defineProperty(exports, "__esModule", { value: true });

-            }

-            else {

-                exports.__esModule = true;

-            }

-        }

-        return function (id, v) { return exports[id] = previous ? previous(id, v) : v; };

-    }

-})

-(function (exporter) {

-    var extendStatics = Object.setPrototypeOf ||

-        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||

-        function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };

-

-    __extends = function (d, b) {

-        extendStatics(d, b);

-        function __() { this.constructor = d; }

-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());

-    };

-

-    __assign = Object.assign || function (t) {

-        for (var s, i = 1, n = arguments.length; i < n; i++) {

-            s = arguments[i];

-            for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];

-        }

-        return t;

-    };

-

-    __rest = function (s, e) {

-        var t = {};

-        for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)

-            t[p] = s[p];

-        if (s != null && typeof Object.getOwnPropertySymbols === "function")

-            for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {

-                if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))

-                    t[p[i]] = s[p[i]];

-            }

-        return t;

-    };

-

-    __decorate = function (decorators, target, key, desc) {

-        var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;

-        if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);

-        else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;

-        return c > 3 && r && Object.defineProperty(target, key, r), r;

-    };

-

-    __param = function (paramIndex, decorator) {

-        return function (target, key) { decorator(target, key, paramIndex); }

-    };

-

-    __metadata = function (metadataKey, metadataValue) {

-        if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(metadataKey, metadataValue);

-    };

-

-    __awaiter = function (thisArg, _arguments, P, generator) {

-        return new (P || (P = Promise))(function (resolve, reject) {

-            function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }

-            function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }

-            function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }

-            step((generator = generator.apply(thisArg, _arguments || [])).next());

-        });

-    };

-

-    __generator = function (thisArg, body) {

-        var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;

-        return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;

-        function verb(n) { return function (v) { return step([n, v]); }; }

-        function step(op) {

-            if (f) throw new TypeError("Generator is already executing.");

-            while (_) try {

-                if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;

-                if (y = 0, t) op = [op[0] & 2, t.value];

-                switch (op[0]) {

-                    case 0: case 1: t = op; break;

-                    case 4: _.label++; return { value: op[1], done: false };

-                    case 5: _.label++; y = op[1]; op = [0]; continue;

-                    case 7: op = _.ops.pop(); _.trys.pop(); continue;

-                    default:

-                        if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }

-                        if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }

-                        if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }

-                        if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }

-                        if (t[2]) _.ops.pop();

-                        _.trys.pop(); continue;

-                }

-                op = body.call(thisArg, _);

-            } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }

-            if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };

-        }

-    };

-

-    __exportStar = function (m, exports) {

-        for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];

-    };

-

-    __values = function (o) {

-        var m = typeof Symbol === "function" && o[Symbol.iterator], i = 0;

-        if (m) return m.call(o);

-        return {

-            next: function () {

-                if (o && i >= o.length) o = void 0;

-                return { value: o && o[i++], done: !o };

-            }

-        };

-    };

-

-    __read = function (o, n) {

-        var m = typeof Symbol === "function" && o[Symbol.iterator];

-        if (!m) return o;

-        var i = m.call(o), r, ar = [], e;

-        try {

-            while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);

-        }

-        catch (error) { e = { error: error }; }

-        finally {

-            try {

-                if (r && !r.done && (m = i["return"])) m.call(i);

-            }

-            finally { if (e) throw e.error; }

-        }

-        return ar;

-    };

-

-    __spread = function () {

-        for (var ar = [], i = 0; i < arguments.length; i++)

-            ar = ar.concat(__read(arguments[i]));

-        return ar;

-    };

-

-    __spreadArrays = function () {

-        for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;

-        for (var r = Array(s), k = 0, i = 0; i < il; i++)

-            for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)

-                r[k] = a[j];

-        return r;

-    };

-

-    __await = function (v) {

-        return this instanceof __await ? (this.v = v, this) : new __await(v);

-    };

-

-    __asyncGenerator = function (thisArg, _arguments, generator) {

-        if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");

-        var g = generator.apply(thisArg, _arguments || []), i, q = [];

-        return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i;

-        function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }

-        function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }

-        function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r);  }

-        function fulfill(value) { resume("next", value); }

-        function reject(value) { resume("throw", value); }

-        function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }

-    };

-

-    __asyncDelegator = function (o) {

-        var i, p;

-        return i = {}, verb("next"), verb("throw", function (e) { throw e; }), verb("return"), i[Symbol.iterator] = function () { return this; }, i;

-        function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === "return" } : f ? f(v) : v; } : f; }

-    };

-

-    __asyncValues = function (o) {

-        if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");

-        var m = o[Symbol.asyncIterator], i;

-        return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i);

-        function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }

-        function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }

-    };

-

-    __makeTemplateObject = function (cooked, raw) {

-        if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }

-        return cooked;

-    };

-

-    __importStar = function (mod) {

-        if (mod && mod.__esModule) return mod;

-        var result = {};

-        if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];

-        result["default"] = mod;

-        return result;

-    };

-

-    __importDefault = function (mod) {

-        return (mod && mod.__esModule) ? mod : { "default": mod };

-    };

-

-    exporter("__extends", __extends);

-    exporter("__assign", __assign);

-    exporter("__rest", __rest);

-    exporter("__decorate", __decorate);

-    exporter("__param", __param);

-    exporter("__metadata", __metadata);

-    exporter("__awaiter", __awaiter);

-    exporter("__generator", __generator);

-    exporter("__exportStar", __exportStar);

-    exporter("__values", __values);

-    exporter("__read", __read);

-    exporter("__spread", __spread);

-    exporter("__spreadArrays", __spreadArrays);

-    exporter("__await", __await);

-    exporter("__asyncGenerator", __asyncGenerator);

-    exporter("__asyncDelegator", __asyncDelegator);

-    exporter("__asyncValues", __asyncValues);

-    exporter("__makeTemplateObject", __makeTemplateObject);

-    exporter("__importStar", __importStar);

-    exporter("__importDefault", __importDefault);

-});

+/*! *****************************************************************************
+Copyright (c) Microsoft Corporation. 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
+
+THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
+WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
+MERCHANTABLITY OR NON-INFRINGEMENT.
+
+See the Apache Version 2.0 License for specific language governing permissions
+and limitations under the License.
+***************************************************************************** */
+/* global global, define, System, Reflect, Promise */
+var __extends;
+var __assign;
+var __rest;
+var __decorate;
+var __param;
+var __metadata;
+var __awaiter;
+var __generator;
+var __exportStar;
+var __values;
+var __read;
+var __spread;
+var __spreadArrays;
+var __await;
+var __asyncGenerator;
+var __asyncDelegator;
+var __asyncValues;
+var __makeTemplateObject;
+var __importStar;
+var __importDefault;
+(function (factory) {
+    var root = typeof global === "object" ? global : typeof self === "object" ? self : typeof this === "object" ? this : {};
+    if (typeof define === "function" && define.amd) {
+        define("tslib", ["exports"], function (exports) { factory(createExporter(root, createExporter(exports))); });
+    }
+    else if (typeof module === "object" && typeof module.exports === "object") {
+        factory(createExporter(root, createExporter(module.exports)));
+    }
+    else {
+        factory(createExporter(root));
+    }
+    function createExporter(exports, previous) {
+        if (exports !== root) {
+            if (typeof Object.create === "function") {
+                Object.defineProperty(exports, "__esModule", { value: true });
+            }
+            else {
+                exports.__esModule = true;
+            }
+        }
+        return function (id, v) { return exports[id] = previous ? previous(id, v) : v; };
+    }
+})
+(function (exporter) {
+    var extendStatics = Object.setPrototypeOf ||
+        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+        function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
+
+    __extends = function (d, b) {
+        extendStatics(d, b);
+        function __() { this.constructor = d; }
+        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+    };
+
+    __assign = Object.assign || function (t) {
+        for (var s, i = 1, n = arguments.length; i < n; i++) {
+            s = arguments[i];
+            for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
+        }
+        return t;
+    };
+
+    __rest = function (s, e) {
+        var t = {};
+        for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
+            t[p] = s[p];
+        if (s != null && typeof Object.getOwnPropertySymbols === "function")
+            for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
+                if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
+                    t[p[i]] = s[p[i]];
+            }
+        return t;
+    };
+
+    __decorate = function (decorators, target, key, desc) {
+        var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
+        if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
+        else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
+        return c > 3 && r && Object.defineProperty(target, key, r), r;
+    };
+
+    __param = function (paramIndex, decorator) {
+        return function (target, key) { decorator(target, key, paramIndex); }
+    };
+
+    __metadata = function (metadataKey, metadataValue) {
+        if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(metadataKey, metadataValue);
+    };
+
+    __awaiter = function (thisArg, _arguments, P, generator) {
+        return new (P || (P = Promise))(function (resolve, reject) {
+            function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
+            function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
+            function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
+            step((generator = generator.apply(thisArg, _arguments || [])).next());
+        });
+    };
+
+    __generator = function (thisArg, body) {
+        var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
+        return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
+        function verb(n) { return function (v) { return step([n, v]); }; }
+        function step(op) {
+            if (f) throw new TypeError("Generator is already executing.");
+            while (_) try {
+                if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
+                if (y = 0, t) op = [op[0] & 2, t.value];
+                switch (op[0]) {
+                    case 0: case 1: t = op; break;
+                    case 4: _.label++; return { value: op[1], done: false };
+                    case 5: _.label++; y = op[1]; op = [0]; continue;
+                    case 7: op = _.ops.pop(); _.trys.pop(); continue;
+                    default:
+                        if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
+                        if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
+                        if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
+                        if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
+                        if (t[2]) _.ops.pop();
+                        _.trys.pop(); continue;
+                }
+                op = body.call(thisArg, _);
+            } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
+            if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
+        }
+    };
+
+    __exportStar = function (m, exports) {
+        for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
+    };
+
+    __values = function (o) {
+        var m = typeof Symbol === "function" && o[Symbol.iterator], i = 0;
+        if (m) return m.call(o);
+        return {
+            next: function () {
+                if (o && i >= o.length) o = void 0;
+                return { value: o && o[i++], done: !o };
+            }
+        };
+    };
+
+    __read = function (o, n) {
+        var m = typeof Symbol === "function" && o[Symbol.iterator];
+        if (!m) return o;
+        var i = m.call(o), r, ar = [], e;
+        try {
+            while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
+        }
+        catch (error) { e = { error: error }; }
+        finally {
+            try {
+                if (r && !r.done && (m = i["return"])) m.call(i);
+            }
+            finally { if (e) throw e.error; }
+        }
+        return ar;
+    };
+
+    __spread = function () {
+        for (var ar = [], i = 0; i < arguments.length; i++)
+            ar = ar.concat(__read(arguments[i]));
+        return ar;
+    };
+
+    __spreadArrays = function () {
+        for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;
+        for (var r = Array(s), k = 0, i = 0; i < il; i++)
+            for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
+                r[k] = a[j];
+        return r;
+    };
+
+    __await = function (v) {
+        return this instanceof __await ? (this.v = v, this) : new __await(v);
+    };
+
+    __asyncGenerator = function (thisArg, _arguments, generator) {
+        if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
+        var g = generator.apply(thisArg, _arguments || []), i, q = [];
+        return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i;
+        function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }
+        function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }
+        function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r);  }
+        function fulfill(value) { resume("next", value); }
+        function reject(value) { resume("throw", value); }
+        function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }
+    };
+
+    __asyncDelegator = function (o) {
+        var i, p;
+        return i = {}, verb("next"), verb("throw", function (e) { throw e; }), verb("return"), i[Symbol.iterator] = function () { return this; }, i;
+        function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === "return" } : f ? f(v) : v; } : f; }
+    };
+
+    __asyncValues = function (o) {
+        if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
+        var m = o[Symbol.asyncIterator], i;
+        return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i);
+        function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }
+        function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }
+    };
+
+    __makeTemplateObject = function (cooked, raw) {
+        if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
+        return cooked;
+    };
+
+    __importStar = function (mod) {
+        if (mod && mod.__esModule) return mod;
+        var result = {};
+        if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
+        result["default"] = mod;
+        return result;
+    };
+
+    __importDefault = function (mod) {
+        return (mod && mod.__esModule) ? mod : { "default": mod };
+    };
+
+    exporter("__extends", __extends);
+    exporter("__assign", __assign);
+    exporter("__rest", __rest);
+    exporter("__decorate", __decorate);
+    exporter("__param", __param);
+    exporter("__metadata", __metadata);
+    exporter("__awaiter", __awaiter);
+    exporter("__generator", __generator);
+    exporter("__exportStar", __exportStar);
+    exporter("__values", __values);
+    exporter("__read", __read);
+    exporter("__spread", __spread);
+    exporter("__spreadArrays", __spreadArrays);
+    exporter("__await", __await);
+    exporter("__asyncGenerator", __asyncGenerator);
+    exporter("__asyncDelegator", __asyncDelegator);
+    exporter("__asyncValues", __asyncValues);
+    exporter("__makeTemplateObject", __makeTemplateObject);
+    exporter("__importStar", __importStar);
+    exporter("__importDefault", __importDefault);
+});
diff --git a/src/cobalt/debug/remote/devtools/node_modules/tty-browserify/LICENSE b/src/third_party/devtools/node_modules/tty-browserify/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/tty-browserify/LICENSE
rename to src/third_party/devtools/node_modules/tty-browserify/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/tty-browserify/index.js b/src/third_party/devtools/node_modules/tty-browserify/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/tty-browserify/index.js
rename to src/third_party/devtools/node_modules/tty-browserify/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/tty-browserify/package.json b/src/third_party/devtools/node_modules/tty-browserify/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/tty-browserify/package.json
rename to src/third_party/devtools/node_modules/tty-browserify/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/tty-browserify/readme.markdown b/src/third_party/devtools/node_modules/tty-browserify/readme.markdown
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/tty-browserify/readme.markdown
rename to src/third_party/devtools/node_modules/tty-browserify/readme.markdown
diff --git a/src/cobalt/debug/remote/devtools/node_modules/type-check/LICENSE b/src/third_party/devtools/node_modules/type-check/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/type-check/LICENSE
rename to src/third_party/devtools/node_modules/type-check/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/type-check/README.md b/src/third_party/devtools/node_modules/type-check/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/type-check/README.md
rename to src/third_party/devtools/node_modules/type-check/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/type-check/lib/check.js b/src/third_party/devtools/node_modules/type-check/lib/check.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/type-check/lib/check.js
rename to src/third_party/devtools/node_modules/type-check/lib/check.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/type-check/lib/index.js b/src/third_party/devtools/node_modules/type-check/lib/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/type-check/lib/index.js
rename to src/third_party/devtools/node_modules/type-check/lib/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/type-check/lib/parse-type.js b/src/third_party/devtools/node_modules/type-check/lib/parse-type.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/type-check/lib/parse-type.js
rename to src/third_party/devtools/node_modules/type-check/lib/parse-type.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/type-check/package.json b/src/third_party/devtools/node_modules/type-check/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/type-check/package.json
rename to src/third_party/devtools/node_modules/type-check/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/type-detect/LICENSE b/src/third_party/devtools/node_modules/type-detect/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/type-detect/LICENSE
rename to src/third_party/devtools/node_modules/type-detect/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/type-detect/README.md b/src/third_party/devtools/node_modules/type-detect/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/type-detect/README.md
rename to src/third_party/devtools/node_modules/type-detect/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/type-detect/index.js b/src/third_party/devtools/node_modules/type-detect/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/type-detect/index.js
rename to src/third_party/devtools/node_modules/type-detect/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/type-detect/package.json b/src/third_party/devtools/node_modules/type-detect/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/type-detect/package.json
rename to src/third_party/devtools/node_modules/type-detect/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/type-detect/type-detect.js b/src/third_party/devtools/node_modules/type-detect/type-detect.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/type-detect/type-detect.js
rename to src/third_party/devtools/node_modules/type-detect/type-detect.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/type-is/HISTORY.md b/src/third_party/devtools/node_modules/type-is/HISTORY.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/type-is/HISTORY.md
rename to src/third_party/devtools/node_modules/type-is/HISTORY.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/type-is/LICENSE b/src/third_party/devtools/node_modules/type-is/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/type-is/LICENSE
rename to src/third_party/devtools/node_modules/type-is/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/type-is/README.md b/src/third_party/devtools/node_modules/type-is/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/type-is/README.md
rename to src/third_party/devtools/node_modules/type-is/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/type-is/index.js b/src/third_party/devtools/node_modules/type-is/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/type-is/index.js
rename to src/third_party/devtools/node_modules/type-is/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/type-is/package.json b/src/third_party/devtools/node_modules/type-is/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/type-is/package.json
rename to src/third_party/devtools/node_modules/type-is/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/typedarray/.travis.yml b/src/third_party/devtools/node_modules/typedarray/.travis.yml
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/typedarray/.travis.yml
rename to src/third_party/devtools/node_modules/typedarray/.travis.yml
diff --git a/src/cobalt/debug/remote/devtools/node_modules/typedarray/LICENSE b/src/third_party/devtools/node_modules/typedarray/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/typedarray/LICENSE
rename to src/third_party/devtools/node_modules/typedarray/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/typedarray/example/tarray.js b/src/third_party/devtools/node_modules/typedarray/example/tarray.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/typedarray/example/tarray.js
rename to src/third_party/devtools/node_modules/typedarray/example/tarray.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/typedarray/index.js b/src/third_party/devtools/node_modules/typedarray/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/typedarray/index.js
rename to src/third_party/devtools/node_modules/typedarray/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/typedarray/package.json b/src/third_party/devtools/node_modules/typedarray/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/typedarray/package.json
rename to src/third_party/devtools/node_modules/typedarray/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/typedarray/readme.markdown b/src/third_party/devtools/node_modules/typedarray/readme.markdown
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/typedarray/readme.markdown
rename to src/third_party/devtools/node_modules/typedarray/readme.markdown
diff --git a/src/cobalt/debug/remote/devtools/node_modules/typedarray/test/server/undef_globals.js b/src/third_party/devtools/node_modules/typedarray/test/server/undef_globals.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/typedarray/test/server/undef_globals.js
rename to src/third_party/devtools/node_modules/typedarray/test/server/undef_globals.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/typedarray/test/tarray.js b/src/third_party/devtools/node_modules/typedarray/test/tarray.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/typedarray/test/tarray.js
rename to src/third_party/devtools/node_modules/typedarray/test/tarray.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/typescript/AUTHORS.md b/src/third_party/devtools/node_modules/typescript/AUTHORS.md
similarity index 99%
rename from src/cobalt/debug/remote/devtools/node_modules/typescript/AUTHORS.md
rename to src/third_party/devtools/node_modules/typescript/AUTHORS.md
index 2ee14e4..1f8cbe6 100644
--- a/src/cobalt/debug/remote/devtools/node_modules/typescript/AUTHORS.md
+++ b/src/third_party/devtools/node_modules/typescript/AUTHORS.md
@@ -1,348 +1,348 @@
-TypeScript is authored by:

-* Aaron Holmes

-* Abubaker Bashir

-* Adam Freidin

-* Adi Dahiya

-* Aditya Daflapurkar

-* Adnan Chowdhury 

-* Adrian Leonhard 

-* Adrien Gibrat 

-* Ahmad Farid

-* Akshar Patel

-* Alan Agius 

-* Alex Chugaev 

-* Alex Eagle

-* Alex Khomchenko 

-* Alex Ryan 

-* Alexander Kuvaev

-* Alexander Rusakov 

-* Alexander Tarasyuk

-* Ali Sabzevari

-* Aliaksandr Radzivanovich

-* Aluan Haddad 

-* Anatoly Ressin 

-* Anders Hejlsberg

-* Andreas Martin

-* Andrej Baran 

-* Andrew Casey 

-* Andrew Faulkner 

-* Andrew Ochsner 

-* Andrew Stegmaier 

-* Andrew Z Allen

-* András Parditka 

-* Andy Hanson

-* Anil Anar

-* Anton Khlynovskiy 

-* Anton Tolmachev

-* Anubha Mathur 

-* Armando Aguirre 

-* Arnaud Tournier 

-* Arnav Singh

-* Artem Tyurin 

-* Arthur Ozga

-* Asad Saeeduddin

-* Avery Morin

-* Basarat Ali Syed

-* @begincalendar

-* Ben Duffield

-* Ben Mosher 

-* Benjamin Bock 

-* Benjamin Lichtman 

-* Benny Neugebauer 

-* Bill Ticehurst

-* Blaine Bublitz 

-* Blake Embrey

-* @bluelovers

-* @bootstraponline

-* Bowden Kelly

-* Bowden Kenny

-* Brandon Slade 

-* Brett Mayen

-* Bryan Forbes

-* Caitlin Potter

-* Cameron Taggart 

-* @cedvdb

-* Charles Pierce 

-* Charly POLY 

-* Chris Bubernak

-* Christophe Vidal 

-* Chuck Jazdzewski

-* Colby Russell

-* Colin Snover

-* Cotton Hou 

-* Cyrus Najmabadi

-* Dafrok Zhang

-* Dahan Gong

-* Dan Corder

-* Dan Freeman 

-* Dan Quirk

-* Daniel Gooss

-* Daniel Hollocher

-* Daniel Król 

-* Daniel Lehenbauer

-* Daniel Rosenwasser

-* David Kmenta

-* David Li

-* David Sheldrick 

-* David Sherret 

-* David Souther

-* David Staheli 

-* Denis Nedelyaev

-* Derek P Sifford 

-* Dhruv Rajvanshi 

-* Dick van den Brink

-* Diogo Franco (Kovensky) 

-* Dirk Bäumer

-* Dirk Holtwick

-* Dom Chen 

-* Donald Pipowitch 

-* Doug Ilijev

-* @e-cloud

-* Ecole Keine

-* Elisée Maurer

-* Elizabeth Dinella 

-* Emilio García-Pumarino

-* Eric Grube 

-* Eric Tsang

-* Erik Edrosa

-* Erik McClenney 

-* Esakki Raj 

-* Ethan Resnick 

-* Ethan Rubio

-* Eugene Timokhov 

-* Evan Martin

-* Evan Sebastian

-* Eyas Sharaiha

-* Fabian Cook 

-* @falsandtru

-* Filipe Silva 

-* @flowmemo

-* Francois Wouts 

-* Frank Wallis

-* Franklin Tse

-* František Žiacik

-* Gabe Moothart 

-* Gabriel Isenberg

-* Gilad Peleg

-* Godfrey Chan 

-* Graeme Wicksted

-* Guilherme Oenning

-* Guillaume Salles

-* Guy Bedford

-* Halasi Tamás 

-* Harald Niesche

-* Hendrik Liebau 

-* Henry Mercer 

-* Herrington Darkholme

-* Holger Jeromin 

-* Homa Wong 

-* Iain Monro

-* @IdeaHunter

-* Igor Novozhilov

-* Ika 

-* Ingvar Stepanyan

-* Isiah Meadows

-* Ivan Enderlin 

-* Ivo Gabe de Wolff

-* Iwata Hidetaka 

-* Jack Williams 

-* Jakub Korzeniowski

-* Jakub Młokosiewicz 

-* James Henry 

-* James Whitney

-* Jan Melcher 

-* Jason Freeman

-* Jason Jarrett 

-* Jason Killian

-* Jason Ramsay

-* JBerger

-* Jed Mao

-* Jeffrey Morlan

-* Jesse Schalken

-* Jing Ma 

-* Jiri Tobisek

-* Joe Calzaretta 

-* Joe Chung 

-* Joel Day 

-* Joey Wilson

-* Johannes Rieken

-* John Doe 

-* John Vilk

-* Jonathan Bond-Caron

-* Jonathan Park

-* Jonathan Toland

-* Jonathan Turner

-* Jonathon Smith

-* Jordi Oliveras Rovira 

-* Joscha Feth 

-* Josh Abernathy 

-* Josh Goldberg 

-* Josh Kalderimis

-* Josh Soref

-* Juan Luis Boya García

-* Julian Williams

-* Justin Bay 

-* Justin Johansson 

-* K. Preißer

-* Kagami Sascha Rosylight

-* Kanchalai Tanglertsampan

-* Kate Miháliková 

-* Keith Mashinter

-* Ken Howard

-* Kenji Imamula

-* Kerem Kat

-* Kevin Donnelly 

-* Kevin Gibbons 

-* Kevin Lang 

-* Khải 

-* Kitson Kelly 

-* Klaus Meinhardt 

-* Kris Zyp 

-* Kyle Kelley

-* Kārlis Gaņģis

-* Lorant Pinter

-* Lucien Greathouse

-* Lukas Elmer 

-* Maarten Sijm 

-* Magnus Hiie 

-* Magnus Kulke 

-* Manish Giri

-* Marin Marinov

-* Marius Schulz 

-* Markus Johnsson 

-* Martin Hiller 

-* Martin Probst 

-* Martin Vseticka

-* Martyn Janes 

-* Masahiro Wakame

-* Mateusz Burzyński 

-* Matt Bierner 

-* Matt McCutchen

-* Matt Mitchell 

-* Mattias Buelens

-* Mattias Buelens 

-* Max Deepfield

-* Maxwell Paul Brickner 

-* @meyer

-* Micah Zoltu

-* @micbou

-* Michael 

-* Michael Bromley

-* Mike Busyrev 

-* Mike Morearty 

-* Mine Starks 

-* Mohamed Hegazy

-* Mohsen Azimi 

-* Myles Megyesi 

-* Nathan Shively-Sanders

-* Nathan Yee

-* Nicolas Henry

-* Nicu Micleușanu

-* @nieltg

-* Nima Zahedi

-* Noah Chen 

-* Noel Varanda 

-* Noj Vek

-* Oleg Mihailik

-* Oleksandr Chekhovskyi

-* Omer Sheikh 

-* Orta Therox

-* Oskar Segersva¨rd

-* Oussama Ben Brahim 

-* Patrick Zhong

-* Paul Jolly

-* Paul Koerbitz 

-* Paul van Brenk

-* @pcbro

-* Pedro Maltez

-* Perry Jiang

-* Peter Burns

-* Philip Bulley

-* Philippe Voinov 

-* Pi Lanningham 

-* Piero Cangianiello

-* @piloopin

-* Prayag Verma

-* Priyantha Lankapura 

-* @progre

-* Punya Biswal

-* Rado Kirov

-* Raj Dosanjh

-* Reiner Dolp 

-* Remo H. Jansen 

-* @rhysd

-* Ricardo N Feliciano 

-* Richard Karmazín 

-* Richard Knoll

-* Richard Sentino

-* Robert Coie

-* Rohit Verma

-* Ron Buckton

-* Rostislav Galimsky 

-* Rowan Wyborn

-* Ryan Cavanaugh

-* Ryohei Ikegami

-* Sam Bostock 

-* Sam El-Husseini 

-* Sarangan Rajamanickam

-* Sean Barag 

-* Sergey Rubanov

-* Sergey Shandar 

-* Sergii Bezliudnyi 

-* Sharon Rolel 

-* Sheetal Nandi

-* Shengping Zhong

-* Shyyko Serhiy

-* Simon Hürlimann

-* Slawomir Sadziak 

-* Solal Pirelli

-* Soo Jae Hwang 

-* Stan Thomas

-* Stanislav Iliev 

-* Stanislav Sysoev

-* Stas Vilchik 

-* Stephan Ginthör 

-* Steve Lucco

-* @styfle

-* Sudheesh Singanamalla 

-* Sébastien Arod

-* @T18970237136

-* @t_

-* Taras Mankovski 

-* Tarik Ozket

-* Tetsuharu Ohzeki

-* Thomas den Hollander 

-* Thomas Loubiou

-* Tien Hoanhtien

-* Tim Lancina 

-* Tim Perry

-* Tim Viiding-Spader

-* Tingan Ho

-* Todd Thomson

-* togru

-* Tomas Grubliauskas

-* Torben Fitschen 

-* @TravCav

-* TruongSinh Tran-Nguyen

-* Tycho Grouwstra 

-* Vadi Taslim 

-* Vakhurin Sergey 

-* Vidar Tonaas Fauske

-* Viktor Zozulyak

-* Vilic Vane

-* Vimal Raghubir 

-* Vladimir Kurchatkin 

-* Vladimir Matveev

-* Vyacheslav Pukhanov 

-* Wenlu Wang 

-* Wesley Wigham

-* William Orr 

-* Wilson Hobbs 

-* York Yao

-* @yortus

-* Yuichi Nukiyama

-* Yuval Greenfield 

-* Zeeshan Ahmed 

-* Zev Spitz

-* Zhengbo Li

+TypeScript is authored by:
+* Aaron Holmes
+* Abubaker Bashir
+* Adam Freidin
+* Adi Dahiya
+* Aditya Daflapurkar
+* Adnan Chowdhury 
+* Adrian Leonhard 
+* Adrien Gibrat 
+* Ahmad Farid
+* Akshar Patel
+* Alan Agius 
+* Alex Chugaev 
+* Alex Eagle
+* Alex Khomchenko 
+* Alex Ryan 
+* Alexander Kuvaev
+* Alexander Rusakov 
+* Alexander Tarasyuk
+* Ali Sabzevari
+* Aliaksandr Radzivanovich
+* Aluan Haddad 
+* Anatoly Ressin 
+* Anders Hejlsberg
+* Andreas Martin
+* Andrej Baran 
+* Andrew Casey 
+* Andrew Faulkner 
+* Andrew Ochsner 
+* Andrew Stegmaier 
+* Andrew Z Allen
+* András Parditka 
+* Andy Hanson
+* Anil Anar
+* Anton Khlynovskiy 
+* Anton Tolmachev
+* Anubha Mathur 
+* Armando Aguirre 
+* Arnaud Tournier 
+* Arnav Singh
+* Artem Tyurin 
+* Arthur Ozga
+* Asad Saeeduddin
+* Avery Morin
+* Basarat Ali Syed
+* @begincalendar
+* Ben Duffield
+* Ben Mosher 
+* Benjamin Bock 
+* Benjamin Lichtman 
+* Benny Neugebauer 
+* Bill Ticehurst
+* Blaine Bublitz 
+* Blake Embrey
+* @bluelovers
+* @bootstraponline
+* Bowden Kelly
+* Bowden Kenny
+* Brandon Slade 
+* Brett Mayen
+* Bryan Forbes
+* Caitlin Potter
+* Cameron Taggart 
+* @cedvdb
+* Charles Pierce 
+* Charly POLY 
+* Chris Bubernak
+* Christophe Vidal 
+* Chuck Jazdzewski
+* Colby Russell
+* Colin Snover
+* Cotton Hou 
+* Cyrus Najmabadi
+* Dafrok Zhang
+* Dahan Gong
+* Dan Corder
+* Dan Freeman 
+* Dan Quirk
+* Daniel Gooss
+* Daniel Hollocher
+* Daniel Król 
+* Daniel Lehenbauer
+* Daniel Rosenwasser
+* David Kmenta
+* David Li
+* David Sheldrick 
+* David Sherret 
+* David Souther
+* David Staheli 
+* Denis Nedelyaev
+* Derek P Sifford 
+* Dhruv Rajvanshi 
+* Dick van den Brink
+* Diogo Franco (Kovensky) 
+* Dirk Bäumer
+* Dirk Holtwick
+* Dom Chen 
+* Donald Pipowitch 
+* Doug Ilijev
+* @e-cloud
+* Ecole Keine
+* Elisée Maurer
+* Elizabeth Dinella 
+* Emilio García-Pumarino
+* Eric Grube 
+* Eric Tsang
+* Erik Edrosa
+* Erik McClenney 
+* Esakki Raj 
+* Ethan Resnick 
+* Ethan Rubio
+* Eugene Timokhov 
+* Evan Martin
+* Evan Sebastian
+* Eyas Sharaiha
+* Fabian Cook 
+* @falsandtru
+* Filipe Silva 
+* @flowmemo
+* Francois Wouts 
+* Frank Wallis
+* Franklin Tse
+* František Žiacik
+* Gabe Moothart 
+* Gabriel Isenberg
+* Gilad Peleg
+* Godfrey Chan 
+* Graeme Wicksted
+* Guilherme Oenning
+* Guillaume Salles
+* Guy Bedford
+* Halasi Tamás 
+* Harald Niesche
+* Hendrik Liebau 
+* Henry Mercer 
+* Herrington Darkholme
+* Holger Jeromin 
+* Homa Wong 
+* Iain Monro
+* @IdeaHunter
+* Igor Novozhilov
+* Ika 
+* Ingvar Stepanyan
+* Isiah Meadows
+* Ivan Enderlin 
+* Ivo Gabe de Wolff
+* Iwata Hidetaka 
+* Jack Williams 
+* Jakub Korzeniowski
+* Jakub Młokosiewicz 
+* James Henry 
+* James Whitney
+* Jan Melcher 
+* Jason Freeman
+* Jason Jarrett 
+* Jason Killian
+* Jason Ramsay
+* JBerger
+* Jed Mao
+* Jeffrey Morlan
+* Jesse Schalken
+* Jing Ma 
+* Jiri Tobisek
+* Joe Calzaretta 
+* Joe Chung 
+* Joel Day 
+* Joey Wilson
+* Johannes Rieken
+* John Doe 
+* John Vilk
+* Jonathan Bond-Caron
+* Jonathan Park
+* Jonathan Toland
+* Jonathan Turner
+* Jonathon Smith
+* Jordi Oliveras Rovira 
+* Joscha Feth 
+* Josh Abernathy 
+* Josh Goldberg 
+* Josh Kalderimis
+* Josh Soref
+* Juan Luis Boya García
+* Julian Williams
+* Justin Bay 
+* Justin Johansson 
+* K. Preißer
+* Kagami Sascha Rosylight
+* Kanchalai Tanglertsampan
+* Kate Miháliková 
+* Keith Mashinter
+* Ken Howard
+* Kenji Imamula
+* Kerem Kat
+* Kevin Donnelly 
+* Kevin Gibbons 
+* Kevin Lang 
+* Khải 
+* Kitson Kelly 
+* Klaus Meinhardt 
+* Kris Zyp 
+* Kyle Kelley
+* Kārlis Gaņģis
+* Lorant Pinter
+* Lucien Greathouse
+* Lukas Elmer 
+* Maarten Sijm 
+* Magnus Hiie 
+* Magnus Kulke 
+* Manish Giri
+* Marin Marinov
+* Marius Schulz 
+* Markus Johnsson 
+* Martin Hiller 
+* Martin Probst 
+* Martin Vseticka
+* Martyn Janes 
+* Masahiro Wakame
+* Mateusz Burzyński 
+* Matt Bierner 
+* Matt McCutchen
+* Matt Mitchell 
+* Mattias Buelens
+* Mattias Buelens 
+* Max Deepfield
+* Maxwell Paul Brickner 
+* @meyer
+* Micah Zoltu
+* @micbou
+* Michael 
+* Michael Bromley
+* Mike Busyrev 
+* Mike Morearty 
+* Mine Starks 
+* Mohamed Hegazy
+* Mohsen Azimi 
+* Myles Megyesi 
+* Nathan Shively-Sanders
+* Nathan Yee
+* Nicolas Henry
+* Nicu Micleușanu
+* @nieltg
+* Nima Zahedi
+* Noah Chen 
+* Noel Varanda 
+* Noj Vek
+* Oleg Mihailik
+* Oleksandr Chekhovskyi
+* Omer Sheikh 
+* Orta Therox
+* Oskar Segersva¨rd
+* Oussama Ben Brahim 
+* Patrick Zhong
+* Paul Jolly
+* Paul Koerbitz 
+* Paul van Brenk
+* @pcbro
+* Pedro Maltez
+* Perry Jiang
+* Peter Burns
+* Philip Bulley
+* Philippe Voinov 
+* Pi Lanningham 
+* Piero Cangianiello
+* @piloopin
+* Prayag Verma
+* Priyantha Lankapura 
+* @progre
+* Punya Biswal
+* Rado Kirov
+* Raj Dosanjh
+* Reiner Dolp 
+* Remo H. Jansen 
+* @rhysd
+* Ricardo N Feliciano 
+* Richard Karmazín 
+* Richard Knoll
+* Richard Sentino
+* Robert Coie
+* Rohit Verma
+* Ron Buckton
+* Rostislav Galimsky 
+* Rowan Wyborn
+* Ryan Cavanaugh
+* Ryohei Ikegami
+* Sam Bostock 
+* Sam El-Husseini 
+* Sarangan Rajamanickam
+* Sean Barag 
+* Sergey Rubanov
+* Sergey Shandar 
+* Sergii Bezliudnyi 
+* Sharon Rolel 
+* Sheetal Nandi
+* Shengping Zhong
+* Shyyko Serhiy
+* Simon Hürlimann
+* Slawomir Sadziak 
+* Solal Pirelli
+* Soo Jae Hwang 
+* Stan Thomas
+* Stanislav Iliev 
+* Stanislav Sysoev
+* Stas Vilchik 
+* Stephan Ginthör 
+* Steve Lucco
+* @styfle
+* Sudheesh Singanamalla 
+* Sébastien Arod
+* @T18970237136
+* @t_
+* Taras Mankovski 
+* Tarik Ozket
+* Tetsuharu Ohzeki
+* Thomas den Hollander 
+* Thomas Loubiou
+* Tien Hoanhtien
+* Tim Lancina 
+* Tim Perry
+* Tim Viiding-Spader
+* Tingan Ho
+* Todd Thomson
+* togru
+* Tomas Grubliauskas
+* Torben Fitschen 
+* @TravCav
+* TruongSinh Tran-Nguyen
+* Tycho Grouwstra 
+* Vadi Taslim 
+* Vakhurin Sergey 
+* Vidar Tonaas Fauske
+* Viktor Zozulyak
+* Vilic Vane
+* Vimal Raghubir 
+* Vladimir Kurchatkin 
+* Vladimir Matveev
+* Vyacheslav Pukhanov 
+* Wenlu Wang 
+* Wesley Wigham
+* William Orr 
+* Wilson Hobbs 
+* York Yao
+* @yortus
+* Yuichi Nukiyama
+* Yuval Greenfield 
+* Zeeshan Ahmed 
+* Zev Spitz
+* Zhengbo Li
 * @Zzzen
\ No newline at end of file
diff --git a/src/cobalt/debug/remote/devtools/node_modules/typescript/CODE_OF_CONDUCT.md b/src/third_party/devtools/node_modules/typescript/CODE_OF_CONDUCT.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/typescript/CODE_OF_CONDUCT.md
rename to src/third_party/devtools/node_modules/typescript/CODE_OF_CONDUCT.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/typescript/CopyrightNotice.txt b/src/third_party/devtools/node_modules/typescript/CopyrightNotice.txt
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/typescript/CopyrightNotice.txt
rename to src/third_party/devtools/node_modules/typescript/CopyrightNotice.txt
diff --git a/src/cobalt/debug/remote/devtools/node_modules/tslib/LICENSE.txt b/src/third_party/devtools/node_modules/typescript/LICENSE.txt
similarity index 99%
copy from src/cobalt/debug/remote/devtools/node_modules/tslib/LICENSE.txt
copy to src/third_party/devtools/node_modules/typescript/LICENSE.txt
index 8746124..edc24fd 100644
--- a/src/cobalt/debug/remote/devtools/node_modules/tslib/LICENSE.txt
+++ b/src/third_party/devtools/node_modules/typescript/LICENSE.txt
@@ -1,55 +1,55 @@
-Apache License

-

-Version 2.0, January 2004

-

-http://www.apache.org/licenses/ 

-

-TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION

-

-1. Definitions.

-

-"License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document.

-

-"Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License.

-

-"Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity.

-

-"You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License.

-

-"Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files.

-

-"Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types.

-

-"Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below).

-

-"Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof.

-

-"Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution."

-

-"Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work.

-

-2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form.

-

-3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed.

-

-4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions:

-

-You must give any other recipients of the Work or Derivative Works a copy of this License; and

-

-You must cause any modified files to carry prominent notices stating that You changed the files; and

-

-You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and

-

-If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License.

-

-5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions.

-

-6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file.

-

-7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License.

-

-8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages.

-

-9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability.

-

-END OF TERMS AND CONDITIONS

+Apache License
+
+Version 2.0, January 2004
+
+http://www.apache.org/licenses/ 
+
+TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+1. Definitions.
+
+"License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document.
+
+"Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License.
+
+"Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity.
+
+"You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License.
+
+"Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files.
+
+"Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types.
+
+"Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below).
+
+"Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof.
+
+"Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution."
+
+"Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work.
+
+2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form.
+
+3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed.
+
+4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions:
+
+You must give any other recipients of the Work or Derivative Works a copy of this License; and
+
+You must cause any modified files to carry prominent notices stating that You changed the files; and
+
+You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and
+
+If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License.
+
+5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions.
+
+6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file.
+
+7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License.
+
+8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages.
+
+9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability.
+
+END OF TERMS AND CONDITIONS
diff --git a/src/cobalt/debug/remote/devtools/node_modules/typescript/README.md b/src/third_party/devtools/node_modules/typescript/README.md
similarity index 99%
rename from src/cobalt/debug/remote/devtools/node_modules/typescript/README.md
rename to src/third_party/devtools/node_modules/typescript/README.md
index 04c8c7d..0cf2571 100644
--- a/src/cobalt/debug/remote/devtools/node_modules/typescript/README.md
+++ b/src/third_party/devtools/node_modules/typescript/README.md
@@ -1,99 +1,99 @@
-

-# TypeScript

-

-[![Join the chat at https://gitter.im/Microsoft/TypeScript](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/Microsoft/TypeScript?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)

-[![Build Status](https://travis-ci.org/microsoft/TypeScript.svg?branch=master)](https://travis-ci.org/Microsoft/TypeScript)

-[![VSTS Build Status](https://dev.azure.com/typescript/TypeScript/_apis/build/status/Typescript/node10)](https://dev.azure.com/typescript/TypeScript/_build/latest?definitionId=4&view=logs)

-[![npm version](https://badge.fury.io/js/typescript.svg)](https://www.npmjs.com/package/typescript)

-[![Downloads](https://img.shields.io/npm/dm/typescript.svg)](https://www.npmjs.com/package/typescript)

-

-

-

-[TypeScript](https://www.typescriptlang.org/) is a language for application-scale JavaScript. TypeScript adds optional types to JavaScript that support tools for large-scale JavaScript applications for any browser, for any host, on any OS. TypeScript compiles to readable, standards-based JavaScript. Try it out at the [playground](https://www.typescriptlang.org/play/), and stay up to date via [our blog](https://blogs.msdn.microsoft.com/typescript) and [Twitter account](https://twitter.com/typescript).

-

-## Installing

-

-For the latest stable version:

-

-```bash

-npm install -g typescript

-```

-

-For our nightly builds:

-

-```bash

-npm install -g typescript@next

-```

-

-## Contribute

-

-There are many ways to [contribute](https://github.com/Microsoft/TypeScript/blob/master/CONTRIBUTING.md) to TypeScript.

-* [Submit bugs](https://github.com/Microsoft/TypeScript/issues) and help us verify fixes as they are checked in.

-* Review the [source code changes](https://github.com/Microsoft/TypeScript/pulls).

-* Engage with other TypeScript users and developers on [StackOverflow](https://stackoverflow.com/questions/tagged/typescript).

-* Join the [#typescript](https://twitter.com/search?q=%23TypeScript) discussion on Twitter.

-* [Contribute bug fixes](https://github.com/Microsoft/TypeScript/blob/master/CONTRIBUTING.md).

-* Read the language specification ([docx](https://github.com/Microsoft/TypeScript/blob/master/doc/TypeScript%20Language%20Specification.docx?raw=true),

- [pdf](https://github.com/Microsoft/TypeScript/blob/master/doc/TypeScript%20Language%20Specification.pdf?raw=true), [md](https://github.com/Microsoft/TypeScript/blob/master/doc/spec.md)).

-

-This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/). For more information see

-the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or contact [opencode@microsoft.com](mailto:opencode@microsoft.com)

-with any additional questions or comments.

-

-## Documentation

-

-*  [Quick tutorial](https://www.typescriptlang.org/docs/tutorial.html)

-*  [Programming handbook](https://www.typescriptlang.org/docs/handbook/basic-types.html)

-*  [Language specification](https://github.com/Microsoft/TypeScript/blob/master/doc/spec.md)

-*  [Homepage](https://www.typescriptlang.org/)

-

-## Building

-

-In order to build the TypeScript compiler, ensure that you have [Git](https://git-scm.com/downloads) and [Node.js](https://nodejs.org/) installed.

-

-Clone a copy of the repo:

-

-```bash

-git clone https://github.com/Microsoft/TypeScript.git

-```

-

-Change to the TypeScript directory:

-

-```bash

-cd TypeScript

-```

-

-Install [Gulp](https://gulpjs.com/) tools and dev dependencies:

-

-```bash

-npm install -g gulp

-npm install

-```

-

-Use one of the following to build and test:

-

-```

-gulp local            # Build the compiler into built/local

-gulp clean            # Delete the built compiler

-gulp LKG              # Replace the last known good with the built one.

-                      # Bootstrapping step to be executed when the built compiler reaches a stable state.

-gulp tests            # Build the test infrastructure using the built compiler.

-gulp runtests         # Run tests using the built compiler and test infrastructure.

-                      # You can override the host or specify a test for this command.

-                      # Use --host=<hostName> or --tests=<testPath>.

-gulp baseline-accept  # This replaces the baseline test results with the results obtained from gulp runtests.

-gulp lint             # Runs tslint on the TypeScript source.

-gulp help             # List the above commands.

-```

-

-

-## Usage

-

-```bash

-node built/local/tsc.js hello.ts

-```

-

-

-## Roadmap

-

-For details on our planned features and future direction please refer to our [roadmap](https://github.com/Microsoft/TypeScript/wiki/Roadmap).

+
+# TypeScript
+
+[![Join the chat at https://gitter.im/Microsoft/TypeScript](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/Microsoft/TypeScript?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
+[![Build Status](https://travis-ci.org/microsoft/TypeScript.svg?branch=master)](https://travis-ci.org/Microsoft/TypeScript)
+[![VSTS Build Status](https://dev.azure.com/typescript/TypeScript/_apis/build/status/Typescript/node10)](https://dev.azure.com/typescript/TypeScript/_build/latest?definitionId=4&view=logs)
+[![npm version](https://badge.fury.io/js/typescript.svg)](https://www.npmjs.com/package/typescript)
+[![Downloads](https://img.shields.io/npm/dm/typescript.svg)](https://www.npmjs.com/package/typescript)
+
+
+
+[TypeScript](https://www.typescriptlang.org/) is a language for application-scale JavaScript. TypeScript adds optional types to JavaScript that support tools for large-scale JavaScript applications for any browser, for any host, on any OS. TypeScript compiles to readable, standards-based JavaScript. Try it out at the [playground](https://www.typescriptlang.org/play/), and stay up to date via [our blog](https://blogs.msdn.microsoft.com/typescript) and [Twitter account](https://twitter.com/typescript).
+
+## Installing
+
+For the latest stable version:
+
+```bash
+npm install -g typescript
+```
+
+For our nightly builds:
+
+```bash
+npm install -g typescript@next
+```
+
+## Contribute
+
+There are many ways to [contribute](https://github.com/Microsoft/TypeScript/blob/master/CONTRIBUTING.md) to TypeScript.
+* [Submit bugs](https://github.com/Microsoft/TypeScript/issues) and help us verify fixes as they are checked in.
+* Review the [source code changes](https://github.com/Microsoft/TypeScript/pulls).
+* Engage with other TypeScript users and developers on [StackOverflow](https://stackoverflow.com/questions/tagged/typescript).
+* Join the [#typescript](https://twitter.com/search?q=%23TypeScript) discussion on Twitter.
+* [Contribute bug fixes](https://github.com/Microsoft/TypeScript/blob/master/CONTRIBUTING.md).
+* Read the language specification ([docx](https://github.com/Microsoft/TypeScript/blob/master/doc/TypeScript%20Language%20Specification.docx?raw=true),
+ [pdf](https://github.com/Microsoft/TypeScript/blob/master/doc/TypeScript%20Language%20Specification.pdf?raw=true), [md](https://github.com/Microsoft/TypeScript/blob/master/doc/spec.md)).
+
+This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/). For more information see
+the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or contact [opencode@microsoft.com](mailto:opencode@microsoft.com)
+with any additional questions or comments.
+
+## Documentation
+
+*  [Quick tutorial](https://www.typescriptlang.org/docs/tutorial.html)
+*  [Programming handbook](https://www.typescriptlang.org/docs/handbook/basic-types.html)
+*  [Language specification](https://github.com/Microsoft/TypeScript/blob/master/doc/spec.md)
+*  [Homepage](https://www.typescriptlang.org/)
+
+## Building
+
+In order to build the TypeScript compiler, ensure that you have [Git](https://git-scm.com/downloads) and [Node.js](https://nodejs.org/) installed.
+
+Clone a copy of the repo:
+
+```bash
+git clone https://github.com/Microsoft/TypeScript.git
+```
+
+Change to the TypeScript directory:
+
+```bash
+cd TypeScript
+```
+
+Install [Gulp](https://gulpjs.com/) tools and dev dependencies:
+
+```bash
+npm install -g gulp
+npm install
+```
+
+Use one of the following to build and test:
+
+```
+gulp local            # Build the compiler into built/local
+gulp clean            # Delete the built compiler
+gulp LKG              # Replace the last known good with the built one.
+                      # Bootstrapping step to be executed when the built compiler reaches a stable state.
+gulp tests            # Build the test infrastructure using the built compiler.
+gulp runtests         # Run tests using the built compiler and test infrastructure.
+                      # You can override the host or specify a test for this command.
+                      # Use --host=<hostName> or --tests=<testPath>.
+gulp baseline-accept  # This replaces the baseline test results with the results obtained from gulp runtests.
+gulp lint             # Runs tslint on the TypeScript source.
+gulp help             # List the above commands.
+```
+
+
+## Usage
+
+```bash
+node built/local/tsc.js hello.ts
+```
+
+
+## Roadmap
+
+For details on our planned features and future direction please refer to our [roadmap](https://github.com/Microsoft/TypeScript/wiki/Roadmap).
diff --git a/src/cobalt/debug/remote/devtools/node_modules/typescript/ThirdPartyNoticeText.txt b/src/third_party/devtools/node_modules/typescript/ThirdPartyNoticeText.txt
similarity index 99%
rename from src/cobalt/debug/remote/devtools/node_modules/typescript/ThirdPartyNoticeText.txt
rename to src/third_party/devtools/node_modules/typescript/ThirdPartyNoticeText.txt
index 26aa57f..b4f9cb6 100644
--- a/src/cobalt/debug/remote/devtools/node_modules/typescript/ThirdPartyNoticeText.txt
+++ b/src/third_party/devtools/node_modules/typescript/ThirdPartyNoticeText.txt
@@ -1,193 +1,193 @@
-/*!----------------- TypeScript ThirdPartyNotices -------------------------------------------------------

-

-The TypeScript software incorporates third party material from the projects listed below. The original copyright notice and the license under which Microsoft received such third party material are set forth below. Microsoft reserves all other rights not expressly granted, whether by implication, estoppel or otherwise.

-

----------------------------------------------

-Third Party Code Components

---------------------------------------------

-

-------------------- DefinitelyTyped --------------------

-This file is based on or incorporates material from the projects listed below (collectively "Third Party Code"). Microsoft is not the original author of the Third Party Code. The original copyright notice and the license, under which Microsoft received such Third Party Code, are set forth below. Such licenses and notices are provided for informational purposes only. Microsoft, not the third party, licenses the Third Party Code to you under the terms set forth in the EULA for the Microsoft Product. Microsoft reserves all other rights not expressly granted under this agreement, whether by implication, estoppel or otherwise.

-DefinitelyTyped

-This project is licensed under the MIT license. Copyrights are respective of each contributor listed at the beginning of each definition file. Provided for Informational Purposes Only

-

-MIT License

-Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the ""Software""), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

-

-The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

-

-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

---------------------------------------------------------------------------------------

-

-------------------- Unicode --------------------

-UNICODE, INC. LICENSE AGREEMENT - DATA FILES AND SOFTWARE

-

-Unicode Data Files include all data files under the directories

-http://www.unicode.org/Public/, http://www.unicode.org/reports/,

-http://www.unicode.org/cldr/data/, http://source.icu-project.org/repos/icu/, and

-http://www.unicode.org/utility/trac/browser/.

-

-Unicode Data Files do not include PDF online code charts under the

-directory http://www.unicode.org/Public/.

-

-Software includes any source code published in the Unicode Standard

-or under the directories

-http://www.unicode.org/Public/, http://www.unicode.org/reports/,

-http://www.unicode.org/cldr/data/, http://source.icu-project.org/repos/icu/, and

-http://www.unicode.org/utility/trac/browser/.

-

-NOTICE TO USER: Carefully read the following legal agreement.

-BY DOWNLOADING, INSTALLING, COPYING OR OTHERWISE USING UNICODE INC.'S

-DATA FILES ("DATA FILES"), AND/OR SOFTWARE ("SOFTWARE"),

-YOU UNEQUIVOCALLY ACCEPT, AND AGREE TO BE BOUND BY, ALL OF THE

-TERMS AND CONDITIONS OF THIS AGREEMENT.

-IF YOU DO NOT AGREE, DO NOT DOWNLOAD, INSTALL, COPY, DISTRIBUTE OR USE

-THE DATA FILES OR SOFTWARE.

-

-COPYRIGHT AND PERMISSION NOTICE

-

-Copyright (c) 1991-2017 Unicode, Inc. All rights reserved.

-Distributed under the Terms of Use in http://www.unicode.org/copyright.html.

-

-Permission is hereby granted, free of charge, to any person obtaining

-a copy of the Unicode data files and any associated documentation

-(the "Data Files") or Unicode software and any associated documentation

-(the "Software") to deal in the Data Files or Software

-without restriction, including without limitation the rights to use,

-copy, modify, merge, publish, distribute, and/or sell copies of

-the Data Files or Software, and to permit persons to whom the Data Files

-or Software are furnished to do so, provided that either

-(a) this copyright and permission notice appear with all copies

-of the Data Files or Software, or

-(b) this copyright and permission notice appear in associated

-Documentation.

-

-THE DATA FILES AND SOFTWARE ARE PROVIDED "AS IS", WITHOUT WARRANTY OF

-ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE

-WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND

-NONINFRINGEMENT OF THIRD PARTY RIGHTS.

-IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS

-NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL

-DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,

-DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER

-TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR

-PERFORMANCE OF THE DATA FILES OR SOFTWARE.

-

-Except as contained in this notice, the name of a copyright holder

-shall not be used in advertising or otherwise to promote the sale,

-use or other dealings in these Data Files or Software without prior

-written authorization of the copyright holder.

--------------------------------------------------------------------------------------

-

--------------------Document Object Model-----------------------------

-DOM 

-

-W3C License

-This work is being provided by the copyright holders under the following license.

-By obtaining and/or copying this work, you (the licensee) agree that you have read, understood, and will comply with the following terms and conditions.

-Permission to copy, modify, and distribute this work, with or without modification, for any purpose and without fee or royalty is hereby granted, provided that you include the following 

-on ALL copies of the work or portions thereof, including modifications:

-* The full text of this NOTICE in a location viewable to users of the redistributed or derivative work.

-* Any pre-existing intellectual property disclaimers, notices, or terms and conditions. If none exist, the W3C Software and Document Short Notice should be included.

-* Notice of any changes or modifications, through a copyright statement on the new code or document such as "This software or document includes material copied from or derived 

-from [title and URI of the W3C document]. Copyright © [YEAR] W3C® (MIT, ERCIM, Keio, Beihang)." 

-Disclaimers

-THIS WORK IS PROVIDED "AS IS," AND COPYRIGHT HOLDERS MAKE NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO, WARRANTIES OF MERCHANTABILITY OR 

-FITNESS FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF THE SOFTWARE OR DOCUMENT WILL NOT INFRINGE ANY THIRD PARTY PATENTS, COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS.

-COPYRIGHT HOLDERS WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF ANY USE OF THE SOFTWARE OR DOCUMENT.

-The name and trademarks of copyright holders may NOT be used in advertising or publicity pertaining to the work without specific, written prior permission. 

-Title to copyright in this work will at all times remain with copyright holders.

-

----------

-

-DOM

-Copyright © 2018 WHATWG (Apple, Google, Mozilla, Microsoft). This work is licensed under a Creative Commons Attribution 4.0 International License: Attribution 4.0 International 

-======================================================================= 

-Creative Commons Corporation ("Creative Commons") is not a law firm and does not provide legal services or legal advice. Distribution of Creative Commons public licenses does not create a lawyer-client or other relationship. Creative Commons makes its licenses and related information available on an "as-is" basis. Creative Commons gives no warranties regarding its licenses, any material licensed under their terms and conditions, or any related information. Creative Commons disclaims all liability for damages resulting from their use to the fullest extent possible. Using Creative Commons Public Licenses Creative Commons public licenses provide a standard set of terms and conditions that creators and other rights holders may use to share original works of authorship and other material subject to copyright and certain other rights specified in the public license below. The following considerations are for informational purposes only, are not exhaustive, and do not form part of our licenses. Considerations for licensors: Our public licenses are intended for use by those authorized to give the public permission to use material in ways otherwise restricted by copyright and certain other rights. Our licenses are irrevocable. Licensors should read and understand the terms and conditions of the license they choose before applying it. Licensors should also secure all rights necessary before applying our licenses so that the public can reuse the material as expected. Licensors should clearly mark any material not subject to the license. This includes other CC- licensed material, or material used under an exception or limitation to copyright. More considerations for licensors:

-

-wiki.creativecommons.org/Considerations_for_licensors Considerations for the public: By using one of our public licenses, a licensor grants the public permission to use the licensed material under specified terms and conditions. If the licensor's permission is not necessary for any reason--for example, because of any applicable exception or limitation to copyright--then that use is not regulated by the license. Our licenses grant only permissions under copyright and certain other rights that a licensor has authority to grant. Use of the licensed material may still be restricted for other reasons, including because others have copyright or other rights in the material. A licensor may make special requests, such as asking that all changes be marked or described. Although not required by our licenses, you are encouraged to respect those requests where reasonable. More_considerations for the public: wiki.creativecommons.org/Considerations_for_licensees ======================================================================= 

-Creative Commons Attribution 4.0 International Public License By exercising the Licensed Rights (defined below), You accept and agree to be bound by the terms and conditions of this Creative Commons Attribution 4.0 International Public License ("Public License"). To the extent this Public License may be interpreted as a contract, You are granted the Licensed Rights in consideration of Your acceptance of these terms and conditions, and the Licensor grants You such rights in consideration of benefits the Licensor receives from making the Licensed Material available under these terms and conditions. Section 1 -- Definitions. a. Adapted Material means material subject to Copyright and Similar Rights that is derived from or based upon the Licensed Material and in which the Licensed Material is translated, altered, arranged, transformed, or otherwise modified in a manner requiring permission under the Copyright and Similar Rights held by the Licensor. For purposes of this Public License, where the Licensed Material is a musical work, performance, or sound recording, Adapted Material is always produced where the Licensed Material is synched in timed relation with a moving image. b. Adapter's License means the license You apply to Your Copyright and Similar Rights in Your contributions to Adapted Material in accordance with the terms and conditions of this Public License. c. Copyright and Similar Rights means copyright and/or similar rights closely related to copyright including, without limitation, performance, broadcast, sound recording, and Sui Generis Database Rights, without regard to how the rights are labeled or categorized. For purposes of this Public License, the rights specified in Section 2(b)(1)-(2) are not Copyright and Similar Rights. d. Effective Technological Measures means those measures that, in the absence of proper authority, may not be circumvented under laws fulfilling obligations under Article 11 of the WIPO Copyright Treaty adopted on December 20, 1996, and/or similar international agreements. e. Exceptions and Limitations means fair use, fair dealing, and/or any other exception or limitation to Copyright and Similar Rights that applies to Your use of the Licensed Material. f. Licensed Material means the artistic or literary work, database, or other material to which the Licensor applied this Public License. g. Licensed Rights means the rights granted to You subject to the terms and conditions of this Public License, which are limited to all Copyright and Similar Rights that apply to Your use of the Licensed Material and that the Licensor has authority to license. h. Licensor means the individual(s) or entity(ies) granting rights under this Public License. i. Share means to provide material to the public by any means or process that requires permission under the Licensed Rights, such as reproduction, public display, public performance, distribution, dissemination, communication, or importation, and to make material available to the public including in ways that members of the public may access the material from a place and at a time individually chosen by them. j. Sui Generis Database Rights means rights other than copyright resulting from Directive 96/9/EC of the European Parliament and of the Council of 11 March 1996 on the legal protection of databases, as amended and/or succeeded, as well as other essentially equivalent rights anywhere in the world. k. You means the individual or entity exercising the Licensed Rights under this Public License. Your has a corresponding meaning. Section 2 -- Scope. a. License grant. 1. Subject to the terms and conditions of this Public License, the Licensor hereby grants You a worldwide, royalty-free, non-sublicensable, non-exclusive, irrevocable license to exercise the Licensed Rights in the Licensed Material to: a. reproduce and Share the Licensed Material, in whole or in part; and b. produce, reproduce, and Share Adapted Material. 2. Exceptions and Limitations. For the avoidance of doubt, where Exceptions and Limitations apply to Your use, this Public License does not apply, and You do not need to comply with its terms and conditions. 3. Term. The term of this Public License is specified in Section 6(a). 4. Media and formats; technical modifications allowed. The Licensor authorizes You to exercise the Licensed Rights in all media and formats whether now known or hereafter created, and to make technical modifications necessary to do so. The Licensor waives and/or agrees not to assert any right or authority to forbid You from making technical modifications necessary to exercise the Licensed Rights, including technical modifications necessary to circumvent Effective Technological Measures. For purposes of this Public License, simply making modifications authorized by this Section 2(a) (4) never produces Adapted Material. 5. Downstream recipients. a. Offer from the Licensor -- Licensed Material. Every recipient of the Licensed Material automatically receives an offer from the Licensor to exercise the Licensed Rights under the terms and conditions of this Public License. b. No downstream restrictions. You may not offer or impose any additional or different terms or conditions on, or apply any Effective Technological Measures to, the Licensed Material if doing so restricts exercise of the Licensed Rights by any recipient of the Licensed Material. 6. No endorsement. Nothing in this Public License constitutes or may be construed as permission to assert or imply that You are, or that Your use of the Licensed Material is, connected with, or sponsored, endorsed, or granted official status by, the Licensor or others designated to receive attribution as provided in Section 3(a)(1)(A)(i). b. Other rights. 1. Moral rights, such as the right of integrity, are not licensed under this Public License, nor are publicity, privacy, and/or other similar personality rights; however, to the extent possible, the Licensor waives and/or agrees not to assert any such rights held by the Licensor to the limited extent necessary to allow You to exercise the Licensed Rights, but not otherwise. 2. Patent and trademark rights are not licensed under this Public License. 3. To the extent possible, the Licensor waives any right to collect royalties from You for the exercise of the Licensed Rights, whether directly or through a collecting society under any voluntary or waivable statutory or compulsory licensing scheme. In all other cases the Licensor expressly reserves any right to collect such royalties. Section 3 -- License Conditions. Your exercise of the Licensed Rights is expressly made subject to the following conditions. a. Attribution. 1. If You Share the Licensed Material (including in modified form), You must: a. retain the following if it is supplied by the Licensor with the Licensed Material: i. identification of the creator(s) of the Licensed Material and any others designated to receive attribution, in any reasonable manner requested by the Licensor (including by pseudonym if designated); ii. a copyright notice; iii. a notice that refers to this Public License; iv. a notice that refers to the disclaimer of warranties; v. a URI or hyperlink to the Licensed Material to the extent reasonably practicable; b. indicate if You modified the Licensed Material and retain an indication of any previous modifications; and c. indicate the Licensed Material is licensed under this Public License, and include the text of, or the URI or hyperlink to, this Public License. 2. You may satisfy the conditions in Section 3(a)(1) in any reasonable manner based on the medium, means, and context in which You Share the Licensed Material. For example, it may be reasonable to satisfy the conditions by providing a URI or hyperlink to a resource that includes the required information. 3. If requested by the Licensor, You must remove any of the information required by Section 3(a)(1)(A) to the extent reasonably practicable. 4. If You Share Adapted Material You produce, the Adapter's License You apply must not prevent recipients of the Adapted Material from complying with this Public License. Section 4 -- Sui Generis Database Rights. Where the Licensed Rights include Sui Generis Database Rights that apply to Your use of the Licensed Material: a. for the avoidance of doubt, Section 2(a)(1) grants You the right to extract, reuse, reproduce, and Share all or a substantial portion of the contents of the database; b. if You include all or a substantial portion of the database contents in a database in which You have Sui Generis Database Rights, then the database in which You have Sui Generis Database Rights (but not its individual contents) is Adapted Material; and c. You must comply with the conditions in Section 3(a) if You Share all or a substantial portion of the contents of the database. For the avoidance of doubt, this Section 4 supplements and does not replace Your obligations under this Public License where the Licensed Rights include other Copyright and Similar Rights. Section 5 -- Disclaimer of Warranties and Limitation of Liability. a. UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS, IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, WITHOUT LIMITATION, WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS, ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR NOT KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF WARRANTIES ARE NOT ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU. b. TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION, NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT, INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES, COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR IN PART, THIS LIMITATION MAY NOT APPLY TO YOU. c. The disclaimer of warranties and limitation of liability provided above shall be interpreted in a manner that, to the extent possible, most closely approximates an absolute disclaimer and waiver of all liability. Section 6 -- Term and Termination. a. This Public License applies for the term of the Copyright and Similar Rights licensed here. However, if You fail to comply with this Public License, then Your rights under this Public License terminate automatically. b. Where Your right to use the Licensed Material has terminated under Section 6(a), it reinstates: 1. automatically as of the date the violation is cured, provided it is cured within 30 days of Your discovery of the violation; or 2. upon express reinstatement by the Licensor. For the avoidance of doubt, this Section 6(b) does not affect any right the Licensor may have to seek remedies for Your violations of this Public License. c. For the avoidance of doubt, the Licensor may also offer the Licensed Material under separate terms or conditions or stop distributing the Licensed Material at any time; however, doing so will not terminate this Public License. d. Sections 1, 5, 6, 7, and 8 survive termination of this Public License. Section 7 -- Other Terms and Conditions. a. The Licensor shall not be bound by any additional or different terms or conditions communicated by You unless expressly agreed. b. Any arrangements, understandings, or agreements regarding the Licensed Material not stated herein are separate from and independent of the terms and conditions of this Public License. Section 8 -- Interpretation. a. For the avoidance of doubt, this Public License does not, and shall not be interpreted to, reduce, limit, restrict, or impose conditions on any use of the Licensed Material that could lawfully be made without permission under this Public License. b. To the extent possible, if any provision of this Public License is deemed unenforceable, it shall be automatically reformed to the minimum extent necessary to make it enforceable. If the provision cannot be reformed, it shall be severed from this Public License without affecting the enforceability of the remaining terms and conditions. c. No term or condition of this Public License will be waived and no failure to comply consented to unless expressly agreed to by the Licensor. d. Nothing in this Public License constitutes or may be interpreted as a limitation upon, or waiver of, any privileges and immunities that apply to the Licensor or You, including from the legal processes of any jurisdiction or authority. ======================================================================= Creative Commons is not a party to its public licenses. Notwithstanding, Creative Commons may elect to apply one of its public licenses to material it publishes and in those instances will be considered the "Licensor." Except for the limited purpose of indicating that material is shared under a Creative Commons public license or as otherwise permitted by the Creative Commons policies published at creativecommons.org/policies, Creative Commons does not authorize the use of the trademark "Creative Commons" or any other trademark or logo of Creative Commons without its prior written consent including, without limitation, in connection with any unauthorized modifications to any of its public licenses or any other arrangements, understandings, or agreements concerning use of licensed material. For the avoidance of doubt, this paragraph does not form part of the public licenses. Creative Commons may be contacted at creativecommons.org.

-

---------------------------------------------------------------------------------

-

-----------------------Web Background Synchronization------------------------------

-

-Web Background Synchronization Specification

-Portions of spec © by W3C

-

-W3C Community Final Specification Agreement 

-To secure commitments from participants for the full text of a Community or Business Group Report, the group may call for voluntary commitments to the following terms; a "summary" is 

-available. See also the related "W3C Community Contributor License Agreement".

-1. The Purpose of this Agreement.

-This Agreement sets forth the terms under which I make certain copyright and patent rights available to you for your implementation of the Specification. 

-Any other capitalized terms not specifically defined herein have the same meaning as those terms have in the "W3C Patent Policy", and if not defined there, in the "W3C Process Document".

-2. Copyrights. 

-2.1. Copyright Grant. I grant to you a perpetual (for the duration of the applicable copyright), worldwide, non-exclusive, no-charge, royalty-free, copyright license, without any obligation for accounting to me, to reproduce, prepare derivative works of, publicly display, publicly perform, sublicense, distribute, and implement the Specification to the full extent of my copyright interest in the Specification. 

-2.2. Attribution. As a condition of the copyright grant, you must include an attribution to the Specification in any derivative work you make based on the Specification. That attribution must include, at minimum, the Specification name and version number.

-3. Patents. 

-3.1. Patent Licensing Commitment. I agree to license my Essential Claims under the W3C Community RF Licensing Requirements. This requirement includes Essential Claims that I own and any that I have the right to license without obligation of payment or other consideration to an unrelated third party. W3C Community RF Licensing Requirements obligations made concerning the Specification and described in this policy are binding on me for the life of the patents in question and encumber the patents containing Essential Claims, regardless of changes in participation status or W3C Membership. I also agree to license my Essential Claims under the W3C Community RF Licensing Requirements in derivative works of the Specification so long as all normative portions of the Specification are maintained and that this licensing commitment does not extend to any portion of the derivative work that was not included in the Specification.

-3.2. Optional, Additional Patent Grant. In addition to the provisions of Section 3.1, I may also, at my option, make certain intellectual property rights infringed by implementations of the Specification, including Essential Claims, available by providing those terms via the W3C Web site.

-4. No Other Rights. Except as specifically set forth in this Agreement, no other express or implied patent, trademark, copyright, or other property rights are granted under this Agreement, including by implication, waiver, or estoppel.

-5. Antitrust Compliance. I acknowledge that I may compete with other participants, that I am under no obligation to implement the Specification, that each participant is free to develop competing technologies and standards, and that each party is free to license its patent rights to third parties, including for the purpose of enabling competing technologies and standards.

-6. Non-Circumvention. I agree that I will not intentionally take or willfully assist any third party to take any action for the purpose of circumventing my obligations under this Agreement.

-7. Transition to W3C Recommendation Track. The Specification developed by the Project may transition to the W3C Recommendation Track. The W3C Team is responsible for notifying me that a Corresponding Working Group has been chartered. I have no obligation to join the Corresponding Working Group. If the Specification developed by the Project transitions to the W3C Recommendation Track, the following terms apply: 

-7.1. If I join the Corresponding Working Group. If I join the Corresponding Working Group, I will be subject to all W3C rules, obligations, licensing commitments, and policies that govern that Corresponding Working Group.

-7.2. If I Do Not Join the Corresponding Working Group. 

-7.2.1. Licensing Obligations to Resulting Specification. If I do not join the Corresponding Working Group, I agree to offer patent licenses according to the W3C Royalty-Free licensing requirements described in Section 5 of the W3C Patent Policy for the portions of the Specification included in the resulting Recommendation. This licensing commitment does not extend to any portion of an implementation of the Recommendation that was not included in the Specification. This licensing commitment may not be revoked but may be modified through the exclusion process defined in Section 4 of the W3C Patent Policy. I am not required to join the Corresponding Working Group to exclude patents from the W3C Royalty-Free licensing commitment, but must otherwise follow the normal exclusion procedures defined by the W3C Patent Policy. The W3C Team will notify me of any Call for Exclusion in the Corresponding Working Group as set forth in Section 4.5 of the W3C Patent Policy.

-7.2.2. No Disclosure Obligation. If I do not join the Corresponding Working Group, I have no patent disclosure obligations outside of those set forth in Section 6 of the W3C Patent Policy.

-8. Conflict of Interest. I will disclose significant relationships when those relationships might reasonably be perceived as creating a conflict of interest with my role. I will notify W3C of any change in my affiliation using W3C-provided mechanisms.

-9. Representations, Warranties and Disclaimers. I represent and warrant that I am legally entitled to grant the rights and promises set forth in this Agreement. IN ALL OTHER RESPECTS THE SPECIFICATION IS PROVIDED “AS IS.” The entire risk as to implementing or otherwise using the Specification is assumed by the implementer and user. Except as stated herein, I expressly disclaim any warranties (express, implied, or otherwise), including implied warranties of merchantability, non-infringement, fitness for a particular purpose, or title, related to the Specification. IN NO EVENT WILL ANY PARTY BE LIABLE TO ANY OTHER PARTY FOR LOST PROFITS OR ANY FORM OF INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER FROM ANY CAUSES OF ACTION OF ANY KIND WITH RESPECT TO THIS AGREEMENT, WHETHER BASED ON BREACH OF CONTRACT, TORT (INCLUDING NEGLIGENCE), OR OTHERWISE, AND WHETHER OR NOT THE OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. All of my obligations under Section 3 regarding the transfer, successors in interest, or assignment of Granted Claims will be satisfied if I notify the transferee or assignee of any patent that I know contains Granted Claims of the obligations under Section 3. Nothing in this Agreement requires me to undertake a patent search.

-10. Definitions. 

-10.1. Agreement. “Agreement” means this W3C Community Final Specification Agreement.

-10.2. Corresponding Working Group. “Corresponding Working Group” is a W3C Working Group that is chartered to develop a Recommendation, as defined in the W3C Process Document, that takes the Specification as an input.

-10.3. Essential Claims. “Essential Claims” shall mean all claims in any patent or patent application in any jurisdiction in the world that would necessarily be infringed by implementation of the Specification. A claim is necessarily infringed hereunder only when it is not possible to avoid infringing it because there is no non-infringing alternative for implementing the normative portions of the Specification. Existence of a non-infringing alternative shall be judged based on the state of the art at the time of the publication of the Specification. The following are expressly excluded from and shall not be deemed to constitute Essential Claims: 

-10.3.1. any claims other than as set forth above even if contained in the same patent as Essential Claims; and

-10.3.2. claims which would be infringed only by: 

-portions of an implementation that are not specified in the normative portions of the Specification, or

-enabling technologies that may be necessary to make or use any product or portion thereof that complies with the Specification and are not themselves expressly set forth in the Specification (e.g., semiconductor manufacturing technology, compiler technology, object-oriented technology, basic operating system technology, and the like); or

-the implementation of technology developed elsewhere and merely incorporated by reference in the body of the Specification.

-10.3.3. design patents and design registrations.

-For purposes of this definition, the normative portions of the Specification shall be deemed to include only architectural and interoperability requirements. Optional features in the RFC 2119 sense are considered normative unless they are specifically identified as informative. Implementation examples or any other material that merely illustrate the requirements of the Specification are informative, rather than normative.

-10.4. I, Me, or My. “I,” “me,” or “my” refers to the signatory.

-10.5 Project. “Project” means the W3C Community Group or Business Group for which I executed this Agreement.

-10.6. Specification. “Specification” means the Specification identified by the Project as the target of this agreement in a call for Final Specification Commitments. W3C shall provide the authoritative mechanisms for the identification of this Specification.

-10.7. W3C Community RF Licensing Requirements. “W3C Community RF Licensing Requirements” license shall mean a non-assignable, non-sublicensable license to make, have made, use, sell, have sold, offer to sell, import, and distribute and dispose of implementations of the Specification that: 

-10.7.1. shall be available to all, worldwide, whether or not they are W3C Members;

-10.7.2. shall extend to all Essential Claims owned or controlled by me;

-10.7.3. may be limited to implementations of the Specification, and to what is required by the Specification;

-10.7.4. may be conditioned on a grant of a reciprocal RF license (as defined in this policy) to all Essential Claims owned or controlled by the licensee. A reciprocal license may be required to be available to all, and a reciprocal license may itself be conditioned on a further reciprocal license from all.

-10.7.5. may not be conditioned on payment of royalties, fees or other consideration;

-10.7.6. may be suspended with respect to any licensee when licensor issued by licensee for infringement of claims essential to implement the Specification or any W3C Recommendation;

-10.7.7. may not impose any further conditions or restrictions on the use of any technology, intellectual property rights, or other restrictions on behavior of the licensee, but may include reasonable, customary terms relating to operation or maintenance of the license relationship such as the following: choice of law and dispute resolution;

-10.7.8. shall not be considered accepted by an implementer who manifests an intent not to accept the terms of the W3C Community RF Licensing Requirements license as offered by the licensor.

-10.7.9. The RF license conforming to the requirements in this policy shall be made available by the licensor as long as the Specification is in effect. The term of such license shall be for the life of the patents in question.

-I am encouraged to provide a contact from which licensing information can be obtained and other relevant licensing information. Any such information will be made publicly available. 

-10.8. You or Your. “You,” “you,” or “your” means any person or entity who exercises copyright or patent rights granted under this Agreement, and any person that person or entity controls.

-

--------------------------------------------------------------------------------------

-

-------------------- WebGL -----------------------------

-Copyright (c) 2018 The Khronos Group Inc.

-

-Permission is hereby granted, free of charge, to any person obtaining a

-copy of this software and/or associated documentation files (the

-"Materials"), to deal in the Materials without restriction, including

-without limitation the rights to use, copy, modify, merge, publish,

-distribute, sublicense, and/or sell copies of the Materials, and to

-permit persons to whom the Materials are furnished to do so, subject to

-the following conditions:

-

-The above copyright notice and this permission notice shall be included

-in all copies or substantial portions of the Materials.

-

-THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,

-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF

-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.

-IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY

-CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,

-TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE

-MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.

-------------------------------------------------------

-

-------------- End of ThirdPartyNotices ------------------------------------------- */

-

+/*!----------------- TypeScript ThirdPartyNotices -------------------------------------------------------
+
+The TypeScript software incorporates third party material from the projects listed below. The original copyright notice and the license under which Microsoft received such third party material are set forth below. Microsoft reserves all other rights not expressly granted, whether by implication, estoppel or otherwise.
+
+---------------------------------------------
+Third Party Code Components
+--------------------------------------------
+
+------------------- DefinitelyTyped --------------------
+This file is based on or incorporates material from the projects listed below (collectively "Third Party Code"). Microsoft is not the original author of the Third Party Code. The original copyright notice and the license, under which Microsoft received such Third Party Code, are set forth below. Such licenses and notices are provided for informational purposes only. Microsoft, not the third party, licenses the Third Party Code to you under the terms set forth in the EULA for the Microsoft Product. Microsoft reserves all other rights not expressly granted under this agreement, whether by implication, estoppel or otherwise.
+DefinitelyTyped
+This project is licensed under the MIT license. Copyrights are respective of each contributor listed at the beginning of each definition file. Provided for Informational Purposes Only
+
+MIT License
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the ""Software""), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+--------------------------------------------------------------------------------------
+
+------------------- Unicode --------------------
+UNICODE, INC. LICENSE AGREEMENT - DATA FILES AND SOFTWARE
+
+Unicode Data Files include all data files under the directories
+http://www.unicode.org/Public/, http://www.unicode.org/reports/,
+http://www.unicode.org/cldr/data/, http://source.icu-project.org/repos/icu/, and
+http://www.unicode.org/utility/trac/browser/.
+
+Unicode Data Files do not include PDF online code charts under the
+directory http://www.unicode.org/Public/.
+
+Software includes any source code published in the Unicode Standard
+or under the directories
+http://www.unicode.org/Public/, http://www.unicode.org/reports/,
+http://www.unicode.org/cldr/data/, http://source.icu-project.org/repos/icu/, and
+http://www.unicode.org/utility/trac/browser/.
+
+NOTICE TO USER: Carefully read the following legal agreement.
+BY DOWNLOADING, INSTALLING, COPYING OR OTHERWISE USING UNICODE INC.'S
+DATA FILES ("DATA FILES"), AND/OR SOFTWARE ("SOFTWARE"),
+YOU UNEQUIVOCALLY ACCEPT, AND AGREE TO BE BOUND BY, ALL OF THE
+TERMS AND CONDITIONS OF THIS AGREEMENT.
+IF YOU DO NOT AGREE, DO NOT DOWNLOAD, INSTALL, COPY, DISTRIBUTE OR USE
+THE DATA FILES OR SOFTWARE.
+
+COPYRIGHT AND PERMISSION NOTICE
+
+Copyright (c) 1991-2017 Unicode, Inc. All rights reserved.
+Distributed under the Terms of Use in http://www.unicode.org/copyright.html.
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of the Unicode data files and any associated documentation
+(the "Data Files") or Unicode software and any associated documentation
+(the "Software") to deal in the Data Files or Software
+without restriction, including without limitation the rights to use,
+copy, modify, merge, publish, distribute, and/or sell copies of
+the Data Files or Software, and to permit persons to whom the Data Files
+or Software are furnished to do so, provided that either
+(a) this copyright and permission notice appear with all copies
+of the Data Files or Software, or
+(b) this copyright and permission notice appear in associated
+Documentation.
+
+THE DATA FILES AND SOFTWARE ARE PROVIDED "AS IS", WITHOUT WARRANTY OF
+ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT OF THIRD PARTY RIGHTS.
+IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS
+NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL
+DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+PERFORMANCE OF THE DATA FILES OR SOFTWARE.
+
+Except as contained in this notice, the name of a copyright holder
+shall not be used in advertising or otherwise to promote the sale,
+use or other dealings in these Data Files or Software without prior
+written authorization of the copyright holder.
+-------------------------------------------------------------------------------------
+
+-------------------Document Object Model-----------------------------
+DOM 
+
+W3C License
+This work is being provided by the copyright holders under the following license.
+By obtaining and/or copying this work, you (the licensee) agree that you have read, understood, and will comply with the following terms and conditions.
+Permission to copy, modify, and distribute this work, with or without modification, for any purpose and without fee or royalty is hereby granted, provided that you include the following 
+on ALL copies of the work or portions thereof, including modifications:
+* The full text of this NOTICE in a location viewable to users of the redistributed or derivative work.
+* Any pre-existing intellectual property disclaimers, notices, or terms and conditions. If none exist, the W3C Software and Document Short Notice should be included.
+* Notice of any changes or modifications, through a copyright statement on the new code or document such as "This software or document includes material copied from or derived 
+from [title and URI of the W3C document]. Copyright © [YEAR] W3C® (MIT, ERCIM, Keio, Beihang)." 
+Disclaimers
+THIS WORK IS PROVIDED "AS IS," AND COPYRIGHT HOLDERS MAKE NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO, WARRANTIES OF MERCHANTABILITY OR 
+FITNESS FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF THE SOFTWARE OR DOCUMENT WILL NOT INFRINGE ANY THIRD PARTY PATENTS, COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS.
+COPYRIGHT HOLDERS WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF ANY USE OF THE SOFTWARE OR DOCUMENT.
+The name and trademarks of copyright holders may NOT be used in advertising or publicity pertaining to the work without specific, written prior permission. 
+Title to copyright in this work will at all times remain with copyright holders.
+
+---------
+
+DOM
+Copyright © 2018 WHATWG (Apple, Google, Mozilla, Microsoft). This work is licensed under a Creative Commons Attribution 4.0 International License: Attribution 4.0 International 
+======================================================================= 
+Creative Commons Corporation ("Creative Commons") is not a law firm and does not provide legal services or legal advice. Distribution of Creative Commons public licenses does not create a lawyer-client or other relationship. Creative Commons makes its licenses and related information available on an "as-is" basis. Creative Commons gives no warranties regarding its licenses, any material licensed under their terms and conditions, or any related information. Creative Commons disclaims all liability for damages resulting from their use to the fullest extent possible. Using Creative Commons Public Licenses Creative Commons public licenses provide a standard set of terms and conditions that creators and other rights holders may use to share original works of authorship and other material subject to copyright and certain other rights specified in the public license below. The following considerations are for informational purposes only, are not exhaustive, and do not form part of our licenses. Considerations for licensors: Our public licenses are intended for use by those authorized to give the public permission to use material in ways otherwise restricted by copyright and certain other rights. Our licenses are irrevocable. Licensors should read and understand the terms and conditions of the license they choose before applying it. Licensors should also secure all rights necessary before applying our licenses so that the public can reuse the material as expected. Licensors should clearly mark any material not subject to the license. This includes other CC- licensed material, or material used under an exception or limitation to copyright. More considerations for licensors:
+
+wiki.creativecommons.org/Considerations_for_licensors Considerations for the public: By using one of our public licenses, a licensor grants the public permission to use the licensed material under specified terms and conditions. If the licensor's permission is not necessary for any reason--for example, because of any applicable exception or limitation to copyright--then that use is not regulated by the license. Our licenses grant only permissions under copyright and certain other rights that a licensor has authority to grant. Use of the licensed material may still be restricted for other reasons, including because others have copyright or other rights in the material. A licensor may make special requests, such as asking that all changes be marked or described. Although not required by our licenses, you are encouraged to respect those requests where reasonable. More_considerations for the public: wiki.creativecommons.org/Considerations_for_licensees ======================================================================= 
+Creative Commons Attribution 4.0 International Public License By exercising the Licensed Rights (defined below), You accept and agree to be bound by the terms and conditions of this Creative Commons Attribution 4.0 International Public License ("Public License"). To the extent this Public License may be interpreted as a contract, You are granted the Licensed Rights in consideration of Your acceptance of these terms and conditions, and the Licensor grants You such rights in consideration of benefits the Licensor receives from making the Licensed Material available under these terms and conditions. Section 1 -- Definitions. a. Adapted Material means material subject to Copyright and Similar Rights that is derived from or based upon the Licensed Material and in which the Licensed Material is translated, altered, arranged, transformed, or otherwise modified in a manner requiring permission under the Copyright and Similar Rights held by the Licensor. For purposes of this Public License, where the Licensed Material is a musical work, performance, or sound recording, Adapted Material is always produced where the Licensed Material is synched in timed relation with a moving image. b. Adapter's License means the license You apply to Your Copyright and Similar Rights in Your contributions to Adapted Material in accordance with the terms and conditions of this Public License. c. Copyright and Similar Rights means copyright and/or similar rights closely related to copyright including, without limitation, performance, broadcast, sound recording, and Sui Generis Database Rights, without regard to how the rights are labeled or categorized. For purposes of this Public License, the rights specified in Section 2(b)(1)-(2) are not Copyright and Similar Rights. d. Effective Technological Measures means those measures that, in the absence of proper authority, may not be circumvented under laws fulfilling obligations under Article 11 of the WIPO Copyright Treaty adopted on December 20, 1996, and/or similar international agreements. e. Exceptions and Limitations means fair use, fair dealing, and/or any other exception or limitation to Copyright and Similar Rights that applies to Your use of the Licensed Material. f. Licensed Material means the artistic or literary work, database, or other material to which the Licensor applied this Public License. g. Licensed Rights means the rights granted to You subject to the terms and conditions of this Public License, which are limited to all Copyright and Similar Rights that apply to Your use of the Licensed Material and that the Licensor has authority to license. h. Licensor means the individual(s) or entity(ies) granting rights under this Public License. i. Share means to provide material to the public by any means or process that requires permission under the Licensed Rights, such as reproduction, public display, public performance, distribution, dissemination, communication, or importation, and to make material available to the public including in ways that members of the public may access the material from a place and at a time individually chosen by them. j. Sui Generis Database Rights means rights other than copyright resulting from Directive 96/9/EC of the European Parliament and of the Council of 11 March 1996 on the legal protection of databases, as amended and/or succeeded, as well as other essentially equivalent rights anywhere in the world. k. You means the individual or entity exercising the Licensed Rights under this Public License. Your has a corresponding meaning. Section 2 -- Scope. a. License grant. 1. Subject to the terms and conditions of this Public License, the Licensor hereby grants You a worldwide, royalty-free, non-sublicensable, non-exclusive, irrevocable license to exercise the Licensed Rights in the Licensed Material to: a. reproduce and Share the Licensed Material, in whole or in part; and b. produce, reproduce, and Share Adapted Material. 2. Exceptions and Limitations. For the avoidance of doubt, where Exceptions and Limitations apply to Your use, this Public License does not apply, and You do not need to comply with its terms and conditions. 3. Term. The term of this Public License is specified in Section 6(a). 4. Media and formats; technical modifications allowed. The Licensor authorizes You to exercise the Licensed Rights in all media and formats whether now known or hereafter created, and to make technical modifications necessary to do so. The Licensor waives and/or agrees not to assert any right or authority to forbid You from making technical modifications necessary to exercise the Licensed Rights, including technical modifications necessary to circumvent Effective Technological Measures. For purposes of this Public License, simply making modifications authorized by this Section 2(a) (4) never produces Adapted Material. 5. Downstream recipients. a. Offer from the Licensor -- Licensed Material. Every recipient of the Licensed Material automatically receives an offer from the Licensor to exercise the Licensed Rights under the terms and conditions of this Public License. b. No downstream restrictions. You may not offer or impose any additional or different terms or conditions on, or apply any Effective Technological Measures to, the Licensed Material if doing so restricts exercise of the Licensed Rights by any recipient of the Licensed Material. 6. No endorsement. Nothing in this Public License constitutes or may be construed as permission to assert or imply that You are, or that Your use of the Licensed Material is, connected with, or sponsored, endorsed, or granted official status by, the Licensor or others designated to receive attribution as provided in Section 3(a)(1)(A)(i). b. Other rights. 1. Moral rights, such as the right of integrity, are not licensed under this Public License, nor are publicity, privacy, and/or other similar personality rights; however, to the extent possible, the Licensor waives and/or agrees not to assert any such rights held by the Licensor to the limited extent necessary to allow You to exercise the Licensed Rights, but not otherwise. 2. Patent and trademark rights are not licensed under this Public License. 3. To the extent possible, the Licensor waives any right to collect royalties from You for the exercise of the Licensed Rights, whether directly or through a collecting society under any voluntary or waivable statutory or compulsory licensing scheme. In all other cases the Licensor expressly reserves any right to collect such royalties. Section 3 -- License Conditions. Your exercise of the Licensed Rights is expressly made subject to the following conditions. a. Attribution. 1. If You Share the Licensed Material (including in modified form), You must: a. retain the following if it is supplied by the Licensor with the Licensed Material: i. identification of the creator(s) of the Licensed Material and any others designated to receive attribution, in any reasonable manner requested by the Licensor (including by pseudonym if designated); ii. a copyright notice; iii. a notice that refers to this Public License; iv. a notice that refers to the disclaimer of warranties; v. a URI or hyperlink to the Licensed Material to the extent reasonably practicable; b. indicate if You modified the Licensed Material and retain an indication of any previous modifications; and c. indicate the Licensed Material is licensed under this Public License, and include the text of, or the URI or hyperlink to, this Public License. 2. You may satisfy the conditions in Section 3(a)(1) in any reasonable manner based on the medium, means, and context in which You Share the Licensed Material. For example, it may be reasonable to satisfy the conditions by providing a URI or hyperlink to a resource that includes the required information. 3. If requested by the Licensor, You must remove any of the information required by Section 3(a)(1)(A) to the extent reasonably practicable. 4. If You Share Adapted Material You produce, the Adapter's License You apply must not prevent recipients of the Adapted Material from complying with this Public License. Section 4 -- Sui Generis Database Rights. Where the Licensed Rights include Sui Generis Database Rights that apply to Your use of the Licensed Material: a. for the avoidance of doubt, Section 2(a)(1) grants You the right to extract, reuse, reproduce, and Share all or a substantial portion of the contents of the database; b. if You include all or a substantial portion of the database contents in a database in which You have Sui Generis Database Rights, then the database in which You have Sui Generis Database Rights (but not its individual contents) is Adapted Material; and c. You must comply with the conditions in Section 3(a) if You Share all or a substantial portion of the contents of the database. For the avoidance of doubt, this Section 4 supplements and does not replace Your obligations under this Public License where the Licensed Rights include other Copyright and Similar Rights. Section 5 -- Disclaimer of Warranties and Limitation of Liability. a. UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS, IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, WITHOUT LIMITATION, WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS, ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR NOT KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF WARRANTIES ARE NOT ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU. b. TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION, NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT, INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES, COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR IN PART, THIS LIMITATION MAY NOT APPLY TO YOU. c. The disclaimer of warranties and limitation of liability provided above shall be interpreted in a manner that, to the extent possible, most closely approximates an absolute disclaimer and waiver of all liability. Section 6 -- Term and Termination. a. This Public License applies for the term of the Copyright and Similar Rights licensed here. However, if You fail to comply with this Public License, then Your rights under this Public License terminate automatically. b. Where Your right to use the Licensed Material has terminated under Section 6(a), it reinstates: 1. automatically as of the date the violation is cured, provided it is cured within 30 days of Your discovery of the violation; or 2. upon express reinstatement by the Licensor. For the avoidance of doubt, this Section 6(b) does not affect any right the Licensor may have to seek remedies for Your violations of this Public License. c. For the avoidance of doubt, the Licensor may also offer the Licensed Material under separate terms or conditions or stop distributing the Licensed Material at any time; however, doing so will not terminate this Public License. d. Sections 1, 5, 6, 7, and 8 survive termination of this Public License. Section 7 -- Other Terms and Conditions. a. The Licensor shall not be bound by any additional or different terms or conditions communicated by You unless expressly agreed. b. Any arrangements, understandings, or agreements regarding the Licensed Material not stated herein are separate from and independent of the terms and conditions of this Public License. Section 8 -- Interpretation. a. For the avoidance of doubt, this Public License does not, and shall not be interpreted to, reduce, limit, restrict, or impose conditions on any use of the Licensed Material that could lawfully be made without permission under this Public License. b. To the extent possible, if any provision of this Public License is deemed unenforceable, it shall be automatically reformed to the minimum extent necessary to make it enforceable. If the provision cannot be reformed, it shall be severed from this Public License without affecting the enforceability of the remaining terms and conditions. c. No term or condition of this Public License will be waived and no failure to comply consented to unless expressly agreed to by the Licensor. d. Nothing in this Public License constitutes or may be interpreted as a limitation upon, or waiver of, any privileges and immunities that apply to the Licensor or You, including from the legal processes of any jurisdiction or authority. ======================================================================= Creative Commons is not a party to its public licenses. Notwithstanding, Creative Commons may elect to apply one of its public licenses to material it publishes and in those instances will be considered the "Licensor." Except for the limited purpose of indicating that material is shared under a Creative Commons public license or as otherwise permitted by the Creative Commons policies published at creativecommons.org/policies, Creative Commons does not authorize the use of the trademark "Creative Commons" or any other trademark or logo of Creative Commons without its prior written consent including, without limitation, in connection with any unauthorized modifications to any of its public licenses or any other arrangements, understandings, or agreements concerning use of licensed material. For the avoidance of doubt, this paragraph does not form part of the public licenses. Creative Commons may be contacted at creativecommons.org.
+
+--------------------------------------------------------------------------------
+
+----------------------Web Background Synchronization------------------------------
+
+Web Background Synchronization Specification
+Portions of spec © by W3C
+
+W3C Community Final Specification Agreement 
+To secure commitments from participants for the full text of a Community or Business Group Report, the group may call for voluntary commitments to the following terms; a "summary" is 
+available. See also the related "W3C Community Contributor License Agreement".
+1. The Purpose of this Agreement.
+This Agreement sets forth the terms under which I make certain copyright and patent rights available to you for your implementation of the Specification. 
+Any other capitalized terms not specifically defined herein have the same meaning as those terms have in the "W3C Patent Policy", and if not defined there, in the "W3C Process Document".
+2. Copyrights. 
+2.1. Copyright Grant. I grant to you a perpetual (for the duration of the applicable copyright), worldwide, non-exclusive, no-charge, royalty-free, copyright license, without any obligation for accounting to me, to reproduce, prepare derivative works of, publicly display, publicly perform, sublicense, distribute, and implement the Specification to the full extent of my copyright interest in the Specification. 
+2.2. Attribution. As a condition of the copyright grant, you must include an attribution to the Specification in any derivative work you make based on the Specification. That attribution must include, at minimum, the Specification name and version number.
+3. Patents. 
+3.1. Patent Licensing Commitment. I agree to license my Essential Claims under the W3C Community RF Licensing Requirements. This requirement includes Essential Claims that I own and any that I have the right to license without obligation of payment or other consideration to an unrelated third party. W3C Community RF Licensing Requirements obligations made concerning the Specification and described in this policy are binding on me for the life of the patents in question and encumber the patents containing Essential Claims, regardless of changes in participation status or W3C Membership. I also agree to license my Essential Claims under the W3C Community RF Licensing Requirements in derivative works of the Specification so long as all normative portions of the Specification are maintained and that this licensing commitment does not extend to any portion of the derivative work that was not included in the Specification.
+3.2. Optional, Additional Patent Grant. In addition to the provisions of Section 3.1, I may also, at my option, make certain intellectual property rights infringed by implementations of the Specification, including Essential Claims, available by providing those terms via the W3C Web site.
+4. No Other Rights. Except as specifically set forth in this Agreement, no other express or implied patent, trademark, copyright, or other property rights are granted under this Agreement, including by implication, waiver, or estoppel.
+5. Antitrust Compliance. I acknowledge that I may compete with other participants, that I am under no obligation to implement the Specification, that each participant is free to develop competing technologies and standards, and that each party is free to license its patent rights to third parties, including for the purpose of enabling competing technologies and standards.
+6. Non-Circumvention. I agree that I will not intentionally take or willfully assist any third party to take any action for the purpose of circumventing my obligations under this Agreement.
+7. Transition to W3C Recommendation Track. The Specification developed by the Project may transition to the W3C Recommendation Track. The W3C Team is responsible for notifying me that a Corresponding Working Group has been chartered. I have no obligation to join the Corresponding Working Group. If the Specification developed by the Project transitions to the W3C Recommendation Track, the following terms apply: 
+7.1. If I join the Corresponding Working Group. If I join the Corresponding Working Group, I will be subject to all W3C rules, obligations, licensing commitments, and policies that govern that Corresponding Working Group.
+7.2. If I Do Not Join the Corresponding Working Group. 
+7.2.1. Licensing Obligations to Resulting Specification. If I do not join the Corresponding Working Group, I agree to offer patent licenses according to the W3C Royalty-Free licensing requirements described in Section 5 of the W3C Patent Policy for the portions of the Specification included in the resulting Recommendation. This licensing commitment does not extend to any portion of an implementation of the Recommendation that was not included in the Specification. This licensing commitment may not be revoked but may be modified through the exclusion process defined in Section 4 of the W3C Patent Policy. I am not required to join the Corresponding Working Group to exclude patents from the W3C Royalty-Free licensing commitment, but must otherwise follow the normal exclusion procedures defined by the W3C Patent Policy. The W3C Team will notify me of any Call for Exclusion in the Corresponding Working Group as set forth in Section 4.5 of the W3C Patent Policy.
+7.2.2. No Disclosure Obligation. If I do not join the Corresponding Working Group, I have no patent disclosure obligations outside of those set forth in Section 6 of the W3C Patent Policy.
+8. Conflict of Interest. I will disclose significant relationships when those relationships might reasonably be perceived as creating a conflict of interest with my role. I will notify W3C of any change in my affiliation using W3C-provided mechanisms.
+9. Representations, Warranties and Disclaimers. I represent and warrant that I am legally entitled to grant the rights and promises set forth in this Agreement. IN ALL OTHER RESPECTS THE SPECIFICATION IS PROVIDED “AS IS.” The entire risk as to implementing or otherwise using the Specification is assumed by the implementer and user. Except as stated herein, I expressly disclaim any warranties (express, implied, or otherwise), including implied warranties of merchantability, non-infringement, fitness for a particular purpose, or title, related to the Specification. IN NO EVENT WILL ANY PARTY BE LIABLE TO ANY OTHER PARTY FOR LOST PROFITS OR ANY FORM OF INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER FROM ANY CAUSES OF ACTION OF ANY KIND WITH RESPECT TO THIS AGREEMENT, WHETHER BASED ON BREACH OF CONTRACT, TORT (INCLUDING NEGLIGENCE), OR OTHERWISE, AND WHETHER OR NOT THE OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. All of my obligations under Section 3 regarding the transfer, successors in interest, or assignment of Granted Claims will be satisfied if I notify the transferee or assignee of any patent that I know contains Granted Claims of the obligations under Section 3. Nothing in this Agreement requires me to undertake a patent search.
+10. Definitions. 
+10.1. Agreement. “Agreement” means this W3C Community Final Specification Agreement.
+10.2. Corresponding Working Group. “Corresponding Working Group” is a W3C Working Group that is chartered to develop a Recommendation, as defined in the W3C Process Document, that takes the Specification as an input.
+10.3. Essential Claims. “Essential Claims” shall mean all claims in any patent or patent application in any jurisdiction in the world that would necessarily be infringed by implementation of the Specification. A claim is necessarily infringed hereunder only when it is not possible to avoid infringing it because there is no non-infringing alternative for implementing the normative portions of the Specification. Existence of a non-infringing alternative shall be judged based on the state of the art at the time of the publication of the Specification. The following are expressly excluded from and shall not be deemed to constitute Essential Claims: 
+10.3.1. any claims other than as set forth above even if contained in the same patent as Essential Claims; and
+10.3.2. claims which would be infringed only by: 
+portions of an implementation that are not specified in the normative portions of the Specification, or
+enabling technologies that may be necessary to make or use any product or portion thereof that complies with the Specification and are not themselves expressly set forth in the Specification (e.g., semiconductor manufacturing technology, compiler technology, object-oriented technology, basic operating system technology, and the like); or
+the implementation of technology developed elsewhere and merely incorporated by reference in the body of the Specification.
+10.3.3. design patents and design registrations.
+For purposes of this definition, the normative portions of the Specification shall be deemed to include only architectural and interoperability requirements. Optional features in the RFC 2119 sense are considered normative unless they are specifically identified as informative. Implementation examples or any other material that merely illustrate the requirements of the Specification are informative, rather than normative.
+10.4. I, Me, or My. “I,” “me,” or “my” refers to the signatory.
+10.5 Project. “Project” means the W3C Community Group or Business Group for which I executed this Agreement.
+10.6. Specification. “Specification” means the Specification identified by the Project as the target of this agreement in a call for Final Specification Commitments. W3C shall provide the authoritative mechanisms for the identification of this Specification.
+10.7. W3C Community RF Licensing Requirements. “W3C Community RF Licensing Requirements” license shall mean a non-assignable, non-sublicensable license to make, have made, use, sell, have sold, offer to sell, import, and distribute and dispose of implementations of the Specification that: 
+10.7.1. shall be available to all, worldwide, whether or not they are W3C Members;
+10.7.2. shall extend to all Essential Claims owned or controlled by me;
+10.7.3. may be limited to implementations of the Specification, and to what is required by the Specification;
+10.7.4. may be conditioned on a grant of a reciprocal RF license (as defined in this policy) to all Essential Claims owned or controlled by the licensee. A reciprocal license may be required to be available to all, and a reciprocal license may itself be conditioned on a further reciprocal license from all.
+10.7.5. may not be conditioned on payment of royalties, fees or other consideration;
+10.7.6. may be suspended with respect to any licensee when licensor issued by licensee for infringement of claims essential to implement the Specification or any W3C Recommendation;
+10.7.7. may not impose any further conditions or restrictions on the use of any technology, intellectual property rights, or other restrictions on behavior of the licensee, but may include reasonable, customary terms relating to operation or maintenance of the license relationship such as the following: choice of law and dispute resolution;
+10.7.8. shall not be considered accepted by an implementer who manifests an intent not to accept the terms of the W3C Community RF Licensing Requirements license as offered by the licensor.
+10.7.9. The RF license conforming to the requirements in this policy shall be made available by the licensor as long as the Specification is in effect. The term of such license shall be for the life of the patents in question.
+I am encouraged to provide a contact from which licensing information can be obtained and other relevant licensing information. Any such information will be made publicly available. 
+10.8. You or Your. “You,” “you,” or “your” means any person or entity who exercises copyright or patent rights granted under this Agreement, and any person that person or entity controls.
+
+-------------------------------------------------------------------------------------
+
+------------------- WebGL -----------------------------
+Copyright (c) 2018 The Khronos Group Inc.
+
+Permission is hereby granted, free of charge, to any person obtaining a
+copy of this software and/or associated documentation files (the
+"Materials"), to deal in the Materials without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Materials, and to
+permit persons to whom the Materials are furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be included
+in all copies or substantial portions of the Materials.
+
+THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
+------------------------------------------------------
+
+------------- End of ThirdPartyNotices ------------------------------------------- */
+
diff --git a/src/cobalt/debug/remote/devtools/node_modules/typescript/bin/tsc b/src/third_party/devtools/node_modules/typescript/bin/tsc
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/typescript/bin/tsc
rename to src/third_party/devtools/node_modules/typescript/bin/tsc
diff --git a/src/cobalt/debug/remote/devtools/node_modules/typescript/bin/tsserver b/src/third_party/devtools/node_modules/typescript/bin/tsserver
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/typescript/bin/tsserver
rename to src/third_party/devtools/node_modules/typescript/bin/tsserver
diff --git a/src/cobalt/debug/remote/devtools/node_modules/typescript/lib/README.md b/src/third_party/devtools/node_modules/typescript/lib/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/typescript/lib/README.md
rename to src/third_party/devtools/node_modules/typescript/lib/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/typescript/lib/cancellationToken.js b/src/third_party/devtools/node_modules/typescript/lib/cancellationToken.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/typescript/lib/cancellationToken.js
rename to src/third_party/devtools/node_modules/typescript/lib/cancellationToken.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/typescript/lib/cs/diagnosticMessages.generated.json b/src/third_party/devtools/node_modules/typescript/lib/cs/diagnosticMessages.generated.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/typescript/lib/cs/diagnosticMessages.generated.json
rename to src/third_party/devtools/node_modules/typescript/lib/cs/diagnosticMessages.generated.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/typescript/lib/de/diagnosticMessages.generated.json b/src/third_party/devtools/node_modules/typescript/lib/de/diagnosticMessages.generated.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/typescript/lib/de/diagnosticMessages.generated.json
rename to src/third_party/devtools/node_modules/typescript/lib/de/diagnosticMessages.generated.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/typescript/lib/diagnosticMessages.generated.json b/src/third_party/devtools/node_modules/typescript/lib/diagnosticMessages.generated.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/typescript/lib/diagnosticMessages.generated.json
rename to src/third_party/devtools/node_modules/typescript/lib/diagnosticMessages.generated.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/typescript/lib/es/diagnosticMessages.generated.json b/src/third_party/devtools/node_modules/typescript/lib/es/diagnosticMessages.generated.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/typescript/lib/es/diagnosticMessages.generated.json
rename to src/third_party/devtools/node_modules/typescript/lib/es/diagnosticMessages.generated.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/typescript/lib/fr/diagnosticMessages.generated.json b/src/third_party/devtools/node_modules/typescript/lib/fr/diagnosticMessages.generated.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/typescript/lib/fr/diagnosticMessages.generated.json
rename to src/third_party/devtools/node_modules/typescript/lib/fr/diagnosticMessages.generated.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/typescript/lib/it/diagnosticMessages.generated.json b/src/third_party/devtools/node_modules/typescript/lib/it/diagnosticMessages.generated.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/typescript/lib/it/diagnosticMessages.generated.json
rename to src/third_party/devtools/node_modules/typescript/lib/it/diagnosticMessages.generated.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/typescript/lib/ja/diagnosticMessages.generated.json b/src/third_party/devtools/node_modules/typescript/lib/ja/diagnosticMessages.generated.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/typescript/lib/ja/diagnosticMessages.generated.json
rename to src/third_party/devtools/node_modules/typescript/lib/ja/diagnosticMessages.generated.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/typescript/lib/ko/diagnosticMessages.generated.json b/src/third_party/devtools/node_modules/typescript/lib/ko/diagnosticMessages.generated.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/typescript/lib/ko/diagnosticMessages.generated.json
rename to src/third_party/devtools/node_modules/typescript/lib/ko/diagnosticMessages.generated.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/typescript/lib/lib.d.ts b/src/third_party/devtools/node_modules/typescript/lib/lib.d.ts
similarity index 99%
rename from src/cobalt/debug/remote/devtools/node_modules/typescript/lib/lib.d.ts
rename to src/third_party/devtools/node_modules/typescript/lib/lib.d.ts
index 6b79c0a..38a1cc0 100644
--- a/src/cobalt/debug/remote/devtools/node_modules/typescript/lib/lib.d.ts
+++ b/src/third_party/devtools/node_modules/typescript/lib/lib.d.ts
@@ -15,10 +15,10 @@
 
 
 
-/// <reference no-default-lib="true"/>

+/// <reference no-default-lib="true"/>
 
 
-/// <reference lib="es5" />

-/// <reference lib="dom" />

-/// <reference lib="webworker.importscripts" />

-/// <reference lib="scripthost" />

+/// <reference lib="es5" />
+/// <reference lib="dom" />
+/// <reference lib="webworker.importscripts" />
+/// <reference lib="scripthost" />
diff --git a/src/cobalt/debug/remote/devtools/node_modules/typescript/lib/lib.dom.d.ts b/src/third_party/devtools/node_modules/typescript/lib/lib.dom.d.ts
similarity index 99%
rename from src/cobalt/debug/remote/devtools/node_modules/typescript/lib/lib.dom.d.ts
rename to src/third_party/devtools/node_modules/typescript/lib/lib.dom.d.ts
index a3e71f9..fdf506c 100644
--- a/src/cobalt/debug/remote/devtools/node_modules/typescript/lib/lib.dom.d.ts
+++ b/src/third_party/devtools/node_modules/typescript/lib/lib.dom.d.ts
@@ -15,7 +15,7 @@
 
 
 
-/// <reference no-default-lib="true"/>

+/// <reference no-default-lib="true"/>
 
 
 /////////////////////////////
@@ -4202,53 +4202,53 @@
 
 /** Any web page loaded in the browser and serves as an entry point into the web page's content, which is the DOM tree. */
 interface Document extends Node, NonElementParentNode, DocumentOrShadowRoot, ParentNode, XPathEvaluatorBase, GlobalEventHandlers, DocumentAndElementEventHandlers {
-    /**

-     * Sets or gets the URL for the current document.

+    /**
+     * Sets or gets the URL for the current document.
      */
     readonly URL: string;
-    /**

-     * Gets the object that has the focus when the parent document has focus.

+    /**
+     * Gets the object that has the focus when the parent document has focus.
      */
     readonly activeElement: Element | null;
-    /**

-     * Sets or gets the color of all active links in the document.

+    /**
+     * Sets or gets the color of all active links in the document.
      */
     /** @deprecated */
     alinkColor: string;
-    /**

-     * Returns a reference to the collection of elements contained by the object.

+    /**
+     * Returns a reference to the collection of elements contained by the object.
      */
     /** @deprecated */
     readonly all: HTMLAllCollection;
-    /**

-     * Retrieves a collection of all a objects that have a name and/or id property. Objects in this collection are in HTML source order.

+    /**
+     * Retrieves a collection of all a objects that have a name and/or id property. Objects in this collection are in HTML source order.
      */
     /** @deprecated */
     readonly anchors: HTMLCollectionOf<HTMLAnchorElement>;
-    /**

-     * Retrieves a collection of all applet objects in the document.

+    /**
+     * Retrieves a collection of all applet objects in the document.
      */
     /** @deprecated */
     readonly applets: HTMLCollectionOf<HTMLAppletElement>;
-    /**

-     * Deprecated. Sets or retrieves a value that indicates the background color behind the object.

+    /**
+     * Deprecated. Sets or retrieves a value that indicates the background color behind the object.
      */
     /** @deprecated */
     bgColor: string;
-    /**

-     * Specifies the beginning and end of the document body.

+    /**
+     * Specifies the beginning and end of the document body.
      */
     body: HTMLElement;
     /**
      * Returns document's encoding.
      */
     readonly characterSet: string;
-    /**

-     * Gets or sets the character set used to encode the object.

+    /**
+     * Gets or sets the character set used to encode the object.
      */
     readonly charset: string;
-    /**

-     * Gets a value that indicates whether standards-compliant mode is switched on for the object.

+    /**
+     * Gets a value that indicates whether standards-compliant mode is switched on for the object.
      */
     readonly compatMode: string;
     /**
@@ -4277,41 +4277,41 @@
      */
     readonly currentScript: HTMLOrSVGScriptElement | null;
     readonly defaultView: WindowProxy | null;
-    /**

-     * Sets or gets a value that indicates whether the document can be edited.

+    /**
+     * Sets or gets a value that indicates whether the document can be edited.
      */
     designMode: string;
-    /**

-     * Sets or retrieves a value that indicates the reading order of the object.

+    /**
+     * Sets or retrieves a value that indicates the reading order of the object.
      */
     dir: string;
-    /**

-     * Gets an object representing the document type declaration associated with the current document.

+    /**
+     * Gets an object representing the document type declaration associated with the current document.
      */
     readonly doctype: DocumentType | null;
-    /**

-     * Gets a reference to the root node of the document.

+    /**
+     * Gets a reference to the root node of the document.
      */
     readonly documentElement: HTMLElement;
     /**
      * Returns document's URL.
      */
     readonly documentURI: string;
-    /**

-     * Sets or gets the security domain of the document.

+    /**
+     * Sets or gets the security domain of the document.
      */
     domain: string;
-    /**

-     * Retrieves a collection of all embed objects in the document.

+    /**
+     * Retrieves a collection of all embed objects in the document.
      */
     readonly embeds: HTMLCollectionOf<HTMLEmbedElement>;
-    /**

-     * Sets or gets the foreground (text) color of the document.

+    /**
+     * Sets or gets the foreground (text) color of the document.
      */
     /** @deprecated */
     fgColor: string;
-    /**

-     * Retrieves a collection, in source order, of all form objects in the document.

+    /**
+     * Retrieves a collection, in source order, of all form objects in the document.
      */
     readonly forms: HTMLCollectionOf<HTMLFormElement>;
     /** @deprecated */
@@ -4326,42 +4326,42 @@
      */
     readonly head: HTMLHeadElement;
     readonly hidden: boolean;
-    /**

-     * Retrieves a collection, in source order, of img objects in the document.

+    /**
+     * Retrieves a collection, in source order, of img objects in the document.
      */
     readonly images: HTMLCollectionOf<HTMLImageElement>;
-    /**

-     * Gets the implementation object of the current document.

+    /**
+     * Gets the implementation object of the current document.
      */
     readonly implementation: DOMImplementation;
-    /**

-     * Returns the character encoding used to create the webpage that is loaded into the document object.

+    /**
+     * Returns the character encoding used to create the webpage that is loaded into the document object.
      */
     readonly inputEncoding: string;
-    /**

-     * Gets the date that the page was last modified, if the page supplies one.

+    /**
+     * Gets the date that the page was last modified, if the page supplies one.
      */
     readonly lastModified: string;
-    /**

-     * Sets or gets the color of the document links.

+    /**
+     * Sets or gets the color of the document links.
      */
     /** @deprecated */
     linkColor: string;
-    /**

-     * Retrieves a collection of all a objects that specify the href property and all area objects in the document.

+    /**
+     * Retrieves a collection of all a objects that specify the href property and all area objects in the document.
      */
     readonly links: HTMLCollectionOf<HTMLAnchorElement | HTMLAreaElement>;
-    /**

-     * Contains information about the current URL.

+    /**
+     * Contains information about the current URL.
      */
     location: Location;
     onfullscreenchange: ((this: Document, ev: Event) => any) | null;
     onfullscreenerror: ((this: Document, ev: Event) => any) | null;
     onpointerlockchange: ((this: Document, ev: Event) => any) | null;
     onpointerlockerror: ((this: Document, ev: Event) => any) | null;
-    /**

-     * Fires when the state of the object has changed.

-     * @param ev The event

+    /**
+     * Fires when the state of the object has changed.
+     * @param ev The event
      */
     onreadystatechange: ((this: Document, ev: ProgressEvent) => any) | null;
     onvisibilitychange: ((this: Document, ev: Event) => any) | null;
@@ -4373,27 +4373,27 @@
      * Return an HTMLCollection of the embed elements in the Document.
      */
     readonly plugins: HTMLCollectionOf<HTMLEmbedElement>;
-    /**

-     * Retrieves a value that indicates the current state of the object.

+    /**
+     * Retrieves a value that indicates the current state of the object.
      */
     readonly readyState: DocumentReadyState;
-    /**

-     * Gets the URL of the location that referred the user to the current page.

+    /**
+     * Gets the URL of the location that referred the user to the current page.
      */
     readonly referrer: string;
-    /**

-     * Retrieves a collection of all script objects in the document.

+    /**
+     * Retrieves a collection of all script objects in the document.
      */
     readonly scripts: HTMLCollectionOf<HTMLScriptElement>;
     readonly scrollingElement: Element | null;
     readonly timeline: DocumentTimeline;
-    /**

-     * Contains the title of the document.

+    /**
+     * Contains the title of the document.
      */
     title: string;
     readonly visibilityState: VisibilityState;
-    /**

-     * Sets or gets the color of the links that the user has visited.

+    /**
+     * Sets or gets the color of the links that the user has visited.
      */
     /** @deprecated */
     vlinkColor: string;
@@ -4410,13 +4410,13 @@
     caretRangeFromPoint(x: number, y: number): Range;
     /** @deprecated */
     clear(): void;
-    /**

-     * Closes an output stream and forces the sent data to display.

+    /**
+     * Closes an output stream and forces the sent data to display.
      */
     close(): void;
-    /**

-     * Creates an attribute object with a specified name.

-     * @param name String that sets the attribute object's name.

+    /**
+     * Creates an attribute object with a specified name.
+     * @param name String that sets the attribute object's name.
      */
     createAttribute(localName: string): Attr;
     createAttributeNS(namespace: string | null, qualifiedName: string): Attr;
@@ -4424,18 +4424,18 @@
      * Returns a CDATASection node whose data is data.
      */
     createCDATASection(data: string): CDATASection;
-    /**

-     * Creates a comment object with the specified data.

-     * @param data Sets the comment object's data.

+    /**
+     * Creates a comment object with the specified data.
+     * @param data Sets the comment object's data.
      */
     createComment(data: string): Comment;
-    /**

-     * Creates a new document.

+    /**
+     * Creates a new document.
      */
     createDocumentFragment(): DocumentFragment;
-    /**

-     * Creates an instance of the element for the specified tag.

-     * @param tagName The name of an element.

+    /**
+     * Creates an instance of the element for the specified tag.
+     * @param tagName The name of an element.
      */
     createElement<K extends keyof HTMLElementTagNameMap>(tagName: K, options?: ElementCreationOptions): HTMLElementTagNameMap[K];
     /** @deprecated */
@@ -4538,12 +4538,12 @@
     createEvent(eventInterface: "WebGLContextEvent"): WebGLContextEvent;
     createEvent(eventInterface: "WheelEvent"): WheelEvent;
     createEvent(eventInterface: string): Event;
-    /**

-     * Creates a NodeIterator object that you can use to traverse filtered lists of nodes or elements in a document.

-     * @param root The root element or node to start traversing on.

-     * @param whatToShow The type of nodes or elements to appear in the node list

-     * @param filter A custom NodeFilter function to use. For more information, see filter. Use null for no filter.

-     * @param entityReferenceExpansion A flag that specifies whether entity reference nodes are expanded.

+    /**
+     * Creates a NodeIterator object that you can use to traverse filtered lists of nodes or elements in a document.
+     * @param root The root element or node to start traversing on.
+     * @param whatToShow The type of nodes or elements to appear in the node list
+     * @param filter A custom NodeFilter function to use. For more information, see filter. Use null for no filter.
+     * @param entityReferenceExpansion A flag that specifies whether entity reference nodes are expanded.
      */
     createNodeIterator(root: Node, whatToShow?: number, filter?: NodeFilter | null): NodeIterator;
     /**
@@ -4554,39 +4554,39 @@
      * "InvalidCharacterError" DOMException will be thrown.
      */
     createProcessingInstruction(target: string, data: string): ProcessingInstruction;
-    /**

-     *  Returns an empty range object that has both of its boundary points positioned at the beginning of the document.

+    /**
+     *  Returns an empty range object that has both of its boundary points positioned at the beginning of the document.
      */
     createRange(): Range;
-    /**

-     * Creates a text string from the specified value.

-     * @param data String that specifies the nodeValue property of the text node.

+    /**
+     * Creates a text string from the specified value.
+     * @param data String that specifies the nodeValue property of the text node.
      */
     createTextNode(data: string): Text;
     createTouch(view: WindowProxy, target: EventTarget, identifier: number, pageX: number, pageY: number, screenX: number, screenY: number): Touch;
     createTouchList(...touches: Touch[]): TouchList;
-    /**

-     * Creates a TreeWalker object that you can use to traverse filtered lists of nodes or elements in a document.

-     * @param root The root element or node to start traversing on.

-     * @param whatToShow The type of nodes or elements to appear in the node list. For more information, see whatToShow.

-     * @param filter A custom NodeFilter function to use.

-     * @param entityReferenceExpansion A flag that specifies whether entity reference nodes are expanded.

+    /**
+     * Creates a TreeWalker object that you can use to traverse filtered lists of nodes or elements in a document.
+     * @param root The root element or node to start traversing on.
+     * @param whatToShow The type of nodes or elements to appear in the node list. For more information, see whatToShow.
+     * @param filter A custom NodeFilter function to use.
+     * @param entityReferenceExpansion A flag that specifies whether entity reference nodes are expanded.
      */
     createTreeWalker(root: Node, whatToShow?: number, filter?: NodeFilter | null): TreeWalker;
     /** @deprecated */
     createTreeWalker(root: Node, whatToShow: number, filter: NodeFilter | null, entityReferenceExpansion?: boolean): TreeWalker;
-    /**

-     * Returns the element for the specified x coordinate and the specified y coordinate.

-     * @param x The x-offset

-     * @param y The y-offset

+    /**
+     * Returns the element for the specified x coordinate and the specified y coordinate.
+     * @param x The x-offset
+     * @param y The y-offset
      */
     elementFromPoint(x: number, y: number): Element | null;
     elementsFromPoint(x: number, y: number): Element[];
-    /**

-     * Executes a command on the current document, current selection, or the given range.

-     * @param commandId String that specifies the command to execute. This command can be any of the command identifiers that can be executed in script.

-     * @param showUI Display the user interface, defaults to false.

-     * @param value Value to assign.

+    /**
+     * Executes a command on the current document, current selection, or the given range.
+     * @param commandId String that specifies the command to execute. This command can be any of the command identifiers that can be executed in script.
+     * @param showUI Display the user interface, defaults to false.
+     * @param value Value to assign.
      */
     execCommand(commandId: string, showUI?: boolean, value?: string): boolean;
     /**
@@ -4596,23 +4596,23 @@
     exitFullscreen(): Promise<void>;
     exitPointerLock(): void;
     getAnimations(): Animation[];
-    /**

-     * Returns a reference to the first object with the specified value of the ID or NAME attribute.

-     * @param elementId String that specifies the ID value. Case-insensitive.

+    /**
+     * Returns a reference to the first object with the specified value of the ID or NAME attribute.
+     * @param elementId String that specifies the ID value. Case-insensitive.
      */
     getElementById(elementId: string): HTMLElement | null;
     /**
      * collection = element . getElementsByClassName(classNames)
      */
     getElementsByClassName(classNames: string): HTMLCollectionOf<Element>;
-    /**

-     * Gets a collection of objects based on the value of the NAME or ID attribute.

-     * @param elementName Gets a collection of objects based on the value of the NAME or ID attribute.

+    /**
+     * Gets a collection of objects based on the value of the NAME or ID attribute.
+     * @param elementName Gets a collection of objects based on the value of the NAME or ID attribute.
      */
     getElementsByName(elementName: string): NodeListOf<HTMLElement>;
-    /**

-     * Retrieves a collection of objects based on the specified element name.

-     * @param name Specifies the name of an element.

+    /**
+     * Retrieves a collection of objects based on the specified element name.
+     * @param name Specifies the name of an element.
      */
     getElementsByTagName<K extends keyof HTMLElementTagNameMap>(qualifiedName: K): HTMLCollectionOf<HTMLElementTagNameMap[K]>;
     getElementsByTagName<K extends keyof SVGElementTagNameMap>(qualifiedName: K): HTMLCollectionOf<SVGElementTagNameMap[K]>;
@@ -4627,12 +4627,12 @@
     getElementsByTagNameNS(namespaceURI: "http://www.w3.org/1999/xhtml", localName: string): HTMLCollectionOf<HTMLElement>;
     getElementsByTagNameNS(namespaceURI: "http://www.w3.org/2000/svg", localName: string): HTMLCollectionOf<SVGElement>;
     getElementsByTagNameNS(namespaceURI: string, localName: string): HTMLCollectionOf<Element>;
-    /**

-     * Returns an object representing the current selection of the document that is loaded into the object displaying a webpage.

+    /**
+     * Returns an object representing the current selection of the document that is loaded into the object displaying a webpage.
      */
     getSelection(): Selection | null;
-    /**

-     * Gets a value indicating whether the object currently has focus.

+    /**
+     * Gets a value indicating whether the object currently has focus.
      */
     hasFocus(): boolean;
     /**
@@ -4641,49 +4641,49 @@
      * "NotSupportedError" DOMException.
      */
     importNode<T extends Node>(importedNode: T, deep: boolean): T;
-    /**

-     * Opens a new window and loads a document specified by a given URL. Also, opens a new window that uses the url parameter and the name parameter to collect the output of the write method and the writeln method.

-     * @param url Specifies a MIME type for the document.

-     * @param name Specifies the name of the window. This name is used as the value for the TARGET attribute on a form or an anchor element.

-     * @param features Contains a list of items separated by commas. Each item consists of an option and a value, separated by an equals sign (for example, "fullscreen=yes, toolbar=yes"). The following values are supported.

-     * @param replace Specifies whether the existing entry for the document is replaced in the history list.

+    /**
+     * Opens a new window and loads a document specified by a given URL. Also, opens a new window that uses the url parameter and the name parameter to collect the output of the write method and the writeln method.
+     * @param url Specifies a MIME type for the document.
+     * @param name Specifies the name of the window. This name is used as the value for the TARGET attribute on a form or an anchor element.
+     * @param features Contains a list of items separated by commas. Each item consists of an option and a value, separated by an equals sign (for example, "fullscreen=yes, toolbar=yes"). The following values are supported.
+     * @param replace Specifies whether the existing entry for the document is replaced in the history list.
      */
     open(url?: string, name?: string, features?: string, replace?: boolean): Document;
-    /**

-     * Returns a Boolean value that indicates whether a specified command can be successfully executed using execCommand, given the current state of the document.

-     * @param commandId Specifies a command identifier.

+    /**
+     * Returns a Boolean value that indicates whether a specified command can be successfully executed using execCommand, given the current state of the document.
+     * @param commandId Specifies a command identifier.
      */
     queryCommandEnabled(commandId: string): boolean;
-    /**

-     * Returns a Boolean value that indicates whether the specified command is in the indeterminate state.

-     * @param commandId String that specifies a command identifier.

+    /**
+     * Returns a Boolean value that indicates whether the specified command is in the indeterminate state.
+     * @param commandId String that specifies a command identifier.
      */
     queryCommandIndeterm(commandId: string): boolean;
-    /**

-     * Returns a Boolean value that indicates the current state of the command.

-     * @param commandId String that specifies a command identifier.

+    /**
+     * Returns a Boolean value that indicates the current state of the command.
+     * @param commandId String that specifies a command identifier.
      */
     queryCommandState(commandId: string): boolean;
-    /**

-     * Returns a Boolean value that indicates whether the current command is supported on the current range.

-     * @param commandId Specifies a command identifier.

+    /**
+     * Returns a Boolean value that indicates whether the current command is supported on the current range.
+     * @param commandId Specifies a command identifier.
      */
     queryCommandSupported(commandId: string): boolean;
-    /**

-     * Returns the current value of the document, range, or current selection for the given command.

-     * @param commandId String that specifies a command identifier.

+    /**
+     * Returns the current value of the document, range, or current selection for the given command.
+     * @param commandId String that specifies a command identifier.
      */
     queryCommandValue(commandId: string): string;
     /** @deprecated */
     releaseEvents(): void;
-    /**

-     * Writes one or more HTML expressions to a document in the specified window.

-     * @param content Specifies the text and HTML tags to write.

+    /**
+     * Writes one or more HTML expressions to a document in the specified window.
+     * @param content Specifies the text and HTML tags to write.
      */
     write(...text: string[]): void;
-    /**

-     * Writes one or more HTML expressions, followed by a carriage return, to a document in the specified window.

-     * @param content The text and HTML tags to write.

+    /**
+     * Writes one or more HTML expressions, followed by a carriage return, to a document in the specified window.
+     * @param content The text and HTML tags to write.
      */
     writeln(...text: string[]): void;
     addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
@@ -4808,8 +4808,8 @@
     readonly activeElement: Element | null;
     readonly fullscreenElement: Element | null;
     readonly pointerLockElement: Element | null;
-    /**

-     * Retrieves a collection of styleSheet objects representing the style sheets that correspond to each instance of a link or style object in the document.

+    /**
+     * Retrieves a collection of styleSheet objects representing the style sheets that correspond to each instance of a link or style object in the document.
      */
     readonly styleSheets: StyleSheetList;
     caretPositionFromPoint(x: number, y: number): CaretPosition | null;
@@ -5553,9 +5553,9 @@
 }
 
 interface GlobalEventHandlers {
-    /**

-     * Fires when the user aborts the download.

-     * @param ev The event.

+    /**
+     * Fires when the user aborts the download.
+     * @param ev The event.
      */
     onabort: ((this: GlobalEventHandlers, ev: UIEvent) => any) | null;
     onanimationcancel: ((this: GlobalEventHandlers, ev: AnimationEvent) => any) | null;
@@ -5563,177 +5563,177 @@
     onanimationiteration: ((this: GlobalEventHandlers, ev: AnimationEvent) => any) | null;
     onanimationstart: ((this: GlobalEventHandlers, ev: AnimationEvent) => any) | null;
     onauxclick: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;
-    /**

-     * Fires when the object loses the input focus.

-     * @param ev The focus event.

+    /**
+     * Fires when the object loses the input focus.
+     * @param ev The focus event.
      */
     onblur: ((this: GlobalEventHandlers, ev: FocusEvent) => any) | null;
     oncancel: ((this: GlobalEventHandlers, ev: Event) => any) | null;
-    /**

-     * Occurs when playback is possible, but would require further buffering.

-     * @param ev The event.

+    /**
+     * Occurs when playback is possible, but would require further buffering.
+     * @param ev The event.
      */
     oncanplay: ((this: GlobalEventHandlers, ev: Event) => any) | null;
     oncanplaythrough: ((this: GlobalEventHandlers, ev: Event) => any) | null;
-    /**

-     * Fires when the contents of the object or selection have changed.

-     * @param ev The event.

+    /**
+     * Fires when the contents of the object or selection have changed.
+     * @param ev The event.
      */
     onchange: ((this: GlobalEventHandlers, ev: Event) => any) | null;
-    /**

-     * Fires when the user clicks the left mouse button on the object

-     * @param ev The mouse event.

+    /**
+     * Fires when the user clicks the left mouse button on the object
+     * @param ev The mouse event.
      */
     onclick: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;
     onclose: ((this: GlobalEventHandlers, ev: Event) => any) | null;
-    /**

-     * Fires when the user clicks the right mouse button in the client area, opening the context menu.

-     * @param ev The mouse event.

+    /**
+     * Fires when the user clicks the right mouse button in the client area, opening the context menu.
+     * @param ev The mouse event.
      */
     oncontextmenu: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;
     oncuechange: ((this: GlobalEventHandlers, ev: Event) => any) | null;
-    /**

-     * Fires when the user double-clicks the object.

-     * @param ev The mouse event.

+    /**
+     * Fires when the user double-clicks the object.
+     * @param ev The mouse event.
      */
     ondblclick: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;
-    /**

-     * Fires on the source object continuously during a drag operation.

-     * @param ev The event.

+    /**
+     * Fires on the source object continuously during a drag operation.
+     * @param ev The event.
      */
     ondrag: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null;
-    /**

-     * Fires on the source object when the user releases the mouse at the close of a drag operation.

-     * @param ev The event.

+    /**
+     * Fires on the source object when the user releases the mouse at the close of a drag operation.
+     * @param ev The event.
      */
     ondragend: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null;
-    /**

-     * Fires on the target element when the user drags the object to a valid drop target.

-     * @param ev The drag event.

+    /**
+     * Fires on the target element when the user drags the object to a valid drop target.
+     * @param ev The drag event.
      */
     ondragenter: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null;
     ondragexit: ((this: GlobalEventHandlers, ev: Event) => any) | null;
-    /**

-     * Fires on the target object when the user moves the mouse out of a valid drop target during a drag operation.

-     * @param ev The drag event.

+    /**
+     * Fires on the target object when the user moves the mouse out of a valid drop target during a drag operation.
+     * @param ev The drag event.
      */
     ondragleave: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null;
-    /**

-     * Fires on the target element continuously while the user drags the object over a valid drop target.

-     * @param ev The event.

+    /**
+     * Fires on the target element continuously while the user drags the object over a valid drop target.
+     * @param ev The event.
      */
     ondragover: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null;
-    /**

-     * Fires on the source object when the user starts to drag a text selection or selected object.

-     * @param ev The event.

+    /**
+     * Fires on the source object when the user starts to drag a text selection or selected object.
+     * @param ev The event.
      */
     ondragstart: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null;
     ondrop: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null;
-    /**

-     * Occurs when the duration attribute is updated.

-     * @param ev The event.

+    /**
+     * Occurs when the duration attribute is updated.
+     * @param ev The event.
      */
     ondurationchange: ((this: GlobalEventHandlers, ev: Event) => any) | null;
-    /**

-     * Occurs when the media element is reset to its initial state.

-     * @param ev The event.

+    /**
+     * Occurs when the media element is reset to its initial state.
+     * @param ev The event.
      */
     onemptied: ((this: GlobalEventHandlers, ev: Event) => any) | null;
-    /**

-     * Occurs when the end of playback is reached.

-     * @param ev The event

+    /**
+     * Occurs when the end of playback is reached.
+     * @param ev The event
      */
     onended: ((this: GlobalEventHandlers, ev: Event) => any) | null;
-    /**

-     * Fires when an error occurs during object loading.

-     * @param ev The event.

+    /**
+     * Fires when an error occurs during object loading.
+     * @param ev The event.
      */
     onerror: OnErrorEventHandler;
-    /**

-     * Fires when the object receives focus.

-     * @param ev The event.

+    /**
+     * Fires when the object receives focus.
+     * @param ev The event.
      */
     onfocus: ((this: GlobalEventHandlers, ev: FocusEvent) => any) | null;
     ongotpointercapture: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;
     oninput: ((this: GlobalEventHandlers, ev: Event) => any) | null;
     oninvalid: ((this: GlobalEventHandlers, ev: Event) => any) | null;
-    /**

-     * Fires when the user presses a key.

-     * @param ev The keyboard event

+    /**
+     * Fires when the user presses a key.
+     * @param ev The keyboard event
      */
     onkeydown: ((this: GlobalEventHandlers, ev: KeyboardEvent) => any) | null;
-    /**

-     * Fires when the user presses an alphanumeric key.

-     * @param ev The event.

+    /**
+     * Fires when the user presses an alphanumeric key.
+     * @param ev The event.
      */
     onkeypress: ((this: GlobalEventHandlers, ev: KeyboardEvent) => any) | null;
-    /**

-     * Fires when the user releases a key.

-     * @param ev The keyboard event

+    /**
+     * Fires when the user releases a key.
+     * @param ev The keyboard event
      */
     onkeyup: ((this: GlobalEventHandlers, ev: KeyboardEvent) => any) | null;
-    /**

-     * Fires immediately after the browser loads the object.

-     * @param ev The event.

+    /**
+     * Fires immediately after the browser loads the object.
+     * @param ev The event.
      */
     onload: ((this: GlobalEventHandlers, ev: Event) => any) | null;
-    /**

-     * Occurs when media data is loaded at the current playback position.

-     * @param ev The event.

+    /**
+     * Occurs when media data is loaded at the current playback position.
+     * @param ev The event.
      */
     onloadeddata: ((this: GlobalEventHandlers, ev: Event) => any) | null;
-    /**

-     * Occurs when the duration and dimensions of the media have been determined.

-     * @param ev The event.

+    /**
+     * Occurs when the duration and dimensions of the media have been determined.
+     * @param ev The event.
      */
     onloadedmetadata: ((this: GlobalEventHandlers, ev: Event) => any) | null;
     onloadend: ((this: GlobalEventHandlers, ev: ProgressEvent) => any) | null;
-    /**

-     * Occurs when Internet Explorer begins looking for media data.

-     * @param ev The event.

+    /**
+     * Occurs when Internet Explorer begins looking for media data.
+     * @param ev The event.
      */
     onloadstart: ((this: GlobalEventHandlers, ev: Event) => any) | null;
     onlostpointercapture: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;
-    /**

-     * Fires when the user clicks the object with either mouse button.

-     * @param ev The mouse event.

+    /**
+     * Fires when the user clicks the object with either mouse button.
+     * @param ev The mouse event.
      */
     onmousedown: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;
     onmouseenter: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;
     onmouseleave: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;
-    /**

-     * Fires when the user moves the mouse over the object.

-     * @param ev The mouse event.

+    /**
+     * Fires when the user moves the mouse over the object.
+     * @param ev The mouse event.
      */
     onmousemove: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;
-    /**

-     * Fires when the user moves the mouse pointer outside the boundaries of the object.

-     * @param ev The mouse event.

+    /**
+     * Fires when the user moves the mouse pointer outside the boundaries of the object.
+     * @param ev The mouse event.
      */
     onmouseout: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;
-    /**

-     * Fires when the user moves the mouse pointer into the object.

-     * @param ev The mouse event.

+    /**
+     * Fires when the user moves the mouse pointer into the object.
+     * @param ev The mouse event.
      */
     onmouseover: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;
-    /**

-     * Fires when the user releases a mouse button while the mouse is over the object.

-     * @param ev The mouse event.

+    /**
+     * Fires when the user releases a mouse button while the mouse is over the object.
+     * @param ev The mouse event.
      */
     onmouseup: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;
-    /**

-     * Occurs when playback is paused.

-     * @param ev The event.

+    /**
+     * Occurs when playback is paused.
+     * @param ev The event.
      */
     onpause: ((this: GlobalEventHandlers, ev: Event) => any) | null;
-    /**

-     * Occurs when the play method is requested.

-     * @param ev The event.

+    /**
+     * Occurs when the play method is requested.
+     * @param ev The event.
      */
     onplay: ((this: GlobalEventHandlers, ev: Event) => any) | null;
-    /**

-     * Occurs when the audio or video has started playing.

-     * @param ev The event.

+    /**
+     * Occurs when the audio or video has started playing.
+     * @param ev The event.
      */
     onplaying: ((this: GlobalEventHandlers, ev: Event) => any) | null;
     onpointercancel: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;
@@ -5744,59 +5744,59 @@
     onpointerout: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;
     onpointerover: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;
     onpointerup: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;
-    /**

-     * Occurs to indicate progress while downloading media data.

-     * @param ev The event.

+    /**
+     * Occurs to indicate progress while downloading media data.
+     * @param ev The event.
      */
     onprogress: ((this: GlobalEventHandlers, ev: ProgressEvent) => any) | null;
-    /**

-     * Occurs when the playback rate is increased or decreased.

-     * @param ev The event.

+    /**
+     * Occurs when the playback rate is increased or decreased.
+     * @param ev The event.
      */
     onratechange: ((this: GlobalEventHandlers, ev: Event) => any) | null;
-    /**

-     * Fires when the user resets a form.

-     * @param ev The event.

+    /**
+     * Fires when the user resets a form.
+     * @param ev The event.
      */
     onreset: ((this: GlobalEventHandlers, ev: Event) => any) | null;
     onresize: ((this: GlobalEventHandlers, ev: UIEvent) => any) | null;
-    /**

-     * Fires when the user repositions the scroll box in the scroll bar on the object.

-     * @param ev The event.

+    /**
+     * Fires when the user repositions the scroll box in the scroll bar on the object.
+     * @param ev The event.
      */
     onscroll: ((this: GlobalEventHandlers, ev: Event) => any) | null;
     onsecuritypolicyviolation: ((this: GlobalEventHandlers, ev: SecurityPolicyViolationEvent) => any) | null;
-    /**

-     * Occurs when the seek operation ends.

-     * @param ev The event.

+    /**
+     * Occurs when the seek operation ends.
+     * @param ev The event.
      */
     onseeked: ((this: GlobalEventHandlers, ev: Event) => any) | null;
-    /**

-     * Occurs when the current playback position is moved.

-     * @param ev The event.

+    /**
+     * Occurs when the current playback position is moved.
+     * @param ev The event.
      */
     onseeking: ((this: GlobalEventHandlers, ev: Event) => any) | null;
-    /**

-     * Fires when the current selection changes.

-     * @param ev The event.

+    /**
+     * Fires when the current selection changes.
+     * @param ev The event.
      */
     onselect: ((this: GlobalEventHandlers, ev: Event) => any) | null;
     onselectionchange: ((this: GlobalEventHandlers, ev: Event) => any) | null;
     onselectstart: ((this: GlobalEventHandlers, ev: Event) => any) | null;
-    /**

-     * Occurs when the download has stopped.

-     * @param ev The event.

+    /**
+     * Occurs when the download has stopped.
+     * @param ev The event.
      */
     onstalled: ((this: GlobalEventHandlers, ev: Event) => any) | null;
     onsubmit: ((this: GlobalEventHandlers, ev: Event) => any) | null;
-    /**

-     * Occurs if the load operation has been intentionally halted.

-     * @param ev The event.

+    /**
+     * Occurs if the load operation has been intentionally halted.
+     * @param ev The event.
      */
     onsuspend: ((this: GlobalEventHandlers, ev: Event) => any) | null;
-    /**

-     * Occurs to indicate the current playback position.

-     * @param ev The event.

+    /**
+     * Occurs to indicate the current playback position.
+     * @param ev The event.
      */
     ontimeupdate: ((this: GlobalEventHandlers, ev: Event) => any) | null;
     ontoggle: ((this: GlobalEventHandlers, ev: Event) => any) | null;
@@ -5808,14 +5808,14 @@
     ontransitionend: ((this: GlobalEventHandlers, ev: TransitionEvent) => any) | null;
     ontransitionrun: ((this: GlobalEventHandlers, ev: TransitionEvent) => any) | null;
     ontransitionstart: ((this: GlobalEventHandlers, ev: TransitionEvent) => any) | null;
-    /**

-     * Occurs when the volume is changed, or playback is muted or unmuted.

-     * @param ev The event.

+    /**
+     * Occurs when the volume is changed, or playback is muted or unmuted.
+     * @param ev The event.
      */
     onvolumechange: ((this: GlobalEventHandlers, ev: Event) => any) | null;
-    /**

-     * Occurs when playback stops because the next frame of a video resource is not available.

-     * @param ev The event.

+    /**
+     * Occurs when playback stops because the next frame of a video resource is not available.
+     * @param ev The event.
      */
     onwaiting: ((this: GlobalEventHandlers, ev: Event) => any) | null;
     onwheel: ((this: GlobalEventHandlers, ev: WheelEvent) => any) | null;
@@ -5852,49 +5852,49 @@
 
 /** Hyperlink elements and provides special properties and methods (beyond those of the regular HTMLElement object interface that they inherit from) for manipulating the layout and presentation of such elements. */
 interface HTMLAnchorElement extends HTMLElement, HTMLHyperlinkElementUtils {
-    /**

-     * Sets or retrieves the character set used to encode the object.

+    /**
+     * Sets or retrieves the character set used to encode the object.
      */
     /** @deprecated */
     charset: string;
-    /**

-     * Sets or retrieves the coordinates of the object.

+    /**
+     * Sets or retrieves the coordinates of the object.
      */
     /** @deprecated */
     coords: string;
     download: string;
-    /**

-     * Sets or retrieves the language code of the object.

+    /**
+     * Sets or retrieves the language code of the object.
      */
     hreflang: string;
-    /**

-     * Sets or retrieves the shape of the object.

+    /**
+     * Sets or retrieves the shape of the object.
      */
     /** @deprecated */
     name: string;
     ping: string;
     referrerPolicy: string;
-    /**

-     * Sets or retrieves the relationship between the object and the destination of the link.

+    /**
+     * Sets or retrieves the relationship between the object and the destination of the link.
      */
     rel: string;
     readonly relList: DOMTokenList;
-    /**

-     * Sets or retrieves the relationship between the object and the destination of the link.

+    /**
+     * Sets or retrieves the relationship between the object and the destination of the link.
      */
     /** @deprecated */
     rev: string;
-    /**

-     * Sets or retrieves the shape of the object.

+    /**
+     * Sets or retrieves the shape of the object.
      */
     /** @deprecated */
     shape: string;
-    /**

-     * Sets or retrieves the window or frame at which to target content.

+    /**
+     * Sets or retrieves the window or frame at which to target content.
      */
     target: string;
-    /**

-     * Retrieves or sets the text of the object as a string.

+    /**
+     * Retrieves or sets the text of the object as a string.
      */
     text: string;
     type: string;
@@ -5912,33 +5912,33 @@
 interface HTMLAppletElement extends HTMLElement {
     /** @deprecated */
     align: string;
-    /**

-     * Sets or retrieves a text alternative to the graphic.

+    /**
+     * Sets or retrieves a text alternative to the graphic.
      */
     /** @deprecated */
     alt: string;
-    /**

-     * Sets or retrieves a character string that can be used to implement your own archive functionality for the object.

+    /**
+     * Sets or retrieves a character string that can be used to implement your own archive functionality for the object.
      */
     /** @deprecated */
     archive: string;
     /** @deprecated */
     code: string;
-    /**

-     * Sets or retrieves the URL of the component.

+    /**
+     * Sets or retrieves the URL of the component.
      */
     /** @deprecated */
     codeBase: string;
     readonly form: HTMLFormElement | null;
-    /**

-     * Sets or retrieves the height of the object.

+    /**
+     * Sets or retrieves the height of the object.
      */
     /** @deprecated */
     height: string;
     /** @deprecated */
     hspace: number;
-    /**

-     * Sets or retrieves the shape of the object.

+    /**
+     * Sets or retrieves the shape of the object.
      */
     /** @deprecated */
     name: string;
@@ -5961,17 +5961,17 @@
 
 /** Provides special properties and methods (beyond those of the regular object HTMLElement interface it also has available to it by inheritance) for manipulating the layout and presentation of <area> elements. */
 interface HTMLAreaElement extends HTMLElement, HTMLHyperlinkElementUtils {
-    /**

-     * Sets or retrieves a text alternative to the graphic.

+    /**
+     * Sets or retrieves a text alternative to the graphic.
      */
     alt: string;
-    /**

-     * Sets or retrieves the coordinates of the object.

+    /**
+     * Sets or retrieves the coordinates of the object.
      */
     coords: string;
     download: string;
-    /**

-     * Sets or gets whether clicks in this region cause action.

+    /**
+     * Sets or gets whether clicks in this region cause action.
      */
     /** @deprecated */
     noHref: boolean;
@@ -5979,12 +5979,12 @@
     referrerPolicy: string;
     rel: string;
     readonly relList: DOMTokenList;
-    /**

-     * Sets or retrieves the shape of the object.

+    /**
+     * Sets or retrieves the shape of the object.
      */
     shape: string;
-    /**

-     * Sets or retrieves the window or frame at which to target content.

+    /**
+     * Sets or retrieves the window or frame at which to target content.
      */
     target: string;
     addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLAreaElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
@@ -6013,8 +6013,8 @@
 
 /** A HTML line break element (<br>). It inherits from HTMLElement. */
 interface HTMLBRElement extends HTMLElement {
-    /**

-     * Sets or retrieves the side on which floating objects are not to be positioned when any IHTMLBlockElement is inserted into the document.

+    /**
+     * Sets or retrieves the side on which floating objects are not to be positioned when any IHTMLBlockElement is inserted into the document.
      */
     /** @deprecated */
     clear: string;
@@ -6031,12 +6031,12 @@
 
 /** Contains the base URI for a document. This object inherits all of the properties and methods as described in the HTMLElement interface. */
 interface HTMLBaseElement extends HTMLElement {
-    /**

-     * Gets or sets the baseline URL on which relative links are based.

+    /**
+     * Gets or sets the baseline URL on which relative links are based.
      */
     href: string;
-    /**

-     * Sets or retrieves the window or frame at which to target content.

+    /**
+     * Sets or retrieves the window or frame at which to target content.
      */
     target: string;
     addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLBaseElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
@@ -6052,13 +6052,13 @@
 
 /** Provides special properties (beyond the regular HTMLElement interface it also has available to it by inheritance) for manipulating <basefont> elements. */
 interface HTMLBaseFontElement extends HTMLElement, DOML2DeprecatedColorProperty {
-    /**

-     * Sets or retrieves the current typeface family.

+    /**
+     * Sets or retrieves the current typeface family.
      */
     /** @deprecated */
     face: string;
-    /**

-     * Sets or retrieves the font size of the object.

+    /**
+     * Sets or retrieves the font size of the object.
      */
     /** @deprecated */
     size: number;
@@ -6109,68 +6109,68 @@
 
 /** Provides properties and methods (beyond the regular HTMLElement interface it also has available to it by inheritance) for manipulating <button> elements. */
 interface HTMLButtonElement extends HTMLElement {
-    /**

-     * Provides a way to direct a user to a specific field when a document loads. This can provide both direction and convenience for a user, reducing the need to click or tab to a field when a page opens. This attribute is true when present on an element, and false when missing.

+    /**
+     * Provides a way to direct a user to a specific field when a document loads. This can provide both direction and convenience for a user, reducing the need to click or tab to a field when a page opens. This attribute is true when present on an element, and false when missing.
      */
     autofocus: boolean;
     disabled: boolean;
-    /**

-     * Retrieves a reference to the form that the object is embedded in.

+    /**
+     * Retrieves a reference to the form that the object is embedded in.
      */
     readonly form: HTMLFormElement | null;
-    /**

-     * Overrides the action attribute (where the data on a form is sent) on the parent form element.

+    /**
+     * Overrides the action attribute (where the data on a form is sent) on the parent form element.
      */
     formAction: string;
-    /**

-     * Used to override the encoding (formEnctype attribute) specified on the form element.

+    /**
+     * Used to override the encoding (formEnctype attribute) specified on the form element.
      */
     formEnctype: string;
-    /**

-     * Overrides the submit method attribute previously specified on a form element.

+    /**
+     * Overrides the submit method attribute previously specified on a form element.
      */
     formMethod: string;
-    /**

-     * Overrides any validation or required attributes on a form or form elements to allow it to be submitted without validation. This can be used to create a "save draft"-type submit option.

+    /**
+     * Overrides any validation or required attributes on a form or form elements to allow it to be submitted without validation. This can be used to create a "save draft"-type submit option.
      */
     formNoValidate: boolean;
-    /**

-     * Overrides the target attribute on a form element.

+    /**
+     * Overrides the target attribute on a form element.
      */
     formTarget: string;
     readonly labels: NodeListOf<HTMLLabelElement>;
-    /**

-     * Sets or retrieves the name of the object.

+    /**
+     * Sets or retrieves the name of the object.
      */
     name: string;
-    /**

-     * Gets the classification and default behavior of the button.

+    /**
+     * Gets the classification and default behavior of the button.
      */
     type: string;
-    /**

-     * Returns the error message that would be displayed if the user submits the form, or an empty string if no error message. It also triggers the standard error message, such as "this is a required field". The result is that the user sees validation messages without actually submitting.

+    /**
+     * Returns the error message that would be displayed if the user submits the form, or an empty string if no error message. It also triggers the standard error message, such as "this is a required field". The result is that the user sees validation messages without actually submitting.
      */
     readonly validationMessage: string;
-    /**

-     * Returns a  ValidityState object that represents the validity states of an element.

+    /**
+     * Returns a  ValidityState object that represents the validity states of an element.
      */
     readonly validity: ValidityState;
-    /**

-     * Sets or retrieves the default or selected value of the control.

+    /**
+     * Sets or retrieves the default or selected value of the control.
      */
     value: string;
-    /**

-     * Returns whether an element will successfully validate based on forms validation rules and constraints.

+    /**
+     * Returns whether an element will successfully validate based on forms validation rules and constraints.
      */
     readonly willValidate: boolean;
-    /**

-     * Returns whether a form will validate when it is submitted, without having to submit it.

+    /**
+     * Returns whether a form will validate when it is submitted, without having to submit it.
      */
     checkValidity(): boolean;
     reportValidity(): boolean;
-    /**

-     * Sets a custom error message that is displayed when a form is submitted.

-     * @param error Sets a custom error message that is displayed when a form is submitted.

+    /**
+     * Sets a custom error message that is displayed when a form is submitted.
+     * @param error Sets a custom error message that is displayed when a form is submitted.
      */
     setCustomValidity(error: string): void;
     addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLButtonElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
@@ -6186,25 +6186,25 @@
 
 /** Provides properties and methods for manipulating the layout and presentation of <canvas> elements. The HTMLCanvasElement interface also inherits the properties and methods of the HTMLElement interface. */
 interface HTMLCanvasElement extends HTMLElement {
-    /**

-     * Gets or sets the height of a canvas element on a document.

+    /**
+     * Gets or sets the height of a canvas element on a document.
      */
     height: number;
-    /**

-     * Gets or sets the width of a canvas element on a document.

+    /**
+     * Gets or sets the width of a canvas element on a document.
      */
     width: number;
-    /**

-     * Returns an object that provides methods and properties for drawing and manipulating images and graphics on a canvas element in a document. A context object includes information about colors, line widths, fonts, and other graphic parameters that can be drawn on a canvas.

-     * @param contextId The identifier (ID) of the type of canvas to create. Internet Explorer 9 and Internet Explorer 10 support only a 2-D context using canvas.getContext("2d"); IE11 Preview also supports 3-D or WebGL context using canvas.getContext("experimental-webgl");

+    /**
+     * Returns an object that provides methods and properties for drawing and manipulating images and graphics on a canvas element in a document. A context object includes information about colors, line widths, fonts, and other graphic parameters that can be drawn on a canvas.
+     * @param contextId The identifier (ID) of the type of canvas to create. Internet Explorer 9 and Internet Explorer 10 support only a 2-D context using canvas.getContext("2d"); IE11 Preview also supports 3-D or WebGL context using canvas.getContext("experimental-webgl");
      */
     getContext(contextId: "2d", contextAttributes?: CanvasRenderingContext2DSettings): CanvasRenderingContext2D | null;
     getContext(contextId: "webgl" | "experimental-webgl", contextAttributes?: WebGLContextAttributes): WebGLRenderingContext | null;
     getContext(contextId: string, contextAttributes?: {}): CanvasRenderingContext2D | WebGLRenderingContext | null;
     toBlob(callback: BlobCallback, type?: string, quality?: any): void;
-    /**

-     * Returns the content of the current canvas as an image that you can use as a source for another canvas or an HTML element.

-     * @param type The standard MIME type for the image format to return. If you do not specify this parameter, the default value is a PNG format image.

+    /**
+     * Returns the content of the current canvas as an image that you can use as a source for another canvas or an HTML element.
+     * @param type The standard MIME type for the image format to return. If you do not specify this parameter, the default value is a PNG format image.
      */
     toDataURL(type?: string, quality?: any): string;
     transferControlToOffscreen(): OffscreenCanvas;
@@ -6221,20 +6221,20 @@
 
 /** A generic collection (array-like object similar to arguments) of elements (in document order) and offers methods and properties for selecting from the list. */
 interface HTMLCollectionBase {
-    /**

-     * Sets or retrieves the number of objects in a collection.

+    /**
+     * Sets or retrieves the number of objects in a collection.
      */
     readonly length: number;
-    /**

-     * Retrieves an object from various collections.

+    /**
+     * Retrieves an object from various collections.
      */
     item(index: number): Element | null;
     [index: number]: Element;
 }
 
 interface HTMLCollection extends HTMLCollectionBase {
-    /**

-     * Retrieves a select object or an object from an options collection.

+    /**
+     * Retrieves a select object or an object from an options collection.
      */
     namedItem(name: string): Element | null;
 }
@@ -6339,8 +6339,8 @@
 
 /** Provides special properties (beyond the regular HTMLElement interface it also has available to it by inheritance) for manipulating <div> elements. */
 interface HTMLDivElement extends HTMLElement {
-    /**

-     * Sets or retrieves how the object is aligned with adjacent text.

+    /**
+     * Sets or retrieves how the object is aligned with adjacent text.
      */
     /** @deprecated */
     align: string;
@@ -6405,22 +6405,22 @@
 interface HTMLEmbedElement extends HTMLElement {
     /** @deprecated */
     align: string;
-    /**

-     * Sets or retrieves the height of the object.

+    /**
+     * Sets or retrieves the height of the object.
      */
     height: string;
-    /**

-     * Sets or retrieves the name of the object.

+    /**
+     * Sets or retrieves the name of the object.
      */
     /** @deprecated */
     name: string;
-    /**

-     * Sets or retrieves a URL to be loaded by the object.

+    /**
+     * Sets or retrieves a URL to be loaded by the object.
      */
     src: string;
     type: string;
-    /**

-     * Sets or retrieves the width of the object.

+    /**
+     * Sets or retrieves the width of the object.
      */
     width: string;
     getSVGDocument(): Document | null;
@@ -6439,32 +6439,32 @@
 interface HTMLFieldSetElement extends HTMLElement {
     disabled: boolean;
     readonly elements: HTMLCollection;
-    /**

-     * Retrieves a reference to the form that the object is embedded in.

+    /**
+     * Retrieves a reference to the form that the object is embedded in.
      */
     readonly form: HTMLFormElement | null;
     name: string;
     readonly type: string;
-    /**

-     * Returns the error message that would be displayed if the user submits the form, or an empty string if no error message. It also triggers the standard error message, such as "this is a required field". The result is that the user sees validation messages without actually submitting.

+    /**
+     * Returns the error message that would be displayed if the user submits the form, or an empty string if no error message. It also triggers the standard error message, such as "this is a required field". The result is that the user sees validation messages without actually submitting.
      */
     readonly validationMessage: string;
-    /**

-     * Returns a  ValidityState object that represents the validity states of an element.

+    /**
+     * Returns a  ValidityState object that represents the validity states of an element.
      */
     readonly validity: ValidityState;
-    /**

-     * Returns whether an element will successfully validate based on forms validation rules and constraints.

+    /**
+     * Returns whether an element will successfully validate based on forms validation rules and constraints.
      */
     readonly willValidate: boolean;
-    /**

-     * Returns whether a form will validate when it is submitted, without having to submit it.

+    /**
+     * Returns whether a form will validate when it is submitted, without having to submit it.
      */
     checkValidity(): boolean;
     reportValidity(): boolean;
-    /**

-     * Sets a custom error message that is displayed when a form is submitted.

-     * @param error Sets a custom error message that is displayed when a form is submitted.

+    /**
+     * Sets a custom error message that is displayed when a form is submitted.
+     * @param error Sets a custom error message that is displayed when a form is submitted.
      */
     setCustomValidity(error: string): void;
     addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLFieldSetElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
@@ -6482,8 +6482,8 @@
 interface HTMLFontElement extends HTMLElement {
     /** @deprecated */
     color: string;
-    /**

-     * Sets or retrieves the current typeface family.

+    /**
+     * Sets or retrieves the current typeface family.
      */
     /** @deprecated */
     face: string;
@@ -6515,61 +6515,61 @@
 
 /** A <form> element in the DOM; it allows access to and in some cases modification of aspects of the form, as well as access to its component elements. */
 interface HTMLFormElement extends HTMLElement {
-    /**

-     * Sets or retrieves a list of character encodings for input data that must be accepted by the server processing the form.

+    /**
+     * Sets or retrieves a list of character encodings for input data that must be accepted by the server processing the form.
      */
     acceptCharset: string;
-    /**

-     * Sets or retrieves the URL to which the form content is sent for processing.

+    /**
+     * Sets or retrieves the URL to which the form content is sent for processing.
      */
     action: string;
-    /**

-     * Specifies whether autocomplete is applied to an editable text field.

+    /**
+     * Specifies whether autocomplete is applied to an editable text field.
      */
     autocomplete: string;
-    /**

-     * Retrieves a collection, in source order, of all controls in a given form.

+    /**
+     * Retrieves a collection, in source order, of all controls in a given form.
      */
     readonly elements: HTMLFormControlsCollection;
-    /**

-     * Sets or retrieves the MIME encoding for the form.

+    /**
+     * Sets or retrieves the MIME encoding for the form.
      */
     encoding: string;
-    /**

-     * Sets or retrieves the encoding type for the form.

+    /**
+     * Sets or retrieves the encoding type for the form.
      */
     enctype: string;
-    /**

-     * Sets or retrieves the number of objects in a collection.

+    /**
+     * Sets or retrieves the number of objects in a collection.
      */
     readonly length: number;
-    /**

-     * Sets or retrieves how to send the form data to the server.

+    /**
+     * Sets or retrieves how to send the form data to the server.
      */
     method: string;
-    /**

-     * Sets or retrieves the name of the object.

+    /**
+     * Sets or retrieves the name of the object.
      */
     name: string;
-    /**

-     * Designates a form that is not validated when submitted.

+    /**
+     * Designates a form that is not validated when submitted.
      */
     noValidate: boolean;
-    /**

-     * Sets or retrieves the window or frame at which to target content.

+    /**
+     * Sets or retrieves the window or frame at which to target content.
      */
     target: string;
-    /**

-     * Returns whether a form will validate when it is submitted, without having to submit it.

+    /**
+     * Returns whether a form will validate when it is submitted, without having to submit it.
      */
     checkValidity(): boolean;
     reportValidity(): boolean;
-    /**

-     * Fires when the user resets a form.

+    /**
+     * Fires when the user resets a form.
      */
     reset(): void;
-    /**

-     * Fires when a FORM is about to be submitted.

+    /**
+     * Fires when a FORM is about to be submitted.
      */
     submit(): void;
     addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLFormElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
@@ -6586,53 +6586,53 @@
 };
 
 interface HTMLFrameElement extends HTMLElement {
-    /**

-     * Retrieves the document object of the page or frame.

+    /**
+     * Retrieves the document object of the page or frame.
      */
     /** @deprecated */
     readonly contentDocument: Document | null;
-    /**

-     * Retrieves the object of the specified.

+    /**
+     * Retrieves the object of the specified.
      */
     /** @deprecated */
     readonly contentWindow: WindowProxy | null;
-    /**

-     * Sets or retrieves whether to display a border for the frame.

+    /**
+     * Sets or retrieves whether to display a border for the frame.
      */
     /** @deprecated */
     frameBorder: string;
-    /**

-     * Sets or retrieves a URI to a long description of the object.

+    /**
+     * Sets or retrieves a URI to a long description of the object.
      */
     /** @deprecated */
     longDesc: string;
-    /**

-     * Sets or retrieves the top and bottom margin heights before displaying the text in a frame.

+    /**
+     * Sets or retrieves the top and bottom margin heights before displaying the text in a frame.
      */
     /** @deprecated */
     marginHeight: string;
-    /**

-     * Sets or retrieves the left and right margin widths before displaying the text in a frame.

+    /**
+     * Sets or retrieves the left and right margin widths before displaying the text in a frame.
      */
     /** @deprecated */
     marginWidth: string;
-    /**

-     * Sets or retrieves the frame name.

+    /**
+     * Sets or retrieves the frame name.
      */
     /** @deprecated */
     name: string;
-    /**

-     * Sets or retrieves whether the user can resize the frame.

+    /**
+     * Sets or retrieves whether the user can resize the frame.
      */
     /** @deprecated */
     noResize: boolean;
-    /**

-     * Sets or retrieves whether the frame can be scrolled.

+    /**
+     * Sets or retrieves whether the frame can be scrolled.
      */
     /** @deprecated */
     scrolling: string;
-    /**

-     * Sets or retrieves a URL to be loaded by the object.

+    /**
+     * Sets or retrieves a URL to be loaded by the object.
      */
     /** @deprecated */
     src: string;
@@ -6652,13 +6652,13 @@
 
 /** Provides special properties (beyond those of the regular HTMLElement interface they also inherit) for manipulating <frameset> elements. */
 interface HTMLFrameSetElement extends HTMLElement, WindowEventHandlers {
-    /**

-     * Sets or retrieves the frame widths of the object.

+    /**
+     * Sets or retrieves the frame widths of the object.
      */
     /** @deprecated */
     cols: string;
-    /**

-     * Sets or retrieves the frame heights of the object.

+    /**
+     * Sets or retrieves the frame heights of the object.
      */
     /** @deprecated */
     rows: string;
@@ -6675,22 +6675,22 @@
 
 /** Provides special properties (beyond those of the HTMLElement interface it also has available to it by inheritance) for manipulating <hr> elements. */
 interface HTMLHRElement extends HTMLElement {
-    /**

-     * Sets or retrieves how the object is aligned with adjacent text.

+    /**
+     * Sets or retrieves how the object is aligned with adjacent text.
      */
     /** @deprecated */
     align: string;
     /** @deprecated */
     color: string;
-    /**

-     * Sets or retrieves whether the horizontal rule is drawn with 3-D shading.

+    /**
+     * Sets or retrieves whether the horizontal rule is drawn with 3-D shading.
      */
     /** @deprecated */
     noShade: boolean;
     /** @deprecated */
     size: string;
-    /**

-     * Sets or retrieves the width of the object.

+    /**
+     * Sets or retrieves the width of the object.
      */
     /** @deprecated */
     width: string;
@@ -6720,8 +6720,8 @@
 
 /** The different heading elements. It inherits methods and properties from the HTMLElement interface. */
 interface HTMLHeadingElement extends HTMLElement {
-    /**

-     * Sets or retrieves a value that indicates the table alignment.

+    /**
+     * Sets or retrieves a value that indicates the table alignment.
      */
     /** @deprecated */
     align: string;
@@ -6738,8 +6738,8 @@
 
 /** Serves as the root node for a given HTML document. This object inherits the properties and methods described in the HTMLElement interface. */
 interface HTMLHtmlElement extends HTMLElement {
-    /**

-     * Sets or retrieves the DTD version that governs the current document.

+    /**
+     * Sets or retrieves the DTD version that governs the current document.
      */
     /** @deprecated */
     version: string;
@@ -6770,67 +6770,67 @@
 
 /** Provides special properties and methods (beyond those of the HTMLElement interface it also has available to it by inheritance) for manipulating the layout and presentation of inline frame elements. */
 interface HTMLIFrameElement extends HTMLElement {
-    /**

-     * Sets or retrieves how the object is aligned with adjacent text.

+    /**
+     * Sets or retrieves how the object is aligned with adjacent text.
      */
     /** @deprecated */
     align: string;
     allow: string;
     allowFullscreen: boolean;
     allowPaymentRequest: boolean;
-    /**

-     * Retrieves the document object of the page or frame.

+    /**
+     * Retrieves the document object of the page or frame.
      */
     readonly contentDocument: Document | null;
-    /**

-     * Retrieves the object of the specified.

+    /**
+     * Retrieves the object of the specified.
      */
     readonly contentWindow: WindowProxy | null;
-    /**

-     * Sets or retrieves whether to display a border for the frame.

+    /**
+     * Sets or retrieves whether to display a border for the frame.
      */
     /** @deprecated */
     frameBorder: string;
-    /**

-     * Sets or retrieves the height of the object.

+    /**
+     * Sets or retrieves the height of the object.
      */
     height: string;
-    /**

-     * Sets or retrieves a URI to a long description of the object.

+    /**
+     * Sets or retrieves a URI to a long description of the object.
      */
     /** @deprecated */
     longDesc: string;
-    /**

-     * Sets or retrieves the top and bottom margin heights before displaying the text in a frame.

+    /**
+     * Sets or retrieves the top and bottom margin heights before displaying the text in a frame.
      */
     /** @deprecated */
     marginHeight: string;
-    /**

-     * Sets or retrieves the left and right margin widths before displaying the text in a frame.

+    /**
+     * Sets or retrieves the left and right margin widths before displaying the text in a frame.
      */
     /** @deprecated */
     marginWidth: string;
-    /**

-     * Sets or retrieves the frame name.

+    /**
+     * Sets or retrieves the frame name.
      */
     name: string;
     referrerPolicy: ReferrerPolicy;
     readonly sandbox: DOMTokenList;
-    /**

-     * Sets or retrieves whether the frame can be scrolled.

+    /**
+     * Sets or retrieves whether the frame can be scrolled.
      */
     /** @deprecated */
     scrolling: string;
-    /**

-     * Sets or retrieves a URL to be loaded by the object.

+    /**
+     * Sets or retrieves a URL to be loaded by the object.
      */
     src: string;
-    /**

-     * Sets or retrives the content of the page that is to contain.

+    /**
+     * Sets or retrives the content of the page that is to contain.
      */
     srcdoc: string;
-    /**

-     * Sets or retrieves the width of the object.

+    /**
+     * Sets or retrieves the width of the object.
      */
     width: string;
     getSVGDocument(): Document | null;
@@ -6847,78 +6847,78 @@
 
 /** Provides special properties and methods for manipulating <img> elements. */
 interface HTMLImageElement extends HTMLElement {
-    /**

-     * Sets or retrieves how the object is aligned with adjacent text.

+    /**
+     * Sets or retrieves how the object is aligned with adjacent text.
      */
     /** @deprecated */
     align: string;
-    /**

-     * Sets or retrieves a text alternative to the graphic.

+    /**
+     * Sets or retrieves a text alternative to the graphic.
      */
     alt: string;
-    /**

-     * Specifies the properties of a border drawn around an object.

+    /**
+     * Specifies the properties of a border drawn around an object.
      */
     /** @deprecated */
     border: string;
-    /**

-     * Retrieves whether the object is fully loaded.

+    /**
+     * Retrieves whether the object is fully loaded.
      */
     readonly complete: boolean;
     crossOrigin: string | null;
     readonly currentSrc: string;
     decoding: "async" | "sync" | "auto";
-    /**

-     * Sets or retrieves the height of the object.

+    /**
+     * Sets or retrieves the height of the object.
      */
     height: number;
-    /**

-     * Sets or retrieves the width of the border to draw around the object.

+    /**
+     * Sets or retrieves the width of the border to draw around the object.
      */
     /** @deprecated */
     hspace: number;
-    /**

-     * Sets or retrieves whether the image is a server-side image map.

+    /**
+     * Sets or retrieves whether the image is a server-side image map.
      */
     isMap: boolean;
-    /**

-     * Sets or retrieves a Uniform Resource Identifier (URI) to a long description of the object.

+    /**
+     * Sets or retrieves a Uniform Resource Identifier (URI) to a long description of the object.
      */
     /** @deprecated */
     longDesc: string;
     /** @deprecated */
     lowsrc: string;
-    /**

-     * Sets or retrieves the name of the object.

+    /**
+     * Sets or retrieves the name of the object.
      */
     /** @deprecated */
     name: string;
-    /**

-     * The original height of the image resource before sizing.

+    /**
+     * The original height of the image resource before sizing.
      */
     readonly naturalHeight: number;
-    /**

-     * The original width of the image resource before sizing.

+    /**
+     * The original width of the image resource before sizing.
      */
     readonly naturalWidth: number;
     referrerPolicy: string;
     sizes: string;
-    /**

-     * The address or URL of the a media resource that is to be considered.

+    /**
+     * The address or URL of the a media resource that is to be considered.
      */
     src: string;
     srcset: string;
-    /**

-     * Sets or retrieves the URL, often with a bookmark extension (#name), to use as a client-side image map.

+    /**
+     * Sets or retrieves the URL, often with a bookmark extension (#name), to use as a client-side image map.
      */
     useMap: string;
-    /**

-     * Sets or retrieves the vertical margin for the object.

+    /**
+     * Sets or retrieves the vertical margin for the object.
      */
     /** @deprecated */
     vspace: number;
-    /**

-     * Sets or retrieves the width of the object.

+    /**
+     * Sets or retrieves the width of the object.
      */
     width: number;
     readonly x: number;
@@ -6937,199 +6937,199 @@
 
 /** Provides special properties and methods for manipulating the options, layout, and presentation of <input> elements. */
 interface HTMLInputElement extends HTMLElement {
-    /**

-     * Sets or retrieves a comma-separated list of content types.

+    /**
+     * Sets or retrieves a comma-separated list of content types.
      */
     accept: string;
-    /**

-     * Sets or retrieves how the object is aligned with adjacent text.

+    /**
+     * Sets or retrieves how the object is aligned with adjacent text.
      */
     /** @deprecated */
     align: string;
-    /**

-     * Sets or retrieves a text alternative to the graphic.

+    /**
+     * Sets or retrieves a text alternative to the graphic.
      */
     alt: string;
-    /**

-     * Specifies whether autocomplete is applied to an editable text field.

+    /**
+     * Specifies whether autocomplete is applied to an editable text field.
      */
     autocomplete: string;
-    /**

-     * Provides a way to direct a user to a specific field when a document loads. This can provide both direction and convenience for a user, reducing the need to click or tab to a field when a page opens. This attribute is true when present on an element, and false when missing.

+    /**
+     * Provides a way to direct a user to a specific field when a document loads. This can provide both direction and convenience for a user, reducing the need to click or tab to a field when a page opens. This attribute is true when present on an element, and false when missing.
      */
     autofocus: boolean;
-    /**

-     * Sets or retrieves the state of the check box or radio button.

+    /**
+     * Sets or retrieves the state of the check box or radio button.
      */
     checked: boolean;
-    /**

-     * Sets or retrieves the state of the check box or radio button.

+    /**
+     * Sets or retrieves the state of the check box or radio button.
      */
     defaultChecked: boolean;
-    /**

-     * Sets or retrieves the initial contents of the object.

+    /**
+     * Sets or retrieves the initial contents of the object.
      */
     defaultValue: string;
     dirName: string;
     disabled: boolean;
-    /**

-     * Returns a FileList object on a file type input object.

+    /**
+     * Returns a FileList object on a file type input object.
      */
     files: FileList | null;
-    /**

-     * Retrieves a reference to the form that the object is embedded in.

+    /**
+     * Retrieves a reference to the form that the object is embedded in.
      */
     readonly form: HTMLFormElement | null;
-    /**

-     * Overrides the action attribute (where the data on a form is sent) on the parent form element.

+    /**
+     * Overrides the action attribute (where the data on a form is sent) on the parent form element.
      */
     formAction: string;
-    /**

-     * Used to override the encoding (formEnctype attribute) specified on the form element.

+    /**
+     * Used to override the encoding (formEnctype attribute) specified on the form element.
      */
     formEnctype: string;
-    /**

-     * Overrides the submit method attribute previously specified on a form element.

+    /**
+     * Overrides the submit method attribute previously specified on a form element.
      */
     formMethod: string;
-    /**

-     * Overrides any validation or required attributes on a form or form elements to allow it to be submitted without validation. This can be used to create a "save draft"-type submit option.

+    /**
+     * Overrides any validation or required attributes on a form or form elements to allow it to be submitted without validation. This can be used to create a "save draft"-type submit option.
      */
     formNoValidate: boolean;
-    /**

-     * Overrides the target attribute on a form element.

+    /**
+     * Overrides the target attribute on a form element.
      */
     formTarget: string;
-    /**

-     * Sets or retrieves the height of the object.

+    /**
+     * Sets or retrieves the height of the object.
      */
     height: number;
     indeterminate: boolean;
     readonly labels: NodeListOf<HTMLLabelElement> | null;
-    /**

-     * Specifies the ID of a pre-defined datalist of options for an input element.

+    /**
+     * Specifies the ID of a pre-defined datalist of options for an input element.
      */
     readonly list: HTMLElement | null;
-    /**

-     * Defines the maximum acceptable value for an input element with type="number".When used with the min and step attributes, lets you control the range and increment (such as only even numbers) that the user can enter into an input field.

+    /**
+     * Defines the maximum acceptable value for an input element with type="number".When used with the min and step attributes, lets you control the range and increment (such as only even numbers) that the user can enter into an input field.
      */
     max: string;
-    /**

-     * Sets or retrieves the maximum number of characters that the user can enter in a text control.

+    /**
+     * Sets or retrieves the maximum number of characters that the user can enter in a text control.
      */
     maxLength: number;
-    /**

-     * Defines the minimum acceptable value for an input element with type="number". When used with the max and step attributes, lets you control the range and increment (such as even numbers only) that the user can enter into an input field.

+    /**
+     * Defines the minimum acceptable value for an input element with type="number". When used with the max and step attributes, lets you control the range and increment (such as even numbers only) that the user can enter into an input field.
      */
     min: string;
     minLength: number;
-    /**

-     * Sets or retrieves the Boolean value indicating whether multiple items can be selected from a list.

+    /**
+     * Sets or retrieves the Boolean value indicating whether multiple items can be selected from a list.
      */
     multiple: boolean;
-    /**

-     * Sets or retrieves the name of the object.

+    /**
+     * Sets or retrieves the name of the object.
      */
     name: string;
-    /**

-     * Gets or sets a string containing a regular expression that the user's input must match.

+    /**
+     * Gets or sets a string containing a regular expression that the user's input must match.
      */
     pattern: string;
-    /**

-     * Gets or sets a text string that is displayed in an input field as a hint or prompt to users as the format or type of information they need to enter.The text appears in an input field until the user puts focus on the field.

+    /**
+     * Gets or sets a text string that is displayed in an input field as a hint or prompt to users as the format or type of information they need to enter.The text appears in an input field until the user puts focus on the field.
      */
     placeholder: string;
     readOnly: boolean;
-    /**

-     * When present, marks an element that can't be submitted without a value.

+    /**
+     * When present, marks an element that can't be submitted without a value.
      */
     required: boolean;
     selectionDirection: string | null;
-    /**

-     * Gets or sets the end position or offset of a text selection.

+    /**
+     * Gets or sets the end position or offset of a text selection.
      */
     selectionEnd: number | null;
-    /**

-     * Gets or sets the starting position or offset of a text selection.

+    /**
+     * Gets or sets the starting position or offset of a text selection.
      */
     selectionStart: number | null;
     size: number;
-    /**

-     * The address or URL of the a media resource that is to be considered.

+    /**
+     * The address or URL of the a media resource that is to be considered.
      */
     src: string;
-    /**

-     * Defines an increment or jump between values that you want to allow the user to enter. When used with the max and min attributes, lets you control the range and increment (for example, allow only even numbers) that the user can enter into an input field.

+    /**
+     * Defines an increment or jump between values that you want to allow the user to enter. When used with the max and min attributes, lets you control the range and increment (for example, allow only even numbers) that the user can enter into an input field.
      */
     step: string;
-    /**

-     * Returns the content type of the object.

+    /**
+     * Returns the content type of the object.
      */
     type: string;
-    /**

-     * Sets or retrieves the URL, often with a bookmark extension (#name), to use as a client-side image map.

+    /**
+     * Sets or retrieves the URL, often with a bookmark extension (#name), to use as a client-side image map.
      */
     /** @deprecated */
     useMap: string;
-    /**

-     * Returns the error message that would be displayed if the user submits the form, or an empty string if no error message. It also triggers the standard error message, such as "this is a required field". The result is that the user sees validation messages without actually submitting.

+    /**
+     * Returns the error message that would be displayed if the user submits the form, or an empty string if no error message. It also triggers the standard error message, such as "this is a required field". The result is that the user sees validation messages without actually submitting.
      */
     readonly validationMessage: string;
-    /**

-     * Returns a  ValidityState object that represents the validity states of an element.

+    /**
+     * Returns a  ValidityState object that represents the validity states of an element.
      */
     readonly validity: ValidityState;
-    /**

-     * Returns the value of the data at the cursor's current position.

+    /**
+     * Returns the value of the data at the cursor's current position.
      */
     value: string;
-    /**

-     * Returns a Date object representing the form control's value, if applicable; otherwise, returns null. Can be set, to change the value. Throws an "InvalidStateError" DOMException if the control isn't date- or time-based.

+    /**
+     * Returns a Date object representing the form control's value, if applicable; otherwise, returns null. Can be set, to change the value. Throws an "InvalidStateError" DOMException if the control isn't date- or time-based.
      */
     valueAsDate: Date | null;
-    /**

-     * Returns the input field value as a number.

+    /**
+     * Returns the input field value as a number.
      */
     valueAsNumber: number;
-    /**

-     * Sets or retrieves the width of the object.

+    /**
+     * Sets or retrieves the width of the object.
      */
     width: number;
-    /**

-     * Returns whether an element will successfully validate based on forms validation rules and constraints.

+    /**
+     * Returns whether an element will successfully validate based on forms validation rules and constraints.
      */
     readonly willValidate: boolean;
-    /**

-     * Returns whether a form will validate when it is submitted, without having to submit it.

+    /**
+     * Returns whether a form will validate when it is submitted, without having to submit it.
      */
     checkValidity(): boolean;
     reportValidity(): boolean;
-    /**

-     * Makes the selection equal to the current object.

+    /**
+     * Makes the selection equal to the current object.
      */
     select(): void;
-    /**

-     * Sets a custom error message that is displayed when a form is submitted.

-     * @param error Sets a custom error message that is displayed when a form is submitted.

+    /**
+     * Sets a custom error message that is displayed when a form is submitted.
+     * @param error Sets a custom error message that is displayed when a form is submitted.
      */
     setCustomValidity(error: string): void;
     setRangeText(replacement: string): void;
     setRangeText(replacement: string, start: number, end: number, selectionMode?: SelectionMode): void;
-    /**

-     * Sets the start and end positions of a selection in a text field.

-     * @param start The offset into the text field for the start of the selection.

-     * @param end The offset into the text field for the end of the selection.

-     * @param direction The direction in which the selection is performed.

+    /**
+     * Sets the start and end positions of a selection in a text field.
+     * @param start The offset into the text field for the start of the selection.
+     * @param end The offset into the text field for the end of the selection.
+     * @param direction The direction in which the selection is performed.
      */
     setSelectionRange(start: number, end: number, direction?: "forward" | "backward" | "none"): void;
-    /**

-     * Decrements a range input control's value by the value given by the Step attribute. If the optional parameter is used, it will decrement the input control's step value multiplied by the parameter's value.

-     * @param n Value to decrement the value by.

+    /**
+     * Decrements a range input control's value by the value given by the Step attribute. If the optional parameter is used, it will decrement the input control's step value multiplied by the parameter's value.
+     * @param n Value to decrement the value by.
      */
     stepDown(n?: number): void;
-    /**

-     * Increments a range input control's value by the value given by the Step attribute. If the optional parameter is used, will increment the input control's value by that value.

-     * @param n Value to increment the value by.

+    /**
+     * Increments a range input control's value by the value given by the Step attribute. If the optional parameter is used, will increment the input control's value by that value.
+     * @param n Value to increment the value by.
      */
     stepUp(n?: number): void;
     addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLInputElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
@@ -7147,8 +7147,8 @@
 interface HTMLLIElement extends HTMLElement {
     /** @deprecated */
     type: string;
-    /**

-     * Sets or retrieves the value of a list item.

+    /**
+     * Sets or retrieves the value of a list item.
      */
     value: number;
     addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLLIElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
@@ -7165,12 +7165,12 @@
 /** Gives access to properties specific to <label> elements. It inherits methods and properties from the base HTMLElement interface. */
 interface HTMLLabelElement extends HTMLElement {
     readonly control: HTMLElement | null;
-    /**

-     * Retrieves a reference to the form that the object is embedded in.

+    /**
+     * Retrieves a reference to the form that the object is embedded in.
      */
     readonly form: HTMLFormElement | null;
-    /**

-     * Sets or retrieves the object to which the given label object is assigned.

+    /**
+     * Sets or retrieves the object to which the given label object is assigned.
      */
     htmlFor: string;
     addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLLabelElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
@@ -7188,8 +7188,8 @@
 interface HTMLLegendElement extends HTMLElement {
     /** @deprecated */
     align: string;
-    /**

-     * Retrieves a reference to the form that the object is embedded in.

+    /**
+     * Retrieves a reference to the form that the object is embedded in.
      */
     readonly form: HTMLFormElement | null;
     addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLLegendElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
@@ -7206,47 +7206,47 @@
 /** Reference information for external resources and the relationship of those resources to a document and vice-versa. This object inherits all of the properties and methods of the HTMLElement interface. */
 interface HTMLLinkElement extends HTMLElement, LinkStyle {
     as: string;
-    /**

-     * Sets or retrieves the character set used to encode the object.

+    /**
+     * Sets or retrieves the character set used to encode the object.
      */
     /** @deprecated */
     charset: string;
     crossOrigin: string | null;
     disabled: boolean;
-    /**

-     * Sets or retrieves a destination URL or an anchor point.

+    /**
+     * Sets or retrieves a destination URL or an anchor point.
      */
     href: string;
-    /**

-     * Sets or retrieves the language code of the object.

+    /**
+     * Sets or retrieves the language code of the object.
      */
     hreflang: string;
     imageSizes: string;
     imageSrcset: string;
     integrity: string;
-    /**

-     * Sets or retrieves the media type.

+    /**
+     * Sets or retrieves the media type.
      */
     media: string;
     referrerPolicy: string;
-    /**

-     * Sets or retrieves the relationship between the object and the destination of the link.

+    /**
+     * Sets or retrieves the relationship between the object and the destination of the link.
      */
     rel: string;
     readonly relList: DOMTokenList;
-    /**

-     * Sets or retrieves the relationship between the object and the destination of the link.

+    /**
+     * Sets or retrieves the relationship between the object and the destination of the link.
      */
     /** @deprecated */
     rev: string;
     readonly sizes: DOMTokenList;
-    /**

-     * Sets or retrieves the window or frame at which to target content.

+    /**
+     * Sets or retrieves the window or frame at which to target content.
      */
     /** @deprecated */
     target: string;
-    /**

-     * Sets or retrieves the MIME type of the object.

+    /**
+     * Sets or retrieves the MIME type of the object.
      */
     type: string;
     addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLLinkElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
@@ -7262,12 +7262,12 @@
 
 /** Provides special properties and methods (beyond those of the regular object HTMLElement interface it also has available to it by inheritance) for manipulating the layout and presentation of map elements. */
 interface HTMLMapElement extends HTMLElement {
-    /**

-     * Retrieves a collection of the area objects defined for the given map object.

+    /**
+     * Retrieves a collection of the area objects defined for the given map object.
      */
     readonly areas: HTMLCollection;
-    /**

-     * Sets or retrieves the name of the object.

+    /**
+     * Sets or retrieves the name of the object.
      */
     name: string;
     addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLMapElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
@@ -7340,165 +7340,165 @@
 
 /** Adds to HTMLElement the properties and methods needed to support basic media-related capabilities that are common to audio and video. */
 interface HTMLMediaElement extends HTMLElement {
-    /**

-     * Returns an AudioTrackList object with the audio tracks for a given video element.

+    /**
+     * Returns an AudioTrackList object with the audio tracks for a given video element.
      */
     readonly audioTracks: AudioTrackList;
-    /**

-     * Gets or sets a value that indicates whether to start playing the media automatically.

+    /**
+     * Gets or sets a value that indicates whether to start playing the media automatically.
      */
     autoplay: boolean;
-    /**

-     * Gets a collection of buffered time ranges.

+    /**
+     * Gets a collection of buffered time ranges.
      */
     readonly buffered: TimeRanges;
-    /**

-     * Gets or sets a flag that indicates whether the client provides a set of controls for the media (in case the developer does not include controls for the player).

+    /**
+     * Gets or sets a flag that indicates whether the client provides a set of controls for the media (in case the developer does not include controls for the player).
      */
     controls: boolean;
     crossOrigin: string | null;
-    /**

-     * Gets the address or URL of the current media resource that is selected by IHTMLMediaElement.

+    /**
+     * Gets the address or URL of the current media resource that is selected by IHTMLMediaElement.
      */
     readonly currentSrc: string;
-    /**

-     * Gets or sets the current playback position, in seconds.

+    /**
+     * Gets or sets the current playback position, in seconds.
      */
     currentTime: number;
     defaultMuted: boolean;
-    /**

-     * Gets or sets the default playback rate when the user is not using fast forward or reverse for a video or audio resource.

+    /**
+     * Gets or sets the default playback rate when the user is not using fast forward or reverse for a video or audio resource.
      */
     defaultPlaybackRate: number;
-    /**

-     * Returns the duration in seconds of the current media resource. A NaN value is returned if duration is not available, or Infinity if the media resource is streaming.

+    /**
+     * Returns the duration in seconds of the current media resource. A NaN value is returned if duration is not available, or Infinity if the media resource is streaming.
      */
     readonly duration: number;
-    /**

-     * Gets information about whether the playback has ended or not.

+    /**
+     * Gets information about whether the playback has ended or not.
      */
     readonly ended: boolean;
-    /**

-     * Returns an object representing the current error state of the audio or video element.

+    /**
+     * Returns an object representing the current error state of the audio or video element.
      */
     readonly error: MediaError | null;
-    /**

-     * Gets or sets a flag to specify whether playback should restart after it completes.

+    /**
+     * Gets or sets a flag to specify whether playback should restart after it completes.
      */
     loop: boolean;
     readonly mediaKeys: MediaKeys | null;
-    /**

-     * Specifies the purpose of the audio or video media, such as background audio or alerts.

+    /**
+     * Specifies the purpose of the audio or video media, such as background audio or alerts.
      */
     msAudioCategory: string;
-    /**

-     * Specifies the output device id that the audio will be sent to.

+    /**
+     * Specifies the output device id that the audio will be sent to.
      */
     msAudioDeviceType: string;
     readonly msGraphicsTrustStatus: MSGraphicsTrust;
-    /**

-     * Gets the MSMediaKeys object, which is used for decrypting media data, that is associated with this media element.

+    /**
+     * Gets the MSMediaKeys object, which is used for decrypting media data, that is associated with this media element.
      */
     /** @deprecated */
     readonly msKeys: MSMediaKeys;
-    /**

-     * Gets or sets whether the DLNA PlayTo device is available.

+    /**
+     * Gets or sets whether the DLNA PlayTo device is available.
      */
     msPlayToDisabled: boolean;
-    /**

-     * Gets or sets the path to the preferred media source. This enables the Play To target device to stream the media content, which can be DRM protected, from a different location, such as a cloud media server.

+    /**
+     * Gets or sets the path to the preferred media source. This enables the Play To target device to stream the media content, which can be DRM protected, from a different location, such as a cloud media server.
      */
     msPlayToPreferredSourceUri: string;
-    /**

-     * Gets or sets the primary DLNA PlayTo device.

+    /**
+     * Gets or sets the primary DLNA PlayTo device.
      */
     msPlayToPrimary: boolean;
-    /**

-     * Gets the source associated with the media element for use by the PlayToManager.

+    /**
+     * Gets the source associated with the media element for use by the PlayToManager.
      */
     readonly msPlayToSource: any;
-    /**

-     * Specifies whether or not to enable low-latency playback on the media element.

+    /**
+     * Specifies whether or not to enable low-latency playback on the media element.
      */
     msRealTime: boolean;
-    /**

-     * Gets or sets a flag that indicates whether the audio (either audio or the audio track on video media) is muted.

+    /**
+     * Gets or sets a flag that indicates whether the audio (either audio or the audio track on video media) is muted.
      */
     muted: boolean;
-    /**

-     * Gets the current network activity for the element.

+    /**
+     * Gets the current network activity for the element.
      */
     readonly networkState: number;
     onencrypted: ((this: HTMLMediaElement, ev: MediaEncryptedEvent) => any) | null;
     /** @deprecated */
     onmsneedkey: ((this: HTMLMediaElement, ev: Event) => any) | null;
     onwaitingforkey: ((this: HTMLMediaElement, ev: Event) => any) | null;
-    /**

-     * Gets a flag that specifies whether playback is paused.

+    /**
+     * Gets a flag that specifies whether playback is paused.
      */
     readonly paused: boolean;
-    /**

-     * Gets or sets the current rate of speed for the media resource to play. This speed is expressed as a multiple of the normal speed of the media resource.

+    /**
+     * Gets or sets the current rate of speed for the media resource to play. This speed is expressed as a multiple of the normal speed of the media resource.
      */
     playbackRate: number;
-    /**

-     * Gets TimeRanges for the current media resource that has been played.

+    /**
+     * Gets TimeRanges for the current media resource that has been played.
      */
     readonly played: TimeRanges;
-    /**

-     * Gets or sets the current playback position, in seconds.

+    /**
+     * Gets or sets the current playback position, in seconds.
      */
     preload: string;
     readonly readyState: number;
-    /**

-     * Returns a TimeRanges object that represents the ranges of the current media resource that can be seeked.

+    /**
+     * Returns a TimeRanges object that represents the ranges of the current media resource that can be seeked.
      */
     readonly seekable: TimeRanges;
-    /**

-     * Gets a flag that indicates whether the client is currently moving to a new playback position in the media resource.

+    /**
+     * Gets a flag that indicates whether the client is currently moving to a new playback position in the media resource.
      */
     readonly seeking: boolean;
-    /**

-     * The address or URL of the a media resource that is to be considered.

+    /**
+     * The address or URL of the a media resource that is to be considered.
      */
     src: string;
     srcObject: MediaStream | MediaSource | Blob | null;
     readonly textTracks: TextTrackList;
     readonly videoTracks: VideoTrackList;
-    /**

-     * Gets or sets the volume level for audio portions of the media element.

+    /**
+     * Gets or sets the volume level for audio portions of the media element.
      */
     volume: number;
     addTextTrack(kind: TextTrackKind, label?: string, language?: string): TextTrack;
-    /**

-     * Returns a string that specifies whether the client can play a given media resource type.

+    /**
+     * Returns a string that specifies whether the client can play a given media resource type.
      */
     canPlayType(type: string): CanPlayTypeResult;
-    /**

-     * Resets the audio or video object and loads a new media resource.

+    /**
+     * Resets the audio or video object and loads a new media resource.
      */
     load(): void;
-    /**

-     * Clears all effects from the media pipeline.

+    /**
+     * Clears all effects from the media pipeline.
      */
     msClearEffects(): void;
     msGetAsCastingSource(): any;
-    /**

-     * Inserts the specified audio effect into media pipeline.

+    /**
+     * Inserts the specified audio effect into media pipeline.
      */
     msInsertAudioEffect(activatableClassId: string, effectRequired: boolean, config?: any): void;
     /** @deprecated */
     msSetMediaKeys(mediaKeys: MSMediaKeys): void;
-    /**

-     * Specifies the media protection manager for a given media pipeline.

+    /**
+     * Specifies the media protection manager for a given media pipeline.
      */
     msSetMediaProtectionManager(mediaProtectionManager?: any): void;
-    /**

-     * Pauses the current playback and sets paused to TRUE. This can be used to test whether the media is playing or paused. You can also use the pause or play events to tell whether the media is playing or not.

+    /**
+     * Pauses the current playback and sets paused to TRUE. This can be used to test whether the media is playing or paused. You can also use the pause or play events to tell whether the media is playing or not.
      */
     pause(): void;
-    /**

-     * Loads and starts playback of a media resource.

+    /**
+     * Loads and starts playback of a media resource.
      */
     play(): Promise<void>;
     setMediaKeys(mediaKeys: MediaKeys | null): Promise<void>;
@@ -7547,20 +7547,20 @@
 
 /** Contains descriptive metadata about a document. It inherits all of the properties and methods described in the HTMLElement interface. */
 interface HTMLMetaElement extends HTMLElement {
-    /**

-     * Gets or sets meta-information to associate with httpEquiv or name.

+    /**
+     * Gets or sets meta-information to associate with httpEquiv or name.
      */
     content: string;
-    /**

-     * Gets or sets information used to bind the value of a content attribute of a meta element to an HTTP response header.

+    /**
+     * Gets or sets information used to bind the value of a content attribute of a meta element to an HTTP response header.
      */
     httpEquiv: string;
-    /**

-     * Sets or retrieves the value specified in the content attribute of the meta object.

+    /**
+     * Sets or retrieves the value specified in the content attribute of the meta object.
      */
     name: string;
-    /**

-     * Sets or retrieves a scheme to be used in interpreting the value of a property specified for the object.

+    /**
+     * Sets or retrieves a scheme to be used in interpreting the value of a property specified for the object.
      */
     /** @deprecated */
     scheme: string;
@@ -7597,12 +7597,12 @@
 
 /** Provides special properties (beyond the regular methods and properties available through the HTMLElement interface they also have available to them by inheritance) for manipulating modification elements, that is <del> and <ins>. */
 interface HTMLModElement extends HTMLElement {
-    /**

-     * Sets or retrieves reference information about the object.

+    /**
+     * Sets or retrieves reference information about the object.
      */
     cite: string;
-    /**

-     * Sets or retrieves the date and time of a modification to the object.

+    /**
+     * Sets or retrieves the date and time of a modification to the object.
      */
     dateTime: string;
     addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLModElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
@@ -7621,8 +7621,8 @@
     /** @deprecated */
     compact: boolean;
     reversed: boolean;
-    /**

-     * The starting number.

+    /**
+     * The starting number.
      */
     start: number;
     type: string;
@@ -7641,94 +7641,94 @@
 interface HTMLObjectElement extends HTMLElement {
     /** @deprecated */
     align: string;
-    /**

-     * Sets or retrieves a character string that can be used to implement your own archive functionality for the object.

+    /**
+     * Sets or retrieves a character string that can be used to implement your own archive functionality for the object.
      */
     /** @deprecated */
     archive: string;
     /** @deprecated */
     border: string;
-    /**

-     * Sets or retrieves the URL of the file containing the compiled Java class.

+    /**
+     * Sets or retrieves the URL of the file containing the compiled Java class.
      */
     /** @deprecated */
     code: string;
-    /**

-     * Sets or retrieves the URL of the component.

+    /**
+     * Sets or retrieves the URL of the component.
      */
     /** @deprecated */
     codeBase: string;
-    /**

-     * Sets or retrieves the Internet media type for the code associated with the object.

+    /**
+     * Sets or retrieves the Internet media type for the code associated with the object.
      */
     /** @deprecated */
     codeType: string;
-    /**

-     * Retrieves the document object of the page or frame.

+    /**
+     * Retrieves the document object of the page or frame.
      */
     readonly contentDocument: Document | null;
     readonly contentWindow: WindowProxy | null;
-    /**

-     * Sets or retrieves the URL that references the data of the object.

+    /**
+     * Sets or retrieves the URL that references the data of the object.
      */
     data: string;
     /** @deprecated */
     declare: boolean;
-    /**

-     * Retrieves a reference to the form that the object is embedded in.

+    /**
+     * Retrieves a reference to the form that the object is embedded in.
      */
     readonly form: HTMLFormElement | null;
-    /**

-     * Sets or retrieves the height of the object.

+    /**
+     * Sets or retrieves the height of the object.
      */
     height: string;
     /** @deprecated */
     hspace: number;
-    /**

-     * Sets or retrieves the name of the object.

+    /**
+     * Sets or retrieves the name of the object.
      */
     name: string;
-    /**

-     * Sets or retrieves a message to be displayed while an object is loading.

+    /**
+     * Sets or retrieves a message to be displayed while an object is loading.
      */
     /** @deprecated */
     standby: string;
-    /**

-     * Sets or retrieves the MIME type of the object.

+    /**
+     * Sets or retrieves the MIME type of the object.
      */
     type: string;
     typeMustMatch: boolean;
-    /**

-     * Sets or retrieves the URL, often with a bookmark extension (#name), to use as a client-side image map.

+    /**
+     * Sets or retrieves the URL, often with a bookmark extension (#name), to use as a client-side image map.
      */
     useMap: string;
-    /**

-     * Returns the error message that would be displayed if the user submits the form, or an empty string if no error message. It also triggers the standard error message, such as "this is a required field". The result is that the user sees validation messages without actually submitting.

+    /**
+     * Returns the error message that would be displayed if the user submits the form, or an empty string if no error message. It also triggers the standard error message, such as "this is a required field". The result is that the user sees validation messages without actually submitting.
      */
     readonly validationMessage: string;
-    /**

-     * Returns a  ValidityState object that represents the validity states of an element.

+    /**
+     * Returns a  ValidityState object that represents the validity states of an element.
      */
     readonly validity: ValidityState;
     /** @deprecated */
     vspace: number;
-    /**

-     * Sets or retrieves the width of the object.

+    /**
+     * Sets or retrieves the width of the object.
      */
     width: string;
-    /**

-     * Returns whether an element will successfully validate based on forms validation rules and constraints.

+    /**
+     * Returns whether an element will successfully validate based on forms validation rules and constraints.
      */
     readonly willValidate: boolean;
-    /**

-     * Returns whether a form will validate when it is submitted, without having to submit it.

+    /**
+     * Returns whether a form will validate when it is submitted, without having to submit it.
      */
     checkValidity(): boolean;
     getSVGDocument(): Document | null;
     reportValidity(): boolean;
-    /**

-     * Sets a custom error message that is displayed when a form is submitted.

-     * @param error Sets a custom error message that is displayed when a form is submitted.

+    /**
+     * Sets a custom error message that is displayed when a form is submitted.
+     * @param error Sets a custom error message that is displayed when a form is submitted.
      */
     setCustomValidity(error: string): void;
     addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLObjectElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
@@ -7745,12 +7745,12 @@
 /** Provides special properties and methods (beyond the regular HTMLElement object interface they also have available to them by inheritance) for manipulating the layout and presentation of <optgroup> elements. */
 interface HTMLOptGroupElement extends HTMLElement {
     disabled: boolean;
-    /**

-     * Retrieves a reference to the form that the object is embedded in.

+    /**
+     * Retrieves a reference to the form that the object is embedded in.
      */
     readonly form: HTMLFormElement | null;
-    /**

-     * Sets or retrieves a value that you can use to implement your own label functionality for the object.

+    /**
+     * Sets or retrieves a value that you can use to implement your own label functionality for the object.
      */
     label: string;
     addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLOptGroupElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
@@ -7766,33 +7766,33 @@
 
 /** <option> elements and inherits all classes and methods of the HTMLElement interface. */
 interface HTMLOptionElement extends HTMLElement {
-    /**

-     * Sets or retrieves the status of an option.

+    /**
+     * Sets or retrieves the status of an option.
      */
     defaultSelected: boolean;
     disabled: boolean;
-    /**

-     * Retrieves a reference to the form that the object is embedded in.

+    /**
+     * Retrieves a reference to the form that the object is embedded in.
      */
     readonly form: HTMLFormElement | null;
-    /**

-     * Sets or retrieves the ordinal position of an option in a list box.

+    /**
+     * Sets or retrieves the ordinal position of an option in a list box.
      */
     readonly index: number;
-    /**

-     * Sets or retrieves a value that you can use to implement your own label functionality for the object.

+    /**
+     * Sets or retrieves a value that you can use to implement your own label functionality for the object.
      */
     label: string;
-    /**

-     * Sets or retrieves whether the option in the list box is the default item.

+    /**
+     * Sets or retrieves whether the option in the list box is the default item.
      */
     selected: boolean;
-    /**

-     * Sets or retrieves the text string specified by the option tag.

+    /**
+     * Sets or retrieves the text string specified by the option tag.
      */
     text: string;
-    /**

-     * Sets or retrieves the value which is returned to the server when the form control is submitted.

+    /**
+     * Sets or retrieves the value which is returned to the server when the form control is submitted.
      */
     value: string;
     addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLOptionElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
@@ -7876,8 +7876,8 @@
 
 /** Provides special properties (beyond those of the regular HTMLElement object interface it inherits) for manipulating <p> elements. */
 interface HTMLParagraphElement extends HTMLElement {
-    /**

-     * Sets or retrieves how the object is aligned with adjacent text.

+    /**
+     * Sets or retrieves how the object is aligned with adjacent text.
      */
     /** @deprecated */
     align: string;
@@ -7894,21 +7894,21 @@
 
 /** Provides special properties (beyond those of the regular HTMLElement object interface it inherits) for manipulating <param> elements, representing a pair of a key and a value that acts as a parameter for an <object> element. */
 interface HTMLParamElement extends HTMLElement {
-    /**

-     * Sets or retrieves the name of an input parameter for an element.

+    /**
+     * Sets or retrieves the name of an input parameter for an element.
      */
     name: string;
-    /**

-     * Sets or retrieves the content type of the resource designated by the value attribute.

+    /**
+     * Sets or retrieves the content type of the resource designated by the value attribute.
      */
     /** @deprecated */
     type: string;
-    /**

-     * Sets or retrieves the value of an input parameter for an element.

+    /**
+     * Sets or retrieves the value of an input parameter for an element.
      */
     value: string;
-    /**

-     * Sets or retrieves the data type of the value attribute.

+    /**
+     * Sets or retrieves the data type of the value attribute.
      */
     /** @deprecated */
     valueType: string;
@@ -7938,8 +7938,8 @@
 
 /** Exposes specific properties and methods (beyond those of the HTMLElement interface it also has available to it by inheritance) for manipulating a block of preformatted text (<pre>). */
 interface HTMLPreElement extends HTMLElement {
-    /**

-     * Sets or gets a value that you can use to implement your own width functionality for the object.

+    /**
+     * Sets or gets a value that you can use to implement your own width functionality for the object.
      */
     /** @deprecated */
     width: number;
@@ -7957,16 +7957,16 @@
 /** Provides special properties and methods (beyond the regular HTMLElement interface it also has available to it by inheritance) for manipulating the layout and presentation of <progress> elements. */
 interface HTMLProgressElement extends HTMLElement {
     readonly labels: NodeListOf<HTMLLabelElement>;
-    /**

-     * Defines the maximum, or "done" value for a progress element.

+    /**
+     * Defines the maximum, or "done" value for a progress element.
      */
     max: number;
-    /**

-     * Returns the quotient of value/max when the value attribute is set (determinate progress bar), or -1 when the value attribute is missing (indeterminate progress bar).

+    /**
+     * Returns the quotient of value/max when the value attribute is set (determinate progress bar), or -1 when the value attribute is missing (indeterminate progress bar).
      */
     readonly position: number;
-    /**

-     * Sets or gets the current value of a progress element. The value must be a non-negative number between 0 and the max value.

+    /**
+     * Sets or gets the current value of a progress element. The value must be a non-negative number between 0 and the max value.
      */
     value: number;
     addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLProgressElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
@@ -7982,8 +7982,8 @@
 
 /** Provides special properties and methods (beyond the regular HTMLElement interface it also has available to it by inheritance) for manipulating quoting elements, like <blockquote> and <q>, but not the <cite> element. */
 interface HTMLQuoteElement extends HTMLElement {
-    /**

-     * Sets or retrieves reference information about the object.

+    /**
+     * Sets or retrieves reference information about the object.
      */
     cite: string;
     addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLQuoteElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
@@ -8000,39 +8000,39 @@
 /** HTML <script> elements expose the HTMLScriptElement interface, which provides special properties and methods for manipulating the behavior and execution of <script> elements (beyond the inherited HTMLElement interface). */
 interface HTMLScriptElement extends HTMLElement {
     async: boolean;
-    /**

-     * Sets or retrieves the character set used to encode the object.

+    /**
+     * Sets or retrieves the character set used to encode the object.
      */
     /** @deprecated */
     charset: string;
     crossOrigin: string | null;
-    /**

-     * Sets or retrieves the status of the script.

+    /**
+     * Sets or retrieves the status of the script.
      */
     defer: boolean;
-    /**

-     * Sets or retrieves the event for which the script is written.

+    /**
+     * Sets or retrieves the event for which the script is written.
      */
     /** @deprecated */
     event: string;
-    /**

-     * Sets or retrieves the object that is bound to the event script.

+    /**
+     * Sets or retrieves the object that is bound to the event script.
      */
     /** @deprecated */
     htmlFor: string;
     integrity: string;
     noModule: boolean;
     referrerPolicy: string;
-    /**

-     * Retrieves the URL to an external file that contains the source code or data.

+    /**
+     * Retrieves the URL to an external file that contains the source code or data.
      */
     src: string;
-    /**

-     * Retrieves or sets the text of the object as a string.

+    /**
+     * Retrieves or sets the text of the object as a string.
      */
     text: string;
-    /**

-     * Sets or retrieves the MIME type for the associated scripting engine.

+    /**
+     * Sets or retrieves the MIME type for the associated scripting engine.
      */
     type: string;
     addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLScriptElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
@@ -8049,93 +8049,93 @@
 /** A <select> HTML Element. These elements also share all of the properties and methods of other HTML elements via the HTMLElement interface. */
 interface HTMLSelectElement extends HTMLElement {
     autocomplete: string;
-    /**

-     * Provides a way to direct a user to a specific field when a document loads. This can provide both direction and convenience for a user, reducing the need to click or tab to a field when a page opens. This attribute is true when present on an element, and false when missing.

+    /**
+     * Provides a way to direct a user to a specific field when a document loads. This can provide both direction and convenience for a user, reducing the need to click or tab to a field when a page opens. This attribute is true when present on an element, and false when missing.
      */
     autofocus: boolean;
     disabled: boolean;
-    /**

-     * Retrieves a reference to the form that the object is embedded in.

+    /**
+     * Retrieves a reference to the form that the object is embedded in.
      */
     readonly form: HTMLFormElement | null;
     readonly labels: NodeListOf<HTMLLabelElement>;
-    /**

-     * Sets or retrieves the number of objects in a collection.

+    /**
+     * Sets or retrieves the number of objects in a collection.
      */
     length: number;
-    /**

-     * Sets or retrieves the Boolean value indicating whether multiple items can be selected from a list.

+    /**
+     * Sets or retrieves the Boolean value indicating whether multiple items can be selected from a list.
      */
     multiple: boolean;
-    /**

-     * Sets or retrieves the name of the object.

+    /**
+     * Sets or retrieves the name of the object.
      */
     name: string;
     readonly options: HTMLOptionsCollection;
-    /**

-     * When present, marks an element that can't be submitted without a value.

+    /**
+     * When present, marks an element that can't be submitted without a value.
      */
     required: boolean;
-    /**

-     * Sets or retrieves the index of the selected option in a select object.

+    /**
+     * Sets or retrieves the index of the selected option in a select object.
      */
     selectedIndex: number;
     readonly selectedOptions: HTMLCollectionOf<HTMLOptionElement>;
-    /**

-     * Sets or retrieves the number of rows in the list box.

+    /**
+     * Sets or retrieves the number of rows in the list box.
      */
     size: number;
-    /**

-     * Retrieves the type of select control based on the value of the MULTIPLE attribute.

+    /**
+     * Retrieves the type of select control based on the value of the MULTIPLE attribute.
      */
     readonly type: string;
-    /**

-     * Returns the error message that would be displayed if the user submits the form, or an empty string if no error message. It also triggers the standard error message, such as "this is a required field". The result is that the user sees validation messages without actually submitting.

+    /**
+     * Returns the error message that would be displayed if the user submits the form, or an empty string if no error message. It also triggers the standard error message, such as "this is a required field". The result is that the user sees validation messages without actually submitting.
      */
     readonly validationMessage: string;
-    /**

-     * Returns a  ValidityState object that represents the validity states of an element.

+    /**
+     * Returns a  ValidityState object that represents the validity states of an element.
      */
     readonly validity: ValidityState;
-    /**

-     * Sets or retrieves the value which is returned to the server when the form control is submitted.

+    /**
+     * Sets or retrieves the value which is returned to the server when the form control is submitted.
      */
     value: string;
-    /**

-     * Returns whether an element will successfully validate based on forms validation rules and constraints.

+    /**
+     * Returns whether an element will successfully validate based on forms validation rules and constraints.
      */
     readonly willValidate: boolean;
-    /**

-     * Adds an element to the areas, controlRange, or options collection.

-     * @param element Variant of type Number that specifies the index position in the collection where the element is placed. If no value is given, the method places the element at the end of the collection.

-     * @param before Variant of type Object that specifies an element to insert before, or null to append the object to the collection.

+    /**
+     * Adds an element to the areas, controlRange, or options collection.
+     * @param element Variant of type Number that specifies the index position in the collection where the element is placed. If no value is given, the method places the element at the end of the collection.
+     * @param before Variant of type Object that specifies an element to insert before, or null to append the object to the collection.
      */
     add(element: HTMLOptionElement | HTMLOptGroupElement, before?: HTMLElement | number | null): void;
-    /**

-     * Returns whether a form will validate when it is submitted, without having to submit it.

+    /**
+     * Returns whether a form will validate when it is submitted, without having to submit it.
      */
     checkValidity(): boolean;
-    /**

-     * Retrieves a select object or an object from an options collection.

-     * @param name Variant of type Number or String that specifies the object or collection to retrieve. If this parameter is an integer, it is the zero-based index of the object. If this parameter is a string, all objects with matching name or id properties are retrieved, and a collection is returned if more than one match is made.

-     * @param index Variant of type Number that specifies the zero-based index of the object to retrieve when a collection is returned.

+    /**
+     * Retrieves a select object or an object from an options collection.
+     * @param name Variant of type Number or String that specifies the object or collection to retrieve. If this parameter is an integer, it is the zero-based index of the object. If this parameter is a string, all objects with matching name or id properties are retrieved, and a collection is returned if more than one match is made.
+     * @param index Variant of type Number that specifies the zero-based index of the object to retrieve when a collection is returned.
      */
     item(index: number): Element | null;
-    /**

-     * Retrieves a select object or an object from an options collection.

-     * @param namedItem A String that specifies the name or id property of the object to retrieve. A collection is returned if more than one match is made.

+    /**
+     * Retrieves a select object or an object from an options collection.
+     * @param namedItem A String that specifies the name or id property of the object to retrieve. A collection is returned if more than one match is made.
      */
     namedItem(name: string): HTMLOptionElement | null;
-    /**

-     * Removes an element from the collection.

-     * @param index Number that specifies the zero-based index of the element to remove from the collection.

+    /**
+     * Removes an element from the collection.
+     * @param index Number that specifies the zero-based index of the element to remove from the collection.
      */
     remove(): void;
     remove(index: number): void;
     reportValidity(): boolean;
-    /**

-     * Sets a custom error message that is displayed when a form is submitted.

-     * @param error Sets a custom error message that is displayed when a form is submitted.

+    /**
+     * Sets a custom error message that is displayed when a form is submitted.
+     * @param error Sets a custom error message that is displayed when a form is submitted.
      */
     setCustomValidity(error: string): void;
     addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLSelectElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
@@ -8167,18 +8167,18 @@
 
 /** Provides special properties (beyond the regular HTMLElement object interface it also has available to it by inheritance) for manipulating <source> elements. */
 interface HTMLSourceElement extends HTMLElement {
-    /**

-     * Gets or sets the intended media type of the media source.

+    /**
+     * Gets or sets the intended media type of the media source.
      */
     media: string;
     sizes: string;
-    /**

-     * The address or URL of the a media resource that is to be considered.

+    /**
+     * The address or URL of the a media resource that is to be considered.
      */
     src: string;
     srcset: string;
-    /**

-     * Gets or sets the MIME type of a media resource.

+    /**
+     * Gets or sets the MIME type of a media resource.
      */
     type: string;
     addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLSourceElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
@@ -8207,12 +8207,12 @@
 
 /** A <style> element. It inherits properties and methods from its parent, HTMLElement, and from LinkStyle. */
 interface HTMLStyleElement extends HTMLElement, LinkStyle {
-    /**

-     * Sets or retrieves the media type.

+    /**
+     * Sets or retrieves the media type.
      */
     media: string;
-    /**

-     * Retrieves the CSS language in which the style sheet is written.

+    /**
+     * Retrieves the CSS language in which the style sheet is written.
      */
     /** @deprecated */
     type: string;
@@ -8229,8 +8229,8 @@
 
 /** Special properties (beyond the regular HTMLElement interface it also has available to it by inheritance) for manipulating table caption elements. */
 interface HTMLTableCaptionElement extends HTMLElement {
-    /**

-     * Sets or retrieves the alignment of the caption or legend.

+    /**
+     * Sets or retrieves the alignment of the caption or legend.
      */
     /** @deprecated */
     align: string;
@@ -8247,60 +8247,60 @@
 
 /** Provides special properties and methods (beyond the regular HTMLElement interface it also has available to it by inheritance) for manipulating the layout and presentation of table cells, either header or data cells, in an HTML document. */
 interface HTMLTableCellElement extends HTMLElement {
-    /**

-     * Sets or retrieves abbreviated text for the object.

+    /**
+     * Sets or retrieves abbreviated text for the object.
      */
     abbr: string;
-    /**

-     * Sets or retrieves how the object is aligned with adjacent text.

+    /**
+     * Sets or retrieves how the object is aligned with adjacent text.
      */
     /** @deprecated */
     align: string;
-    /**

-     * Sets or retrieves a comma-delimited list of conceptual categories associated with the object.

+    /**
+     * Sets or retrieves a comma-delimited list of conceptual categories associated with the object.
      */
     /** @deprecated */
     axis: string;
     /** @deprecated */
     bgColor: string;
-    /**

-     * Retrieves the position of the object in the cells collection of a row.

+    /**
+     * Retrieves the position of the object in the cells collection of a row.
      */
     readonly cellIndex: number;
     /** @deprecated */
     ch: string;
     /** @deprecated */
     chOff: string;
-    /**

-     * Sets or retrieves the number columns in the table that the object should span.

+    /**
+     * Sets or retrieves the number columns in the table that the object should span.
      */
     colSpan: number;
-    /**

-     * Sets or retrieves a list of header cells that provide information for the object.

+    /**
+     * Sets or retrieves a list of header cells that provide information for the object.
      */
     headers: string;
-    /**

-     * Sets or retrieves the height of the object.

+    /**
+     * Sets or retrieves the height of the object.
      */
     /** @deprecated */
     height: string;
-    /**

-     * Sets or retrieves whether the browser automatically performs wordwrap.

+    /**
+     * Sets or retrieves whether the browser automatically performs wordwrap.
      */
     /** @deprecated */
     noWrap: boolean;
-    /**

-     * Sets or retrieves how many rows in a table the cell should span.

+    /**
+     * Sets or retrieves how many rows in a table the cell should span.
      */
     rowSpan: number;
-    /**

-     * Sets or retrieves the group of cells in a table to which the object's information applies.

+    /**
+     * Sets or retrieves the group of cells in a table to which the object's information applies.
      */
     scope: string;
     /** @deprecated */
     vAlign: string;
-    /**

-     * Sets or retrieves the width of the object.

+    /**
+     * Sets or retrieves the width of the object.
      */
     /** @deprecated */
     width: string;
@@ -8317,8 +8317,8 @@
 
 /** Provides special properties (beyond the HTMLElement interface it also has available to it inheritance) for manipulating single or grouped table column elements. */
 interface HTMLTableColElement extends HTMLElement {
-    /**

-     * Sets or retrieves the alignment of the object relative to the display or table.

+    /**
+     * Sets or retrieves the alignment of the object relative to the display or table.
      */
     /** @deprecated */
     align: string;
@@ -8326,14 +8326,14 @@
     ch: string;
     /** @deprecated */
     chOff: string;
-    /**

-     * Sets or retrieves the number of columns in the group.

+    /**
+     * Sets or retrieves the number of columns in the group.
      */
     span: number;
     /** @deprecated */
     vAlign: string;
-    /**

-     * Sets or retrieves the width of the object.

+    /**
+     * Sets or retrieves the width of the object.
      */
     /** @deprecated */
     width: string;
@@ -8362,104 +8362,104 @@
 
 /** Provides special properties and methods (beyond the regular HTMLElement object interface it also has available to it by inheritance) for manipulating the layout and presentation of tables in an HTML document. */
 interface HTMLTableElement extends HTMLElement {
-    /**

-     * Sets or retrieves a value that indicates the table alignment.

+    /**
+     * Sets or retrieves a value that indicates the table alignment.
      */
     /** @deprecated */
     align: string;
     /** @deprecated */
     bgColor: string;
-    /**

-     * Sets or retrieves the width of the border to draw around the object.

+    /**
+     * Sets or retrieves the width of the border to draw around the object.
      */
     /** @deprecated */
     border: string;
-    /**

-     * Retrieves the caption object of a table.

+    /**
+     * Retrieves the caption object of a table.
      */
     caption: HTMLTableCaptionElement | null;
-    /**

-     * Sets or retrieves the amount of space between the border of the cell and the content of the cell.

+    /**
+     * Sets or retrieves the amount of space between the border of the cell and the content of the cell.
      */
     /** @deprecated */
     cellPadding: string;
-    /**

-     * Sets or retrieves the amount of space between cells in a table.

+    /**
+     * Sets or retrieves the amount of space between cells in a table.
      */
     /** @deprecated */
     cellSpacing: string;
-    /**

-     * Sets or retrieves the way the border frame around the table is displayed.

+    /**
+     * Sets or retrieves the way the border frame around the table is displayed.
      */
     /** @deprecated */
     frame: string;
-    /**

-     * Sets or retrieves the number of horizontal rows contained in the object.

+    /**
+     * Sets or retrieves the number of horizontal rows contained in the object.
      */
     readonly rows: HTMLCollectionOf<HTMLTableRowElement>;
-    /**

-     * Sets or retrieves which dividing lines (inner borders) are displayed.

+    /**
+     * Sets or retrieves which dividing lines (inner borders) are displayed.
      */
     /** @deprecated */
     rules: string;
-    /**

-     * Sets or retrieves a description and/or structure of the object.

+    /**
+     * Sets or retrieves a description and/or structure of the object.
      */
     /** @deprecated */
     summary: string;
-    /**

-     * Retrieves a collection of all tBody objects in the table. Objects in this collection are in source order.

+    /**
+     * Retrieves a collection of all tBody objects in the table. Objects in this collection are in source order.
      */
     readonly tBodies: HTMLCollectionOf<HTMLTableSectionElement>;
-    /**

-     * Retrieves the tFoot object of the table.

+    /**
+     * Retrieves the tFoot object of the table.
      */
     tFoot: HTMLTableSectionElement | null;
-    /**

-     * Retrieves the tHead object of the table.

+    /**
+     * Retrieves the tHead object of the table.
      */
     tHead: HTMLTableSectionElement | null;
-    /**

-     * Sets or retrieves the width of the object.

+    /**
+     * Sets or retrieves the width of the object.
      */
     /** @deprecated */
     width: string;
-    /**

-     * Creates an empty caption element in the table.

+    /**
+     * Creates an empty caption element in the table.
      */
     createCaption(): HTMLTableCaptionElement;
-    /**

-     * Creates an empty tBody element in the table.

+    /**
+     * Creates an empty tBody element in the table.
      */
     createTBody(): HTMLTableSectionElement;
-    /**

-     * Creates an empty tFoot element in the table.

+    /**
+     * Creates an empty tFoot element in the table.
      */
     createTFoot(): HTMLTableSectionElement;
-    /**

-     * Returns the tHead element object if successful, or null otherwise.

+    /**
+     * Returns the tHead element object if successful, or null otherwise.
      */
     createTHead(): HTMLTableSectionElement;
-    /**

-     * Deletes the caption element and its contents from the table.

+    /**
+     * Deletes the caption element and its contents from the table.
      */
     deleteCaption(): void;
-    /**

-     * Removes the specified row (tr) from the element and from the rows collection.

-     * @param index Number that specifies the zero-based position in the rows collection of the row to remove.

+    /**
+     * Removes the specified row (tr) from the element and from the rows collection.
+     * @param index Number that specifies the zero-based position in the rows collection of the row to remove.
      */
     deleteRow(index: number): void;
-    /**

-     * Deletes the tFoot element and its contents from the table.

+    /**
+     * Deletes the tFoot element and its contents from the table.
      */
     deleteTFoot(): void;
-    /**

-     * Deletes the tHead element and its contents from the table.

+    /**
+     * Deletes the tHead element and its contents from the table.
      */
     deleteTHead(): void;
-    /**

-     * Creates a new row (tr) in the table, and adds the row to the rows collection.

-     * @param index Number that specifies where to insert the row in the rows collection. The default value is -1, which appends the new row to the end of the rows collection.

+    /**
+     * Creates a new row (tr) in the table, and adds the row to the rows collection.
+     * @param index Number that specifies where to insert the row in the rows collection. The default value is -1, which appends the new row to the end of the rows collection.
      */
     insertRow(index?: number): HTMLTableRowElement;
     addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLTableElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
@@ -8488,39 +8488,39 @@
 
 /** Provides special properties and methods (beyond the HTMLElement interface it also has available to it by inheritance) for manipulating the layout and presentation of rows in an HTML table. */
 interface HTMLTableRowElement extends HTMLElement {
-    /**

-     * Sets or retrieves how the object is aligned with adjacent text.

+    /**
+     * Sets or retrieves how the object is aligned with adjacent text.
      */
     /** @deprecated */
     align: string;
     /** @deprecated */
     bgColor: string;
-    /**

-     * Retrieves a collection of all cells in the table row.

+    /**
+     * Retrieves a collection of all cells in the table row.
      */
     readonly cells: HTMLCollectionOf<HTMLTableDataCellElement | HTMLTableHeaderCellElement>;
     /** @deprecated */
     ch: string;
     /** @deprecated */
     chOff: string;
-    /**

-     * Retrieves the position of the object in the rows collection for the table.

+    /**
+     * Retrieves the position of the object in the rows collection for the table.
      */
     readonly rowIndex: number;
-    /**

-     * Retrieves the position of the object in the collection.

+    /**
+     * Retrieves the position of the object in the collection.
      */
     readonly sectionRowIndex: number;
     /** @deprecated */
     vAlign: string;
-    /**

-     * Removes the specified cell from the table row, as well as from the cells collection.

-     * @param index Number that specifies the zero-based position of the cell to remove from the table row. If no value is provided, the last cell in the cells collection is deleted.

+    /**
+     * Removes the specified cell from the table row, as well as from the cells collection.
+     * @param index Number that specifies the zero-based position of the cell to remove from the table row. If no value is provided, the last cell in the cells collection is deleted.
      */
     deleteCell(index: number): void;
-    /**

-     * Creates a new cell in the table row, and adds the cell to the cells collection.

-     * @param index Number that specifies where to insert the cell in the tr. The default value is -1, which appends the new cell to the end of the cells collection.

+    /**
+     * Creates a new cell in the table row, and adds the cell to the cells collection.
+     * @param index Number that specifies where to insert the cell in the tr. The default value is -1, which appends the new cell to the end of the cells collection.
      */
     insertCell(index?: number): HTMLTableDataCellElement;
     addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLTableRowElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
@@ -8536,8 +8536,8 @@
 
 /** Provides special properties and methods (beyond the HTMLElement interface it also has available to it by inheritance) for manipulating the layout and presentation of sections, that is headers, footers and bodies, in an HTML table. */
 interface HTMLTableSectionElement extends HTMLElement {
-    /**

-     * Sets or retrieves a value that indicates the table alignment.

+    /**
+     * Sets or retrieves a value that indicates the table alignment.
      */
     /** @deprecated */
     align: string;
@@ -8545,20 +8545,20 @@
     ch: string;
     /** @deprecated */
     chOff: string;
-    /**

-     * Sets or retrieves the number of horizontal rows contained in the object.

+    /**
+     * Sets or retrieves the number of horizontal rows contained in the object.
      */
     readonly rows: HTMLCollectionOf<HTMLTableRowElement>;
     /** @deprecated */
     vAlign: string;
-    /**

-     * Removes the specified row (tr) from the element and from the rows collection.

-     * @param index Number that specifies the zero-based position in the rows collection of the row to remove.

+    /**
+     * Removes the specified row (tr) from the element and from the rows collection.
+     * @param index Number that specifies the zero-based position in the rows collection of the row to remove.
      */
     deleteRow(index: number): void;
-    /**

-     * Creates a new row (tr) in the table, and adds the row to the rows collection.

-     * @param index Number that specifies where to insert the row in the rows collection. The default value is -1, which appends the new row to the end of the rows collection.

+    /**
+     * Creates a new row (tr) in the table, and adds the row to the rows collection.
+     * @param index Number that specifies where to insert the row in the rows collection. The default value is -1, which appends the new row to the end of the rows collection.
      */
     insertRow(index?: number): HTMLTableRowElement;
     addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLTableSectionElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
@@ -8589,105 +8589,105 @@
 /** Provides special properties and methods for manipulating the layout and presentation of <textarea> elements. */
 interface HTMLTextAreaElement extends HTMLElement {
     autocomplete: string;
-    /**

-     * Provides a way to direct a user to a specific field when a document loads. This can provide both direction and convenience for a user, reducing the need to click or tab to a field when a page opens. This attribute is true when present on an element, and false when missing.

+    /**
+     * Provides a way to direct a user to a specific field when a document loads. This can provide both direction and convenience for a user, reducing the need to click or tab to a field when a page opens. This attribute is true when present on an element, and false when missing.
      */
     autofocus: boolean;
-    /**

-     * Sets or retrieves the width of the object.

+    /**
+     * Sets or retrieves the width of the object.
      */
     cols: number;
-    /**

-     * Sets or retrieves the initial contents of the object.

+    /**
+     * Sets or retrieves the initial contents of the object.
      */
     defaultValue: string;
     dirName: string;
     disabled: boolean;
-    /**

-     * Retrieves a reference to the form that the object is embedded in.

+    /**
+     * Retrieves a reference to the form that the object is embedded in.
      */
     readonly form: HTMLFormElement | null;
     readonly labels: NodeListOf<HTMLLabelElement>;
-    /**

-     * Sets or retrieves the maximum number of characters that the user can enter in a text control.

+    /**
+     * Sets or retrieves the maximum number of characters that the user can enter in a text control.
      */
     maxLength: number;
     minLength: number;
-    /**

-     * Sets or retrieves the name of the object.

+    /**
+     * Sets or retrieves the name of the object.
      */
     name: string;
-    /**

-     * Gets or sets a text string that is displayed in an input field as a hint or prompt to users as the format or type of information they need to enter.The text appears in an input field until the user puts focus on the field.

+    /**
+     * Gets or sets a text string that is displayed in an input field as a hint or prompt to users as the format or type of information they need to enter.The text appears in an input field until the user puts focus on the field.
      */
     placeholder: string;
-    /**

-     * Sets or retrieves the value indicated whether the content of the object is read-only.

+    /**
+     * Sets or retrieves the value indicated whether the content of the object is read-only.
      */
     readOnly: boolean;
-    /**

-     * When present, marks an element that can't be submitted without a value.

+    /**
+     * When present, marks an element that can't be submitted without a value.
      */
     required: boolean;
-    /**

-     * Sets or retrieves the number of horizontal rows contained in the object.

+    /**
+     * Sets or retrieves the number of horizontal rows contained in the object.
      */
     rows: number;
     selectionDirection: string;
-    /**

-     * Gets or sets the end position or offset of a text selection.

+    /**
+     * Gets or sets the end position or offset of a text selection.
      */
     selectionEnd: number;
-    /**

-     * Gets or sets the starting position or offset of a text selection.

+    /**
+     * Gets or sets the starting position or offset of a text selection.
      */
     selectionStart: number;
     readonly textLength: number;
-    /**

-     * Retrieves the type of control.

+    /**
+     * Retrieves the type of control.
      */
     readonly type: string;
-    /**

-     * Returns the error message that would be displayed if the user submits the form, or an empty string if no error message. It also triggers the standard error message, such as "this is a required field". The result is that the user sees validation messages without actually submitting.

+    /**
+     * Returns the error message that would be displayed if the user submits the form, or an empty string if no error message. It also triggers the standard error message, such as "this is a required field". The result is that the user sees validation messages without actually submitting.
      */
     readonly validationMessage: string;
-    /**

-     * Returns a  ValidityState object that represents the validity states of an element.

+    /**
+     * Returns a  ValidityState object that represents the validity states of an element.
      */
     readonly validity: ValidityState;
-    /**

-     * Retrieves or sets the text in the entry field of the textArea element.

+    /**
+     * Retrieves or sets the text in the entry field of the textArea element.
      */
     value: string;
-    /**

-     * Returns whether an element will successfully validate based on forms validation rules and constraints.

+    /**
+     * Returns whether an element will successfully validate based on forms validation rules and constraints.
      */
     readonly willValidate: boolean;
-    /**

-     * Sets or retrieves how to handle wordwrapping in the object.

+    /**
+     * Sets or retrieves how to handle wordwrapping in the object.
      */
     wrap: string;
-    /**

-     * Returns whether a form will validate when it is submitted, without having to submit it.

+    /**
+     * Returns whether a form will validate when it is submitted, without having to submit it.
      */
     checkValidity(): boolean;
     reportValidity(): boolean;
-    /**

-     * Highlights the input area of a form element.

+    /**
+     * Highlights the input area of a form element.
      */
     select(): void;
-    /**

-     * Sets a custom error message that is displayed when a form is submitted.

-     * @param error Sets a custom error message that is displayed when a form is submitted.

+    /**
+     * Sets a custom error message that is displayed when a form is submitted.
+     * @param error Sets a custom error message that is displayed when a form is submitted.
      */
     setCustomValidity(error: string): void;
     setRangeText(replacement: string): void;
     setRangeText(replacement: string, start: number, end: number, selectionMode?: SelectionMode): void;
-    /**

-     * Sets the start and end positions of a selection in a text field.

-     * @param start The offset into the text field for the start of the selection.

-     * @param end The offset into the text field for the end of the selection.

-     * @param direction The direction in which the selection is performed.

+    /**
+     * Sets the start and end positions of a selection in a text field.
+     * @param start The offset into the text field for the start of the selection.
+     * @param end The offset into the text field for the end of the selection.
+     * @param direction The direction in which the selection is performed.
      */
     setSelectionRange(start: number, end: number, direction?: "forward" | "backward" | "none"): void;
     addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLTextAreaElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
@@ -8717,8 +8717,8 @@
 
 /** Contains the title for a document. This element inherits all of the properties and methods of the HTMLElement interface. */
 interface HTMLTitleElement extends HTMLElement {
-    /**

-     * Retrieves or sets the text of the object as a string.

+    /**
+     * Retrieves or sets the text of the object as a string.
      */
     text: string;
     addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLTitleElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
@@ -8798,8 +8798,8 @@
 
 /** Provides special properties and methods for manipulating video objects. It also inherits properties and methods of HTMLMediaElement and HTMLElement. */
 interface HTMLVideoElement extends HTMLMediaElement {
-    /**

-     * Gets or sets the height of the video element.

+    /**
+     * Gets or sets the height of the video element.
      */
     height: number;
     msHorizontalMirror: boolean;
@@ -8811,22 +8811,22 @@
     onMSVideoFormatChanged: ((this: HTMLVideoElement, ev: Event) => any) | null;
     onMSVideoFrameStepCompleted: ((this: HTMLVideoElement, ev: Event) => any) | null;
     onMSVideoOptimalLayoutChanged: ((this: HTMLVideoElement, ev: Event) => any) | null;
-    /**

-     * Gets or sets a URL of an image to display, for example, like a movie poster. This can be a still frame from the video, or another image if no video data is available.

+    /**
+     * Gets or sets a URL of an image to display, for example, like a movie poster. This can be a still frame from the video, or another image if no video data is available.
      */
     poster: string;
-    /**

-     * Gets the intrinsic height of a video in CSS pixels, or zero if the dimensions are not known.

+    /**
+     * Gets the intrinsic height of a video in CSS pixels, or zero if the dimensions are not known.
      */
     readonly videoHeight: number;
-    /**

-     * Gets the intrinsic width of a video in CSS pixels, or zero if the dimensions are not known.

+    /**
+     * Gets the intrinsic width of a video in CSS pixels, or zero if the dimensions are not known.
      */
     readonly videoWidth: number;
     readonly webkitDisplayingFullscreen: boolean;
     readonly webkitSupportsFullscreen: boolean;
-    /**

-     * Gets or sets the width of the video element.

+    /**
+     * Gets or sets the width of the video element.
      */
     width: number;
     getVideoPlaybackQuality(): VideoPlaybackQuality;
@@ -10851,10 +10851,10 @@
      * element = collection[index]
      */
     item(index: number): Node | null;
-    /**

-     * Performs the specified action for each node in an list.

-     * @param callbackfn  A function that accepts up to three arguments. forEach calls the callbackfn function one time for each element in the list.

-     * @param thisArg  An object to which the this keyword can refer in the callbackfn function. If thisArg is omitted, undefined is used as the this value.

+    /**
+     * Performs the specified action for each node in an list.
+     * @param callbackfn  A function that accepts up to three arguments. forEach calls the callbackfn function one time for each element in the list.
+     * @param thisArg  An object to which the this keyword can refer in the callbackfn function. If thisArg is omitted, undefined is used as the this value.
      */
     forEach(callbackfn: (value: Node, key: number, parent: NodeList) => void, thisArg?: any): void;
     [index: number]: Node;
@@ -10868,10 +10868,10 @@
 interface NodeListOf<TNode extends Node> extends NodeList {
     length: number;
     item(index: number): TNode;
-    /**

-     * Performs the specified action for each node in an list.

-     * @param callbackfn  A function that accepts up to three arguments. forEach calls the callbackfn function one time for each element in the list.

-     * @param thisArg  An object to which the this keyword can refer in the callbackfn function. If thisArg is omitted, undefined is used as the this value.

+    /**
+     * Performs the specified action for each node in an list.
+     * @param callbackfn  A function that accepts up to three arguments. forEach calls the callbackfn function one time for each element in the list.
+     * @param thisArg  An object to which the this keyword can refer in the callbackfn function. If thisArg is omitted, undefined is used as the this value.
      */
     forEach(callbackfn: (value: TNode, key: number, parent: NodeListOf<TNode>) => void, thisArg?: any): void;
     [index: number]: TNode;
@@ -15669,28 +15669,28 @@
 declare var webkitURL: typeof URL;
 
 interface URLSearchParams {
-    /**

-     * Appends a specified key/value pair as a new search parameter.

+    /**
+     * Appends a specified key/value pair as a new search parameter.
      */
     append(name: string, value: string): void;
-    /**

-     * Deletes the given search parameter, and its associated value, from the list of all search parameters.

+    /**
+     * Deletes the given search parameter, and its associated value, from the list of all search parameters.
      */
     delete(name: string): void;
-    /**

-     * Returns the first value associated to the given search parameter.

+    /**
+     * Returns the first value associated to the given search parameter.
      */
     get(name: string): string | null;
-    /**

-     * Returns all the values association with a given search parameter.

+    /**
+     * Returns all the values association with a given search parameter.
      */
     getAll(name: string): string[];
-    /**

-     * Returns a Boolean indicating if such a search parameter exists.

+    /**
+     * Returns a Boolean indicating if such a search parameter exists.
      */
     has(name: string): boolean;
-    /**

-     * Sets the value associated to a given search parameter to the given value. If there were several values, delete the others.

+    /**
+     * Sets the value associated to a given search parameter to the given value. If there were several values, delete the others.
      */
     set(name: string, value: string): void;
     sort(): void;
@@ -18255,9 +18255,9 @@
 declare var sessionStorage: Storage;
 declare var localStorage: Storage;
 declare var console: Console;
-/**

- * Fires when the user aborts the download.

- * @param ev The event.

+/**
+ * Fires when the user aborts the download.
+ * @param ev The event.
  */
 declare var onabort: ((this: Window, ev: UIEvent) => any) | null;
 declare var onanimationcancel: ((this: Window, ev: AnimationEvent) => any) | null;
@@ -18265,177 +18265,177 @@
 declare var onanimationiteration: ((this: Window, ev: AnimationEvent) => any) | null;
 declare var onanimationstart: ((this: Window, ev: AnimationEvent) => any) | null;
 declare var onauxclick: ((this: Window, ev: MouseEvent) => any) | null;
-/**

- * Fires when the object loses the input focus.

- * @param ev The focus event.

+/**
+ * Fires when the object loses the input focus.
+ * @param ev The focus event.
  */
 declare var onblur: ((this: Window, ev: FocusEvent) => any) | null;
 declare var oncancel: ((this: Window, ev: Event) => any) | null;
-/**

- * Occurs when playback is possible, but would require further buffering.

- * @param ev The event.

+/**
+ * Occurs when playback is possible, but would require further buffering.
+ * @param ev The event.
  */
 declare var oncanplay: ((this: Window, ev: Event) => any) | null;
 declare var oncanplaythrough: ((this: Window, ev: Event) => any) | null;
-/**

- * Fires when the contents of the object or selection have changed.

- * @param ev The event.

+/**
+ * Fires when the contents of the object or selection have changed.
+ * @param ev The event.
  */
 declare var onchange: ((this: Window, ev: Event) => any) | null;
-/**

- * Fires when the user clicks the left mouse button on the object

- * @param ev The mouse event.

+/**
+ * Fires when the user clicks the left mouse button on the object
+ * @param ev The mouse event.
  */
 declare var onclick: ((this: Window, ev: MouseEvent) => any) | null;
 declare var onclose: ((this: Window, ev: Event) => any) | null;
-/**

- * Fires when the user clicks the right mouse button in the client area, opening the context menu.

- * @param ev The mouse event.

+/**
+ * Fires when the user clicks the right mouse button in the client area, opening the context menu.
+ * @param ev The mouse event.
  */
 declare var oncontextmenu: ((this: Window, ev: MouseEvent) => any) | null;
 declare var oncuechange: ((this: Window, ev: Event) => any) | null;
-/**

- * Fires when the user double-clicks the object.

- * @param ev The mouse event.

+/**
+ * Fires when the user double-clicks the object.
+ * @param ev The mouse event.
  */
 declare var ondblclick: ((this: Window, ev: MouseEvent) => any) | null;
-/**

- * Fires on the source object continuously during a drag operation.

- * @param ev The event.

+/**
+ * Fires on the source object continuously during a drag operation.
+ * @param ev The event.
  */
 declare var ondrag: ((this: Window, ev: DragEvent) => any) | null;
-/**

- * Fires on the source object when the user releases the mouse at the close of a drag operation.

- * @param ev The event.

+/**
+ * Fires on the source object when the user releases the mouse at the close of a drag operation.
+ * @param ev The event.
  */
 declare var ondragend: ((this: Window, ev: DragEvent) => any) | null;
-/**

- * Fires on the target element when the user drags the object to a valid drop target.

- * @param ev The drag event.

+/**
+ * Fires on the target element when the user drags the object to a valid drop target.
+ * @param ev The drag event.
  */
 declare var ondragenter: ((this: Window, ev: DragEvent) => any) | null;
 declare var ondragexit: ((this: Window, ev: Event) => any) | null;
-/**

- * Fires on the target object when the user moves the mouse out of a valid drop target during a drag operation.

- * @param ev The drag event.

+/**
+ * Fires on the target object when the user moves the mouse out of a valid drop target during a drag operation.
+ * @param ev The drag event.
  */
 declare var ondragleave: ((this: Window, ev: DragEvent) => any) | null;
-/**

- * Fires on the target element continuously while the user drags the object over a valid drop target.

- * @param ev The event.

+/**
+ * Fires on the target element continuously while the user drags the object over a valid drop target.
+ * @param ev The event.
  */
 declare var ondragover: ((this: Window, ev: DragEvent) => any) | null;
-/**

- * Fires on the source object when the user starts to drag a text selection or selected object.

- * @param ev The event.

+/**
+ * Fires on the source object when the user starts to drag a text selection or selected object.
+ * @param ev The event.
  */
 declare var ondragstart: ((this: Window, ev: DragEvent) => any) | null;
 declare var ondrop: ((this: Window, ev: DragEvent) => any) | null;
-/**

- * Occurs when the duration attribute is updated.

- * @param ev The event.

+/**
+ * Occurs when the duration attribute is updated.
+ * @param ev The event.
  */
 declare var ondurationchange: ((this: Window, ev: Event) => any) | null;
-/**

- * Occurs when the media element is reset to its initial state.

- * @param ev The event.

+/**
+ * Occurs when the media element is reset to its initial state.
+ * @param ev The event.
  */
 declare var onemptied: ((this: Window, ev: Event) => any) | null;
-/**

- * Occurs when the end of playback is reached.

- * @param ev The event

+/**
+ * Occurs when the end of playback is reached.
+ * @param ev The event
  */
 declare var onended: ((this: Window, ev: Event) => any) | null;
-/**

- * Fires when an error occurs during object loading.

- * @param ev The event.

+/**
+ * Fires when an error occurs during object loading.
+ * @param ev The event.
  */
 declare var onerror: OnErrorEventHandler;
-/**

- * Fires when the object receives focus.

- * @param ev The event.

+/**
+ * Fires when the object receives focus.
+ * @param ev The event.
  */
 declare var onfocus: ((this: Window, ev: FocusEvent) => any) | null;
 declare var ongotpointercapture: ((this: Window, ev: PointerEvent) => any) | null;
 declare var oninput: ((this: Window, ev: Event) => any) | null;
 declare var oninvalid: ((this: Window, ev: Event) => any) | null;
-/**

- * Fires when the user presses a key.

- * @param ev The keyboard event

+/**
+ * Fires when the user presses a key.
+ * @param ev The keyboard event
  */
 declare var onkeydown: ((this: Window, ev: KeyboardEvent) => any) | null;
-/**

- * Fires when the user presses an alphanumeric key.

- * @param ev The event.

+/**
+ * Fires when the user presses an alphanumeric key.
+ * @param ev The event.
  */
 declare var onkeypress: ((this: Window, ev: KeyboardEvent) => any) | null;
-/**

- * Fires when the user releases a key.

- * @param ev The keyboard event

+/**
+ * Fires when the user releases a key.
+ * @param ev The keyboard event
  */
 declare var onkeyup: ((this: Window, ev: KeyboardEvent) => any) | null;
-/**

- * Fires immediately after the browser loads the object.

- * @param ev The event.

+/**
+ * Fires immediately after the browser loads the object.
+ * @param ev The event.
  */
 declare var onload: ((this: Window, ev: Event) => any) | null;
-/**

- * Occurs when media data is loaded at the current playback position.

- * @param ev The event.

+/**
+ * Occurs when media data is loaded at the current playback position.
+ * @param ev The event.
  */
 declare var onloadeddata: ((this: Window, ev: Event) => any) | null;
-/**

- * Occurs when the duration and dimensions of the media have been determined.

- * @param ev The event.

+/**
+ * Occurs when the duration and dimensions of the media have been determined.
+ * @param ev The event.
  */
 declare var onloadedmetadata: ((this: Window, ev: Event) => any) | null;
 declare var onloadend: ((this: Window, ev: ProgressEvent) => any) | null;
-/**

- * Occurs when Internet Explorer begins looking for media data.

- * @param ev The event.

+/**
+ * Occurs when Internet Explorer begins looking for media data.
+ * @param ev The event.
  */
 declare var onloadstart: ((this: Window, ev: Event) => any) | null;
 declare var onlostpointercapture: ((this: Window, ev: PointerEvent) => any) | null;
-/**

- * Fires when the user clicks the object with either mouse button.

- * @param ev The mouse event.

+/**
+ * Fires when the user clicks the object with either mouse button.
+ * @param ev The mouse event.
  */
 declare var onmousedown: ((this: Window, ev: MouseEvent) => any) | null;
 declare var onmouseenter: ((this: Window, ev: MouseEvent) => any) | null;
 declare var onmouseleave: ((this: Window, ev: MouseEvent) => any) | null;
-/**

- * Fires when the user moves the mouse over the object.

- * @param ev The mouse event.

+/**
+ * Fires when the user moves the mouse over the object.
+ * @param ev The mouse event.
  */
 declare var onmousemove: ((this: Window, ev: MouseEvent) => any) | null;
-/**

- * Fires when the user moves the mouse pointer outside the boundaries of the object.

- * @param ev The mouse event.

+/**
+ * Fires when the user moves the mouse pointer outside the boundaries of the object.
+ * @param ev The mouse event.
  */
 declare var onmouseout: ((this: Window, ev: MouseEvent) => any) | null;
-/**

- * Fires when the user moves the mouse pointer into the object.

- * @param ev The mouse event.

+/**
+ * Fires when the user moves the mouse pointer into the object.
+ * @param ev The mouse event.
  */
 declare var onmouseover: ((this: Window, ev: MouseEvent) => any) | null;
-/**

- * Fires when the user releases a mouse button while the mouse is over the object.

- * @param ev The mouse event.

+/**
+ * Fires when the user releases a mouse button while the mouse is over the object.
+ * @param ev The mouse event.
  */
 declare var onmouseup: ((this: Window, ev: MouseEvent) => any) | null;
-/**

- * Occurs when playback is paused.

- * @param ev The event.

+/**
+ * Occurs when playback is paused.
+ * @param ev The event.
  */
 declare var onpause: ((this: Window, ev: Event) => any) | null;
-/**

- * Occurs when the play method is requested.

- * @param ev The event.

+/**
+ * Occurs when the play method is requested.
+ * @param ev The event.
  */
 declare var onplay: ((this: Window, ev: Event) => any) | null;
-/**

- * Occurs when the audio or video has started playing.

- * @param ev The event.

+/**
+ * Occurs when the audio or video has started playing.
+ * @param ev The event.
  */
 declare var onplaying: ((this: Window, ev: Event) => any) | null;
 declare var onpointercancel: ((this: Window, ev: PointerEvent) => any) | null;
@@ -18446,59 +18446,59 @@
 declare var onpointerout: ((this: Window, ev: PointerEvent) => any) | null;
 declare var onpointerover: ((this: Window, ev: PointerEvent) => any) | null;
 declare var onpointerup: ((this: Window, ev: PointerEvent) => any) | null;
-/**

- * Occurs to indicate progress while downloading media data.

- * @param ev The event.

+/**
+ * Occurs to indicate progress while downloading media data.
+ * @param ev The event.
  */
 declare var onprogress: ((this: Window, ev: ProgressEvent) => any) | null;
-/**

- * Occurs when the playback rate is increased or decreased.

- * @param ev The event.

+/**
+ * Occurs when the playback rate is increased or decreased.
+ * @param ev The event.
  */
 declare var onratechange: ((this: Window, ev: Event) => any) | null;
-/**

- * Fires when the user resets a form.

- * @param ev The event.

+/**
+ * Fires when the user resets a form.
+ * @param ev The event.
  */
 declare var onreset: ((this: Window, ev: Event) => any) | null;
 declare var onresize: ((this: Window, ev: UIEvent) => any) | null;
-/**

- * Fires when the user repositions the scroll box in the scroll bar on the object.

- * @param ev The event.

+/**
+ * Fires when the user repositions the scroll box in the scroll bar on the object.
+ * @param ev The event.
  */
 declare var onscroll: ((this: Window, ev: Event) => any) | null;
 declare var onsecuritypolicyviolation: ((this: Window, ev: SecurityPolicyViolationEvent) => any) | null;
-/**

- * Occurs when the seek operation ends.

- * @param ev The event.

+/**
+ * Occurs when the seek operation ends.
+ * @param ev The event.
  */
 declare var onseeked: ((this: Window, ev: Event) => any) | null;
-/**

- * Occurs when the current playback position is moved.

- * @param ev The event.

+/**
+ * Occurs when the current playback position is moved.
+ * @param ev The event.
  */
 declare var onseeking: ((this: Window, ev: Event) => any) | null;
-/**

- * Fires when the current selection changes.

- * @param ev The event.

+/**
+ * Fires when the current selection changes.
+ * @param ev The event.
  */
 declare var onselect: ((this: Window, ev: Event) => any) | null;
 declare var onselectionchange: ((this: Window, ev: Event) => any) | null;
 declare var onselectstart: ((this: Window, ev: Event) => any) | null;
-/**

- * Occurs when the download has stopped.

- * @param ev The event.

+/**
+ * Occurs when the download has stopped.
+ * @param ev The event.
  */
 declare var onstalled: ((this: Window, ev: Event) => any) | null;
 declare var onsubmit: ((this: Window, ev: Event) => any) | null;
-/**

- * Occurs if the load operation has been intentionally halted.

- * @param ev The event.

+/**
+ * Occurs if the load operation has been intentionally halted.
+ * @param ev The event.
  */
 declare var onsuspend: ((this: Window, ev: Event) => any) | null;
-/**

- * Occurs to indicate the current playback position.

- * @param ev The event.

+/**
+ * Occurs to indicate the current playback position.
+ * @param ev The event.
  */
 declare var ontimeupdate: ((this: Window, ev: Event) => any) | null;
 declare var ontoggle: ((this: Window, ev: Event) => any) | null;
@@ -18510,14 +18510,14 @@
 declare var ontransitionend: ((this: Window, ev: TransitionEvent) => any) | null;
 declare var ontransitionrun: ((this: Window, ev: TransitionEvent) => any) | null;
 declare var ontransitionstart: ((this: Window, ev: TransitionEvent) => any) | null;
-/**

- * Occurs when the volume is changed, or playback is muted or unmuted.

- * @param ev The event.

+/**
+ * Occurs when the volume is changed, or playback is muted or unmuted.
+ * @param ev The event.
  */
 declare var onvolumechange: ((this: Window, ev: Event) => any) | null;
-/**

- * Occurs when playback stops because the next frame of a video resource is not available.

- * @param ev The event.

+/**
+ * Occurs when playback stops because the next frame of a video resource is not available.
+ * @param ev The event.
  */
 declare var onwaiting: ((this: Window, ev: Event) => any) | null;
 declare var onwheel: ((this: Window, ev: WheelEvent) => any) | null;
diff --git a/src/cobalt/debug/remote/devtools/node_modules/typescript/lib/lib.dom.iterable.d.ts b/src/third_party/devtools/node_modules/typescript/lib/lib.dom.iterable.d.ts
similarity index 99%
rename from src/cobalt/debug/remote/devtools/node_modules/typescript/lib/lib.dom.iterable.d.ts
rename to src/third_party/devtools/node_modules/typescript/lib/lib.dom.iterable.d.ts
index fad625f..e4215a7 100644
--- a/src/cobalt/debug/remote/devtools/node_modules/typescript/lib/lib.dom.iterable.d.ts
+++ b/src/third_party/devtools/node_modules/typescript/lib/lib.dom.iterable.d.ts
@@ -15,7 +15,7 @@
 
 
 
-/// <reference no-default-lib="true"/>

+/// <reference no-default-lib="true"/>
 
 
 /////////////////////////////
@@ -66,16 +66,16 @@
 
 interface FormData {
     [Symbol.iterator](): IterableIterator<[string, FormDataEntryValue]>;
-    /**

-     * Returns an array of key, value pairs for every entry in the list.

+    /**
+     * Returns an array of key, value pairs for every entry in the list.
      */
     entries(): IterableIterator<[string, FormDataEntryValue]>;
-    /**

-     * Returns a list of keys in the list.

+    /**
+     * Returns a list of keys in the list.
      */
     keys(): IterableIterator<string>;
-    /**

-     * Returns a list of values in the list.

+    /**
+     * Returns a list of values in the list.
      */
     values(): IterableIterator<FormDataEntryValue>;
 }
@@ -102,16 +102,16 @@
 
 interface Headers {
     [Symbol.iterator](): IterableIterator<[string, string]>;
-    /**

-     * Returns an iterator allowing to go through all key/value pairs contained in this object.

+    /**
+     * Returns an iterator allowing to go through all key/value pairs contained in this object.
      */
     entries(): IterableIterator<[string, string]>;
-    /**

-     * Returns an iterator allowing to go through all keys of the key/value pairs contained in this object.

+    /**
+     * Returns an iterator allowing to go through all keys of the key/value pairs contained in this object.
      */
     keys(): IterableIterator<string>;
-    /**

-     * Returns an iterator allowing to go through all values of the key/value pairs contained in this object.

+    /**
+     * Returns an iterator allowing to go through all values of the key/value pairs contained in this object.
      */
     values(): IterableIterator<string>;
 }
@@ -137,32 +137,32 @@
 
 interface NodeList {
     [Symbol.iterator](): IterableIterator<Node>;
-    /**

-     * Returns an array of key, value pairs for every entry in the list.

+    /**
+     * Returns an array of key, value pairs for every entry in the list.
      */
     entries(): IterableIterator<[number, Node]>;
-    /**

-     * Returns an list of keys in the list.

+    /**
+     * Returns an list of keys in the list.
      */
     keys(): IterableIterator<number>;
-    /**

-     * Returns an list of values in the list.

+    /**
+     * Returns an list of values in the list.
      */
     values(): IterableIterator<Node>;
 }
 
 interface NodeListOf<TNode extends Node> {
     [Symbol.iterator](): IterableIterator<TNode>;
-    /**

-     * Returns an array of key, value pairs for every entry in the list.

+    /**
+     * Returns an array of key, value pairs for every entry in the list.
      */
     entries(): IterableIterator<[number, TNode]>;
-    /**

-     * Returns an list of keys in the list.

+    /**
+     * Returns an list of keys in the list.
      */
     keys(): IterableIterator<number>;
-    /**

-     * Returns an list of values in the list.

+    /**
+     * Returns an list of values in the list.
      */
     values(): IterableIterator<TNode>;
 }
@@ -228,16 +228,16 @@
 
 interface URLSearchParams {
     [Symbol.iterator](): IterableIterator<[string, string]>;
-    /**

-     * Returns an array of key, value pairs for every entry in the search params.

+    /**
+     * Returns an array of key, value pairs for every entry in the search params.
      */
     entries(): IterableIterator<[string, string]>;
-    /**

-     * Returns a list of keys in the search params.

+    /**
+     * Returns a list of keys in the search params.
      */
     keys(): IterableIterator<string>;
-    /**

-     * Returns a list of values in the search params.

+    /**
+     * Returns a list of values in the search params.
      */
     values(): IterableIterator<string>;
 }
diff --git a/src/cobalt/debug/remote/devtools/node_modules/typescript/lib/lib.es2015.collection.d.ts b/src/third_party/devtools/node_modules/typescript/lib/lib.es2015.collection.d.ts
similarity index 99%
rename from src/cobalt/debug/remote/devtools/node_modules/typescript/lib/lib.es2015.collection.d.ts
rename to src/third_party/devtools/node_modules/typescript/lib/lib.es2015.collection.d.ts
index 036723b..557bfd9 100644
--- a/src/cobalt/debug/remote/devtools/node_modules/typescript/lib/lib.es2015.collection.d.ts
+++ b/src/third_party/devtools/node_modules/typescript/lib/lib.es2015.collection.d.ts
@@ -15,75 +15,75 @@
 
 
 
-/// <reference no-default-lib="true"/>

+/// <reference no-default-lib="true"/>
 
 
-interface Map<K, V> {

-    clear(): void;

-    delete(key: K): boolean;

-    forEach(callbackfn: (value: V, key: K, map: Map<K, V>) => void, thisArg?: any): void;

-    get(key: K): V | undefined;

-    has(key: K): boolean;

-    set(key: K, value: V): this;

-    readonly size: number;

-}

-

-interface MapConstructor {

-    new(): Map<any, any>;

-    new<K, V>(entries?: ReadonlyArray<readonly [K, V]> | null): Map<K, V>;

-    readonly prototype: Map<any, any>;

-}

-declare var Map: MapConstructor;

-

-interface ReadonlyMap<K, V> {

-    forEach(callbackfn: (value: V, key: K, map: ReadonlyMap<K, V>) => void, thisArg?: any): void;

-    get(key: K): V | undefined;

-    has(key: K): boolean;

-    readonly size: number;

-}

-

-interface WeakMap<K extends object, V> {

-    delete(key: K): boolean;

-    get(key: K): V | undefined;

-    has(key: K): boolean;

-    set(key: K, value: V): this;

-}

-

-interface WeakMapConstructor {

-    new <K extends object = object, V = any>(entries?: ReadonlyArray<[K, V]> | null): WeakMap<K, V>;

-    readonly prototype: WeakMap<object, any>;

-}

-declare var WeakMap: WeakMapConstructor;

-

-interface Set<T> {

-    add(value: T): this;

-    clear(): void;

-    delete(value: T): boolean;

-    forEach(callbackfn: (value: T, value2: T, set: Set<T>) => void, thisArg?: any): void;

-    has(value: T): boolean;

-    readonly size: number;

-}

-

-interface SetConstructor {

-    new <T = any>(values?: ReadonlyArray<T> | null): Set<T>;

-    readonly prototype: Set<any>;

-}

-declare var Set: SetConstructor;

-

-interface ReadonlySet<T> {

-    forEach(callbackfn: (value: T, value2: T, set: ReadonlySet<T>) => void, thisArg?: any): void;

-    has(value: T): boolean;

-    readonly size: number;

-}

-

-interface WeakSet<T extends object> {

-    add(value: T): this;

-    delete(value: T): boolean;

-    has(value: T): boolean;

-}

-

-interface WeakSetConstructor {

-    new <T extends object = object>(values?: ReadonlyArray<T> | null): WeakSet<T>;

-    readonly prototype: WeakSet<object>;

-}

-declare var WeakSet: WeakSetConstructor;

+interface Map<K, V> {
+    clear(): void;
+    delete(key: K): boolean;
+    forEach(callbackfn: (value: V, key: K, map: Map<K, V>) => void, thisArg?: any): void;
+    get(key: K): V | undefined;
+    has(key: K): boolean;
+    set(key: K, value: V): this;
+    readonly size: number;
+}
+
+interface MapConstructor {
+    new(): Map<any, any>;
+    new<K, V>(entries?: ReadonlyArray<readonly [K, V]> | null): Map<K, V>;
+    readonly prototype: Map<any, any>;
+}
+declare var Map: MapConstructor;
+
+interface ReadonlyMap<K, V> {
+    forEach(callbackfn: (value: V, key: K, map: ReadonlyMap<K, V>) => void, thisArg?: any): void;
+    get(key: K): V | undefined;
+    has(key: K): boolean;
+    readonly size: number;
+}
+
+interface WeakMap<K extends object, V> {
+    delete(key: K): boolean;
+    get(key: K): V | undefined;
+    has(key: K): boolean;
+    set(key: K, value: V): this;
+}
+
+interface WeakMapConstructor {
+    new <K extends object = object, V = any>(entries?: ReadonlyArray<[K, V]> | null): WeakMap<K, V>;
+    readonly prototype: WeakMap<object, any>;
+}
+declare var WeakMap: WeakMapConstructor;
+
+interface Set<T> {
+    add(value: T): this;
+    clear(): void;
+    delete(value: T): boolean;
+    forEach(callbackfn: (value: T, value2: T, set: Set<T>) => void, thisArg?: any): void;
+    has(value: T): boolean;
+    readonly size: number;
+}
+
+interface SetConstructor {
+    new <T = any>(values?: ReadonlyArray<T> | null): Set<T>;
+    readonly prototype: Set<any>;
+}
+declare var Set: SetConstructor;
+
+interface ReadonlySet<T> {
+    forEach(callbackfn: (value: T, value2: T, set: ReadonlySet<T>) => void, thisArg?: any): void;
+    has(value: T): boolean;
+    readonly size: number;
+}
+
+interface WeakSet<T extends object> {
+    add(value: T): this;
+    delete(value: T): boolean;
+    has(value: T): boolean;
+}
+
+interface WeakSetConstructor {
+    new <T extends object = object>(values?: ReadonlyArray<T> | null): WeakSet<T>;
+    readonly prototype: WeakSet<object>;
+}
+declare var WeakSet: WeakSetConstructor;
diff --git a/src/cobalt/debug/remote/devtools/node_modules/typescript/lib/lib.es2015.core.d.ts b/src/third_party/devtools/node_modules/typescript/lib/lib.es2015.core.d.ts
similarity index 99%
rename from src/cobalt/debug/remote/devtools/node_modules/typescript/lib/lib.es2015.core.d.ts
rename to src/third_party/devtools/node_modules/typescript/lib/lib.es2015.core.d.ts
index c943dae..ad8f7c4 100644
--- a/src/cobalt/debug/remote/devtools/node_modules/typescript/lib/lib.es2015.core.d.ts
+++ b/src/third_party/devtools/node_modules/typescript/lib/lib.es2015.core.d.ts
@@ -15,503 +15,503 @@
 
 
 
-/// <reference no-default-lib="true"/>

+/// <reference no-default-lib="true"/>
 
 
-interface Array<T> {

-    /**

-     * Returns the value of the first element in the array where predicate is true, and undefined

-     * otherwise.

-     * @param predicate find calls predicate once for each element of the array, in ascending

-     * order, until it finds one where predicate returns true. If such an element is found, find

-     * immediately returns that element value. Otherwise, find returns undefined.

-     * @param thisArg If provided, it will be used as the this value for each invocation of

-     * predicate. If it is not provided, undefined is used instead.

-     */

-    find<S extends T>(predicate: (this: void, value: T, index: number, obj: T[]) => value is S, thisArg?: any): S | undefined;

-    find(predicate: (value: T, index: number, obj: T[]) => unknown, thisArg?: any): T | undefined;

-

-    /**

-     * Returns the index of the first element in the array where predicate is true, and -1

-     * otherwise.

-     * @param predicate find calls predicate once for each element of the array, in ascending

-     * order, until it finds one where predicate returns true. If such an element is found,

-     * findIndex immediately returns that element index. Otherwise, findIndex returns -1.

-     * @param thisArg If provided, it will be used as the this value for each invocation of

-     * predicate. If it is not provided, undefined is used instead.

-     */

-    findIndex(predicate: (value: T, index: number, obj: T[]) => unknown, thisArg?: any): number;

-

-    /**

-     * Returns the this object after filling the section identified by start and end with value

-     * @param value value to fill array section with

-     * @param start index to start filling the array at. If start is negative, it is treated as

-     * length+start where length is the length of the array.

-     * @param end index to stop filling the array at. If end is negative, it is treated as

-     * length+end.

-     */

-    fill(value: T, start?: number, end?: number): this;

-

-    /**

-     * Returns the this object after copying a section of the array identified by start and end

-     * to the same array starting at position target

-     * @param target If target is negative, it is treated as length+target where length is the

-     * length of the array.

-     * @param start If start is negative, it is treated as length+start. If end is negative, it

-     * is treated as length+end.

-     * @param end If not specified, length of the this object is used as its default value.

-     */

-    copyWithin(target: number, start: number, end?: number): this;

-}

-

-interface ArrayConstructor {

-    /**

-     * Creates an array from an array-like object.

-     * @param arrayLike An array-like object to convert to an array.

-     */

-    from<T>(arrayLike: ArrayLike<T>): T[];

-

-    /**

-     * Creates an array from an iterable object.

-     * @param arrayLike An array-like object to convert to an array.

-     * @param mapfn A mapping function to call on every element of the array.

-     * @param thisArg Value of 'this' used to invoke the mapfn.

-     */

-    from<T, U>(arrayLike: ArrayLike<T>, mapfn: (v: T, k: number) => U, thisArg?: any): U[];

-

-    /**

-     * Returns a new array from a set of elements.

-     * @param items A set of elements to include in the new array object.

-     */

-    of<T>(...items: T[]): T[];

-}

-

-interface DateConstructor {

-    new (value: number | string | Date): Date;

-}

-

-interface Function {

-    /**

-     * Returns the name of the function. Function names are read-only and can not be changed.

-     */

-    readonly name: string;

-}

-

-interface Math {

-    /**

-     * Returns the number of leading zero bits in the 32-bit binary representation of a number.

-     * @param x A numeric expression.

-     */

-    clz32(x: number): number;

-

-    /**

-     * Returns the result of 32-bit multiplication of two numbers.

-     * @param x First number

-     * @param y Second number

-     */

-    imul(x: number, y: number): number;

-

-    /**

-     * Returns the sign of the x, indicating whether x is positive, negative or zero.

-     * @param x The numeric expression to test

-     */

-    sign(x: number): number;

-

-    /**

-     * Returns the base 10 logarithm of a number.

-     * @param x A numeric expression.

-     */

-    log10(x: number): number;

-

-    /**

-     * Returns the base 2 logarithm of a number.

-     * @param x A numeric expression.

-     */

-    log2(x: number): number;

-

-    /**

-     * Returns the natural logarithm of 1 + x.

-     * @param x A numeric expression.

-     */

-    log1p(x: number): number;

-

-    /**

-     * Returns the result of (e^x - 1), which is an implementation-dependent approximation to

-     * subtracting 1 from the exponential function of x (e raised to the power of x, where e

-     * is the base of the natural logarithms).

-     * @param x A numeric expression.

-     */

-    expm1(x: number): number;

-

-    /**

-     * Returns the hyperbolic cosine of a number.

-     * @param x A numeric expression that contains an angle measured in radians.

-     */

-    cosh(x: number): number;

-

-    /**

-     * Returns the hyperbolic sine of a number.

-     * @param x A numeric expression that contains an angle measured in radians.

-     */

-    sinh(x: number): number;

-

-    /**

-     * Returns the hyperbolic tangent of a number.

-     * @param x A numeric expression that contains an angle measured in radians.

-     */

-    tanh(x: number): number;

-

-    /**

-     * Returns the inverse hyperbolic cosine of a number.

-     * @param x A numeric expression that contains an angle measured in radians.

-     */

-    acosh(x: number): number;

-

-    /**

-     * Returns the inverse hyperbolic sine of a number.

-     * @param x A numeric expression that contains an angle measured in radians.

-     */

-    asinh(x: number): number;

-

-    /**

-     * Returns the inverse hyperbolic tangent of a number.

-     * @param x A numeric expression that contains an angle measured in radians.

-     */

-    atanh(x: number): number;

-

-    /**

-     * Returns the square root of the sum of squares of its arguments.

-     * @param values Values to compute the square root for.

-     *     If no arguments are passed, the result is +0.

-     *     If there is only one argument, the result is the absolute value.

-     *     If any argument is +Infinity or -Infinity, the result is +Infinity.

-     *     If any argument is NaN, the result is NaN.

-     *     If all arguments are either +0 or −0, the result is +0.

-     */

-    hypot(...values: number[]): number;

-

-    /**

-     * Returns the integral part of the a numeric expression, x, removing any fractional digits.

-     * If x is already an integer, the result is x.

-     * @param x A numeric expression.

-     */

-    trunc(x: number): number;

-

-    /**

-     * Returns the nearest single precision float representation of a number.

-     * @param x A numeric expression.

-     */

-    fround(x: number): number;

-

-    /**

-     * Returns an implementation-dependent approximation to the cube root of number.

-     * @param x A numeric expression.

-     */

-    cbrt(x: number): number;

-}

-

-interface NumberConstructor {

-    /**

-     * The value of Number.EPSILON is the difference between 1 and the smallest value greater than 1

-     * that is representable as a Number value, which is approximately:

-     * 2.2204460492503130808472633361816 x 10‍−‍16.

-     */

-    readonly EPSILON: number;

-

-    /**

-     * Returns true if passed value is finite.

-     * Unlike the global isFinite, Number.isFinite doesn't forcibly convert the parameter to a

-     * number. Only finite values of the type number, result in true.

-     * @param number A numeric value.

-     */

-    isFinite(number: number): boolean;

-

-    /**

-     * Returns true if the value passed is an integer, false otherwise.

-     * @param number A numeric value.

-     */

-    isInteger(number: number): boolean;

-

-    /**

-     * Returns a Boolean value that indicates whether a value is the reserved value NaN (not a

-     * number). Unlike the global isNaN(), Number.isNaN() doesn't forcefully convert the parameter

-     * to a number. Only values of the type number, that are also NaN, result in true.

-     * @param number A numeric value.

-     */

-    isNaN(number: number): boolean;

-

-    /**

-     * Returns true if the value passed is a safe integer.

-     * @param number A numeric value.

-     */

-    isSafeInteger(number: number): boolean;

-

-    /**

-     * The value of the largest integer n such that n and n + 1 are both exactly representable as

-     * a Number value.

-     * The value of Number.MAX_SAFE_INTEGER is 9007199254740991 2^53 − 1.

-     */

-    readonly MAX_SAFE_INTEGER: number;

-

-    /**

-     * The value of the smallest integer n such that n and n − 1 are both exactly representable as

-     * a Number value.

-     * The value of Number.MIN_SAFE_INTEGER is −9007199254740991 (−(2^53 − 1)).

-     */

-    readonly MIN_SAFE_INTEGER: number;

-

-    /**

-     * Converts a string to a floating-point number.

-     * @param string A string that contains a floating-point number.

-     */

-    parseFloat(string: string): number;

-

-    /**

-     * Converts A string to an integer.

-     * @param s A string to convert into a number.

-     * @param radix A value between 2 and 36 that specifies the base of the number in numString.

-     * If this argument is not supplied, strings with a prefix of '0x' are considered hexadecimal.

-     * All other strings are considered decimal.

-     */

-    parseInt(string: string, radix?: number): number;

-}

-

-interface ObjectConstructor {

-    /**

-     * Copy the values of all of the enumerable own properties from one or more source objects to a

-     * target object. Returns the target object.

-     * @param target The target object to copy to.

-     * @param source The source object from which to copy properties.

-     */

-    assign<T, U>(target: T, source: U): T & U;

-

-    /**

-     * Copy the values of all of the enumerable own properties from one or more source objects to a

-     * target object. Returns the target object.

-     * @param target The target object to copy to.

-     * @param source1 The first source object from which to copy properties.

-     * @param source2 The second source object from which to copy properties.

-     */

-    assign<T, U, V>(target: T, source1: U, source2: V): T & U & V;

-

-    /**

-     * Copy the values of all of the enumerable own properties from one or more source objects to a

-     * target object. Returns the target object.

-     * @param target The target object to copy to.

-     * @param source1 The first source object from which to copy properties.

-     * @param source2 The second source object from which to copy properties.

-     * @param source3 The third source object from which to copy properties.

-     */

-    assign<T, U, V, W>(target: T, source1: U, source2: V, source3: W): T & U & V & W;

-

-    /**

-     * Copy the values of all of the enumerable own properties from one or more source objects to a

-     * target object. Returns the target object.

-     * @param target The target object to copy to.

-     * @param sources One or more source objects from which to copy properties

-     */

-    assign(target: object, ...sources: any[]): any;

-

-    /**

-     * Returns an array of all symbol properties found directly on object o.

-     * @param o Object to retrieve the symbols from.

-     */

-    getOwnPropertySymbols(o: any): symbol[];

-

-    /**

-      * Returns the names of the enumerable string properties and methods of an object.

-      * @param o Object that contains the properties and methods. This can be an object that you created or an existing Document Object Model (DOM) object.

-      */

-    keys(o: {}): string[];

-

-    /**

-     * Returns true if the values are the same value, false otherwise.

-     * @param value1 The first value.

-     * @param value2 The second value.

-     */

-    is(value1: any, value2: any): boolean;

-

-    /**

-     * Sets the prototype of a specified object o to  object proto or null. Returns the object o.

-     * @param o The object to change its prototype.

-     * @param proto The value of the new prototype or null.

-     */

-    setPrototypeOf(o: any, proto: object | null): any;

-}

-

-interface ReadonlyArray<T> {

-    /**

-     * Returns the value of the first element in the array where predicate is true, and undefined

-     * otherwise.

-     * @param predicate find calls predicate once for each element of the array, in ascending

-     * order, until it finds one where predicate returns true. If such an element is found, find

-     * immediately returns that element value. Otherwise, find returns undefined.

-     * @param thisArg If provided, it will be used as the this value for each invocation of

-     * predicate. If it is not provided, undefined is used instead.

-     */

-    find<S extends T>(predicate: (this: void, value: T, index: number, obj: ReadonlyArray<T>) => value is S, thisArg?: any): S | undefined;

-    find(predicate: (value: T, index: number, obj: ReadonlyArray<T>) => unknown, thisArg?: any): T | undefined;

-

-    /**

-     * Returns the index of the first element in the array where predicate is true, and -1

-     * otherwise.

-     * @param predicate find calls predicate once for each element of the array, in ascending

-     * order, until it finds one where predicate returns true. If such an element is found,

-     * findIndex immediately returns that element index. Otherwise, findIndex returns -1.

-     * @param thisArg If provided, it will be used as the this value for each invocation of

-     * predicate. If it is not provided, undefined is used instead.

-     */

-    findIndex(predicate: (value: T, index: number, obj: ReadonlyArray<T>) => unknown, thisArg?: any): number;

-}

-

-interface RegExp {

-    /**

-     * Returns a string indicating the flags of the regular expression in question. This field is read-only.

-     * The characters in this string are sequenced and concatenated in the following order:

-     *

-     *    - "g" for global

-     *    - "i" for ignoreCase

-     *    - "m" for multiline

-     *    - "u" for unicode

-     *    - "y" for sticky

-     *

-     * If no flags are set, the value is the empty string.

-     */

-    readonly flags: string;

-

-    /**

-     * Returns a Boolean value indicating the state of the sticky flag (y) used with a regular

-     * expression. Default is false. Read-only.

-     */

-    readonly sticky: boolean;

-

-    /**

-     * Returns a Boolean value indicating the state of the Unicode flag (u) used with a regular

-     * expression. Default is false. Read-only.

-     */

-    readonly unicode: boolean;

-}

-

-interface RegExpConstructor {

-    new (pattern: RegExp, flags?: string): RegExp;

-    (pattern: RegExp, flags?: string): RegExp;

-}

-

-interface String {

-    /**

-     * Returns a nonnegative integer Number less than 1114112 (0x110000) that is the code point

-     * value of the UTF-16 encoded code point starting at the string element at position pos in

-     * the String resulting from converting this object to a String.

-     * If there is no element at that position, the result is undefined.

-     * If a valid UTF-16 surrogate pair does not begin at pos, the result is the code unit at pos.

-     */

-    codePointAt(pos: number): number | undefined;

-

-    /**

-     * Returns true if searchString appears as a substring of the result of converting this

-     * object to a String, at one or more positions that are

-     * greater than or equal to position; otherwise, returns false.

-     * @param searchString search string

-     * @param position If position is undefined, 0 is assumed, so as to search all of the String.

-     */

-    includes(searchString: string, position?: number): boolean;

-

-    /**

-     * Returns true if the sequence of elements of searchString converted to a String is the

-     * same as the corresponding elements of this object (converted to a String) starting at

-     * endPosition – length(this). Otherwise returns false.

-     */

-    endsWith(searchString: string, endPosition?: number): boolean;

-

-    /**

-     * Returns the String value result of normalizing the string into the normalization form

-     * named by form as specified in Unicode Standard Annex #15, Unicode Normalization Forms.

-     * @param form Applicable values: "NFC", "NFD", "NFKC", or "NFKD", If not specified default

-     * is "NFC"

-     */

-    normalize(form: "NFC" | "NFD" | "NFKC" | "NFKD"): string;

-

-    /**

-     * Returns the String value result of normalizing the string into the normalization form

-     * named by form as specified in Unicode Standard Annex #15, Unicode Normalization Forms.

-     * @param form Applicable values: "NFC", "NFD", "NFKC", or "NFKD", If not specified default

-     * is "NFC"

-     */

-    normalize(form?: string): string;

-

-    /**

-     * Returns a String value that is made from count copies appended together. If count is 0,

-     * the empty string is returned.

-     * @param count number of copies to append

-     */

-    repeat(count: number): string;

-

-    /**

-     * Returns true if the sequence of elements of searchString converted to a String is the

-     * same as the corresponding elements of this object (converted to a String) starting at

-     * position. Otherwise returns false.

-     */

-    startsWith(searchString: string, position?: number): boolean;

-

-    /**

-     * Returns an <a> HTML anchor element and sets the name attribute to the text value

-     * @param name

-     */

-    anchor(name: string): string;

-

-    /** Returns a <big> HTML element */

-    big(): string;

-

-    /** Returns a <blink> HTML element */

-    blink(): string;

-

-    /** Returns a <b> HTML element */

-    bold(): string;

-

-    /** Returns a <tt> HTML element */

-    fixed(): string;

-

-    /** Returns a <font> HTML element and sets the color attribute value */

-    fontcolor(color: string): string;

-

-    /** Returns a <font> HTML element and sets the size attribute value */

-    fontsize(size: number): string;

-

-    /** Returns a <font> HTML element and sets the size attribute value */

-    fontsize(size: string): string;

-

-    /** Returns an <i> HTML element */

-    italics(): string;

-

-    /** Returns an <a> HTML element and sets the href attribute value */

-    link(url: string): string;

-

-    /** Returns a <small> HTML element */

-    small(): string;

-

-    /** Returns a <strike> HTML element */

-    strike(): string;

-

-    /** Returns a <sub> HTML element */

-    sub(): string;

-

-    /** Returns a <sup> HTML element */

-    sup(): string;

-}

-

-interface StringConstructor {

-    /**

-     * Return the String value whose elements are, in order, the elements in the List elements.

-     * If length is 0, the empty string is returned.

-     */

-    fromCodePoint(...codePoints: number[]): string;

-

-    /**

-     * String.raw is intended for use as a tag function of a Tagged Template String. When called

-     * as such the first argument will be a well formed template call site object and the rest

-     * parameter will contain the substitution values.

-     * @param template A well-formed template string call site representation.

-     * @param substitutions A set of substitution values.

-     */

-    raw(template: TemplateStringsArray, ...substitutions: any[]): string;

-}

+interface Array<T> {
+    /**
+     * Returns the value of the first element in the array where predicate is true, and undefined
+     * otherwise.
+     * @param predicate find calls predicate once for each element of the array, in ascending
+     * order, until it finds one where predicate returns true. If such an element is found, find
+     * immediately returns that element value. Otherwise, find returns undefined.
+     * @param thisArg If provided, it will be used as the this value for each invocation of
+     * predicate. If it is not provided, undefined is used instead.
+     */
+    find<S extends T>(predicate: (this: void, value: T, index: number, obj: T[]) => value is S, thisArg?: any): S | undefined;
+    find(predicate: (value: T, index: number, obj: T[]) => unknown, thisArg?: any): T | undefined;
+
+    /**
+     * Returns the index of the first element in the array where predicate is true, and -1
+     * otherwise.
+     * @param predicate find calls predicate once for each element of the array, in ascending
+     * order, until it finds one where predicate returns true. If such an element is found,
+     * findIndex immediately returns that element index. Otherwise, findIndex returns -1.
+     * @param thisArg If provided, it will be used as the this value for each invocation of
+     * predicate. If it is not provided, undefined is used instead.
+     */
+    findIndex(predicate: (value: T, index: number, obj: T[]) => unknown, thisArg?: any): number;
+
+    /**
+     * Returns the this object after filling the section identified by start and end with value
+     * @param value value to fill array section with
+     * @param start index to start filling the array at. If start is negative, it is treated as
+     * length+start where length is the length of the array.
+     * @param end index to stop filling the array at. If end is negative, it is treated as
+     * length+end.
+     */
+    fill(value: T, start?: number, end?: number): this;
+
+    /**
+     * Returns the this object after copying a section of the array identified by start and end
+     * to the same array starting at position target
+     * @param target If target is negative, it is treated as length+target where length is the
+     * length of the array.
+     * @param start If start is negative, it is treated as length+start. If end is negative, it
+     * is treated as length+end.
+     * @param end If not specified, length of the this object is used as its default value.
+     */
+    copyWithin(target: number, start: number, end?: number): this;
+}
+
+interface ArrayConstructor {
+    /**
+     * Creates an array from an array-like object.
+     * @param arrayLike An array-like object to convert to an array.
+     */
+    from<T>(arrayLike: ArrayLike<T>): T[];
+
+    /**
+     * Creates an array from an iterable object.
+     * @param arrayLike An array-like object to convert to an array.
+     * @param mapfn A mapping function to call on every element of the array.
+     * @param thisArg Value of 'this' used to invoke the mapfn.
+     */
+    from<T, U>(arrayLike: ArrayLike<T>, mapfn: (v: T, k: number) => U, thisArg?: any): U[];
+
+    /**
+     * Returns a new array from a set of elements.
+     * @param items A set of elements to include in the new array object.
+     */
+    of<T>(...items: T[]): T[];
+}
+
+interface DateConstructor {
+    new (value: number | string | Date): Date;
+}
+
+interface Function {
+    /**
+     * Returns the name of the function. Function names are read-only and can not be changed.
+     */
+    readonly name: string;
+}
+
+interface Math {
+    /**
+     * Returns the number of leading zero bits in the 32-bit binary representation of a number.
+     * @param x A numeric expression.
+     */
+    clz32(x: number): number;
+
+    /**
+     * Returns the result of 32-bit multiplication of two numbers.
+     * @param x First number
+     * @param y Second number
+     */
+    imul(x: number, y: number): number;
+
+    /**
+     * Returns the sign of the x, indicating whether x is positive, negative or zero.
+     * @param x The numeric expression to test
+     */
+    sign(x: number): number;
+
+    /**
+     * Returns the base 10 logarithm of a number.
+     * @param x A numeric expression.
+     */
+    log10(x: number): number;
+
+    /**
+     * Returns the base 2 logarithm of a number.
+     * @param x A numeric expression.
+     */
+    log2(x: number): number;
+
+    /**
+     * Returns the natural logarithm of 1 + x.
+     * @param x A numeric expression.
+     */
+    log1p(x: number): number;
+
+    /**
+     * Returns the result of (e^x - 1), which is an implementation-dependent approximation to
+     * subtracting 1 from the exponential function of x (e raised to the power of x, where e
+     * is the base of the natural logarithms).
+     * @param x A numeric expression.
+     */
+    expm1(x: number): number;
+
+    /**
+     * Returns the hyperbolic cosine of a number.
+     * @param x A numeric expression that contains an angle measured in radians.
+     */
+    cosh(x: number): number;
+
+    /**
+     * Returns the hyperbolic sine of a number.
+     * @param x A numeric expression that contains an angle measured in radians.
+     */
+    sinh(x: number): number;
+
+    /**
+     * Returns the hyperbolic tangent of a number.
+     * @param x A numeric expression that contains an angle measured in radians.
+     */
+    tanh(x: number): number;
+
+    /**
+     * Returns the inverse hyperbolic cosine of a number.
+     * @param x A numeric expression that contains an angle measured in radians.
+     */
+    acosh(x: number): number;
+
+    /**
+     * Returns the inverse hyperbolic sine of a number.
+     * @param x A numeric expression that contains an angle measured in radians.
+     */
+    asinh(x: number): number;
+
+    /**
+     * Returns the inverse hyperbolic tangent of a number.
+     * @param x A numeric expression that contains an angle measured in radians.
+     */
+    atanh(x: number): number;
+
+    /**
+     * Returns the square root of the sum of squares of its arguments.
+     * @param values Values to compute the square root for.
+     *     If no arguments are passed, the result is +0.
+     *     If there is only one argument, the result is the absolute value.
+     *     If any argument is +Infinity or -Infinity, the result is +Infinity.
+     *     If any argument is NaN, the result is NaN.
+     *     If all arguments are either +0 or −0, the result is +0.
+     */
+    hypot(...values: number[]): number;
+
+    /**
+     * Returns the integral part of the a numeric expression, x, removing any fractional digits.
+     * If x is already an integer, the result is x.
+     * @param x A numeric expression.
+     */
+    trunc(x: number): number;
+
+    /**
+     * Returns the nearest single precision float representation of a number.
+     * @param x A numeric expression.
+     */
+    fround(x: number): number;
+
+    /**
+     * Returns an implementation-dependent approximation to the cube root of number.
+     * @param x A numeric expression.
+     */
+    cbrt(x: number): number;
+}
+
+interface NumberConstructor {
+    /**
+     * The value of Number.EPSILON is the difference between 1 and the smallest value greater than 1
+     * that is representable as a Number value, which is approximately:
+     * 2.2204460492503130808472633361816 x 10‍−‍16.
+     */
+    readonly EPSILON: number;
+
+    /**
+     * Returns true if passed value is finite.
+     * Unlike the global isFinite, Number.isFinite doesn't forcibly convert the parameter to a
+     * number. Only finite values of the type number, result in true.
+     * @param number A numeric value.
+     */
+    isFinite(number: number): boolean;
+
+    /**
+     * Returns true if the value passed is an integer, false otherwise.
+     * @param number A numeric value.
+     */
+    isInteger(number: number): boolean;
+
+    /**
+     * Returns a Boolean value that indicates whether a value is the reserved value NaN (not a
+     * number). Unlike the global isNaN(), Number.isNaN() doesn't forcefully convert the parameter
+     * to a number. Only values of the type number, that are also NaN, result in true.
+     * @param number A numeric value.
+     */
+    isNaN(number: number): boolean;
+
+    /**
+     * Returns true if the value passed is a safe integer.
+     * @param number A numeric value.
+     */
+    isSafeInteger(number: number): boolean;
+
+    /**
+     * The value of the largest integer n such that n and n + 1 are both exactly representable as
+     * a Number value.
+     * The value of Number.MAX_SAFE_INTEGER is 9007199254740991 2^53 − 1.
+     */
+    readonly MAX_SAFE_INTEGER: number;
+
+    /**
+     * The value of the smallest integer n such that n and n − 1 are both exactly representable as
+     * a Number value.
+     * The value of Number.MIN_SAFE_INTEGER is −9007199254740991 (−(2^53 − 1)).
+     */
+    readonly MIN_SAFE_INTEGER: number;
+
+    /**
+     * Converts a string to a floating-point number.
+     * @param string A string that contains a floating-point number.
+     */
+    parseFloat(string: string): number;
+
+    /**
+     * Converts A string to an integer.
+     * @param s A string to convert into a number.
+     * @param radix A value between 2 and 36 that specifies the base of the number in numString.
+     * If this argument is not supplied, strings with a prefix of '0x' are considered hexadecimal.
+     * All other strings are considered decimal.
+     */
+    parseInt(string: string, radix?: number): number;
+}
+
+interface ObjectConstructor {
+    /**
+     * Copy the values of all of the enumerable own properties from one or more source objects to a
+     * target object. Returns the target object.
+     * @param target The target object to copy to.
+     * @param source The source object from which to copy properties.
+     */
+    assign<T, U>(target: T, source: U): T & U;
+
+    /**
+     * Copy the values of all of the enumerable own properties from one or more source objects to a
+     * target object. Returns the target object.
+     * @param target The target object to copy to.
+     * @param source1 The first source object from which to copy properties.
+     * @param source2 The second source object from which to copy properties.
+     */
+    assign<T, U, V>(target: T, source1: U, source2: V): T & U & V;
+
+    /**
+     * Copy the values of all of the enumerable own properties from one or more source objects to a
+     * target object. Returns the target object.
+     * @param target The target object to copy to.
+     * @param source1 The first source object from which to copy properties.
+     * @param source2 The second source object from which to copy properties.
+     * @param source3 The third source object from which to copy properties.
+     */
+    assign<T, U, V, W>(target: T, source1: U, source2: V, source3: W): T & U & V & W;
+
+    /**
+     * Copy the values of all of the enumerable own properties from one or more source objects to a
+     * target object. Returns the target object.
+     * @param target The target object to copy to.
+     * @param sources One or more source objects from which to copy properties
+     */
+    assign(target: object, ...sources: any[]): any;
+
+    /**
+     * Returns an array of all symbol properties found directly on object o.
+     * @param o Object to retrieve the symbols from.
+     */
+    getOwnPropertySymbols(o: any): symbol[];
+
+    /**
+      * Returns the names of the enumerable string properties and methods of an object.
+      * @param o Object that contains the properties and methods. This can be an object that you created or an existing Document Object Model (DOM) object.
+      */
+    keys(o: {}): string[];
+
+    /**
+     * Returns true if the values are the same value, false otherwise.
+     * @param value1 The first value.
+     * @param value2 The second value.
+     */
+    is(value1: any, value2: any): boolean;
+
+    /**
+     * Sets the prototype of a specified object o to  object proto or null. Returns the object o.
+     * @param o The object to change its prototype.
+     * @param proto The value of the new prototype or null.
+     */
+    setPrototypeOf(o: any, proto: object | null): any;
+}
+
+interface ReadonlyArray<T> {
+    /**
+     * Returns the value of the first element in the array where predicate is true, and undefined
+     * otherwise.
+     * @param predicate find calls predicate once for each element of the array, in ascending
+     * order, until it finds one where predicate returns true. If such an element is found, find
+     * immediately returns that element value. Otherwise, find returns undefined.
+     * @param thisArg If provided, it will be used as the this value for each invocation of
+     * predicate. If it is not provided, undefined is used instead.
+     */
+    find<S extends T>(predicate: (this: void, value: T, index: number, obj: ReadonlyArray<T>) => value is S, thisArg?: any): S | undefined;
+    find(predicate: (value: T, index: number, obj: ReadonlyArray<T>) => unknown, thisArg?: any): T | undefined;
+
+    /**
+     * Returns the index of the first element in the array where predicate is true, and -1
+     * otherwise.
+     * @param predicate find calls predicate once for each element of the array, in ascending
+     * order, until it finds one where predicate returns true. If such an element is found,
+     * findIndex immediately returns that element index. Otherwise, findIndex returns -1.
+     * @param thisArg If provided, it will be used as the this value for each invocation of
+     * predicate. If it is not provided, undefined is used instead.
+     */
+    findIndex(predicate: (value: T, index: number, obj: ReadonlyArray<T>) => unknown, thisArg?: any): number;
+}
+
+interface RegExp {
+    /**
+     * Returns a string indicating the flags of the regular expression in question. This field is read-only.
+     * The characters in this string are sequenced and concatenated in the following order:
+     *
+     *    - "g" for global
+     *    - "i" for ignoreCase
+     *    - "m" for multiline
+     *    - "u" for unicode
+     *    - "y" for sticky
+     *
+     * If no flags are set, the value is the empty string.
+     */
+    readonly flags: string;
+
+    /**
+     * Returns a Boolean value indicating the state of the sticky flag (y) used with a regular
+     * expression. Default is false. Read-only.
+     */
+    readonly sticky: boolean;
+
+    /**
+     * Returns a Boolean value indicating the state of the Unicode flag (u) used with a regular
+     * expression. Default is false. Read-only.
+     */
+    readonly unicode: boolean;
+}
+
+interface RegExpConstructor {
+    new (pattern: RegExp, flags?: string): RegExp;
+    (pattern: RegExp, flags?: string): RegExp;
+}
+
+interface String {
+    /**
+     * Returns a nonnegative integer Number less than 1114112 (0x110000) that is the code point
+     * value of the UTF-16 encoded code point starting at the string element at position pos in
+     * the String resulting from converting this object to a String.
+     * If there is no element at that position, the result is undefined.
+     * If a valid UTF-16 surrogate pair does not begin at pos, the result is the code unit at pos.
+     */
+    codePointAt(pos: number): number | undefined;
+
+    /**
+     * Returns true if searchString appears as a substring of the result of converting this
+     * object to a String, at one or more positions that are
+     * greater than or equal to position; otherwise, returns false.
+     * @param searchString search string
+     * @param position If position is undefined, 0 is assumed, so as to search all of the String.
+     */
+    includes(searchString: string, position?: number): boolean;
+
+    /**
+     * Returns true if the sequence of elements of searchString converted to a String is the
+     * same as the corresponding elements of this object (converted to a String) starting at
+     * endPosition – length(this). Otherwise returns false.
+     */
+    endsWith(searchString: string, endPosition?: number): boolean;
+
+    /**
+     * Returns the String value result of normalizing the string into the normalization form
+     * named by form as specified in Unicode Standard Annex #15, Unicode Normalization Forms.
+     * @param form Applicable values: "NFC", "NFD", "NFKC", or "NFKD", If not specified default
+     * is "NFC"
+     */
+    normalize(form: "NFC" | "NFD" | "NFKC" | "NFKD"): string;
+
+    /**
+     * Returns the String value result of normalizing the string into the normalization form
+     * named by form as specified in Unicode Standard Annex #15, Unicode Normalization Forms.
+     * @param form Applicable values: "NFC", "NFD", "NFKC", or "NFKD", If not specified default
+     * is "NFC"
+     */
+    normalize(form?: string): string;
+
+    /**
+     * Returns a String value that is made from count copies appended together. If count is 0,
+     * the empty string is returned.
+     * @param count number of copies to append
+     */
+    repeat(count: number): string;
+
+    /**
+     * Returns true if the sequence of elements of searchString converted to a String is the
+     * same as the corresponding elements of this object (converted to a String) starting at
+     * position. Otherwise returns false.
+     */
+    startsWith(searchString: string, position?: number): boolean;
+
+    /**
+     * Returns an <a> HTML anchor element and sets the name attribute to the text value
+     * @param name
+     */
+    anchor(name: string): string;
+
+    /** Returns a <big> HTML element */
+    big(): string;
+
+    /** Returns a <blink> HTML element */
+    blink(): string;
+
+    /** Returns a <b> HTML element */
+    bold(): string;
+
+    /** Returns a <tt> HTML element */
+    fixed(): string;
+
+    /** Returns a <font> HTML element and sets the color attribute value */
+    fontcolor(color: string): string;
+
+    /** Returns a <font> HTML element and sets the size attribute value */
+    fontsize(size: number): string;
+
+    /** Returns a <font> HTML element and sets the size attribute value */
+    fontsize(size: string): string;
+
+    /** Returns an <i> HTML element */
+    italics(): string;
+
+    /** Returns an <a> HTML element and sets the href attribute value */
+    link(url: string): string;
+
+    /** Returns a <small> HTML element */
+    small(): string;
+
+    /** Returns a <strike> HTML element */
+    strike(): string;
+
+    /** Returns a <sub> HTML element */
+    sub(): string;
+
+    /** Returns a <sup> HTML element */
+    sup(): string;
+}
+
+interface StringConstructor {
+    /**
+     * Return the String value whose elements are, in order, the elements in the List elements.
+     * If length is 0, the empty string is returned.
+     */
+    fromCodePoint(...codePoints: number[]): string;
+
+    /**
+     * String.raw is intended for use as a tag function of a Tagged Template String. When called
+     * as such the first argument will be a well formed template call site object and the rest
+     * parameter will contain the substitution values.
+     * @param template A well-formed template string call site representation.
+     * @param substitutions A set of substitution values.
+     */
+    raw(template: TemplateStringsArray, ...substitutions: any[]): string;
+}
diff --git a/src/cobalt/debug/remote/devtools/node_modules/typescript/lib/lib.es2015.d.ts b/src/third_party/devtools/node_modules/typescript/lib/lib.es2015.d.ts
similarity index 99%
rename from src/cobalt/debug/remote/devtools/node_modules/typescript/lib/lib.es2015.d.ts
rename to src/third_party/devtools/node_modules/typescript/lib/lib.es2015.d.ts
index 8cdaf0c..80aaba0 100644
--- a/src/cobalt/debug/remote/devtools/node_modules/typescript/lib/lib.es2015.d.ts
+++ b/src/third_party/devtools/node_modules/typescript/lib/lib.es2015.d.ts
@@ -15,16 +15,16 @@
 
 
 
-/// <reference no-default-lib="true"/>

+/// <reference no-default-lib="true"/>
 
 
-/// <reference lib="es5" />

-/// <reference lib="es2015.core" />

-/// <reference lib="es2015.collection" />

-/// <reference lib="es2015.generator" />

-/// <reference lib="es2015.promise" />

-/// <reference lib="es2015.iterable" />

-/// <reference lib="es2015.proxy" />

-/// <reference lib="es2015.reflect" />

-/// <reference lib="es2015.symbol" />

-/// <reference lib="es2015.symbol.wellknown" />

+/// <reference lib="es5" />
+/// <reference lib="es2015.core" />
+/// <reference lib="es2015.collection" />
+/// <reference lib="es2015.generator" />
+/// <reference lib="es2015.promise" />
+/// <reference lib="es2015.iterable" />
+/// <reference lib="es2015.proxy" />
+/// <reference lib="es2015.reflect" />
+/// <reference lib="es2015.symbol" />
+/// <reference lib="es2015.symbol.wellknown" />
diff --git a/src/cobalt/debug/remote/devtools/node_modules/typescript/lib/lib.es2015.generator.d.ts b/src/third_party/devtools/node_modules/typescript/lib/lib.es2015.generator.d.ts
similarity index 99%
rename from src/cobalt/debug/remote/devtools/node_modules/typescript/lib/lib.es2015.generator.d.ts
rename to src/third_party/devtools/node_modules/typescript/lib/lib.es2015.generator.d.ts
index 3eb5aa2..df6a987 100644
--- a/src/cobalt/debug/remote/devtools/node_modules/typescript/lib/lib.es2015.generator.d.ts
+++ b/src/third_party/devtools/node_modules/typescript/lib/lib.es2015.generator.d.ts
@@ -15,57 +15,57 @@
 
 
 
-/// <reference no-default-lib="true"/>

+/// <reference no-default-lib="true"/>
 
 
-interface Generator extends Iterator<any> { }

-

-interface GeneratorFunction {

-    /**

-     * Creates a new Generator object.

-     * @param args A list of arguments the function accepts.

-     */

-    new (...args: any[]): Generator;

-    /**

-     * Creates a new Generator object.

-     * @param args A list of arguments the function accepts.

-     */

-    (...args: any[]): Generator;

-    /**

-     * The length of the arguments.

-     */

-    readonly length: number;

-    /**

-     * Returns the name of the function.

-     */

-    readonly name: string;

-    /**

-     * A reference to the prototype.

-     */

-    readonly prototype: Generator;

-}

-

-interface GeneratorFunctionConstructor {

-    /**

-     * Creates a new Generator function.

-     * @param args A list of arguments the function accepts.

-     */

-    new (...args: string[]): GeneratorFunction;

-    /**

-     * Creates a new Generator function.

-     * @param args A list of arguments the function accepts.

-     */

-    (...args: string[]): GeneratorFunction;

-    /**

-     * The length of the arguments.

-     */

-    readonly length: number;

-    /**

-     * Returns the name of the function.

-     */

-    readonly name: string;

-    /**

-     * A reference to the prototype.

-     */

-    readonly prototype: GeneratorFunction;

-}

+interface Generator extends Iterator<any> { }
+
+interface GeneratorFunction {
+    /**
+     * Creates a new Generator object.
+     * @param args A list of arguments the function accepts.
+     */
+    new (...args: any[]): Generator;
+    /**
+     * Creates a new Generator object.
+     * @param args A list of arguments the function accepts.
+     */
+    (...args: any[]): Generator;
+    /**
+     * The length of the arguments.
+     */
+    readonly length: number;
+    /**
+     * Returns the name of the function.
+     */
+    readonly name: string;
+    /**
+     * A reference to the prototype.
+     */
+    readonly prototype: Generator;
+}
+
+interface GeneratorFunctionConstructor {
+    /**
+     * Creates a new Generator function.
+     * @param args A list of arguments the function accepts.
+     */
+    new (...args: string[]): GeneratorFunction;
+    /**
+     * Creates a new Generator function.
+     * @param args A list of arguments the function accepts.
+     */
+    (...args: string[]): GeneratorFunction;
+    /**
+     * The length of the arguments.
+     */
+    readonly length: number;
+    /**
+     * Returns the name of the function.
+     */
+    readonly name: string;
+    /**
+     * A reference to the prototype.
+     */
+    readonly prototype: GeneratorFunction;
+}
diff --git a/src/cobalt/debug/remote/devtools/node_modules/typescript/lib/lib.es2015.iterable.d.ts b/src/third_party/devtools/node_modules/typescript/lib/lib.es2015.iterable.d.ts
similarity index 99%
rename from src/cobalt/debug/remote/devtools/node_modules/typescript/lib/lib.es2015.iterable.d.ts
rename to src/third_party/devtools/node_modules/typescript/lib/lib.es2015.iterable.d.ts
index 195e7fb..78d392f 100644
--- a/src/cobalt/debug/remote/devtools/node_modules/typescript/lib/lib.es2015.iterable.d.ts
+++ b/src/third_party/devtools/node_modules/typescript/lib/lib.es2015.iterable.d.ts
@@ -15,479 +15,479 @@
 
 
 
-/// <reference no-default-lib="true"/>

+/// <reference no-default-lib="true"/>
 
 
-/// <reference lib="es2015.symbol" />

-

-interface SymbolConstructor {

-    /**

-     * A method that returns the default iterator for an object. Called by the semantics of the

-     * for-of statement.

-     */

-    readonly iterator: symbol;

-}

-

-interface IteratorResult<T> {

-    done: boolean;

-    value: T;

-}

-

-interface Iterator<T> {

-    next(value?: any): IteratorResult<T>;

-    return?(value?: any): IteratorResult<T>;

-    throw?(e?: any): IteratorResult<T>;

-}

-

-interface Iterable<T> {

-    [Symbol.iterator](): Iterator<T>;

-}

-

-interface IterableIterator<T> extends Iterator<T> {

-    [Symbol.iterator](): IterableIterator<T>;

-}

-

-interface Array<T> {

-    /** Iterator */

-    [Symbol.iterator](): IterableIterator<T>;

-

-    /**

-     * Returns an iterable of key, value pairs for every entry in the array

-     */

-    entries(): IterableIterator<[number, T]>;

-

-    /**

-     * Returns an iterable of keys in the array

-     */

-    keys(): IterableIterator<number>;

-

-    /**

-     * Returns an iterable of values in the array

-     */

-    values(): IterableIterator<T>;

-}

-

-interface ArrayConstructor {

-    /**

-     * Creates an array from an iterable object.

-     * @param iterable An iterable object to convert to an array.

-     */

-    from<T>(iterable: Iterable<T> | ArrayLike<T>): T[];

-

-    /**

-     * Creates an array from an iterable object.

-     * @param iterable An iterable object to convert to an array.

-     * @param mapfn A mapping function to call on every element of the array.

-     * @param thisArg Value of 'this' used to invoke the mapfn.

-     */

-    from<T, U>(iterable: Iterable<T> | ArrayLike<T>, mapfn: (v: T, k: number) => U, thisArg?: any): U[];

-}

-

-interface ReadonlyArray<T> {

-    /** Iterator of values in the array. */

-    [Symbol.iterator](): IterableIterator<T>;

-

-    /**

-     * Returns an iterable of key, value pairs for every entry in the array

-     */

-    entries(): IterableIterator<[number, T]>;

-

-    /**

-     * Returns an iterable of keys in the array

-     */

-    keys(): IterableIterator<number>;

-

-    /**

-     * Returns an iterable of values in the array

-     */

-    values(): IterableIterator<T>;

-}

-

-interface IArguments {

-    /** Iterator */

-    [Symbol.iterator](): IterableIterator<any>;

-}

-

-interface Map<K, V> {

-    /** Returns an iterable of entries in the map. */

-    [Symbol.iterator](): IterableIterator<[K, V]>;

-

-    /**

-     * Returns an iterable of key, value pairs for every entry in the map.

-     */

-    entries(): IterableIterator<[K, V]>;

-

-    /**

-     * Returns an iterable of keys in the map

-     */

-    keys(): IterableIterator<K>;

-

-    /**

-     * Returns an iterable of values in the map

-     */

-    values(): IterableIterator<V>;

-}

-

-interface ReadonlyMap<K, V> {

-    /** Returns an iterable of entries in the map. */

-    [Symbol.iterator](): IterableIterator<[K, V]>;

-

-    /**

-     * Returns an iterable of key, value pairs for every entry in the map.

-     */

-    entries(): IterableIterator<[K, V]>;

-

-    /**

-     * Returns an iterable of keys in the map

-     */

-    keys(): IterableIterator<K>;

-

-    /**

-     * Returns an iterable of values in the map

-     */

-    values(): IterableIterator<V>;

-}

-

-interface MapConstructor {

-    new <K, V>(iterable: Iterable<readonly [K, V]>): Map<K, V>;

-}

-

-interface WeakMap<K extends object, V> { }

-

-interface WeakMapConstructor {

-    new <K extends object, V>(iterable: Iterable<[K, V]>): WeakMap<K, V>;

-}

-

-interface Set<T> {

-    /** Iterates over values in the set. */

-    [Symbol.iterator](): IterableIterator<T>;

-    /**

-     * Returns an iterable of [v,v] pairs for every value `v` in the set.

-     */

-    entries(): IterableIterator<[T, T]>;

-    /**

-     * Despite its name, returns an iterable of the values in the set,

-     */

-    keys(): IterableIterator<T>;

-

-    /**

-     * Returns an iterable of values in the set.

-     */

-    values(): IterableIterator<T>;

-}

-

-interface ReadonlySet<T> {

-    /** Iterates over values in the set. */

-    [Symbol.iterator](): IterableIterator<T>;

-

-    /**

-     * Returns an iterable of [v,v] pairs for every value `v` in the set.

-     */

-    entries(): IterableIterator<[T, T]>;

-

-    /**

-     * Despite its name, returns an iterable of the values in the set,

-     */

-    keys(): IterableIterator<T>;

-

-    /**

-     * Returns an iterable of values in the set.

-     */

-    values(): IterableIterator<T>;

-}

-

-interface SetConstructor {

-    new <T>(iterable?: Iterable<T> | null): Set<T>;

-}

-

-interface WeakSet<T extends object> { }

-

-interface WeakSetConstructor {

-    new <T extends object = object>(iterable: Iterable<T>): WeakSet<T>;

-}

-

-interface Promise<T> { }

-

-interface PromiseConstructor {

-    /**

-     * Creates a Promise that is resolved with an array of results when all of the provided Promises

-     * resolve, or rejected when any Promise is rejected.

-     * @param values An array of Promises.

-     * @returns A new Promise.

-     */

-    all<TAll>(values: Iterable<TAll | PromiseLike<TAll>>): Promise<TAll[]>;

-

-    /**

-     * Creates a Promise that is resolved or rejected when any of the provided Promises are resolved

-     * or rejected.

-     * @param values An array of Promises.

-     * @returns A new Promise.

-     */

-    race<T>(values: Iterable<T | PromiseLike<T>>): Promise<T>;

-}

-

-declare namespace Reflect {

-    function enumerate(target: object): IterableIterator<any>;

-}

-

-interface String {

-    /** Iterator */

-    [Symbol.iterator](): IterableIterator<string>;

-}

-

-interface Int8Array {

-    [Symbol.iterator](): IterableIterator<number>;

-    /**

-     * Returns an array of key, value pairs for every entry in the array

-     */

-    entries(): IterableIterator<[number, number]>;

-    /**

-     * Returns an list of keys in the array

-     */

-    keys(): IterableIterator<number>;

-    /**

-     * Returns an list of values in the array

-     */

-    values(): IterableIterator<number>;

-}

-

-interface Int8ArrayConstructor {

-    new (elements: Iterable<number>): Int8Array;

-

-    /**

-     * Creates an array from an array-like or iterable object.

-     * @param arrayLike An array-like or iterable object to convert to an array.

-     * @param mapfn A mapping function to call on every element of the array.

-     * @param thisArg Value of 'this' used to invoke the mapfn.

-     */

-    from(arrayLike: Iterable<number>, mapfn?: (v: number, k: number) => number, thisArg?: any): Int8Array;

-}

-

-interface Uint8Array {

-    [Symbol.iterator](): IterableIterator<number>;

-    /**

-     * Returns an array of key, value pairs for every entry in the array

-     */

-    entries(): IterableIterator<[number, number]>;

-    /**

-     * Returns an list of keys in the array

-     */

-    keys(): IterableIterator<number>;

-    /**

-     * Returns an list of values in the array

-     */

-    values(): IterableIterator<number>;

-}

-

-interface Uint8ArrayConstructor {

-    new (elements: Iterable<number>): Uint8Array;

-

-    /**

-     * Creates an array from an array-like or iterable object.

-     * @param arrayLike An array-like or iterable object to convert to an array.

-     * @param mapfn A mapping function to call on every element of the array.

-     * @param thisArg Value of 'this' used to invoke the mapfn.

-     */

-    from(arrayLike: Iterable<number>, mapfn?: (v: number, k: number) => number, thisArg?: any): Uint8Array;

-}

-

-interface Uint8ClampedArray {

-    [Symbol.iterator](): IterableIterator<number>;

-    /**

-     * Returns an array of key, value pairs for every entry in the array

-     */

-    entries(): IterableIterator<[number, number]>;

-

-    /**

-     * Returns an list of keys in the array

-     */

-    keys(): IterableIterator<number>;

-

-    /**

-     * Returns an list of values in the array

-     */

-    values(): IterableIterator<number>;

-}

-

-interface Uint8ClampedArrayConstructor {

-    new (elements: Iterable<number>): Uint8ClampedArray;

-

-

-    /**

-     * Creates an array from an array-like or iterable object.

-     * @param arrayLike An array-like or iterable object to convert to an array.

-     * @param mapfn A mapping function to call on every element of the array.

-     * @param thisArg Value of 'this' used to invoke the mapfn.

-     */

-    from(arrayLike: Iterable<number>, mapfn?: (v: number, k: number) => number, thisArg?: any): Uint8ClampedArray;

-}

-

-interface Int16Array {

-    [Symbol.iterator](): IterableIterator<number>;

-    /**

-     * Returns an array of key, value pairs for every entry in the array

-     */

-    entries(): IterableIterator<[number, number]>;

-

-    /**

-     * Returns an list of keys in the array

-     */

-    keys(): IterableIterator<number>;

-

-    /**

-     * Returns an list of values in the array

-     */

-    values(): IterableIterator<number>;

-}

-

-interface Int16ArrayConstructor {

-    new (elements: Iterable<number>): Int16Array;

-

-    /**

-     * Creates an array from an array-like or iterable object.

-     * @param arrayLike An array-like or iterable object to convert to an array.

-     * @param mapfn A mapping function to call on every element of the array.

-     * @param thisArg Value of 'this' used to invoke the mapfn.

-     */

-    from(arrayLike: Iterable<number>, mapfn?: (v: number, k: number) => number, thisArg?: any): Int16Array;

-}

-

-interface Uint16Array {

-    [Symbol.iterator](): IterableIterator<number>;

-    /**

-     * Returns an array of key, value pairs for every entry in the array

-     */

-    entries(): IterableIterator<[number, number]>;

-    /**

-     * Returns an list of keys in the array

-     */

-    keys(): IterableIterator<number>;

-    /**

-     * Returns an list of values in the array

-     */

-    values(): IterableIterator<number>;

-}

-

-interface Uint16ArrayConstructor {

-    new (elements: Iterable<number>): Uint16Array;

-

-    /**

-     * Creates an array from an array-like or iterable object.

-     * @param arrayLike An array-like or iterable object to convert to an array.

-     * @param mapfn A mapping function to call on every element of the array.

-     * @param thisArg Value of 'this' used to invoke the mapfn.

-     */

-    from(arrayLike: Iterable<number>, mapfn?: (v: number, k: number) => number, thisArg?: any): Uint16Array;

-}

-

-interface Int32Array {

-    [Symbol.iterator](): IterableIterator<number>;

-    /**

-     * Returns an array of key, value pairs for every entry in the array

-     */

-    entries(): IterableIterator<[number, number]>;

-    /**

-     * Returns an list of keys in the array

-     */

-    keys(): IterableIterator<number>;

-    /**

-     * Returns an list of values in the array

-     */

-    values(): IterableIterator<number>;

-}

-

-interface Int32ArrayConstructor {

-    new (elements: Iterable<number>): Int32Array;

-

-    /**

-     * Creates an array from an array-like or iterable object.

-     * @param arrayLike An array-like or iterable object to convert to an array.

-     * @param mapfn A mapping function to call on every element of the array.

-     * @param thisArg Value of 'this' used to invoke the mapfn.

-     */

-    from(arrayLike: Iterable<number>, mapfn?: (v: number, k: number) => number, thisArg?: any): Int32Array;

-}

-

-interface Uint32Array {

-    [Symbol.iterator](): IterableIterator<number>;

-    /**

-     * Returns an array of key, value pairs for every entry in the array

-     */

-    entries(): IterableIterator<[number, number]>;

-    /**

-     * Returns an list of keys in the array

-     */

-    keys(): IterableIterator<number>;

-    /**

-     * Returns an list of values in the array

-     */

-    values(): IterableIterator<number>;

-}

-

-interface Uint32ArrayConstructor {

-    new (elements: Iterable<number>): Uint32Array;

-

-    /**

-     * Creates an array from an array-like or iterable object.

-     * @param arrayLike An array-like or iterable object to convert to an array.

-     * @param mapfn A mapping function to call on every element of the array.

-     * @param thisArg Value of 'this' used to invoke the mapfn.

-     */

-    from(arrayLike: Iterable<number>, mapfn?: (v: number, k: number) => number, thisArg?: any): Uint32Array;

-}

-

-interface Float32Array {

-    [Symbol.iterator](): IterableIterator<number>;

-    /**

-     * Returns an array of key, value pairs for every entry in the array

-     */

-    entries(): IterableIterator<[number, number]>;

-    /**

-     * Returns an list of keys in the array

-     */

-    keys(): IterableIterator<number>;

-    /**

-     * Returns an list of values in the array

-     */

-    values(): IterableIterator<number>;

-}

-

-interface Float32ArrayConstructor {

-    new (elements: Iterable<number>): Float32Array;

-

-    /**

-     * Creates an array from an array-like or iterable object.

-     * @param arrayLike An array-like or iterable object to convert to an array.

-     * @param mapfn A mapping function to call on every element of the array.

-     * @param thisArg Value of 'this' used to invoke the mapfn.

-     */

-    from(arrayLike: Iterable<number>, mapfn?: (v: number, k: number) => number, thisArg?: any): Float32Array;

-}

-

-interface Float64Array {

-    [Symbol.iterator](): IterableIterator<number>;

-    /**

-     * Returns an array of key, value pairs for every entry in the array

-     */

-    entries(): IterableIterator<[number, number]>;

-    /**

-     * Returns an list of keys in the array

-     */

-    keys(): IterableIterator<number>;

-    /**

-     * Returns an list of values in the array

-     */

-    values(): IterableIterator<number>;

-}

-

-interface Float64ArrayConstructor {

-    new (elements: Iterable<number>): Float64Array;

-

-    /**

-     * Creates an array from an array-like or iterable object.

-     * @param arrayLike An array-like or iterable object to convert to an array.

-     * @param mapfn A mapping function to call on every element of the array.

-     * @param thisArg Value of 'this' used to invoke the mapfn.

-     */

-    from(arrayLike: Iterable<number>, mapfn?: (v: number, k: number) => number, thisArg?: any): Float64Array;

-}

+/// <reference lib="es2015.symbol" />
+
+interface SymbolConstructor {
+    /**
+     * A method that returns the default iterator for an object. Called by the semantics of the
+     * for-of statement.
+     */
+    readonly iterator: symbol;
+}
+
+interface IteratorResult<T> {
+    done: boolean;
+    value: T;
+}
+
+interface Iterator<T> {
+    next(value?: any): IteratorResult<T>;
+    return?(value?: any): IteratorResult<T>;
+    throw?(e?: any): IteratorResult<T>;
+}
+
+interface Iterable<T> {
+    [Symbol.iterator](): Iterator<T>;
+}
+
+interface IterableIterator<T> extends Iterator<T> {
+    [Symbol.iterator](): IterableIterator<T>;
+}
+
+interface Array<T> {
+    /** Iterator */
+    [Symbol.iterator](): IterableIterator<T>;
+
+    /**
+     * Returns an iterable of key, value pairs for every entry in the array
+     */
+    entries(): IterableIterator<[number, T]>;
+
+    /**
+     * Returns an iterable of keys in the array
+     */
+    keys(): IterableIterator<number>;
+
+    /**
+     * Returns an iterable of values in the array
+     */
+    values(): IterableIterator<T>;
+}
+
+interface ArrayConstructor {
+    /**
+     * Creates an array from an iterable object.
+     * @param iterable An iterable object to convert to an array.
+     */
+    from<T>(iterable: Iterable<T> | ArrayLike<T>): T[];
+
+    /**
+     * Creates an array from an iterable object.
+     * @param iterable An iterable object to convert to an array.
+     * @param mapfn A mapping function to call on every element of the array.
+     * @param thisArg Value of 'this' used to invoke the mapfn.
+     */
+    from<T, U>(iterable: Iterable<T> | ArrayLike<T>, mapfn: (v: T, k: number) => U, thisArg?: any): U[];
+}
+
+interface ReadonlyArray<T> {
+    /** Iterator of values in the array. */
+    [Symbol.iterator](): IterableIterator<T>;
+
+    /**
+     * Returns an iterable of key, value pairs for every entry in the array
+     */
+    entries(): IterableIterator<[number, T]>;
+
+    /**
+     * Returns an iterable of keys in the array
+     */
+    keys(): IterableIterator<number>;
+
+    /**
+     * Returns an iterable of values in the array
+     */
+    values(): IterableIterator<T>;
+}
+
+interface IArguments {
+    /** Iterator */
+    [Symbol.iterator](): IterableIterator<any>;
+}
+
+interface Map<K, V> {
+    /** Returns an iterable of entries in the map. */
+    [Symbol.iterator](): IterableIterator<[K, V]>;
+
+    /**
+     * Returns an iterable of key, value pairs for every entry in the map.
+     */
+    entries(): IterableIterator<[K, V]>;
+
+    /**
+     * Returns an iterable of keys in the map
+     */
+    keys(): IterableIterator<K>;
+
+    /**
+     * Returns an iterable of values in the map
+     */
+    values(): IterableIterator<V>;
+}
+
+interface ReadonlyMap<K, V> {
+    /** Returns an iterable of entries in the map. */
+    [Symbol.iterator](): IterableIterator<[K, V]>;
+
+    /**
+     * Returns an iterable of key, value pairs for every entry in the map.
+     */
+    entries(): IterableIterator<[K, V]>;
+
+    /**
+     * Returns an iterable of keys in the map
+     */
+    keys(): IterableIterator<K>;
+
+    /**
+     * Returns an iterable of values in the map
+     */
+    values(): IterableIterator<V>;
+}
+
+interface MapConstructor {
+    new <K, V>(iterable: Iterable<readonly [K, V]>): Map<K, V>;
+}
+
+interface WeakMap<K extends object, V> { }
+
+interface WeakMapConstructor {
+    new <K extends object, V>(iterable: Iterable<[K, V]>): WeakMap<K, V>;
+}
+
+interface Set<T> {
+    /** Iterates over values in the set. */
+    [Symbol.iterator](): IterableIterator<T>;
+    /**
+     * Returns an iterable of [v,v] pairs for every value `v` in the set.
+     */
+    entries(): IterableIterator<[T, T]>;
+    /**
+     * Despite its name, returns an iterable of the values in the set,
+     */
+    keys(): IterableIterator<T>;
+
+    /**
+     * Returns an iterable of values in the set.
+     */
+    values(): IterableIterator<T>;
+}
+
+interface ReadonlySet<T> {
+    /** Iterates over values in the set. */
+    [Symbol.iterator](): IterableIterator<T>;
+
+    /**
+     * Returns an iterable of [v,v] pairs for every value `v` in the set.
+     */
+    entries(): IterableIterator<[T, T]>;
+
+    /**
+     * Despite its name, returns an iterable of the values in the set,
+     */
+    keys(): IterableIterator<T>;
+
+    /**
+     * Returns an iterable of values in the set.
+     */
+    values(): IterableIterator<T>;
+}
+
+interface SetConstructor {
+    new <T>(iterable?: Iterable<T> | null): Set<T>;
+}
+
+interface WeakSet<T extends object> { }
+
+interface WeakSetConstructor {
+    new <T extends object = object>(iterable: Iterable<T>): WeakSet<T>;
+}
+
+interface Promise<T> { }
+
+interface PromiseConstructor {
+    /**
+     * Creates a Promise that is resolved with an array of results when all of the provided Promises
+     * resolve, or rejected when any Promise is rejected.
+     * @param values An array of Promises.
+     * @returns A new Promise.
+     */
+    all<TAll>(values: Iterable<TAll | PromiseLike<TAll>>): Promise<TAll[]>;
+
+    /**
+     * Creates a Promise that is resolved or rejected when any of the provided Promises are resolved
+     * or rejected.
+     * @param values An array of Promises.
+     * @returns A new Promise.
+     */
+    race<T>(values: Iterable<T | PromiseLike<T>>): Promise<T>;
+}
+
+declare namespace Reflect {
+    function enumerate(target: object): IterableIterator<any>;
+}
+
+interface String {
+    /** Iterator */
+    [Symbol.iterator](): IterableIterator<string>;
+}
+
+interface Int8Array {
+    [Symbol.iterator](): IterableIterator<number>;
+    /**
+     * Returns an array of key, value pairs for every entry in the array
+     */
+    entries(): IterableIterator<[number, number]>;
+    /**
+     * Returns an list of keys in the array
+     */
+    keys(): IterableIterator<number>;
+    /**
+     * Returns an list of values in the array
+     */
+    values(): IterableIterator<number>;
+}
+
+interface Int8ArrayConstructor {
+    new (elements: Iterable<number>): Int8Array;
+
+    /**
+     * Creates an array from an array-like or iterable object.
+     * @param arrayLike An array-like or iterable object to convert to an array.
+     * @param mapfn A mapping function to call on every element of the array.
+     * @param thisArg Value of 'this' used to invoke the mapfn.
+     */
+    from(arrayLike: Iterable<number>, mapfn?: (v: number, k: number) => number, thisArg?: any): Int8Array;
+}
+
+interface Uint8Array {
+    [Symbol.iterator](): IterableIterator<number>;
+    /**
+     * Returns an array of key, value pairs for every entry in the array
+     */
+    entries(): IterableIterator<[number, number]>;
+    /**
+     * Returns an list of keys in the array
+     */
+    keys(): IterableIterator<number>;
+    /**
+     * Returns an list of values in the array
+     */
+    values(): IterableIterator<number>;
+}
+
+interface Uint8ArrayConstructor {
+    new (elements: Iterable<number>): Uint8Array;
+
+    /**
+     * Creates an array from an array-like or iterable object.
+     * @param arrayLike An array-like or iterable object to convert to an array.
+     * @param mapfn A mapping function to call on every element of the array.
+     * @param thisArg Value of 'this' used to invoke the mapfn.
+     */
+    from(arrayLike: Iterable<number>, mapfn?: (v: number, k: number) => number, thisArg?: any): Uint8Array;
+}
+
+interface Uint8ClampedArray {
+    [Symbol.iterator](): IterableIterator<number>;
+    /**
+     * Returns an array of key, value pairs for every entry in the array
+     */
+    entries(): IterableIterator<[number, number]>;
+
+    /**
+     * Returns an list of keys in the array
+     */
+    keys(): IterableIterator<number>;
+
+    /**
+     * Returns an list of values in the array
+     */
+    values(): IterableIterator<number>;
+}
+
+interface Uint8ClampedArrayConstructor {
+    new (elements: Iterable<number>): Uint8ClampedArray;
+
+
+    /**
+     * Creates an array from an array-like or iterable object.
+     * @param arrayLike An array-like or iterable object to convert to an array.
+     * @param mapfn A mapping function to call on every element of the array.
+     * @param thisArg Value of 'this' used to invoke the mapfn.
+     */
+    from(arrayLike: Iterable<number>, mapfn?: (v: number, k: number) => number, thisArg?: any): Uint8ClampedArray;
+}
+
+interface Int16Array {
+    [Symbol.iterator](): IterableIterator<number>;
+    /**
+     * Returns an array of key, value pairs for every entry in the array
+     */
+    entries(): IterableIterator<[number, number]>;
+
+    /**
+     * Returns an list of keys in the array
+     */
+    keys(): IterableIterator<number>;
+
+    /**
+     * Returns an list of values in the array
+     */
+    values(): IterableIterator<number>;
+}
+
+interface Int16ArrayConstructor {
+    new (elements: Iterable<number>): Int16Array;
+
+    /**
+     * Creates an array from an array-like or iterable object.
+     * @param arrayLike An array-like or iterable object to convert to an array.
+     * @param mapfn A mapping function to call on every element of the array.
+     * @param thisArg Value of 'this' used to invoke the mapfn.
+     */
+    from(arrayLike: Iterable<number>, mapfn?: (v: number, k: number) => number, thisArg?: any): Int16Array;
+}
+
+interface Uint16Array {
+    [Symbol.iterator](): IterableIterator<number>;
+    /**
+     * Returns an array of key, value pairs for every entry in the array
+     */
+    entries(): IterableIterator<[number, number]>;
+    /**
+     * Returns an list of keys in the array
+     */
+    keys(): IterableIterator<number>;
+    /**
+     * Returns an list of values in the array
+     */
+    values(): IterableIterator<number>;
+}
+
+interface Uint16ArrayConstructor {
+    new (elements: Iterable<number>): Uint16Array;
+
+    /**
+     * Creates an array from an array-like or iterable object.
+     * @param arrayLike An array-like or iterable object to convert to an array.
+     * @param mapfn A mapping function to call on every element of the array.
+     * @param thisArg Value of 'this' used to invoke the mapfn.
+     */
+    from(arrayLike: Iterable<number>, mapfn?: (v: number, k: number) => number, thisArg?: any): Uint16Array;
+}
+
+interface Int32Array {
+    [Symbol.iterator](): IterableIterator<number>;
+    /**
+     * Returns an array of key, value pairs for every entry in the array
+     */
+    entries(): IterableIterator<[number, number]>;
+    /**
+     * Returns an list of keys in the array
+     */
+    keys(): IterableIterator<number>;
+    /**
+     * Returns an list of values in the array
+     */
+    values(): IterableIterator<number>;
+}
+
+interface Int32ArrayConstructor {
+    new (elements: Iterable<number>): Int32Array;
+
+    /**
+     * Creates an array from an array-like or iterable object.
+     * @param arrayLike An array-like or iterable object to convert to an array.
+     * @param mapfn A mapping function to call on every element of the array.
+     * @param thisArg Value of 'this' used to invoke the mapfn.
+     */
+    from(arrayLike: Iterable<number>, mapfn?: (v: number, k: number) => number, thisArg?: any): Int32Array;
+}
+
+interface Uint32Array {
+    [Symbol.iterator](): IterableIterator<number>;
+    /**
+     * Returns an array of key, value pairs for every entry in the array
+     */
+    entries(): IterableIterator<[number, number]>;
+    /**
+     * Returns an list of keys in the array
+     */
+    keys(): IterableIterator<number>;
+    /**
+     * Returns an list of values in the array
+     */
+    values(): IterableIterator<number>;
+}
+
+interface Uint32ArrayConstructor {
+    new (elements: Iterable<number>): Uint32Array;
+
+    /**
+     * Creates an array from an array-like or iterable object.
+     * @param arrayLike An array-like or iterable object to convert to an array.
+     * @param mapfn A mapping function to call on every element of the array.
+     * @param thisArg Value of 'this' used to invoke the mapfn.
+     */
+    from(arrayLike: Iterable<number>, mapfn?: (v: number, k: number) => number, thisArg?: any): Uint32Array;
+}
+
+interface Float32Array {
+    [Symbol.iterator](): IterableIterator<number>;
+    /**
+     * Returns an array of key, value pairs for every entry in the array
+     */
+    entries(): IterableIterator<[number, number]>;
+    /**
+     * Returns an list of keys in the array
+     */
+    keys(): IterableIterator<number>;
+    /**
+     * Returns an list of values in the array
+     */
+    values(): IterableIterator<number>;
+}
+
+interface Float32ArrayConstructor {
+    new (elements: Iterable<number>): Float32Array;
+
+    /**
+     * Creates an array from an array-like or iterable object.
+     * @param arrayLike An array-like or iterable object to convert to an array.
+     * @param mapfn A mapping function to call on every element of the array.
+     * @param thisArg Value of 'this' used to invoke the mapfn.
+     */
+    from(arrayLike: Iterable<number>, mapfn?: (v: number, k: number) => number, thisArg?: any): Float32Array;
+}
+
+interface Float64Array {
+    [Symbol.iterator](): IterableIterator<number>;
+    /**
+     * Returns an array of key, value pairs for every entry in the array
+     */
+    entries(): IterableIterator<[number, number]>;
+    /**
+     * Returns an list of keys in the array
+     */
+    keys(): IterableIterator<number>;
+    /**
+     * Returns an list of values in the array
+     */
+    values(): IterableIterator<number>;
+}
+
+interface Float64ArrayConstructor {
+    new (elements: Iterable<number>): Float64Array;
+
+    /**
+     * Creates an array from an array-like or iterable object.
+     * @param arrayLike An array-like or iterable object to convert to an array.
+     * @param mapfn A mapping function to call on every element of the array.
+     * @param thisArg Value of 'this' used to invoke the mapfn.
+     */
+    from(arrayLike: Iterable<number>, mapfn?: (v: number, k: number) => number, thisArg?: any): Float64Array;
+}
diff --git a/src/cobalt/debug/remote/devtools/node_modules/typescript/lib/lib.es2015.promise.d.ts b/src/third_party/devtools/node_modules/typescript/lib/lib.es2015.promise.d.ts
similarity index 99%
rename from src/cobalt/debug/remote/devtools/node_modules/typescript/lib/lib.es2015.promise.d.ts
rename to src/third_party/devtools/node_modules/typescript/lib/lib.es2015.promise.d.ts
index 2ea9662..4db6754 100644
--- a/src/cobalt/debug/remote/devtools/node_modules/typescript/lib/lib.es2015.promise.d.ts
+++ b/src/third_party/devtools/node_modules/typescript/lib/lib.es2015.promise.d.ts
@@ -15,138 +15,138 @@
 
 
 
-/// <reference no-default-lib="true"/>

+/// <reference no-default-lib="true"/>
 
 
-interface PromiseConstructor {

-    /**

-     * A reference to the prototype.

-     */

-    readonly prototype: Promise<any>;

-

-    /**

-     * Creates a new Promise.

-     * @param executor A callback used to initialize the promise. This callback is passed two arguments:

-     * a resolve callback used to resolve the promise with a value or the result of another promise,

-     * and a reject callback used to reject the promise with a provided reason or error.

-     */

-    new <T>(executor: (resolve: (value?: T | PromiseLike<T>) => void, reject: (reason?: any) => void) => void): Promise<T>;

-

-    /**

-     * Creates a Promise that is resolved with an array of results when all of the provided Promises

-     * resolve, or rejected when any Promise is rejected.

-     * @param values An array of Promises.

-     * @returns A new Promise.

-     */

-    all<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>(values: [T1 | PromiseLike<T1>, T2 | PromiseLike<T2>, T3 | PromiseLike<T3>, T4 | PromiseLike <T4>, T5 | PromiseLike<T5>, T6 | PromiseLike<T6>, T7 | PromiseLike<T7>, T8 | PromiseLike<T8>, T9 | PromiseLike<T9>, T10 | PromiseLike<T10>]): Promise<[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10]>;

-

-    /**

-     * Creates a Promise that is resolved with an array of results when all of the provided Promises

-     * resolve, or rejected when any Promise is rejected.

-     * @param values An array of Promises.

-     * @returns A new Promise.

-     */

-    all<T1, T2, T3, T4, T5, T6, T7, T8, T9>(values: [T1 | PromiseLike<T1>, T2 | PromiseLike<T2>, T3 | PromiseLike<T3>, T4 | PromiseLike <T4>, T5 | PromiseLike<T5>, T6 | PromiseLike<T6>, T7 | PromiseLike<T7>, T8 | PromiseLike<T8>, T9 | PromiseLike<T9>]): Promise<[T1, T2, T3, T4, T5, T6, T7, T8, T9]>;

-

-    /**

-     * Creates a Promise that is resolved with an array of results when all of the provided Promises

-     * resolve, or rejected when any Promise is rejected.

-     * @param values An array of Promises.

-     * @returns A new Promise.

-     */

-    all<T1, T2, T3, T4, T5, T6, T7, T8>(values: [T1 | PromiseLike<T1>, T2 | PromiseLike<T2>, T3 | PromiseLike<T3>, T4 | PromiseLike <T4>, T5 | PromiseLike<T5>, T6 | PromiseLike<T6>, T7 | PromiseLike<T7>, T8 | PromiseLike<T8>]): Promise<[T1, T2, T3, T4, T5, T6, T7, T8]>;

-

-    /**

-     * Creates a Promise that is resolved with an array of results when all of the provided Promises

-     * resolve, or rejected when any Promise is rejected.

-     * @param values An array of Promises.

-     * @returns A new Promise.

-     */

-    all<T1, T2, T3, T4, T5, T6, T7>(values: [T1 | PromiseLike<T1>, T2 | PromiseLike<T2>, T3 | PromiseLike<T3>, T4 | PromiseLike <T4>, T5 | PromiseLike<T5>, T6 | PromiseLike<T6>, T7 | PromiseLike<T7>]): Promise<[T1, T2, T3, T4, T5, T6, T7]>;

-

-    /**

-     * Creates a Promise that is resolved with an array of results when all of the provided Promises

-     * resolve, or rejected when any Promise is rejected.

-     * @param values An array of Promises.

-     * @returns A new Promise.

-     */

-    all<T1, T2, T3, T4, T5, T6>(values: [T1 | PromiseLike<T1>, T2 | PromiseLike<T2>, T3 | PromiseLike<T3>, T4 | PromiseLike <T4>, T5 | PromiseLike<T5>, T6 | PromiseLike<T6>]): Promise<[T1, T2, T3, T4, T5, T6]>;

-

-    /**

-     * Creates a Promise that is resolved with an array of results when all of the provided Promises

-     * resolve, or rejected when any Promise is rejected.

-     * @param values An array of Promises.

-     * @returns A new Promise.

-     */

-    all<T1, T2, T3, T4, T5>(values: [T1 | PromiseLike<T1>, T2 | PromiseLike<T2>, T3 | PromiseLike<T3>, T4 | PromiseLike <T4>, T5 | PromiseLike<T5>]): Promise<[T1, T2, T3, T4, T5]>;

-

-    /**

-     * Creates a Promise that is resolved with an array of results when all of the provided Promises

-     * resolve, or rejected when any Promise is rejected.

-     * @param values An array of Promises.

-     * @returns A new Promise.

-     */

-    all<T1, T2, T3, T4>(values: [T1 | PromiseLike<T1>, T2 | PromiseLike<T2>, T3 | PromiseLike<T3>, T4 | PromiseLike <T4>]): Promise<[T1, T2, T3, T4]>;

-

-    /**

-     * Creates a Promise that is resolved with an array of results when all of the provided Promises

-     * resolve, or rejected when any Promise is rejected.

-     * @param values An array of Promises.

-     * @returns A new Promise.

-     */

-    all<T1, T2, T3>(values: [T1 | PromiseLike<T1>, T2 | PromiseLike<T2>, T3 | PromiseLike<T3>]): Promise<[T1, T2, T3]>;

-

-    /**

-     * Creates a Promise that is resolved with an array of results when all of the provided Promises

-     * resolve, or rejected when any Promise is rejected.

-     * @param values An array of Promises.

-     * @returns A new Promise.

-     */

-    all<T1, T2>(values: [T1 | PromiseLike<T1>, T2 | PromiseLike<T2>]): Promise<[T1, T2]>;

-

-    /**

-     * Creates a Promise that is resolved with an array of results when all of the provided Promises

-     * resolve, or rejected when any Promise is rejected.

-     * @param values An array of Promises.

-     * @returns A new Promise.

-     */

-    all<T>(values: (T | PromiseLike<T>)[]): Promise<T[]>;

-

-    /**

-     * Creates a Promise that is resolved or rejected when any of the provided Promises are resolved

-     * or rejected.

-     * @param values An array of Promises.

-     * @returns A new Promise.

-     */

-    race<T>(values: T[]): Promise<T extends PromiseLike<infer U> ? U : T>;

-

-    /**

-     * Creates a Promise that is resolved or rejected when any of the provided Promises are resolved

-     * or rejected.

-     * @param values An iterable of Promises.

-     * @returns A new Promise.

-     */

-    race<T>(values: Iterable<T>): Promise<T extends PromiseLike<infer U> ? U : T>;

-

-    /**

-     * Creates a new rejected promise for the provided reason.

-     * @param reason The reason the promise was rejected.

-     * @returns A new rejected Promise.

-     */

-    reject<T = never>(reason?: any): Promise<T>;

-

-    /**

-     * Creates a new resolved promise for the provided value.

-     * @param value A promise.

-     * @returns A promise whose internal state matches the provided promise.

-     */

-    resolve<T>(value: T | PromiseLike<T>): Promise<T>;

-

-    /**

-     * Creates a new resolved promise .

-     * @returns A resolved promise.

-     */

-    resolve(): Promise<void>;

-}

-

-declare var Promise: PromiseConstructor;

+interface PromiseConstructor {
+    /**
+     * A reference to the prototype.
+     */
+    readonly prototype: Promise<any>;
+
+    /**
+     * Creates a new Promise.
+     * @param executor A callback used to initialize the promise. This callback is passed two arguments:
+     * a resolve callback used to resolve the promise with a value or the result of another promise,
+     * and a reject callback used to reject the promise with a provided reason or error.
+     */
+    new <T>(executor: (resolve: (value?: T | PromiseLike<T>) => void, reject: (reason?: any) => void) => void): Promise<T>;
+
+    /**
+     * Creates a Promise that is resolved with an array of results when all of the provided Promises
+     * resolve, or rejected when any Promise is rejected.
+     * @param values An array of Promises.
+     * @returns A new Promise.
+     */
+    all<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>(values: [T1 | PromiseLike<T1>, T2 | PromiseLike<T2>, T3 | PromiseLike<T3>, T4 | PromiseLike <T4>, T5 | PromiseLike<T5>, T6 | PromiseLike<T6>, T7 | PromiseLike<T7>, T8 | PromiseLike<T8>, T9 | PromiseLike<T9>, T10 | PromiseLike<T10>]): Promise<[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10]>;
+
+    /**
+     * Creates a Promise that is resolved with an array of results when all of the provided Promises
+     * resolve, or rejected when any Promise is rejected.
+     * @param values An array of Promises.
+     * @returns A new Promise.
+     */
+    all<T1, T2, T3, T4, T5, T6, T7, T8, T9>(values: [T1 | PromiseLike<T1>, T2 | PromiseLike<T2>, T3 | PromiseLike<T3>, T4 | PromiseLike <T4>, T5 | PromiseLike<T5>, T6 | PromiseLike<T6>, T7 | PromiseLike<T7>, T8 | PromiseLike<T8>, T9 | PromiseLike<T9>]): Promise<[T1, T2, T3, T4, T5, T6, T7, T8, T9]>;
+
+    /**
+     * Creates a Promise that is resolved with an array of results when all of the provided Promises
+     * resolve, or rejected when any Promise is rejected.
+     * @param values An array of Promises.
+     * @returns A new Promise.
+     */
+    all<T1, T2, T3, T4, T5, T6, T7, T8>(values: [T1 | PromiseLike<T1>, T2 | PromiseLike<T2>, T3 | PromiseLike<T3>, T4 | PromiseLike <T4>, T5 | PromiseLike<T5>, T6 | PromiseLike<T6>, T7 | PromiseLike<T7>, T8 | PromiseLike<T8>]): Promise<[T1, T2, T3, T4, T5, T6, T7, T8]>;
+
+    /**
+     * Creates a Promise that is resolved with an array of results when all of the provided Promises
+     * resolve, or rejected when any Promise is rejected.
+     * @param values An array of Promises.
+     * @returns A new Promise.
+     */
+    all<T1, T2, T3, T4, T5, T6, T7>(values: [T1 | PromiseLike<T1>, T2 | PromiseLike<T2>, T3 | PromiseLike<T3>, T4 | PromiseLike <T4>, T5 | PromiseLike<T5>, T6 | PromiseLike<T6>, T7 | PromiseLike<T7>]): Promise<[T1, T2, T3, T4, T5, T6, T7]>;
+
+    /**
+     * Creates a Promise that is resolved with an array of results when all of the provided Promises
+     * resolve, or rejected when any Promise is rejected.
+     * @param values An array of Promises.
+     * @returns A new Promise.
+     */
+    all<T1, T2, T3, T4, T5, T6>(values: [T1 | PromiseLike<T1>, T2 | PromiseLike<T2>, T3 | PromiseLike<T3>, T4 | PromiseLike <T4>, T5 | PromiseLike<T5>, T6 | PromiseLike<T6>]): Promise<[T1, T2, T3, T4, T5, T6]>;
+
+    /**
+     * Creates a Promise that is resolved with an array of results when all of the provided Promises
+     * resolve, or rejected when any Promise is rejected.
+     * @param values An array of Promises.
+     * @returns A new Promise.
+     */
+    all<T1, T2, T3, T4, T5>(values: [T1 | PromiseLike<T1>, T2 | PromiseLike<T2>, T3 | PromiseLike<T3>, T4 | PromiseLike <T4>, T5 | PromiseLike<T5>]): Promise<[T1, T2, T3, T4, T5]>;
+
+    /**
+     * Creates a Promise that is resolved with an array of results when all of the provided Promises
+     * resolve, or rejected when any Promise is rejected.
+     * @param values An array of Promises.
+     * @returns A new Promise.
+     */
+    all<T1, T2, T3, T4>(values: [T1 | PromiseLike<T1>, T2 | PromiseLike<T2>, T3 | PromiseLike<T3>, T4 | PromiseLike <T4>]): Promise<[T1, T2, T3, T4]>;
+
+    /**
+     * Creates a Promise that is resolved with an array of results when all of the provided Promises
+     * resolve, or rejected when any Promise is rejected.
+     * @param values An array of Promises.
+     * @returns A new Promise.
+     */
+    all<T1, T2, T3>(values: [T1 | PromiseLike<T1>, T2 | PromiseLike<T2>, T3 | PromiseLike<T3>]): Promise<[T1, T2, T3]>;
+
+    /**
+     * Creates a Promise that is resolved with an array of results when all of the provided Promises
+     * resolve, or rejected when any Promise is rejected.
+     * @param values An array of Promises.
+     * @returns A new Promise.
+     */
+    all<T1, T2>(values: [T1 | PromiseLike<T1>, T2 | PromiseLike<T2>]): Promise<[T1, T2]>;
+
+    /**
+     * Creates a Promise that is resolved with an array of results when all of the provided Promises
+     * resolve, or rejected when any Promise is rejected.
+     * @param values An array of Promises.
+     * @returns A new Promise.
+     */
+    all<T>(values: (T | PromiseLike<T>)[]): Promise<T[]>;
+
+    /**
+     * Creates a Promise that is resolved or rejected when any of the provided Promises are resolved
+     * or rejected.
+     * @param values An array of Promises.
+     * @returns A new Promise.
+     */
+    race<T>(values: T[]): Promise<T extends PromiseLike<infer U> ? U : T>;
+
+    /**
+     * Creates a Promise that is resolved or rejected when any of the provided Promises are resolved
+     * or rejected.
+     * @param values An iterable of Promises.
+     * @returns A new Promise.
+     */
+    race<T>(values: Iterable<T>): Promise<T extends PromiseLike<infer U> ? U : T>;
+
+    /**
+     * Creates a new rejected promise for the provided reason.
+     * @param reason The reason the promise was rejected.
+     * @returns A new rejected Promise.
+     */
+    reject<T = never>(reason?: any): Promise<T>;
+
+    /**
+     * Creates a new resolved promise for the provided value.
+     * @param value A promise.
+     * @returns A promise whose internal state matches the provided promise.
+     */
+    resolve<T>(value: T | PromiseLike<T>): Promise<T>;
+
+    /**
+     * Creates a new resolved promise .
+     * @returns A resolved promise.
+     */
+    resolve(): Promise<void>;
+}
+
+declare var Promise: PromiseConstructor;
diff --git a/src/cobalt/debug/remote/devtools/node_modules/typescript/lib/lib.es2015.proxy.d.ts b/src/third_party/devtools/node_modules/typescript/lib/lib.es2015.proxy.d.ts
similarity index 99%
rename from src/cobalt/debug/remote/devtools/node_modules/typescript/lib/lib.es2015.proxy.d.ts
rename to src/third_party/devtools/node_modules/typescript/lib/lib.es2015.proxy.d.ts
index 6b45e14..4408970 100644
--- a/src/cobalt/debug/remote/devtools/node_modules/typescript/lib/lib.es2015.proxy.d.ts
+++ b/src/third_party/devtools/node_modules/typescript/lib/lib.es2015.proxy.d.ts
@@ -15,28 +15,28 @@
 
 
 
-/// <reference no-default-lib="true"/>

+/// <reference no-default-lib="true"/>
 
 
-interface ProxyHandler<T extends object> {

-    getPrototypeOf? (target: T): object | null;

-    setPrototypeOf? (target: T, v: any): boolean;

-    isExtensible? (target: T): boolean;

-    preventExtensions? (target: T): boolean;

-    getOwnPropertyDescriptor? (target: T, p: PropertyKey): PropertyDescriptor | undefined;

-    has? (target: T, p: PropertyKey): boolean;

-    get? (target: T, p: PropertyKey, receiver: any): any;

-    set? (target: T, p: PropertyKey, value: any, receiver: any): boolean;

-    deleteProperty? (target: T, p: PropertyKey): boolean;

-    defineProperty? (target: T, p: PropertyKey, attributes: PropertyDescriptor): boolean;

-    enumerate? (target: T): PropertyKey[];

-    ownKeys? (target: T): PropertyKey[];

-    apply? (target: T, thisArg: any, argArray?: any): any;

-    construct? (target: T, argArray: any, newTarget?: any): object;

-}

-

-interface ProxyConstructor {

-    revocable<T extends object>(target: T, handler: ProxyHandler<T>): { proxy: T; revoke: () => void; };

-    new <T extends object>(target: T, handler: ProxyHandler<T>): T;

-}

-declare var Proxy: ProxyConstructor;

+interface ProxyHandler<T extends object> {
+    getPrototypeOf? (target: T): object | null;
+    setPrototypeOf? (target: T, v: any): boolean;
+    isExtensible? (target: T): boolean;
+    preventExtensions? (target: T): boolean;
+    getOwnPropertyDescriptor? (target: T, p: PropertyKey): PropertyDescriptor | undefined;
+    has? (target: T, p: PropertyKey): boolean;
+    get? (target: T, p: PropertyKey, receiver: any): any;
+    set? (target: T, p: PropertyKey, value: any, receiver: any): boolean;
+    deleteProperty? (target: T, p: PropertyKey): boolean;
+    defineProperty? (target: T, p: PropertyKey, attributes: PropertyDescriptor): boolean;
+    enumerate? (target: T): PropertyKey[];
+    ownKeys? (target: T): PropertyKey[];
+    apply? (target: T, thisArg: any, argArray?: any): any;
+    construct? (target: T, argArray: any, newTarget?: any): object;
+}
+
+interface ProxyConstructor {
+    revocable<T extends object>(target: T, handler: ProxyHandler<T>): { proxy: T; revoke: () => void; };
+    new <T extends object>(target: T, handler: ProxyHandler<T>): T;
+}
+declare var Proxy: ProxyConstructor;
diff --git a/src/cobalt/debug/remote/devtools/node_modules/typescript/lib/lib.es2015.reflect.d.ts b/src/third_party/devtools/node_modules/typescript/lib/lib.es2015.reflect.d.ts
similarity index 99%
rename from src/cobalt/debug/remote/devtools/node_modules/typescript/lib/lib.es2015.reflect.d.ts
rename to src/third_party/devtools/node_modules/typescript/lib/lib.es2015.reflect.d.ts
index 7078c96..1139f1c 100644
--- a/src/cobalt/debug/remote/devtools/node_modules/typescript/lib/lib.es2015.reflect.d.ts
+++ b/src/third_party/devtools/node_modules/typescript/lib/lib.es2015.reflect.d.ts
@@ -15,21 +15,21 @@
 
 
 
-/// <reference no-default-lib="true"/>

+/// <reference no-default-lib="true"/>
 
 
-declare namespace Reflect {

-    function apply(target: Function, thisArgument: any, argumentsList: ArrayLike<any>): any;

-    function construct(target: Function, argumentsList: ArrayLike<any>, newTarget?: any): any;

-    function defineProperty(target: object, propertyKey: PropertyKey, attributes: PropertyDescriptor): boolean;

-    function deleteProperty(target: object, propertyKey: PropertyKey): boolean;

-    function get(target: object, propertyKey: PropertyKey, receiver?: any): any;

-    function getOwnPropertyDescriptor(target: object, propertyKey: PropertyKey): PropertyDescriptor | undefined;

-    function getPrototypeOf(target: object): object;

-    function has(target: object, propertyKey: PropertyKey): boolean;

-    function isExtensible(target: object): boolean;

-    function ownKeys(target: object): PropertyKey[];

-    function preventExtensions(target: object): boolean;

-    function set(target: object, propertyKey: PropertyKey, value: any, receiver?: any): boolean;

-    function setPrototypeOf(target: object, proto: any): boolean;

-}

+declare namespace Reflect {
+    function apply(target: Function, thisArgument: any, argumentsList: ArrayLike<any>): any;
+    function construct(target: Function, argumentsList: ArrayLike<any>, newTarget?: any): any;
+    function defineProperty(target: object, propertyKey: PropertyKey, attributes: PropertyDescriptor): boolean;
+    function deleteProperty(target: object, propertyKey: PropertyKey): boolean;
+    function get(target: object, propertyKey: PropertyKey, receiver?: any): any;
+    function getOwnPropertyDescriptor(target: object, propertyKey: PropertyKey): PropertyDescriptor | undefined;
+    function getPrototypeOf(target: object): object;
+    function has(target: object, propertyKey: PropertyKey): boolean;
+    function isExtensible(target: object): boolean;
+    function ownKeys(target: object): PropertyKey[];
+    function preventExtensions(target: object): boolean;
+    function set(target: object, propertyKey: PropertyKey, value: any, receiver?: any): boolean;
+    function setPrototypeOf(target: object, proto: any): boolean;
+}
diff --git a/src/cobalt/debug/remote/devtools/node_modules/typescript/lib/lib.es2015.symbol.d.ts b/src/third_party/devtools/node_modules/typescript/lib/lib.es2015.symbol.d.ts
similarity index 99%
rename from src/cobalt/debug/remote/devtools/node_modules/typescript/lib/lib.es2015.symbol.d.ts
rename to src/third_party/devtools/node_modules/typescript/lib/lib.es2015.symbol.d.ts
index 07b2c40..bf09484 100644
--- a/src/cobalt/debug/remote/devtools/node_modules/typescript/lib/lib.es2015.symbol.d.ts
+++ b/src/third_party/devtools/node_modules/typescript/lib/lib.es2015.symbol.d.ts
@@ -15,34 +15,34 @@
 
 
 
-/// <reference no-default-lib="true"/>

+/// <reference no-default-lib="true"/>
 
 
-interface SymbolConstructor {

-    /**

-     * A reference to the prototype.

-     */

-    readonly prototype: Symbol;

-

-    /**

-     * Returns a new unique Symbol value.

-     * @param  description Description of the new Symbol object.

-     */

-    (description?: string | number): symbol;

-

-    /**

-     * Returns a Symbol object from the global symbol registry matching the given key if found.

-     * Otherwise, returns a new symbol with this key.

-     * @param key key to search for.

-     */

-    for(key: string): symbol;

-

-    /**

-     * Returns a key from the global symbol registry matching the given Symbol if found.

-     * Otherwise, returns a undefined.

-     * @param sym Symbol to find the key for.

-     */

-    keyFor(sym: symbol): string | undefined;

-}

-

+interface SymbolConstructor {
+    /**
+     * A reference to the prototype.
+     */
+    readonly prototype: Symbol;
+
+    /**
+     * Returns a new unique Symbol value.
+     * @param  description Description of the new Symbol object.
+     */
+    (description?: string | number): symbol;
+
+    /**
+     * Returns a Symbol object from the global symbol registry matching the given key if found.
+     * Otherwise, returns a new symbol with this key.
+     * @param key key to search for.
+     */
+    for(key: string): symbol;
+
+    /**
+     * Returns a key from the global symbol registry matching the given Symbol if found.
+     * Otherwise, returns a undefined.
+     * @param sym Symbol to find the key for.
+     */
+    keyFor(sym: symbol): string | undefined;
+}
+
 declare var Symbol: SymbolConstructor;
\ No newline at end of file
diff --git a/src/cobalt/debug/remote/devtools/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts b/src/third_party/devtools/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts
similarity index 99%
rename from src/cobalt/debug/remote/devtools/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts
rename to src/third_party/devtools/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts
index 454e296..400f70a 100644
--- a/src/cobalt/debug/remote/devtools/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts
+++ b/src/third_party/devtools/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts
@@ -15,304 +15,304 @@
 
 
 
-/// <reference no-default-lib="true"/>

+/// <reference no-default-lib="true"/>
 
 
-/// <reference lib="es2015.symbol" />

-

-interface SymbolConstructor {

-    /**

-     * A method that determines if a constructor object recognizes an object as one of the

-     * constructor’s instances. Called by the semantics of the instanceof operator.

-     */

-    readonly hasInstance: symbol;

-

-    /**

-     * A Boolean value that if true indicates that an object should flatten to its array elements

-     * by Array.prototype.concat.

-     */

-    readonly isConcatSpreadable: symbol;

-

-    /**

-     * A regular expression method that matches the regular expression against a string. Called

-     * by the String.prototype.match method.

-     */

-    readonly match: symbol;

-

-    /**

-     * A regular expression method that replaces matched substrings of a string. Called by the

-     * String.prototype.replace method.

-     */

-    readonly replace: symbol;

-

-    /**

-     * A regular expression method that returns the index within a string that matches the

-     * regular expression. Called by the String.prototype.search method.

-     */

-    readonly search: symbol;

-

-    /**

-     * A function valued property that is the constructor function that is used to create

-     * derived objects.

-     */

-    readonly species: symbol;

-

-    /**

-     * A regular expression method that splits a string at the indices that match the regular

-     * expression. Called by the String.prototype.split method.

-     */

-    readonly split: symbol;

-

-    /**

-     * A method that converts an object to a corresponding primitive value.

-     * Called by the ToPrimitive abstract operation.

-     */

-    readonly toPrimitive: symbol;

-

-    /**

-     * A String value that is used in the creation of the default string description of an object.

-     * Called by the built-in method Object.prototype.toString.

-     */

-    readonly toStringTag: symbol;

-

-    /**

-     * An Object whose own property names are property names that are excluded from the 'with'

-     * environment bindings of the associated objects.

-     */

-    readonly unscopables: symbol;

-}

-

-interface Symbol {

-    readonly [Symbol.toStringTag]: string;

-}

-

-interface Array<T> {

-    /**

-     * Returns an object whose properties have the value 'true'

-     * when they will be absent when used in a 'with' statement.

-     */

-    [Symbol.unscopables](): {

-        copyWithin: boolean;

-        entries: boolean;

-        fill: boolean;

-        find: boolean;

-        findIndex: boolean;

-        keys: boolean;

-        values: boolean;

-    };

-}

-

-interface Date {

-    /**

-     * Converts a Date object to a string.

-     */

-    [Symbol.toPrimitive](hint: "default"): string;

-    /**

-     * Converts a Date object to a string.

-     */

-    [Symbol.toPrimitive](hint: "string"): string;

-    /**

-     * Converts a Date object to a number.

-     */

-    [Symbol.toPrimitive](hint: "number"): number;

-    /**

-     * Converts a Date object to a string or number.

-     *

-     * @param hint The strings "number", "string", or "default" to specify what primitive to return.

-     *

-     * @throws {TypeError} If 'hint' was given something other than "number", "string", or "default".

-     * @returns A number if 'hint' was "number", a string if 'hint' was "string" or "default".

-     */

-    [Symbol.toPrimitive](hint: string): string | number;

-}

-

-interface Map<K, V> {

-    readonly [Symbol.toStringTag]: string;

-}

-

-interface WeakMap<K extends object, V> {

-    readonly [Symbol.toStringTag]: string;

-}

-

-interface Set<T> {

-    readonly [Symbol.toStringTag]: string;

-}

-

-interface WeakSet<T extends object> {

-    readonly [Symbol.toStringTag]: string;

-}

-

-interface JSON {

-    readonly [Symbol.toStringTag]: string;

-}

-

-interface Function {

-    /**

-     * Determines whether the given value inherits from this function if this function was used

-     * as a constructor function.

-     *

-     * A constructor function can control which objects are recognized as its instances by

-     * 'instanceof' by overriding this method.

-     */

-    [Symbol.hasInstance](value: any): boolean;

-}

-

-interface GeneratorFunction {

-    readonly [Symbol.toStringTag]: string;

-}

-

-interface Math {

-    readonly [Symbol.toStringTag]: string;

-}

-

-interface Promise<T> {

-    readonly [Symbol.toStringTag]: string;

-}

-

-interface PromiseConstructor {

-    readonly [Symbol.species]: PromiseConstructor;

-}

-

-interface RegExp {

-    /**

-     * Matches a string with this regular expression, and returns an array containing the results of

-     * that search.

-     * @param string A string to search within.

-     */

-    [Symbol.match](string: string): RegExpMatchArray | null;

-

-    /**

-     * Replaces text in a string, using this regular expression.

-     * @param string A String object or string literal whose contents matching against

-     *               this regular expression will be replaced

-     * @param replaceValue A String object or string literal containing the text to replace for every

-     *                     successful match of this regular expression.

-     */

-    [Symbol.replace](string: string, replaceValue: string): string;

-

-    /**

-     * Replaces text in a string, using this regular expression.

-     * @param string A String object or string literal whose contents matching against

-     *               this regular expression will be replaced

-     * @param replacer A function that returns the replacement text.

-     */

-    [Symbol.replace](string: string, replacer: (substring: string, ...args: any[]) => string): string;

-

-    /**

-     * Finds the position beginning first substring match in a regular expression search

-     * using this regular expression.

-     *

-     * @param string The string to search within.

-     */

-    [Symbol.search](string: string): number;

-

-    /**

-     * Returns an array of substrings that were delimited by strings in the original input that

-     * match against this regular expression.

-     *

-     * If the regular expression contains capturing parentheses, then each time this

-     * regular expression matches, the results (including any undefined results) of the

-     * capturing parentheses are spliced.

-     *

-     * @param string string value to split

-     * @param limit if not undefined, the output array is truncated so that it contains no more

-     * than 'limit' elements.

-     */

-    [Symbol.split](string: string, limit?: number): string[];

-}

-

-interface RegExpConstructor {

-    readonly [Symbol.species]: RegExpConstructor;

-}

-

-interface String {

-    /**

-     * Matches a string an object that supports being matched against, and returns an array containing the results of that search.

-     * @param matcher An object that supports being matched against.

-     */

-    match(matcher: { [Symbol.match](string: string): RegExpMatchArray | null; }): RegExpMatchArray | null;

-

-    /**

-     * Replaces text in a string, using an object that supports replacement within a string.

-     * @param searchValue A object can search for and replace matches within a string.

-     * @param replaceValue A string containing the text to replace for every successful match of searchValue in this string.

-     */

-    replace(searchValue: { [Symbol.replace](string: string, replaceValue: string): string; }, replaceValue: string): string;

-

-    /**

-     * Replaces text in a string, using an object that supports replacement within a string.

-     * @param searchValue A object can search for and replace matches within a string.

-     * @param replacer A function that returns the replacement text.

-     */

-    replace(searchValue: { [Symbol.replace](string: string, replacer: (substring: string, ...args: any[]) => string): string; }, replacer: (substring: string, ...args: any[]) => string): string;

-

-    /**

-     * Finds the first substring match in a regular expression search.

-     * @param searcher An object which supports searching within a string.

-     */

-    search(searcher: { [Symbol.search](string: string): number; }): number;

-

-    /**

-     * Split a string into substrings using the specified separator and return them as an array.

-     * @param splitter An object that can split a string.

-     * @param limit A value used to limit the number of elements returned in the array.

-     */

-    split(splitter: { [Symbol.split](string: string, limit?: number): string[]; }, limit?: number): string[];

-}

-

-interface ArrayBuffer {

-    readonly [Symbol.toStringTag]: string;

-}

-

-interface DataView {

-    readonly [Symbol.toStringTag]: string;

-}

-

-interface Int8Array {

-    readonly [Symbol.toStringTag]: "Int8Array";

-}

-

-interface Uint8Array {

-    readonly [Symbol.toStringTag]: "UInt8Array";

-}

-

-interface Uint8ClampedArray {

-    readonly [Symbol.toStringTag]: "Uint8ClampedArray";

-}

-

-interface Int16Array {

-    readonly [Symbol.toStringTag]: "Int16Array";

-}

-

-interface Uint16Array {

-    readonly [Symbol.toStringTag]: "Uint16Array";

-}

-

-interface Int32Array {

-    readonly [Symbol.toStringTag]: "Int32Array";

-}

-

-interface Uint32Array {

-    readonly [Symbol.toStringTag]: "Uint32Array";

-}

-

-interface Float32Array {

-    readonly [Symbol.toStringTag]: "Float32Array";

-}

-

-interface Float64Array {

-    readonly [Symbol.toStringTag]: "Float64Array";

-}

-

-interface ArrayConstructor {

-    readonly [Symbol.species]: ArrayConstructor;

-}

-interface MapConstructor {

-    readonly [Symbol.species]: MapConstructor;

-}

-interface SetConstructor {

-    readonly [Symbol.species]: SetConstructor;

-}

-interface ArrayBufferConstructor {

-    readonly [Symbol.species]: ArrayBufferConstructor;

+/// <reference lib="es2015.symbol" />
+
+interface SymbolConstructor {
+    /**
+     * A method that determines if a constructor object recognizes an object as one of the
+     * constructor’s instances. Called by the semantics of the instanceof operator.
+     */
+    readonly hasInstance: symbol;
+
+    /**
+     * A Boolean value that if true indicates that an object should flatten to its array elements
+     * by Array.prototype.concat.
+     */
+    readonly isConcatSpreadable: symbol;
+
+    /**
+     * A regular expression method that matches the regular expression against a string. Called
+     * by the String.prototype.match method.
+     */
+    readonly match: symbol;
+
+    /**
+     * A regular expression method that replaces matched substrings of a string. Called by the
+     * String.prototype.replace method.
+     */
+    readonly replace: symbol;
+
+    /**
+     * A regular expression method that returns the index within a string that matches the
+     * regular expression. Called by the String.prototype.search method.
+     */
+    readonly search: symbol;
+
+    /**
+     * A function valued property that is the constructor function that is used to create
+     * derived objects.
+     */
+    readonly species: symbol;
+
+    /**
+     * A regular expression method that splits a string at the indices that match the regular
+     * expression. Called by the String.prototype.split method.
+     */
+    readonly split: symbol;
+
+    /**
+     * A method that converts an object to a corresponding primitive value.
+     * Called by the ToPrimitive abstract operation.
+     */
+    readonly toPrimitive: symbol;
+
+    /**
+     * A String value that is used in the creation of the default string description of an object.
+     * Called by the built-in method Object.prototype.toString.
+     */
+    readonly toStringTag: symbol;
+
+    /**
+     * An Object whose own property names are property names that are excluded from the 'with'
+     * environment bindings of the associated objects.
+     */
+    readonly unscopables: symbol;
+}
+
+interface Symbol {
+    readonly [Symbol.toStringTag]: string;
+}
+
+interface Array<T> {
+    /**
+     * Returns an object whose properties have the value 'true'
+     * when they will be absent when used in a 'with' statement.
+     */
+    [Symbol.unscopables](): {
+        copyWithin: boolean;
+        entries: boolean;
+        fill: boolean;
+        find: boolean;
+        findIndex: boolean;
+        keys: boolean;
+        values: boolean;
+    };
+}
+
+interface Date {
+    /**
+     * Converts a Date object to a string.
+     */
+    [Symbol.toPrimitive](hint: "default"): string;
+    /**
+     * Converts a Date object to a string.
+     */
+    [Symbol.toPrimitive](hint: "string"): string;
+    /**
+     * Converts a Date object to a number.
+     */
+    [Symbol.toPrimitive](hint: "number"): number;
+    /**
+     * Converts a Date object to a string or number.
+     *
+     * @param hint The strings "number", "string", or "default" to specify what primitive to return.
+     *
+     * @throws {TypeError} If 'hint' was given something other than "number", "string", or "default".
+     * @returns A number if 'hint' was "number", a string if 'hint' was "string" or "default".
+     */
+    [Symbol.toPrimitive](hint: string): string | number;
+}
+
+interface Map<K, V> {
+    readonly [Symbol.toStringTag]: string;
+}
+
+interface WeakMap<K extends object, V> {
+    readonly [Symbol.toStringTag]: string;
+}
+
+interface Set<T> {
+    readonly [Symbol.toStringTag]: string;
+}
+
+interface WeakSet<T extends object> {
+    readonly [Symbol.toStringTag]: string;
+}
+
+interface JSON {
+    readonly [Symbol.toStringTag]: string;
+}
+
+interface Function {
+    /**
+     * Determines whether the given value inherits from this function if this function was used
+     * as a constructor function.
+     *
+     * A constructor function can control which objects are recognized as its instances by
+     * 'instanceof' by overriding this method.
+     */
+    [Symbol.hasInstance](value: any): boolean;
+}
+
+interface GeneratorFunction {
+    readonly [Symbol.toStringTag]: string;
+}
+
+interface Math {
+    readonly [Symbol.toStringTag]: string;
+}
+
+interface Promise<T> {
+    readonly [Symbol.toStringTag]: string;
+}
+
+interface PromiseConstructor {
+    readonly [Symbol.species]: PromiseConstructor;
+}
+
+interface RegExp {
+    /**
+     * Matches a string with this regular expression, and returns an array containing the results of
+     * that search.
+     * @param string A string to search within.
+     */
+    [Symbol.match](string: string): RegExpMatchArray | null;
+
+    /**
+     * Replaces text in a string, using this regular expression.
+     * @param string A String object or string literal whose contents matching against
+     *               this regular expression will be replaced
+     * @param replaceValue A String object or string literal containing the text to replace for every
+     *                     successful match of this regular expression.
+     */
+    [Symbol.replace](string: string, replaceValue: string): string;
+
+    /**
+     * Replaces text in a string, using this regular expression.
+     * @param string A String object or string literal whose contents matching against
+     *               this regular expression will be replaced
+     * @param replacer A function that returns the replacement text.
+     */
+    [Symbol.replace](string: string, replacer: (substring: string, ...args: any[]) => string): string;
+
+    /**
+     * Finds the position beginning first substring match in a regular expression search
+     * using this regular expression.
+     *
+     * @param string The string to search within.
+     */
+    [Symbol.search](string: string): number;
+
+    /**
+     * Returns an array of substrings that were delimited by strings in the original input that
+     * match against this regular expression.
+     *
+     * If the regular expression contains capturing parentheses, then each time this
+     * regular expression matches, the results (including any undefined results) of the
+     * capturing parentheses are spliced.
+     *
+     * @param string string value to split
+     * @param limit if not undefined, the output array is truncated so that it contains no more
+     * than 'limit' elements.
+     */
+    [Symbol.split](string: string, limit?: number): string[];
+}
+
+interface RegExpConstructor {
+    readonly [Symbol.species]: RegExpConstructor;
+}
+
+interface String {
+    /**
+     * Matches a string an object that supports being matched against, and returns an array containing the results of that search.
+     * @param matcher An object that supports being matched against.
+     */
+    match(matcher: { [Symbol.match](string: string): RegExpMatchArray | null; }): RegExpMatchArray | null;
+
+    /**
+     * Replaces text in a string, using an object that supports replacement within a string.
+     * @param searchValue A object can search for and replace matches within a string.
+     * @param replaceValue A string containing the text to replace for every successful match of searchValue in this string.
+     */
+    replace(searchValue: { [Symbol.replace](string: string, replaceValue: string): string; }, replaceValue: string): string;
+
+    /**
+     * Replaces text in a string, using an object that supports replacement within a string.
+     * @param searchValue A object can search for and replace matches within a string.
+     * @param replacer A function that returns the replacement text.
+     */
+    replace(searchValue: { [Symbol.replace](string: string, replacer: (substring: string, ...args: any[]) => string): string; }, replacer: (substring: string, ...args: any[]) => string): string;
+
+    /**
+     * Finds the first substring match in a regular expression search.
+     * @param searcher An object which supports searching within a string.
+     */
+    search(searcher: { [Symbol.search](string: string): number; }): number;
+
+    /**
+     * Split a string into substrings using the specified separator and return them as an array.
+     * @param splitter An object that can split a string.
+     * @param limit A value used to limit the number of elements returned in the array.
+     */
+    split(splitter: { [Symbol.split](string: string, limit?: number): string[]; }, limit?: number): string[];
+}
+
+interface ArrayBuffer {
+    readonly [Symbol.toStringTag]: string;
+}
+
+interface DataView {
+    readonly [Symbol.toStringTag]: string;
+}
+
+interface Int8Array {
+    readonly [Symbol.toStringTag]: "Int8Array";
+}
+
+interface Uint8Array {
+    readonly [Symbol.toStringTag]: "UInt8Array";
+}
+
+interface Uint8ClampedArray {
+    readonly [Symbol.toStringTag]: "Uint8ClampedArray";
+}
+
+interface Int16Array {
+    readonly [Symbol.toStringTag]: "Int16Array";
+}
+
+interface Uint16Array {
+    readonly [Symbol.toStringTag]: "Uint16Array";
+}
+
+interface Int32Array {
+    readonly [Symbol.toStringTag]: "Int32Array";
+}
+
+interface Uint32Array {
+    readonly [Symbol.toStringTag]: "Uint32Array";
+}
+
+interface Float32Array {
+    readonly [Symbol.toStringTag]: "Float32Array";
+}
+
+interface Float64Array {
+    readonly [Symbol.toStringTag]: "Float64Array";
+}
+
+interface ArrayConstructor {
+    readonly [Symbol.species]: ArrayConstructor;
+}
+interface MapConstructor {
+    readonly [Symbol.species]: MapConstructor;
+}
+interface SetConstructor {
+    readonly [Symbol.species]: SetConstructor;
+}
+interface ArrayBufferConstructor {
+    readonly [Symbol.species]: ArrayBufferConstructor;
 }
\ No newline at end of file
diff --git a/src/cobalt/debug/remote/devtools/node_modules/typescript/lib/lib.es2016.array.include.d.ts b/src/third_party/devtools/node_modules/typescript/lib/lib.es2016.array.include.d.ts
similarity index 99%
rename from src/cobalt/debug/remote/devtools/node_modules/typescript/lib/lib.es2016.array.include.d.ts
rename to src/third_party/devtools/node_modules/typescript/lib/lib.es2016.array.include.d.ts
index 3f417a6..734fa45 100644
--- a/src/cobalt/debug/remote/devtools/node_modules/typescript/lib/lib.es2016.array.include.d.ts
+++ b/src/third_party/devtools/node_modules/typescript/lib/lib.es2016.array.include.d.ts
@@ -15,104 +15,104 @@
 
 
 
-/// <reference no-default-lib="true"/>

+/// <reference no-default-lib="true"/>
 
 
-interface Array<T> {

-    /**

-     * Determines whether an array includes a certain element, returning true or false as appropriate.

-     * @param searchElement The element to search for.

-     * @param fromIndex The position in this array at which to begin searching for searchElement.

-     */

-    includes(searchElement: T, fromIndex?: number): boolean;

-}

-

-interface ReadonlyArray<T> {

-    /**

-     * Determines whether an array includes a certain element, returning true or false as appropriate.

-     * @param searchElement The element to search for.

-     * @param fromIndex The position in this array at which to begin searching for searchElement.

-     */

-    includes(searchElement: T, fromIndex?: number): boolean;

-}

-

-interface Int8Array {

-    /**

-     * Determines whether an array includes a certain element, returning true or false as appropriate.

-     * @param searchElement The element to search for.

-     * @param fromIndex The position in this array at which to begin searching for searchElement.

-     */

-    includes(searchElement: number, fromIndex?: number): boolean;

-}

-

-interface Uint8Array {

-    /**

-     * Determines whether an array includes a certain element, returning true or false as appropriate.

-     * @param searchElement The element to search for.

-     * @param fromIndex The position in this array at which to begin searching for searchElement.

-     */

-    includes(searchElement: number, fromIndex?: number): boolean;

-}

-

-interface Uint8ClampedArray {

-    /**

-     * Determines whether an array includes a certain element, returning true or false as appropriate.

-     * @param searchElement The element to search for.

-     * @param fromIndex The position in this array at which to begin searching for searchElement.

-     */

-    includes(searchElement: number, fromIndex?: number): boolean;

-}

-

-interface Int16Array {

-    /**

-     * Determines whether an array includes a certain element, returning true or false as appropriate.

-     * @param searchElement The element to search for.

-     * @param fromIndex The position in this array at which to begin searching for searchElement.

-     */

-    includes(searchElement: number, fromIndex?: number): boolean;

-}

-

-interface Uint16Array {

-    /**

-     * Determines whether an array includes a certain element, returning true or false as appropriate.

-     * @param searchElement The element to search for.

-     * @param fromIndex The position in this array at which to begin searching for searchElement.

-     */

-    includes(searchElement: number, fromIndex?: number): boolean;

-}

-

-interface Int32Array {

-    /**

-     * Determines whether an array includes a certain element, returning true or false as appropriate.

-     * @param searchElement The element to search for.

-     * @param fromIndex The position in this array at which to begin searching for searchElement.

-     */

-    includes(searchElement: number, fromIndex?: number): boolean;

-}

-

-interface Uint32Array {

-    /**

-     * Determines whether an array includes a certain element, returning true or false as appropriate.

-     * @param searchElement The element to search for.

-     * @param fromIndex The position in this array at which to begin searching for searchElement.

-     */

-    includes(searchElement: number, fromIndex?: number): boolean;

-}

-

-interface Float32Array {

-    /**

-     * Determines whether an array includes a certain element, returning true or false as appropriate.

-     * @param searchElement The element to search for.

-     * @param fromIndex The position in this array at which to begin searching for searchElement.

-     */

-    includes(searchElement: number, fromIndex?: number): boolean;

-}

-

-interface Float64Array {

-    /**

-     * Determines whether an array includes a certain element, returning true or false as appropriate.

-     * @param searchElement The element to search for.

-     * @param fromIndex The position in this array at which to begin searching for searchElement.

-     */

-    includes(searchElement: number, fromIndex?: number): boolean;

+interface Array<T> {
+    /**
+     * Determines whether an array includes a certain element, returning true or false as appropriate.
+     * @param searchElement The element to search for.
+     * @param fromIndex The position in this array at which to begin searching for searchElement.
+     */
+    includes(searchElement: T, fromIndex?: number): boolean;
+}
+
+interface ReadonlyArray<T> {
+    /**
+     * Determines whether an array includes a certain element, returning true or false as appropriate.
+     * @param searchElement The element to search for.
+     * @param fromIndex The position in this array at which to begin searching for searchElement.
+     */
+    includes(searchElement: T, fromIndex?: number): boolean;
+}
+
+interface Int8Array {
+    /**
+     * Determines whether an array includes a certain element, returning true or false as appropriate.
+     * @param searchElement The element to search for.
+     * @param fromIndex The position in this array at which to begin searching for searchElement.
+     */
+    includes(searchElement: number, fromIndex?: number): boolean;
+}
+
+interface Uint8Array {
+    /**
+     * Determines whether an array includes a certain element, returning true or false as appropriate.
+     * @param searchElement The element to search for.
+     * @param fromIndex The position in this array at which to begin searching for searchElement.
+     */
+    includes(searchElement: number, fromIndex?: number): boolean;
+}
+
+interface Uint8ClampedArray {
+    /**
+     * Determines whether an array includes a certain element, returning true or false as appropriate.
+     * @param searchElement The element to search for.
+     * @param fromIndex The position in this array at which to begin searching for searchElement.
+     */
+    includes(searchElement: number, fromIndex?: number): boolean;
+}
+
+interface Int16Array {
+    /**
+     * Determines whether an array includes a certain element, returning true or false as appropriate.
+     * @param searchElement The element to search for.
+     * @param fromIndex The position in this array at which to begin searching for searchElement.
+     */
+    includes(searchElement: number, fromIndex?: number): boolean;
+}
+
+interface Uint16Array {
+    /**
+     * Determines whether an array includes a certain element, returning true or false as appropriate.
+     * @param searchElement The element to search for.
+     * @param fromIndex The position in this array at which to begin searching for searchElement.
+     */
+    includes(searchElement: number, fromIndex?: number): boolean;
+}
+
+interface Int32Array {
+    /**
+     * Determines whether an array includes a certain element, returning true or false as appropriate.
+     * @param searchElement The element to search for.
+     * @param fromIndex The position in this array at which to begin searching for searchElement.
+     */
+    includes(searchElement: number, fromIndex?: number): boolean;
+}
+
+interface Uint32Array {
+    /**
+     * Determines whether an array includes a certain element, returning true or false as appropriate.
+     * @param searchElement The element to search for.
+     * @param fromIndex The position in this array at which to begin searching for searchElement.
+     */
+    includes(searchElement: number, fromIndex?: number): boolean;
+}
+
+interface Float32Array {
+    /**
+     * Determines whether an array includes a certain element, returning true or false as appropriate.
+     * @param searchElement The element to search for.
+     * @param fromIndex The position in this array at which to begin searching for searchElement.
+     */
+    includes(searchElement: number, fromIndex?: number): boolean;
+}
+
+interface Float64Array {
+    /**
+     * Determines whether an array includes a certain element, returning true or false as appropriate.
+     * @param searchElement The element to search for.
+     * @param fromIndex The position in this array at which to begin searching for searchElement.
+     */
+    includes(searchElement: number, fromIndex?: number): boolean;
 }
\ No newline at end of file
diff --git a/src/cobalt/debug/remote/devtools/node_modules/typescript/lib/lib.es2016.d.ts b/src/third_party/devtools/node_modules/typescript/lib/lib.es2016.d.ts
similarity index 99%
rename from src/cobalt/debug/remote/devtools/node_modules/typescript/lib/lib.es2016.d.ts
rename to src/third_party/devtools/node_modules/typescript/lib/lib.es2016.d.ts
index 81da500..b2d59b8 100644
--- a/src/cobalt/debug/remote/devtools/node_modules/typescript/lib/lib.es2016.d.ts
+++ b/src/third_party/devtools/node_modules/typescript/lib/lib.es2016.d.ts
@@ -15,8 +15,8 @@
 
 
 
-/// <reference no-default-lib="true"/>

+/// <reference no-default-lib="true"/>
 
 
-/// <reference lib="es2015" />

+/// <reference lib="es2015" />
 /// <reference lib="es2016.array.include" />
\ No newline at end of file
diff --git a/src/cobalt/debug/remote/devtools/node_modules/typescript/lib/lib.es2016.full.d.ts b/src/third_party/devtools/node_modules/typescript/lib/lib.es2016.full.d.ts
similarity index 99%
rename from src/cobalt/debug/remote/devtools/node_modules/typescript/lib/lib.es2016.full.d.ts
rename to src/third_party/devtools/node_modules/typescript/lib/lib.es2016.full.d.ts
index 5e317b2..6ecfe0a 100644
--- a/src/cobalt/debug/remote/devtools/node_modules/typescript/lib/lib.es2016.full.d.ts
+++ b/src/third_party/devtools/node_modules/typescript/lib/lib.es2016.full.d.ts
@@ -15,11 +15,11 @@
 
 
 
-/// <reference no-default-lib="true"/>

+/// <reference no-default-lib="true"/>
 
 
-/// <reference lib="es2016" />

-/// <reference lib="dom" />

-/// <reference lib="webworker.importscripts" />

-/// <reference lib="scripthost" />

+/// <reference lib="es2016" />
+/// <reference lib="dom" />
+/// <reference lib="webworker.importscripts" />
+/// <reference lib="scripthost" />
 /// <reference lib="dom.iterable" />
\ No newline at end of file
diff --git a/src/cobalt/debug/remote/devtools/node_modules/typescript/lib/lib.es2017.d.ts b/src/third_party/devtools/node_modules/typescript/lib/lib.es2017.d.ts
similarity index 99%
rename from src/cobalt/debug/remote/devtools/node_modules/typescript/lib/lib.es2017.d.ts
rename to src/third_party/devtools/node_modules/typescript/lib/lib.es2017.d.ts
index 38aae6a..850e81d 100644
--- a/src/cobalt/debug/remote/devtools/node_modules/typescript/lib/lib.es2017.d.ts
+++ b/src/third_party/devtools/node_modules/typescript/lib/lib.es2017.d.ts
@@ -15,12 +15,12 @@
 
 
 
-/// <reference no-default-lib="true"/>

+/// <reference no-default-lib="true"/>
 
 
-/// <reference lib="es2016" />

-/// <reference lib="es2017.object" />

-/// <reference lib="es2017.sharedmemory" />

-/// <reference lib="es2017.string" />

-/// <reference lib="es2017.intl" />

-/// <reference lib="es2017.typedarrays" />

+/// <reference lib="es2016" />
+/// <reference lib="es2017.object" />
+/// <reference lib="es2017.sharedmemory" />
+/// <reference lib="es2017.string" />
+/// <reference lib="es2017.intl" />
+/// <reference lib="es2017.typedarrays" />
diff --git a/src/cobalt/debug/remote/devtools/node_modules/typescript/lib/lib.es2017.full.d.ts b/src/third_party/devtools/node_modules/typescript/lib/lib.es2017.full.d.ts
similarity index 99%
rename from src/cobalt/debug/remote/devtools/node_modules/typescript/lib/lib.es2017.full.d.ts
rename to src/third_party/devtools/node_modules/typescript/lib/lib.es2017.full.d.ts
index f9de1f4..46d2ee8 100644
--- a/src/cobalt/debug/remote/devtools/node_modules/typescript/lib/lib.es2017.full.d.ts
+++ b/src/third_party/devtools/node_modules/typescript/lib/lib.es2017.full.d.ts
@@ -15,11 +15,11 @@
 
 
 
-/// <reference no-default-lib="true"/>

+/// <reference no-default-lib="true"/>
 
 
-/// <reference lib="es2017" />

-/// <reference lib="dom" />

-/// <reference lib="webworker.importscripts" />

-/// <reference lib="scripthost" />

+/// <reference lib="es2017" />
+/// <reference lib="dom" />
+/// <reference lib="webworker.importscripts" />
+/// <reference lib="scripthost" />
 /// <reference lib="dom.iterable" />
\ No newline at end of file
diff --git a/src/cobalt/debug/remote/devtools/node_modules/typescript/lib/lib.es2017.intl.d.ts b/src/third_party/devtools/node_modules/typescript/lib/lib.es2017.intl.d.ts
similarity index 99%
rename from src/cobalt/debug/remote/devtools/node_modules/typescript/lib/lib.es2017.intl.d.ts
rename to src/third_party/devtools/node_modules/typescript/lib/lib.es2017.intl.d.ts
index f4fc56b..25b1fa5 100644
--- a/src/cobalt/debug/remote/devtools/node_modules/typescript/lib/lib.es2017.intl.d.ts
+++ b/src/third_party/devtools/node_modules/typescript/lib/lib.es2017.intl.d.ts
@@ -15,18 +15,18 @@
 
 
 
-/// <reference no-default-lib="true"/>

+/// <reference no-default-lib="true"/>
 
 
-declare namespace Intl {

-    type DateTimeFormatPartTypes = "day" | "dayPeriod" | "era" | "hour" | "literal" | "minute" | "month" | "second" | "timeZoneName" | "weekday" | "year";

-

-    interface DateTimeFormatPart {

-        type: DateTimeFormatPartTypes;

-        value: string;

-    }

-

-    interface DateTimeFormat {

-        formatToParts(date?: Date | number): DateTimeFormatPart[];

-    }

-}

+declare namespace Intl {
+    type DateTimeFormatPartTypes = "day" | "dayPeriod" | "era" | "hour" | "literal" | "minute" | "month" | "second" | "timeZoneName" | "weekday" | "year";
+
+    interface DateTimeFormatPart {
+        type: DateTimeFormatPartTypes;
+        value: string;
+    }
+
+    interface DateTimeFormat {
+        formatToParts(date?: Date | number): DateTimeFormatPart[];
+    }
+}
diff --git a/src/cobalt/debug/remote/devtools/node_modules/typescript/lib/lib.es2017.object.d.ts b/src/third_party/devtools/node_modules/typescript/lib/lib.es2017.object.d.ts
similarity index 99%
rename from src/cobalt/debug/remote/devtools/node_modules/typescript/lib/lib.es2017.object.d.ts
rename to src/third_party/devtools/node_modules/typescript/lib/lib.es2017.object.d.ts
index c5db0f4..65aa1f9 100644
--- a/src/cobalt/debug/remote/devtools/node_modules/typescript/lib/lib.es2017.object.d.ts
+++ b/src/third_party/devtools/node_modules/typescript/lib/lib.es2017.object.d.ts
@@ -15,37 +15,37 @@
 
 
 
-/// <reference no-default-lib="true"/>

+/// <reference no-default-lib="true"/>
 
 
-interface ObjectConstructor {

-    /**

-     * Returns an array of values of the enumerable properties of an object

-     * @param o Object that contains the properties and methods. This can be an object that you created or an existing Document Object Model (DOM) object.

-     */

-    values<T>(o: { [s: string]: T } |  ArrayLike<T>): T[];

-

-    /**

-     * Returns an array of values of the enumerable properties of an object

-     * @param o Object that contains the properties and methods. This can be an object that you created or an existing Document Object Model (DOM) object.

-     */

-    values(o: {}): any[];

-

-    /**

-     * Returns an array of key/values of the enumerable properties of an object

-     * @param o Object that contains the properties and methods. This can be an object that you created or an existing Document Object Model (DOM) object.

-     */

-    entries<T>(o: { [s: string]: T } | ArrayLike<T>): [string, T][];

-

-    /**

-     * Returns an array of key/values of the enumerable properties of an object

-     * @param o Object that contains the properties and methods. This can be an object that you created or an existing Document Object Model (DOM) object.

-     */

-    entries(o: {}): [string, any][];

-

-    /**

-     * Returns an object containing all own property descriptors of an object

-     * @param o Object that contains the properties and methods. This can be an object that you created or an existing Document Object Model (DOM) object.

-     */

-    getOwnPropertyDescriptors<T>(o: T): {[P in keyof T]: TypedPropertyDescriptor<T[P]>} & { [x: string]: PropertyDescriptor };

-}

+interface ObjectConstructor {
+    /**
+     * Returns an array of values of the enumerable properties of an object
+     * @param o Object that contains the properties and methods. This can be an object that you created or an existing Document Object Model (DOM) object.
+     */
+    values<T>(o: { [s: string]: T } |  ArrayLike<T>): T[];
+
+    /**
+     * Returns an array of values of the enumerable properties of an object
+     * @param o Object that contains the properties and methods. This can be an object that you created or an existing Document Object Model (DOM) object.
+     */
+    values(o: {}): any[];
+
+    /**
+     * Returns an array of key/values of the enumerable properties of an object
+     * @param o Object that contains the properties and methods. This can be an object that you created or an existing Document Object Model (DOM) object.
+     */
+    entries<T>(o: { [s: string]: T } | ArrayLike<T>): [string, T][];
+
+    /**
+     * Returns an array of key/values of the enumerable properties of an object
+     * @param o Object that contains the properties and methods. This can be an object that you created or an existing Document Object Model (DOM) object.
+     */
+    entries(o: {}): [string, any][];
+
+    /**
+     * Returns an object containing all own property descriptors of an object
+     * @param o Object that contains the properties and methods. This can be an object that you created or an existing Document Object Model (DOM) object.
+     */
+    getOwnPropertyDescriptors<T>(o: T): {[P in keyof T]: TypedPropertyDescriptor<T[P]>} & { [x: string]: PropertyDescriptor };
+}
diff --git a/src/cobalt/debug/remote/devtools/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts b/src/third_party/devtools/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts
similarity index 99%
rename from src/cobalt/debug/remote/devtools/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts
rename to src/third_party/devtools/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts
index d9a914d..e3fb0c7 100644
--- a/src/cobalt/debug/remote/devtools/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts
+++ b/src/third_party/devtools/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts
@@ -15,124 +15,124 @@
 
 
 
-/// <reference no-default-lib="true"/>

+/// <reference no-default-lib="true"/>
 
 
-/// <reference lib="es2015.symbol" />

-/// <reference lib="es2015.symbol.wellknown" />

-

-interface SharedArrayBuffer {

-    /**

-     * Read-only. The length of the ArrayBuffer (in bytes).

-     */

-    readonly byteLength: number;

-

-    /*

-     * The SharedArrayBuffer constructor's length property whose value is 1.

-     */

-    length: number;

-    /**

-     * Returns a section of an SharedArrayBuffer.

-     */

-    slice(begin: number, end?: number): SharedArrayBuffer;

-    readonly [Symbol.species]: SharedArrayBuffer;

-    readonly [Symbol.toStringTag]: "SharedArrayBuffer";

-}

-

-interface SharedArrayBufferConstructor {

-    readonly prototype: SharedArrayBuffer;

-    new (byteLength: number): SharedArrayBuffer;

-}

-declare var SharedArrayBuffer: SharedArrayBufferConstructor;

-

-interface ArrayBufferTypes {

-    SharedArrayBuffer: SharedArrayBuffer;

-}

-

-interface Atomics {

-    /**

-     * Adds a value to the value at the given position in the array, returning the original value.

-     * Until this atomic operation completes, any other read or write operation against the array

-     * will block.

-     */

-    add(typedArray: Int8Array | Uint8Array | Int16Array | Uint16Array | Int32Array | Uint32Array, index: number, value: number): number;

-

-    /**

-     * Stores the bitwise AND of a value with the value at the given position in the array,

-     * returning the original value. Until this atomic operation completes, any other read or

-     * write operation against the array will block.

-     */

-    and(typedArray: Int8Array | Uint8Array | Int16Array | Uint16Array | Int32Array | Uint32Array, index: number, value: number): number;

-

-    /**

-     * Replaces the value at the given position in the array if the original value equals the given

-     * expected value, returning the original value. Until this atomic operation completes, any

-     * other read or write operation against the array will block.

-     */

-    compareExchange(typedArray: Int8Array | Uint8Array | Int16Array | Uint16Array | Int32Array | Uint32Array, index: number, expectedValue: number, replacementValue: number): number;

-

-    /**

-     * Replaces the value at the given position in the array, returning the original value. Until

-     * this atomic operation completes, any other read or write operation against the array will

-     * block.

-     */

-    exchange(typedArray: Int8Array | Uint8Array | Int16Array | Uint16Array | Int32Array | Uint32Array, index: number, value: number): number;

-

-    /**

-     * Returns a value indicating whether high-performance algorithms can use atomic operations

-     * (`true`) or must use locks (`false`) for the given number of bytes-per-element of a typed

-     * array.

-     */

-    isLockFree(size: number): boolean;

-

-    /**

-     * Returns the value at the given position in the array. Until this atomic operation completes,

-     * any other read or write operation against the array will block.

-     */

-    load(typedArray: Int8Array | Uint8Array | Int16Array | Uint16Array | Int32Array | Uint32Array, index: number): number;

-

-    /**

-     * Stores the bitwise OR of a value with the value at the given position in the array,

-     * returning the original value. Until this atomic operation completes, any other read or write

-     * operation against the array will block.

-     */

-    or(typedArray: Int8Array | Uint8Array | Int16Array | Uint16Array | Int32Array | Uint32Array, index: number, value: number): number;

-

-    /**

-     * Stores a value at the given position in the array, returning the new value. Until this

-     * atomic operation completes, any other read or write operation against the array will block.

-     */

-    store(typedArray: Int8Array | Uint8Array | Int16Array | Uint16Array | Int32Array | Uint32Array, index: number, value: number): number;

-

-    /**

-     * Subtracts a value from the value at the given position in the array, returning the original

-     * value. Until this atomic operation completes, any other read or write operation against the

-     * array will block.

-     */

-    sub(typedArray: Int8Array | Uint8Array | Int16Array | Uint16Array | Int32Array | Uint32Array, index: number, value: number): number;

-

-    /**

-     * If the value at the given position in the array is equal to the provided value, the current

-     * agent is put to sleep causing execution to suspend until the timeout expires (returning

-     * `"timed-out"`) or until the agent is awoken (returning `"ok"`); otherwise, returns

-     * `"not-equal"`.

-     */

-    wait(typedArray: Int32Array, index: number, value: number, timeout?: number): "ok" | "not-equal" | "timed-out";

-

-    /**

-     * Wakes up sleeping agents that are waiting on the given index of the array, returning the

-     * number of agents that were awoken.

-     */

-    notify(typedArray: Int32Array, index: number, count: number): number;

-

-    /**

-     * Stores the bitwise XOR of a value with the value at the given position in the array,

-     * returning the original value. Until this atomic operation completes, any other read or write

-     * operation against the array will block.

-     */

-    xor(typedArray: Int8Array | Uint8Array | Int16Array | Uint16Array | Int32Array | Uint32Array, index: number, value: number): number;

-

-    readonly [Symbol.toStringTag]: "Atomics";

-}

-

-declare var Atomics: Atomics;

+/// <reference lib="es2015.symbol" />
+/// <reference lib="es2015.symbol.wellknown" />
+
+interface SharedArrayBuffer {
+    /**
+     * Read-only. The length of the ArrayBuffer (in bytes).
+     */
+    readonly byteLength: number;
+
+    /*
+     * The SharedArrayBuffer constructor's length property whose value is 1.
+     */
+    length: number;
+    /**
+     * Returns a section of an SharedArrayBuffer.
+     */
+    slice(begin: number, end?: number): SharedArrayBuffer;
+    readonly [Symbol.species]: SharedArrayBuffer;
+    readonly [Symbol.toStringTag]: "SharedArrayBuffer";
+}
+
+interface SharedArrayBufferConstructor {
+    readonly prototype: SharedArrayBuffer;
+    new (byteLength: number): SharedArrayBuffer;
+}
+declare var SharedArrayBuffer: SharedArrayBufferConstructor;
+
+interface ArrayBufferTypes {
+    SharedArrayBuffer: SharedArrayBuffer;
+}
+
+interface Atomics {
+    /**
+     * Adds a value to the value at the given position in the array, returning the original value.
+     * Until this atomic operation completes, any other read or write operation against the array
+     * will block.
+     */
+    add(typedArray: Int8Array | Uint8Array | Int16Array | Uint16Array | Int32Array | Uint32Array, index: number, value: number): number;
+
+    /**
+     * Stores the bitwise AND of a value with the value at the given position in the array,
+     * returning the original value. Until this atomic operation completes, any other read or
+     * write operation against the array will block.
+     */
+    and(typedArray: Int8Array | Uint8Array | Int16Array | Uint16Array | Int32Array | Uint32Array, index: number, value: number): number;
+
+    /**
+     * Replaces the value at the given position in the array if the original value equals the given
+     * expected value, returning the original value. Until this atomic operation completes, any
+     * other read or write operation against the array will block.
+     */
+    compareExchange(typedArray: Int8Array | Uint8Array | Int16Array | Uint16Array | Int32Array | Uint32Array, index: number, expectedValue: number, replacementValue: number): number;
+
+    /**
+     * Replaces the value at the given position in the array, returning the original value. Until
+     * this atomic operation completes, any other read or write operation against the array will
+     * block.
+     */
+    exchange(typedArray: Int8Array | Uint8Array | Int16Array | Uint16Array | Int32Array | Uint32Array, index: number, value: number): number;
+
+    /**
+     * Returns a value indicating whether high-performance algorithms can use atomic operations
+     * (`true`) or must use locks (`false`) for the given number of bytes-per-element of a typed
+     * array.
+     */
+    isLockFree(size: number): boolean;
+
+    /**
+     * Returns the value at the given position in the array. Until this atomic operation completes,
+     * any other read or write operation against the array will block.
+     */
+    load(typedArray: Int8Array | Uint8Array | Int16Array | Uint16Array | Int32Array | Uint32Array, index: number): number;
+
+    /**
+     * Stores the bitwise OR of a value with the value at the given position in the array,
+     * returning the original value. Until this atomic operation completes, any other read or write
+     * operation against the array will block.
+     */
+    or(typedArray: Int8Array | Uint8Array | Int16Array | Uint16Array | Int32Array | Uint32Array, index: number, value: number): number;
+
+    /**
+     * Stores a value at the given position in the array, returning the new value. Until this
+     * atomic operation completes, any other read or write operation against the array will block.
+     */
+    store(typedArray: Int8Array | Uint8Array | Int16Array | Uint16Array | Int32Array | Uint32Array, index: number, value: number): number;
+
+    /**
+     * Subtracts a value from the value at the given position in the array, returning the original
+     * value. Until this atomic operation completes, any other read or write operation against the
+     * array will block.
+     */
+    sub(typedArray: Int8Array | Uint8Array | Int16Array | Uint16Array | Int32Array | Uint32Array, index: number, value: number): number;
+
+    /**
+     * If the value at the given position in the array is equal to the provided value, the current
+     * agent is put to sleep causing execution to suspend until the timeout expires (returning
+     * `"timed-out"`) or until the agent is awoken (returning `"ok"`); otherwise, returns
+     * `"not-equal"`.
+     */
+    wait(typedArray: Int32Array, index: number, value: number, timeout?: number): "ok" | "not-equal" | "timed-out";
+
+    /**
+     * Wakes up sleeping agents that are waiting on the given index of the array, returning the
+     * number of agents that were awoken.
+     */
+    notify(typedArray: Int32Array, index: number, count: number): number;
+
+    /**
+     * Stores the bitwise XOR of a value with the value at the given position in the array,
+     * returning the original value. Until this atomic operation completes, any other read or write
+     * operation against the array will block.
+     */
+    xor(typedArray: Int8Array | Uint8Array | Int16Array | Uint16Array | Int32Array | Uint32Array, index: number, value: number): number;
+
+    readonly [Symbol.toStringTag]: "Atomics";
+}
+
+declare var Atomics: Atomics;
diff --git a/src/cobalt/debug/remote/devtools/node_modules/typescript/lib/lib.es2017.string.d.ts b/src/third_party/devtools/node_modules/typescript/lib/lib.es2017.string.d.ts
similarity index 99%
rename from src/cobalt/debug/remote/devtools/node_modules/typescript/lib/lib.es2017.string.d.ts
rename to src/third_party/devtools/node_modules/typescript/lib/lib.es2017.string.d.ts
index 5d46546..dad64f0 100644
--- a/src/cobalt/debug/remote/devtools/node_modules/typescript/lib/lib.es2017.string.d.ts
+++ b/src/third_party/devtools/node_modules/typescript/lib/lib.es2017.string.d.ts
@@ -15,33 +15,33 @@
 
 
 
-/// <reference no-default-lib="true"/>

+/// <reference no-default-lib="true"/>
 
 
-interface String {

-    /**

-     * Pads the current string with a given string (possibly repeated) so that the resulting string reaches a given length.

-     * The padding is applied from the start (left) of the current string.

-     *

-     * @param maxLength The length of the resulting string once the current string has been padded.

-     *        If this parameter is smaller than the current string's length, the current string will be returned as it is.

-     *

-     * @param fillString The string to pad the current string with.

-     *        If this string is too long, it will be truncated and the left-most part will be applied.

-     *        The default value for this parameter is " " (U+0020).

-     */

-    padStart(maxLength: number, fillString?: string): string;

-

-    /**

-     * Pads the current string with a given string (possibly repeated) so that the resulting string reaches a given length.

-     * The padding is applied from the end (right) of the current string.

-     *

-     * @param maxLength The length of the resulting string once the current string has been padded.

-     *        If this parameter is smaller than the current string's length, the current string will be returned as it is.

-     *

-     * @param fillString The string to pad the current string with.

-     *        If this string is too long, it will be truncated and the left-most part will be applied.

-     *        The default value for this parameter is " " (U+0020).

-     */

-    padEnd(maxLength: number, fillString?: string): string;

-}

+interface String {
+    /**
+     * Pads the current string with a given string (possibly repeated) so that the resulting string reaches a given length.
+     * The padding is applied from the start (left) of the current string.
+     *
+     * @param maxLength The length of the resulting string once the current string has been padded.
+     *        If this parameter is smaller than the current string's length, the current string will be returned as it is.
+     *
+     * @param fillString The string to pad the current string with.
+     *        If this string is too long, it will be truncated and the left-most part will be applied.
+     *        The default value for this parameter is " " (U+0020).
+     */
+    padStart(maxLength: number, fillString?: string): string;
+
+    /**
+     * Pads the current string with a given string (possibly repeated) so that the resulting string reaches a given length.
+     * The padding is applied from the end (right) of the current string.
+     *
+     * @param maxLength The length of the resulting string once the current string has been padded.
+     *        If this parameter is smaller than the current string's length, the current string will be returned as it is.
+     *
+     * @param fillString The string to pad the current string with.
+     *        If this string is too long, it will be truncated and the left-most part will be applied.
+     *        The default value for this parameter is " " (U+0020).
+     */
+    padEnd(maxLength: number, fillString?: string): string;
+}
diff --git a/src/cobalt/debug/remote/devtools/node_modules/typescript/lib/lib.es2017.typedarrays.d.ts b/src/third_party/devtools/node_modules/typescript/lib/lib.es2017.typedarrays.d.ts
similarity index 99%
rename from src/cobalt/debug/remote/devtools/node_modules/typescript/lib/lib.es2017.typedarrays.d.ts
rename to src/third_party/devtools/node_modules/typescript/lib/lib.es2017.typedarrays.d.ts
index 0a13c77..4f6f6e7 100644
--- a/src/cobalt/debug/remote/devtools/node_modules/typescript/lib/lib.es2017.typedarrays.d.ts
+++ b/src/third_party/devtools/node_modules/typescript/lib/lib.es2017.typedarrays.d.ts
@@ -15,41 +15,41 @@
 
 
 
-/// <reference no-default-lib="true"/>

+/// <reference no-default-lib="true"/>
 
 
-interface Int8ArrayConstructor {

-    new (): Int8Array;

-}

-

-interface Uint8ArrayConstructor {

-    new (): Uint8Array;

-}

-

-interface Uint8ClampedArrayConstructor {

-    new (): Uint8ClampedArray;

-}

-

-interface Int16ArrayConstructor {

-    new (): Int16Array;

-}

-

-interface Uint16ArrayConstructor {

-    new (): Uint16Array;

-}

-

-interface Int32ArrayConstructor {

-    new (): Int32Array;

-}

-

-interface Uint32ArrayConstructor {

-    new (): Uint32Array;

-}

-

-interface Float32ArrayConstructor {

-    new (): Float32Array;

-}

-

-interface Float64ArrayConstructor {

-    new (): Float64Array;

-}

+interface Int8ArrayConstructor {
+    new (): Int8Array;
+}
+
+interface Uint8ArrayConstructor {
+    new (): Uint8Array;
+}
+
+interface Uint8ClampedArrayConstructor {
+    new (): Uint8ClampedArray;
+}
+
+interface Int16ArrayConstructor {
+    new (): Int16Array;
+}
+
+interface Uint16ArrayConstructor {
+    new (): Uint16Array;
+}
+
+interface Int32ArrayConstructor {
+    new (): Int32Array;
+}
+
+interface Uint32ArrayConstructor {
+    new (): Uint32Array;
+}
+
+interface Float32ArrayConstructor {
+    new (): Float32Array;
+}
+
+interface Float64ArrayConstructor {
+    new (): Float64Array;
+}
diff --git a/src/cobalt/debug/remote/devtools/node_modules/typescript/lib/lib.esnext.asynciterable.d.ts b/src/third_party/devtools/node_modules/typescript/lib/lib.es2018.asynciterable.d.ts
similarity index 100%
copy from src/cobalt/debug/remote/devtools/node_modules/typescript/lib/lib.esnext.asynciterable.d.ts
copy to src/third_party/devtools/node_modules/typescript/lib/lib.es2018.asynciterable.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/typescript/lib/lib.es2018.d.ts b/src/third_party/devtools/node_modules/typescript/lib/lib.es2018.d.ts
similarity index 99%
rename from src/cobalt/debug/remote/devtools/node_modules/typescript/lib/lib.es2018.d.ts
rename to src/third_party/devtools/node_modules/typescript/lib/lib.es2018.d.ts
index 4bbd138..c228790 100644
--- a/src/cobalt/debug/remote/devtools/node_modules/typescript/lib/lib.es2018.d.ts
+++ b/src/third_party/devtools/node_modules/typescript/lib/lib.es2018.d.ts
@@ -15,11 +15,11 @@
 
 
 
-/// <reference no-default-lib="true"/>

+/// <reference no-default-lib="true"/>
 
 
-/// <reference lib="es2017" />

-/// <reference lib="es2018.asynciterable" />

-/// <reference lib="es2018.promise" />

-/// <reference lib="es2018.regexp" />

-/// <reference lib="es2018.intl" />

+/// <reference lib="es2017" />
+/// <reference lib="es2018.asynciterable" />
+/// <reference lib="es2018.promise" />
+/// <reference lib="es2018.regexp" />
+/// <reference lib="es2018.intl" />
diff --git a/src/cobalt/debug/remote/devtools/node_modules/typescript/lib/lib.es2018.full.d.ts b/src/third_party/devtools/node_modules/typescript/lib/lib.es2018.full.d.ts
similarity index 99%
rename from src/cobalt/debug/remote/devtools/node_modules/typescript/lib/lib.es2018.full.d.ts
rename to src/third_party/devtools/node_modules/typescript/lib/lib.es2018.full.d.ts
index e78c22e..277d541 100644
--- a/src/cobalt/debug/remote/devtools/node_modules/typescript/lib/lib.es2018.full.d.ts
+++ b/src/third_party/devtools/node_modules/typescript/lib/lib.es2018.full.d.ts
@@ -15,11 +15,11 @@
 
 
 
-/// <reference no-default-lib="true"/>

+/// <reference no-default-lib="true"/>
 
 
-/// <reference lib="es2018" />

-/// <reference lib="dom" />

-/// <reference lib="webworker.importscripts" />

-/// <reference lib="scripthost" />

+/// <reference lib="es2018" />
+/// <reference lib="dom" />
+/// <reference lib="webworker.importscripts" />
+/// <reference lib="scripthost" />
 /// <reference lib="dom.iterable" />
\ No newline at end of file
diff --git a/src/cobalt/debug/remote/devtools/node_modules/typescript/lib/lib.es2018.intl.d.ts b/src/third_party/devtools/node_modules/typescript/lib/lib.es2018.intl.d.ts
similarity index 99%
rename from src/cobalt/debug/remote/devtools/node_modules/typescript/lib/lib.es2018.intl.d.ts
rename to src/third_party/devtools/node_modules/typescript/lib/lib.es2018.intl.d.ts
index a88331e..84e95f4 100644
--- a/src/cobalt/debug/remote/devtools/node_modules/typescript/lib/lib.es2018.intl.d.ts
+++ b/src/third_party/devtools/node_modules/typescript/lib/lib.es2018.intl.d.ts
@@ -15,37 +15,37 @@
 
 
 
-/// <reference no-default-lib="true"/>

+/// <reference no-default-lib="true"/>
 
 
-declare namespace Intl {

-    interface PluralRulesOptions {

-        localeMatcher?: 'lookup' | 'best fit';

-        type?: 'cardinal' | 'ordinal';

-    }

-

-    interface ResolvedPluralRulesOptions {

-        locale: string;

-        pluralCategories: string[];

-        type: 'cardinal' | 'ordinal';

-        minimumIntegerDigits: number;

-        minimumFractionDigits: number;

-        maximumFractionDigits: number;

-        minimumSignificantDigits: number;

-        maximumSignificantDigits: number;

-    }

-

-    interface PluralRules {

-        resolvedOptions(): ResolvedPluralRulesOptions;

-        select(n: number): string;

-    }

-

-    const PluralRules: {

-        new (locales?: string | string[], options?: PluralRulesOptions): PluralRules;

-        (locales?: string | string[], options?: PluralRulesOptions): PluralRules;

-        supportedLocalesOf(

-            locales: string | string[],

-            options?: PluralRulesOptions,

-        ): string[];

-    };

-}

+declare namespace Intl {
+    interface PluralRulesOptions {
+        localeMatcher?: 'lookup' | 'best fit';
+        type?: 'cardinal' | 'ordinal';
+    }
+
+    interface ResolvedPluralRulesOptions {
+        locale: string;
+        pluralCategories: string[];
+        type: 'cardinal' | 'ordinal';
+        minimumIntegerDigits: number;
+        minimumFractionDigits: number;
+        maximumFractionDigits: number;
+        minimumSignificantDigits: number;
+        maximumSignificantDigits: number;
+    }
+
+    interface PluralRules {
+        resolvedOptions(): ResolvedPluralRulesOptions;
+        select(n: number): string;
+    }
+
+    const PluralRules: {
+        new (locales?: string | string[], options?: PluralRulesOptions): PluralRules;
+        (locales?: string | string[], options?: PluralRulesOptions): PluralRules;
+        supportedLocalesOf(
+            locales: string | string[],
+            options?: PluralRulesOptions,
+        ): string[];
+    };
+}
diff --git a/src/cobalt/debug/remote/devtools/node_modules/typescript/lib/lib.es2018.promise.d.ts b/src/third_party/devtools/node_modules/typescript/lib/lib.es2018.promise.d.ts
similarity index 99%
rename from src/cobalt/debug/remote/devtools/node_modules/typescript/lib/lib.es2018.promise.d.ts
rename to src/third_party/devtools/node_modules/typescript/lib/lib.es2018.promise.d.ts
index 6abedab..d73b4d4 100644
--- a/src/cobalt/debug/remote/devtools/node_modules/typescript/lib/lib.es2018.promise.d.ts
+++ b/src/third_party/devtools/node_modules/typescript/lib/lib.es2018.promise.d.ts
@@ -15,18 +15,18 @@
 
 
 
-/// <reference no-default-lib="true"/>

+/// <reference no-default-lib="true"/>
 
 
-/**

- * Represents the completion of an asynchronous operation

- */

-interface Promise<T> {

-    /**

-     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The

-     * resolved value cannot be modified from the callback.

-     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).

-     * @returns A Promise for the completion of the callback.

-     */

-    finally(onfinally?: (() => void) | undefined | null): Promise<T>

-}

+/**
+ * Represents the completion of an asynchronous operation
+ */
+interface Promise<T> {
+    /**
+     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
+     * resolved value cannot be modified from the callback.
+     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
+     * @returns A Promise for the completion of the callback.
+     */
+    finally(onfinally?: (() => void) | undefined | null): Promise<T>
+}
diff --git a/src/cobalt/debug/remote/devtools/node_modules/typescript/lib/lib.es2018.regexp.d.ts b/src/third_party/devtools/node_modules/typescript/lib/lib.es2018.regexp.d.ts
similarity index 99%
rename from src/cobalt/debug/remote/devtools/node_modules/typescript/lib/lib.es2018.regexp.d.ts
rename to src/third_party/devtools/node_modules/typescript/lib/lib.es2018.regexp.d.ts
index 3f3cffd..4ba698f 100644
--- a/src/cobalt/debug/remote/devtools/node_modules/typescript/lib/lib.es2018.regexp.d.ts
+++ b/src/third_party/devtools/node_modules/typescript/lib/lib.es2018.regexp.d.ts
@@ -15,25 +15,25 @@
 
 
 
-/// <reference no-default-lib="true"/>

+/// <reference no-default-lib="true"/>
 
 
-interface RegExpMatchArray {

-    groups?: {

-        [key: string]: string

-    }

-}

-

-interface RegExpExecArray {

-    groups?: {

-        [key: string]: string

-    }

-}

-

-interface RegExp {

-    /**

-     * Returns a Boolean value indicating the state of the dotAll flag (s) used with a regular expression.

-     * Default is false. Read-only.

-     */

-    readonly dotAll: boolean;

+interface RegExpMatchArray {
+    groups?: {
+        [key: string]: string
+    }
+}
+
+interface RegExpExecArray {
+    groups?: {
+        [key: string]: string
+    }
+}
+
+interface RegExp {
+    /**
+     * Returns a Boolean value indicating the state of the dotAll flag (s) used with a regular expression.
+     * Default is false. Read-only.
+     */
+    readonly dotAll: boolean;
 }
\ No newline at end of file
diff --git a/src/cobalt/debug/remote/devtools/node_modules/typescript/lib/lib.esnext.array.d.ts b/src/third_party/devtools/node_modules/typescript/lib/lib.es2019.array.d.ts
similarity index 100%
copy from src/cobalt/debug/remote/devtools/node_modules/typescript/lib/lib.esnext.array.d.ts
copy to src/third_party/devtools/node_modules/typescript/lib/lib.es2019.array.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/typescript/lib/lib.es2019.d.ts b/src/third_party/devtools/node_modules/typescript/lib/lib.es2019.d.ts
similarity index 99%
rename from src/cobalt/debug/remote/devtools/node_modules/typescript/lib/lib.es2019.d.ts
rename to src/third_party/devtools/node_modules/typescript/lib/lib.es2019.d.ts
index ed25656..14a547a 100644
--- a/src/cobalt/debug/remote/devtools/node_modules/typescript/lib/lib.es2019.d.ts
+++ b/src/third_party/devtools/node_modules/typescript/lib/lib.es2019.d.ts
@@ -15,11 +15,11 @@
 
 
 
-/// <reference no-default-lib="true"/>

+/// <reference no-default-lib="true"/>
 
 
-/// <reference lib="es2018" />

-/// <reference lib="es2019.array" />

-/// <reference lib="es2019.object" />

-/// <reference lib="es2019.string" />

-/// <reference lib="es2019.symbol" />

+/// <reference lib="es2018" />
+/// <reference lib="es2019.array" />
+/// <reference lib="es2019.object" />
+/// <reference lib="es2019.string" />
+/// <reference lib="es2019.symbol" />
diff --git a/src/cobalt/debug/remote/devtools/node_modules/typescript/lib/lib.es2019.full.d.ts b/src/third_party/devtools/node_modules/typescript/lib/lib.es2019.full.d.ts
similarity index 99%
rename from src/cobalt/debug/remote/devtools/node_modules/typescript/lib/lib.es2019.full.d.ts
rename to src/third_party/devtools/node_modules/typescript/lib/lib.es2019.full.d.ts
index ecbd2e6..ee09567 100644
--- a/src/cobalt/debug/remote/devtools/node_modules/typescript/lib/lib.es2019.full.d.ts
+++ b/src/third_party/devtools/node_modules/typescript/lib/lib.es2019.full.d.ts
@@ -15,11 +15,11 @@
 
 
 
-/// <reference no-default-lib="true"/>

+/// <reference no-default-lib="true"/>
 
 
-/// <reference lib="es2019" />

-/// <reference lib="dom" />

-/// <reference lib="webworker.importscripts" />

-/// <reference lib="scripthost" />

-/// <reference lib="dom.iterable" />

+/// <reference lib="es2019" />
+/// <reference lib="dom" />
+/// <reference lib="webworker.importscripts" />
+/// <reference lib="scripthost" />
+/// <reference lib="dom.iterable" />
diff --git a/src/cobalt/debug/remote/devtools/node_modules/typescript/lib/lib.es2019.object.d.ts b/src/third_party/devtools/node_modules/typescript/lib/lib.es2019.object.d.ts
similarity index 99%
rename from src/cobalt/debug/remote/devtools/node_modules/typescript/lib/lib.es2019.object.d.ts
rename to src/third_party/devtools/node_modules/typescript/lib/lib.es2019.object.d.ts
index 0639471..9b26b67 100644
--- a/src/cobalt/debug/remote/devtools/node_modules/typescript/lib/lib.es2019.object.d.ts
+++ b/src/third_party/devtools/node_modules/typescript/lib/lib.es2019.object.d.ts
@@ -15,21 +15,21 @@
 
 
 
-/// <reference no-default-lib="true"/>

+/// <reference no-default-lib="true"/>
 
 
-/// <reference lib="es2015.iterable" />

-

-interface ObjectConstructor {

-    /**

-     * Returns an object created by key-value entries for properties and methods

-     * @param entries An iterable object that contains key-value entries for properties and methods.

-     */

-    fromEntries<T = any>(entries: Iterable<readonly [PropertyKey, T]>): { [k in PropertyKey]: T };

-

-    /**

-     * Returns an object created by key-value entries for properties and methods

-     * @param entries An iterable object that contains key-value entries for properties and methods.

-     */

-    fromEntries(entries: Iterable<readonly any[]>): any;

-}

+/// <reference lib="es2015.iterable" />
+
+interface ObjectConstructor {
+    /**
+     * Returns an object created by key-value entries for properties and methods
+     * @param entries An iterable object that contains key-value entries for properties and methods.
+     */
+    fromEntries<T = any>(entries: Iterable<readonly [PropertyKey, T]>): { [k in PropertyKey]: T };
+
+    /**
+     * Returns an object created by key-value entries for properties and methods
+     * @param entries An iterable object that contains key-value entries for properties and methods.
+     */
+    fromEntries(entries: Iterable<readonly any[]>): any;
+}
diff --git a/src/cobalt/debug/remote/devtools/node_modules/typescript/lib/lib.es2019.string.d.ts b/src/third_party/devtools/node_modules/typescript/lib/lib.es2019.string.d.ts
similarity index 99%
rename from src/cobalt/debug/remote/devtools/node_modules/typescript/lib/lib.es2019.string.d.ts
rename to src/third_party/devtools/node_modules/typescript/lib/lib.es2019.string.d.ts
index a6e9a36..225f514 100644
--- a/src/cobalt/debug/remote/devtools/node_modules/typescript/lib/lib.es2019.string.d.ts
+++ b/src/third_party/devtools/node_modules/typescript/lib/lib.es2019.string.d.ts
@@ -15,19 +15,19 @@
 
 
 
-/// <reference no-default-lib="true"/>

+/// <reference no-default-lib="true"/>
 
 
-interface String {

-  /** Removes the trailing white space and line terminator characters from a string. */

-  trimEnd(): string;

-

-  /** Removes the leading white space and line terminator characters from a string. */

-  trimStart(): string;

-

-  /** Removes the trailing white space and line terminator characters from a string. */

-  trimLeft(): string;

-

-  /** Removes the leading white space and line terminator characters from a string. */

-  trimRight(): string;

-}

+interface String {
+  /** Removes the trailing white space and line terminator characters from a string. */
+  trimEnd(): string;
+
+  /** Removes the leading white space and line terminator characters from a string. */
+  trimStart(): string;
+
+  /** Removes the trailing white space and line terminator characters from a string. */
+  trimLeft(): string;
+
+  /** Removes the leading white space and line terminator characters from a string. */
+  trimRight(): string;
+}
diff --git a/src/cobalt/debug/remote/devtools/node_modules/typescript/lib/lib.esnext.symbol.d.ts b/src/third_party/devtools/node_modules/typescript/lib/lib.es2019.symbol.d.ts
similarity index 100%
copy from src/cobalt/debug/remote/devtools/node_modules/typescript/lib/lib.esnext.symbol.d.ts
copy to src/third_party/devtools/node_modules/typescript/lib/lib.es2019.symbol.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/typescript/lib/lib.es2020.d.ts b/src/third_party/devtools/node_modules/typescript/lib/lib.es2020.d.ts
similarity index 99%
rename from src/cobalt/debug/remote/devtools/node_modules/typescript/lib/lib.es2020.d.ts
rename to src/third_party/devtools/node_modules/typescript/lib/lib.es2020.d.ts
index 8d69f42..f0b49c8 100644
--- a/src/cobalt/debug/remote/devtools/node_modules/typescript/lib/lib.es2020.d.ts
+++ b/src/third_party/devtools/node_modules/typescript/lib/lib.es2020.d.ts
@@ -15,9 +15,9 @@
 
 
 
-/// <reference no-default-lib="true"/>

+/// <reference no-default-lib="true"/>
 
 
-/// <reference lib="es2019" />

-/// <reference lib="es2020.string" />

-/// <reference lib="es2020.symbol.wellknown" />

+/// <reference lib="es2019" />
+/// <reference lib="es2020.string" />
+/// <reference lib="es2020.symbol.wellknown" />
diff --git a/src/cobalt/debug/remote/devtools/node_modules/typescript/lib/lib.es2020.full.d.ts b/src/third_party/devtools/node_modules/typescript/lib/lib.es2020.full.d.ts
similarity index 99%
rename from src/cobalt/debug/remote/devtools/node_modules/typescript/lib/lib.es2020.full.d.ts
rename to src/third_party/devtools/node_modules/typescript/lib/lib.es2020.full.d.ts
index 58b1b8a..7ffe939 100644
--- a/src/cobalt/debug/remote/devtools/node_modules/typescript/lib/lib.es2020.full.d.ts
+++ b/src/third_party/devtools/node_modules/typescript/lib/lib.es2020.full.d.ts
@@ -15,11 +15,11 @@
 
 
 
-/// <reference no-default-lib="true"/>

+/// <reference no-default-lib="true"/>
 
 
-/// <reference lib="es2020" />

-/// <reference lib="dom" />

-/// <reference lib="webworker.importscripts" />

-/// <reference lib="scripthost" />

-/// <reference lib="dom.iterable" />

+/// <reference lib="es2020" />
+/// <reference lib="dom" />
+/// <reference lib="webworker.importscripts" />
+/// <reference lib="scripthost" />
+/// <reference lib="dom.iterable" />
diff --git a/src/cobalt/debug/remote/devtools/node_modules/typescript/lib/lib.es2020.string.d.ts b/src/third_party/devtools/node_modules/typescript/lib/lib.es2020.string.d.ts
similarity index 99%
rename from src/cobalt/debug/remote/devtools/node_modules/typescript/lib/lib.es2020.string.d.ts
rename to src/third_party/devtools/node_modules/typescript/lib/lib.es2020.string.d.ts
index ce3aeba..c9a99d3 100644
--- a/src/cobalt/debug/remote/devtools/node_modules/typescript/lib/lib.es2020.string.d.ts
+++ b/src/third_party/devtools/node_modules/typescript/lib/lib.es2020.string.d.ts
@@ -15,16 +15,16 @@
 
 
 
-/// <reference no-default-lib="true"/>

+/// <reference no-default-lib="true"/>
 
 
-/// <reference lib="es2015.iterable" />

-

-interface String {

-  /**

-    * Matches a string with a regular expression, and returns an iterable of matches

-    * containing the results of that search.

-    * @param regexp A variable name or string literal containing the regular expression pattern and flags.

-    */

-  matchAll(regexp: RegExp): IterableIterator<RegExpMatchArray>;

-}

+/// <reference lib="es2015.iterable" />
+
+interface String {
+  /**
+    * Matches a string with a regular expression, and returns an iterable of matches
+    * containing the results of that search.
+    * @param regexp A variable name or string literal containing the regular expression pattern and flags.
+    */
+  matchAll(regexp: RegExp): IterableIterator<RegExpMatchArray>;
+}
diff --git a/src/cobalt/debug/remote/devtools/node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts b/src/third_party/devtools/node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts
similarity index 99%
rename from src/cobalt/debug/remote/devtools/node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts
rename to src/third_party/devtools/node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts
index 06bc1df..f513f5e 100644
--- a/src/cobalt/debug/remote/devtools/node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts
+++ b/src/third_party/devtools/node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts
@@ -15,25 +15,25 @@
 
 
 
-/// <reference no-default-lib="true"/>

+/// <reference no-default-lib="true"/>
 
 
-/// <reference lib="es2015.iterable" />

-/// <reference lib="es2015.symbol" />

-

-interface SymbolConstructor {

-  /**

-   * A regular expression method that matches the regular expression against a string. Called

-   * by the String.prototype.matchAll method.

-   */

-  readonly matchAll: symbol;

-}

-

-interface RegExp {

-  /**

-   * Matches a string with this regular expression, and returns an iterable of matches

-   * containing the results of that search.

-   * @param string A string to search within.

-   */

-  [Symbol.matchAll](str: string): IterableIterator<RegExpMatchArray>;

-}

+/// <reference lib="es2015.iterable" />
+/// <reference lib="es2015.symbol" />
+
+interface SymbolConstructor {
+  /**
+   * A regular expression method that matches the regular expression against a string. Called
+   * by the String.prototype.matchAll method.
+   */
+  readonly matchAll: symbol;
+}
+
+interface RegExp {
+  /**
+   * Matches a string with this regular expression, and returns an iterable of matches
+   * containing the results of that search.
+   * @param string A string to search within.
+   */
+  [Symbol.matchAll](str: string): IterableIterator<RegExpMatchArray>;
+}
diff --git a/src/cobalt/debug/remote/devtools/node_modules/typescript/lib/lib.es5.d.ts b/src/third_party/devtools/node_modules/typescript/lib/lib.es5.d.ts
similarity index 99%
rename from src/cobalt/debug/remote/devtools/node_modules/typescript/lib/lib.es5.d.ts
rename to src/third_party/devtools/node_modules/typescript/lib/lib.es5.d.ts
index 8d6340a..1c6feca 100644
--- a/src/cobalt/debug/remote/devtools/node_modules/typescript/lib/lib.es5.d.ts
+++ b/src/third_party/devtools/node_modules/typescript/lib/lib.es5.d.ts
@@ -15,4298 +15,4298 @@
 
 
 
-/// <reference no-default-lib="true"/>

+/// <reference no-default-lib="true"/>
 
 
-/////////////////////////////

-/// ECMAScript APIs

-/////////////////////////////

-

-declare var NaN: number;

-declare var Infinity: number;

-

-/**

-  * Evaluates JavaScript code and executes it.

-  * @param x A String value that contains valid JavaScript code.

-  */

-declare function eval(x: string): any;

-

-/**

-  * Converts A string to an integer.

-  * @param s A string to convert into a number.

-  * @param radix A value between 2 and 36 that specifies the base of the number in numString.

-  * If this argument is not supplied, strings with a prefix of '0x' are considered hexadecimal.

-  * All other strings are considered decimal.

-  */

-declare function parseInt(s: string, radix?: number): number;

-

-/**

-  * Converts a string to a floating-point number.

-  * @param string A string that contains a floating-point number.

-  */

-declare function parseFloat(string: string): number;

-

-/**

-  * Returns a Boolean value that indicates whether a value is the reserved value NaN (not a number).

-  * @param number A numeric value.

-  */

-declare function isNaN(number: number): boolean;

-

-/**

-  * Determines whether a supplied number is finite.

-  * @param number Any numeric value.

-  */

-declare function isFinite(number: number): boolean;

-

-/**

-  * Gets the unencoded version of an encoded Uniform Resource Identifier (URI).

-  * @param encodedURI A value representing an encoded URI.

-  */

-declare function decodeURI(encodedURI: string): string;

-

-/**

-  * Gets the unencoded version of an encoded component of a Uniform Resource Identifier (URI).

-  * @param encodedURIComponent A value representing an encoded URI component.

-  */

-declare function decodeURIComponent(encodedURIComponent: string): string;

-

-/**

-  * Encodes a text string as a valid Uniform Resource Identifier (URI)

-  * @param uri A value representing an encoded URI.

-  */

-declare function encodeURI(uri: string): string;

-

-/**

-  * Encodes a text string as a valid component of a Uniform Resource Identifier (URI).

-  * @param uriComponent A value representing an encoded URI component.

-  */

-declare function encodeURIComponent(uriComponent: string | number | boolean): string;

-

-/**

-  * Computes a new string in which certain characters have been replaced by a hexadecimal escape sequence.

-  * @param string A string value

-  */

-declare function escape(string: string): string;

-

-/**

-  * Computes a new string in which hexadecimal escape sequences are replaced with the character that it represents.

-  * @param string A string value

-  */

-declare function unescape(string: string): string;

-

-interface Symbol {

-  /** Returns a string representation of an object. */

-  toString(): string;

-

-  /** Returns the primitive value of the specified object. */

-  valueOf(): symbol;

-}

-

-declare type PropertyKey = string | number | symbol;

-

-interface PropertyDescriptor {

-    configurable?: boolean;

-    enumerable?: boolean;

-    value?: any;

-    writable?: boolean;

-    get?(): any;

-    set?(v: any): void;

-}

-

-interface PropertyDescriptorMap {

-    [s: string]: PropertyDescriptor;

-}

-

-interface Object {

-    /** The initial value of Object.prototype.constructor is the standard built-in Object constructor. */

-    constructor: Function;

-

-    /** Returns a string representation of an object. */

-    toString(): string;

-

-    /** Returns a date converted to a string using the current locale. */

-    toLocaleString(): string;

-

-    /** Returns the primitive value of the specified object. */

-    valueOf(): Object;

-

-    /**

-      * Determines whether an object has a property with the specified name.

-      * @param v A property name.

-      */

-    hasOwnProperty(v: PropertyKey): boolean;

-

-    /**

-      * Determines whether an object exists in another object's prototype chain.

-      * @param v Another object whose prototype chain is to be checked.

-      */

-    isPrototypeOf(v: Object): boolean;

-

-    /**

-      * Determines whether a specified property is enumerable.

-      * @param v A property name.

-      */

-    propertyIsEnumerable(v: PropertyKey): boolean;

-}

-

-interface ObjectConstructor {

-    new(value?: any): Object;

-    (): any;

-    (value: any): any;

-

-    /** A reference to the prototype for a class of objects. */

-    readonly prototype: Object;

-

-    /**

-      * Returns the prototype of an object.

-      * @param o The object that references the prototype.

-      */

-    getPrototypeOf(o: any): any;

-

-    /**

-      * Gets the own property descriptor of the specified object.

-      * An own property descriptor is one that is defined directly on the object and is not inherited from the object's prototype.

-      * @param o Object that contains the property.

-      * @param p Name of the property.

-    */

-    getOwnPropertyDescriptor(o: any, p: PropertyKey): PropertyDescriptor | undefined;

-

-    /**

-      * Returns the names of the own properties of an object. The own properties of an object are those that are defined directly

-      * on that object, and are not inherited from the object's prototype. The properties of an object include both fields (objects) and functions.

-      * @param o Object that contains the own properties.

-      */

-    getOwnPropertyNames(o: any): string[];

-

-    /**

-      * Creates an object that has the specified prototype or that has null prototype.

-      * @param o Object to use as a prototype. May be null.

-      */

-    create(o: object | null): any;

-

-    /**

-      * Creates an object that has the specified prototype, and that optionally contains specified properties.

-      * @param o Object to use as a prototype. May be null

-      * @param properties JavaScript object that contains one or more property descriptors.

-      */

-    create(o: object | null, properties: PropertyDescriptorMap & ThisType<any>): any;

-

-    /**

-      * Adds a property to an object, or modifies attributes of an existing property.

-      * @param o Object on which to add or modify the property. This can be a native JavaScript object (that is, a user-defined object or a built in object) or a DOM object.

-      * @param p The property name.

-      * @param attributes Descriptor for the property. It can be for a data property or an accessor property.

-      */

-    defineProperty(o: any, p: PropertyKey, attributes: PropertyDescriptor & ThisType<any>): any;

-

-    /**

-      * Adds one or more properties to an object, and/or modifies attributes of existing properties.

-      * @param o Object on which to add or modify the properties. This can be a native JavaScript object or a DOM object.

-      * @param properties JavaScript object that contains one or more descriptor objects. Each descriptor object describes a data property or an accessor property.

-      */

-    defineProperties(o: any, properties: PropertyDescriptorMap & ThisType<any>): any;

-

-    /**

-      * Prevents the modification of attributes of existing properties, and prevents the addition of new properties.

-      * @param o Object on which to lock the attributes.

-      */

-    seal<T>(o: T): T;

-

-    /**

-      * Prevents the modification of existing property attributes and values, and prevents the addition of new properties.

-      * @param o Object on which to lock the attributes.

-      */

-    freeze<T>(a: T[]): ReadonlyArray<T>;

-

-    /**

-      * Prevents the modification of existing property attributes and values, and prevents the addition of new properties.

-      * @param o Object on which to lock the attributes.

-      */

-    freeze<T extends Function>(f: T): T;

-

-    /**

-      * Prevents the modification of existing property attributes and values, and prevents the addition of new properties.

-      * @param o Object on which to lock the attributes.

-      */

-    freeze<T>(o: T): Readonly<T>;

-

-    /**

-      * Prevents the addition of new properties to an object.

-      * @param o Object to make non-extensible.

-      */

-    preventExtensions<T>(o: T): T;

-

-    /**

-      * Returns true if existing property attributes cannot be modified in an object and new properties cannot be added to the object.

-      * @param o Object to test.

-      */

-    isSealed(o: any): boolean;

-

-    /**

-      * Returns true if existing property attributes and values cannot be modified in an object, and new properties cannot be added to the object.

-      * @param o Object to test.

-      */

-    isFrozen(o: any): boolean;

-

-    /**

-      * Returns a value that indicates whether new properties can be added to an object.

-      * @param o Object to test.

-      */

-    isExtensible(o: any): boolean;

-

-    /**

-      * Returns the names of the enumerable string properties and methods of an object.

-      * @param o Object that contains the properties and methods. This can be an object that you created or an existing Document Object Model (DOM) object.

-      */

-     keys(o: object): string[];

-}

-

-/**

-  * Provides functionality common to all JavaScript objects.

-  */

-declare var Object: ObjectConstructor;

-

-/**

-  * Creates a new function.

-  */

-interface Function {

-    /**

-      * Calls the function, substituting the specified object for the this value of the function, and the specified array for the arguments of the function.

-      * @param thisArg The object to be used as the this object.

-      * @param argArray A set of arguments to be passed to the function.

-      */

-    apply(this: Function, thisArg: any, argArray?: any): any;

-

-    /**

-      * Calls a method of an object, substituting another object for the current object.

-      * @param thisArg The object to be used as the current object.

-      * @param argArray A list of arguments to be passed to the method.

-      */

-    call(this: Function, thisArg: any, ...argArray: any[]): any;

-

-    /**

-      * For a given function, creates a bound function that has the same body as the original function.

-      * The this object of the bound function is associated with the specified object, and has the specified initial parameters.

-      * @param thisArg An object to which the this keyword can refer inside the new function.

-      * @param argArray A list of arguments to be passed to the new function.

-      */

-    bind(this: Function, thisArg: any, ...argArray: any[]): any;

-

-    /** Returns a string representation of a function. */

-    toString(): string;

-

-    prototype: any;

-    readonly length: number;

-

-    // Non-standard extensions

-    arguments: any;

-    caller: Function;

-}

-

-interface FunctionConstructor {

-    /**

-      * Creates a new function.

-      * @param args A list of arguments the function accepts.

-      */

-    new(...args: string[]): Function;

-    (...args: string[]): Function;

-    readonly prototype: Function;

-}

-

-declare var Function: FunctionConstructor;

-

-/**

- * Extracts the type of the 'this' parameter of a function type, or 'unknown' if the function type has no 'this' parameter.

- */

-type ThisParameterType<T> = T extends (this: unknown, ...args: any[]) => any ? unknown : T extends (this: infer U, ...args: any[]) => any ? U : unknown;

-

-/**

- * Removes the 'this' parameter from a function type.

- */

-type OmitThisParameter<T> = unknown extends ThisParameterType<T> ? T : T extends (...args: infer A) => infer R ? (...args: A) => R : T;

-

-interface CallableFunction extends Function {

-    /**

-      * Calls the function with the specified object as the this value and the elements of specified array as the arguments.

-      * @param thisArg The object to be used as the this object.

-      * @param args An array of argument values to be passed to the function.

-      */

-    apply<T, R>(this: (this: T) => R, thisArg: T): R;

-    apply<T, A extends any[], R>(this: (this: T, ...args: A) => R, thisArg: T, args: A): R;

-

-    /**

-      * Calls the function with the specified object as the this value and the specified rest arguments as the arguments.

-      * @param thisArg The object to be used as the this object.

-      * @param args Argument values to be passed to the function.

-      */

-    call<T, A extends any[], R>(this: (this: T, ...args: A) => R, thisArg: T, ...args: A): R;

-

-    /**

-      * For a given function, creates a bound function that has the same body as the original function.

-      * The this object of the bound function is associated with the specified object, and has the specified initial parameters.

-      * @param thisArg The object to be used as the this object.

-      * @param args Arguments to bind to the parameters of the function.

-      */

-    bind<T>(this: T, thisArg: ThisParameterType<T>): OmitThisParameter<T>;

-    bind<T, A0, A extends any[], R>(this: (this: T, arg0: A0, ...args: A) => R, thisArg: T, arg0: A0): (...args: A) => R;

-    bind<T, A0, A1, A extends any[], R>(this: (this: T, arg0: A0, arg1: A1, ...args: A) => R, thisArg: T, arg0: A0, arg1: A1): (...args: A) => R;

-    bind<T, A0, A1, A2, A extends any[], R>(this: (this: T, arg0: A0, arg1: A1, arg2: A2, ...args: A) => R, thisArg: T, arg0: A0, arg1: A1, arg2: A2): (...args: A) => R;

-    bind<T, A0, A1, A2, A3, A extends any[], R>(this: (this: T, arg0: A0, arg1: A1, arg2: A2, arg3: A3, ...args: A) => R, thisArg: T, arg0: A0, arg1: A1, arg2: A2, arg3: A3): (...args: A) => R;

-    bind<T, AX, R>(this: (this: T, ...args: AX[]) => R, thisArg: T, ...args: AX[]): (...args: AX[]) => R;

-}

-

-interface NewableFunction extends Function {

-    /**

-      * Calls the function with the specified object as the this value and the elements of specified array as the arguments.

-      * @param thisArg The object to be used as the this object.

-      * @param args An array of argument values to be passed to the function.

-      */

-    apply<T>(this: new () => T, thisArg: T): void;

-    apply<T, A extends any[]>(this: new (...args: A) => T, thisArg: T, args: A): void;

-

-    /**

-      * Calls the function with the specified object as the this value and the specified rest arguments as the arguments.

-      * @param thisArg The object to be used as the this object.

-      * @param args Argument values to be passed to the function.

-      */

-    call<T, A extends any[]>(this: new (...args: A) => T, thisArg: T, ...args: A): void;

-

-    /**

-      * For a given function, creates a bound function that has the same body as the original function.

-      * The this object of the bound function is associated with the specified object, and has the specified initial parameters.

-      * @param thisArg The object to be used as the this object.

-      * @param args Arguments to bind to the parameters of the function.

-      */

-    bind<T>(this: T, thisArg: any): T;

-    bind<A0, A extends any[], R>(this: new (arg0: A0, ...args: A) => R, thisArg: any, arg0: A0): new (...args: A) => R;

-    bind<A0, A1, A extends any[], R>(this: new (arg0: A0, arg1: A1, ...args: A) => R, thisArg: any, arg0: A0, arg1: A1): new (...args: A) => R;

-    bind<A0, A1, A2, A extends any[], R>(this: new (arg0: A0, arg1: A1, arg2: A2, ...args: A) => R, thisArg: any, arg0: A0, arg1: A1, arg2: A2): new (...args: A) => R;

-    bind<A0, A1, A2, A3, A extends any[], R>(this: new (arg0: A0, arg1: A1, arg2: A2, arg3: A3, ...args: A) => R, thisArg: any, arg0: A0, arg1: A1, arg2: A2, arg3: A3): new (...args: A) => R;

-    bind<AX, R>(this: new (...args: AX[]) => R, thisArg: any, ...args: AX[]): new (...args: AX[]) => R;

-}

-

-interface IArguments {

-    [index: number]: any;

-    length: number;

-    callee: Function;

-}

-

-interface String {

-    /** Returns a string representation of a string. */

-    toString(): string;

-

-    /**

-      * Returns the character at the specified index.

-      * @param pos The zero-based index of the desired character.

-      */

-    charAt(pos: number): string;

-

-    /**

-      * Returns the Unicode value of the character at the specified location.

-      * @param index The zero-based index of the desired character. If there is no character at the specified index, NaN is returned.

-      */

-    charCodeAt(index: number): number;

-

-    /**

-      * Returns a string that contains the concatenation of two or more strings.

-      * @param strings The strings to append to the end of the string.

-      */

-    concat(...strings: string[]): string;

-

-    /**

-      * Returns the position of the first occurrence of a substring.

-      * @param searchString The substring to search for in the string

-      * @param position The index at which to begin searching the String object. If omitted, search starts at the beginning of the string.

-      */

-    indexOf(searchString: string, position?: number): number;

-

-    /**

-      * Returns the last occurrence of a substring in the string.

-      * @param searchString The substring to search for.

-      * @param position The index at which to begin searching. If omitted, the search begins at the end of the string.

-      */

-    lastIndexOf(searchString: string, position?: number): number;

-

-    /**

-      * Determines whether two strings are equivalent in the current locale.

-      * @param that String to compare to target string

-      */

-    localeCompare(that: string): number;

-

-    /**

-      * Matches a string with a regular expression, and returns an array containing the results of that search.

-      * @param regexp A variable name or string literal containing the regular expression pattern and flags.

-      */

-    match(regexp: string | RegExp): RegExpMatchArray | null;

-

-    /**

-      * Replaces text in a string, using a regular expression or search string.

-      * @param searchValue A string to search for.

-      * @param replaceValue A string containing the text to replace for every successful match of searchValue in this string.

-      */

-    replace(searchValue: string | RegExp, replaceValue: string): string;

-

-    /**

-      * Replaces text in a string, using a regular expression or search string.

-      * @param searchValue A string to search for.

-      * @param replacer A function that returns the replacement text.

-      */

-    replace(searchValue: string | RegExp, replacer: (substring: string, ...args: any[]) => string): string;

-

-    /**

-      * Finds the first substring match in a regular expression search.

-      * @param regexp The regular expression pattern and applicable flags.

-      */

-    search(regexp: string | RegExp): number;

-

-    /**

-      * Returns a section of a string.

-      * @param start The index to the beginning of the specified portion of stringObj.

-      * @param end The index to the end of the specified portion of stringObj. The substring includes the characters up to, but not including, the character indicated by end.

-      * If this value is not specified, the substring continues to the end of stringObj.

-      */

-    slice(start?: number, end?: number): string;

-

-    /**

-      * Split a string into substrings using the specified separator and return them as an array.

-      * @param separator A string that identifies character or characters to use in separating the string. If omitted, a single-element array containing the entire string is returned.

-      * @param limit A value used to limit the number of elements returned in the array.

-      */

-    split(separator: string | RegExp, limit?: number): string[];

-

-    /**

-      * Returns the substring at the specified location within a String object.

-      * @param start The zero-based index number indicating the beginning of the substring.

-      * @param end Zero-based index number indicating the end of the substring. The substring includes the characters up to, but not including, the character indicated by end.

-      * If end is omitted, the characters from start through the end of the original string are returned.

-      */

-    substring(start: number, end?: number): string;

-

-    /** Converts all the alphabetic characters in a string to lowercase. */

-    toLowerCase(): string;

-

-    /** Converts all alphabetic characters to lowercase, taking into account the host environment's current locale. */

-    toLocaleLowerCase(): string;

-

-    /** Converts all the alphabetic characters in a string to uppercase. */

-    toUpperCase(): string;

-

-    /** Returns a string where all alphabetic characters have been converted to uppercase, taking into account the host environment's current locale. */

-    toLocaleUpperCase(): string;

-

-    /** Removes the leading and trailing white space and line terminator characters from a string. */

-    trim(): string;

-

-    /** Returns the length of a String object. */

-    readonly length: number;

-

-    // IE extensions

-    /**

-      * Gets a substring beginning at the specified location and having the specified length.

-      * @param from The starting position of the desired substring. The index of the first character in the string is zero.

-      * @param length The number of characters to include in the returned substring.

-      */

-    substr(from: number, length?: number): string;

-

-    /** Returns the primitive value of the specified object. */

-    valueOf(): string;

-

-    readonly [index: number]: string;

-}

-

-interface StringConstructor {

-    new(value?: any): String;

-    (value?: any): string;

-    readonly prototype: String;

-    fromCharCode(...codes: number[]): string;

-}

-

-/**

-  * Allows manipulation and formatting of text strings and determination and location of substrings within strings.

-  */

-declare var String: StringConstructor;

-

-interface Boolean {

-    /** Returns the primitive value of the specified object. */

-    valueOf(): boolean;

-}

-

-interface BooleanConstructor {

-    new(value?: any): Boolean;

-    <T>(value?: T): boolean;

-    readonly prototype: Boolean;

-}

-

-declare var Boolean: BooleanConstructor;

-

-interface Number {

-    /**

-      * Returns a string representation of an object.

-      * @param radix Specifies a radix for converting numeric values to strings. This value is only used for numbers.

-      */

-    toString(radix?: number): string;

-

-    /**

-      * Returns a string representing a number in fixed-point notation.

-      * @param fractionDigits Number of digits after the decimal point. Must be in the range 0 - 20, inclusive.

-      */

-    toFixed(fractionDigits?: number): string;

-

-    /**

-      * Returns a string containing a number represented in exponential notation.

-      * @param fractionDigits Number of digits after the decimal point. Must be in the range 0 - 20, inclusive.

-      */

-    toExponential(fractionDigits?: number): string;

-

-    /**

-      * Returns a string containing a number represented either in exponential or fixed-point notation with a specified number of digits.

-      * @param precision Number of significant digits. Must be in the range 1 - 21, inclusive.

-      */

-    toPrecision(precision?: number): string;

-

-    /** Returns the primitive value of the specified object. */

-    valueOf(): number;

-}

-

-interface NumberConstructor {

-    new(value?: any): Number;

-    (value?: any): number;

-    readonly prototype: Number;

-

-    /** The largest number that can be represented in JavaScript. Equal to approximately 1.79E+308. */

-    readonly MAX_VALUE: number;

-

-    /** The closest number to zero that can be represented in JavaScript. Equal to approximately 5.00E-324. */

-    readonly MIN_VALUE: number;

-

-    /**

-      * A value that is not a number.

-      * In equality comparisons, NaN does not equal any value, including itself. To test whether a value is equivalent to NaN, use the isNaN function.

-      */

-    readonly NaN: number;

-

-    /**

-      * A value that is less than the largest negative number that can be represented in JavaScript.

-      * JavaScript displays NEGATIVE_INFINITY values as -infinity.

-      */

-    readonly NEGATIVE_INFINITY: number;

-

-    /**

-      * A value greater than the largest number that can be represented in JavaScript.

-      * JavaScript displays POSITIVE_INFINITY values as infinity.

-      */

-    readonly POSITIVE_INFINITY: number;

-}

-

-/** An object that represents a number of any kind. All JavaScript numbers are 64-bit floating-point numbers. */

-declare var Number: NumberConstructor;

-

-interface TemplateStringsArray extends ReadonlyArray<string> {

-    readonly raw: ReadonlyArray<string>;

-}

-

-/**

- * The type of `import.meta`.

- *

- * If you need to declare that a given property exists on `import.meta`,

- * this type may be augmented via interface merging.

- */

-interface ImportMeta {

-}

-

-interface Math {

-    /** The mathematical constant e. This is Euler's number, the base of natural logarithms. */

-    readonly E: number;

-    /** The natural logarithm of 10. */

-    readonly LN10: number;

-    /** The natural logarithm of 2. */

-    readonly LN2: number;

-    /** The base-2 logarithm of e. */

-    readonly LOG2E: number;

-    /** The base-10 logarithm of e. */

-    readonly LOG10E: number;

-    /** Pi. This is the ratio of the circumference of a circle to its diameter. */

-    readonly PI: number;

-    /** The square root of 0.5, or, equivalently, one divided by the square root of 2. */

-    readonly SQRT1_2: number;

-    /** The square root of 2. */

-    readonly SQRT2: number;

-    /**

-      * Returns the absolute value of a number (the value without regard to whether it is positive or negative).

-      * For example, the absolute value of -5 is the same as the absolute value of 5.

-      * @param x A numeric expression for which the absolute value is needed.

-      */

-    abs(x: number): number;

-    /**

-      * Returns the arc cosine (or inverse cosine) of a number.

-      * @param x A numeric expression.

-      */

-    acos(x: number): number;

-    /**

-      * Returns the arcsine of a number.

-      * @param x A numeric expression.

-      */

-    asin(x: number): number;

-    /**

-      * Returns the arctangent of a number.

-      * @param x A numeric expression for which the arctangent is needed.

-      */

-    atan(x: number): number;

-    /**

-      * Returns the angle (in radians) from the X axis to a point.

-      * @param y A numeric expression representing the cartesian y-coordinate.

-      * @param x A numeric expression representing the cartesian x-coordinate.

-      */

-    atan2(y: number, x: number): number;

-    /**

-      * Returns the smallest integer greater than or equal to its numeric argument.

-      * @param x A numeric expression.

-      */

-    ceil(x: number): number;

-    /**

-      * Returns the cosine of a number.

-      * @param x A numeric expression that contains an angle measured in radians.

-      */

-    cos(x: number): number;

-    /**

-      * Returns e (the base of natural logarithms) raised to a power.

-      * @param x A numeric expression representing the power of e.

-      */

-    exp(x: number): number;

-    /**

-      * Returns the greatest integer less than or equal to its numeric argument.

-      * @param x A numeric expression.

-      */

-    floor(x: number): number;

-    /**

-      * Returns the natural logarithm (base e) of a number.

-      * @param x A numeric expression.

-      */

-    log(x: number): number;

-    /**

-      * Returns the larger of a set of supplied numeric expressions.

-      * @param values Numeric expressions to be evaluated.

-      */

-    max(...values: number[]): number;

-    /**

-      * Returns the smaller of a set of supplied numeric expressions.

-      * @param values Numeric expressions to be evaluated.

-      */

-    min(...values: number[]): number;

-    /**

-      * Returns the value of a base expression taken to a specified power.

-      * @param x The base value of the expression.

-      * @param y The exponent value of the expression.

-      */

-    pow(x: number, y: number): number;

-    /** Returns a pseudorandom number between 0 and 1. */

-    random(): number;

-    /**

-      * Returns a supplied numeric expression rounded to the nearest number.

-      * @param x The value to be rounded to the nearest number.

-      */

-    round(x: number): number;

-    /**

-      * Returns the sine of a number.

-      * @param x A numeric expression that contains an angle measured in radians.

-      */

-    sin(x: number): number;

-    /**

-      * Returns the square root of a number.

-      * @param x A numeric expression.

-      */

-    sqrt(x: number): number;

-    /**

-      * Returns the tangent of a number.

-      * @param x A numeric expression that contains an angle measured in radians.

-      */

-    tan(x: number): number;

-}

-/** An intrinsic object that provides basic mathematics functionality and constants. */

-declare var Math: Math;

-

-/** Enables basic storage and retrieval of dates and times. */

-interface Date {

-    /** Returns a string representation of a date. The format of the string depends on the locale. */

-    toString(): string;

-    /** Returns a date as a string value. */

-    toDateString(): string;

-    /** Returns a time as a string value. */

-    toTimeString(): string;

-    /** Returns a value as a string value appropriate to the host environment's current locale. */

-    toLocaleString(): string;

-    /** Returns a date as a string value appropriate to the host environment's current locale. */

-    toLocaleDateString(): string;

-    /** Returns a time as a string value appropriate to the host environment's current locale. */

-    toLocaleTimeString(): string;

-    /** Returns the stored time value in milliseconds since midnight, January 1, 1970 UTC. */

-    valueOf(): number;

-    /** Gets the time value in milliseconds. */

-    getTime(): number;

-    /** Gets the year, using local time. */

-    getFullYear(): number;

-    /** Gets the year using Universal Coordinated Time (UTC). */

-    getUTCFullYear(): number;

-    /** Gets the month, using local time. */

-    getMonth(): number;

-    /** Gets the month of a Date object using Universal Coordinated Time (UTC). */

-    getUTCMonth(): number;

-    /** Gets the day-of-the-month, using local time. */

-    getDate(): number;

-    /** Gets the day-of-the-month, using Universal Coordinated Time (UTC). */

-    getUTCDate(): number;

-    /** Gets the day of the week, using local time. */

-    getDay(): number;

-    /** Gets the day of the week using Universal Coordinated Time (UTC). */

-    getUTCDay(): number;

-    /** Gets the hours in a date, using local time. */

-    getHours(): number;

-    /** Gets the hours value in a Date object using Universal Coordinated Time (UTC). */

-    getUTCHours(): number;

-    /** Gets the minutes of a Date object, using local time. */

-    getMinutes(): number;

-    /** Gets the minutes of a Date object using Universal Coordinated Time (UTC). */

-    getUTCMinutes(): number;

-    /** Gets the seconds of a Date object, using local time. */

-    getSeconds(): number;

-    /** Gets the seconds of a Date object using Universal Coordinated Time (UTC). */

-    getUTCSeconds(): number;

-    /** Gets the milliseconds of a Date, using local time. */

-    getMilliseconds(): number;

-    /** Gets the milliseconds of a Date object using Universal Coordinated Time (UTC). */

-    getUTCMilliseconds(): number;

-    /** Gets the difference in minutes between the time on the local computer and Universal Coordinated Time (UTC). */

-    getTimezoneOffset(): number;

-    /**

-      * Sets the date and time value in the Date object.

-      * @param time A numeric value representing the number of elapsed milliseconds since midnight, January 1, 1970 GMT.

-      */

-    setTime(time: number): number;

-    /**

-      * Sets the milliseconds value in the Date object using local time.

-      * @param ms A numeric value equal to the millisecond value.

-      */

-    setMilliseconds(ms: number): number;

-    /**

-      * Sets the milliseconds value in the Date object using Universal Coordinated Time (UTC).

-      * @param ms A numeric value equal to the millisecond value.

-      */

-    setUTCMilliseconds(ms: number): number;

-

-    /**

-      * Sets the seconds value in the Date object using local time.

-      * @param sec A numeric value equal to the seconds value.

-      * @param ms A numeric value equal to the milliseconds value.

-      */

-    setSeconds(sec: number, ms?: number): number;

-    /**

-      * Sets the seconds value in the Date object using Universal Coordinated Time (UTC).

-      * @param sec A numeric value equal to the seconds value.

-      * @param ms A numeric value equal to the milliseconds value.

-      */

-    setUTCSeconds(sec: number, ms?: number): number;

-    /**

-      * Sets the minutes value in the Date object using local time.

-      * @param min A numeric value equal to the minutes value.

-      * @param sec A numeric value equal to the seconds value.

-      * @param ms A numeric value equal to the milliseconds value.

-      */

-    setMinutes(min: number, sec?: number, ms?: number): number;

-    /**

-      * Sets the minutes value in the Date object using Universal Coordinated Time (UTC).

-      * @param min A numeric value equal to the minutes value.

-      * @param sec A numeric value equal to the seconds value.

-      * @param ms A numeric value equal to the milliseconds value.

-      */

-    setUTCMinutes(min: number, sec?: number, ms?: number): number;

-    /**

-      * Sets the hour value in the Date object using local time.

-      * @param hours A numeric value equal to the hours value.

-      * @param min A numeric value equal to the minutes value.

-      * @param sec A numeric value equal to the seconds value.

-      * @param ms A numeric value equal to the milliseconds value.

-      */

-    setHours(hours: number, min?: number, sec?: number, ms?: number): number;

-    /**

-      * Sets the hours value in the Date object using Universal Coordinated Time (UTC).

-      * @param hours A numeric value equal to the hours value.

-      * @param min A numeric value equal to the minutes value.

-      * @param sec A numeric value equal to the seconds value.

-      * @param ms A numeric value equal to the milliseconds value.

-      */

-    setUTCHours(hours: number, min?: number, sec?: number, ms?: number): number;

-    /**

-      * Sets the numeric day-of-the-month value of the Date object using local time.

-      * @param date A numeric value equal to the day of the month.

-      */

-    setDate(date: number): number;

-    /**

-      * Sets the numeric day of the month in the Date object using Universal Coordinated Time (UTC).

-      * @param date A numeric value equal to the day of the month.

-      */

-    setUTCDate(date: number): number;

-    /**

-      * Sets the month value in the Date object using local time.

-      * @param month A numeric value equal to the month. The value for January is 0, and other month values follow consecutively.

-      * @param date A numeric value representing the day of the month. If this value is not supplied, the value from a call to the getDate method is used.

-      */

-    setMonth(month: number, date?: number): number;

-    /**

-      * Sets the month value in the Date object using Universal Coordinated Time (UTC).

-      * @param month A numeric value equal to the month. The value for January is 0, and other month values follow consecutively.

-      * @param date A numeric value representing the day of the month. If it is not supplied, the value from a call to the getUTCDate method is used.

-      */

-    setUTCMonth(month: number, date?: number): number;

-    /**

-      * Sets the year of the Date object using local time.

-      * @param year A numeric value for the year.

-      * @param month A zero-based numeric value for the month (0 for January, 11 for December). Must be specified if numDate is specified.

-      * @param date A numeric value equal for the day of the month.

-      */

-    setFullYear(year: number, month?: number, date?: number): number;

-    /**

-      * Sets the year value in the Date object using Universal Coordinated Time (UTC).

-      * @param year A numeric value equal to the year.

-      * @param month A numeric value equal to the month. The value for January is 0, and other month values follow consecutively. Must be supplied if numDate is supplied.

-      * @param date A numeric value equal to the day of the month.

-      */

-    setUTCFullYear(year: number, month?: number, date?: number): number;

-    /** Returns a date converted to a string using Universal Coordinated Time (UTC). */

-    toUTCString(): string;

-    /** Returns a date as a string value in ISO format. */

-    toISOString(): string;

-    /** Used by the JSON.stringify method to enable the transformation of an object's data for JavaScript Object Notation (JSON) serialization. */

-    toJSON(key?: any): string;

-}

-

-interface DateConstructor {

-    new(): Date;

-    new(value: number | string): Date;

-    new(year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): Date;

-    (): string;

-    readonly prototype: Date;

-    /**

-      * Parses a string containing a date, and returns the number of milliseconds between that date and midnight, January 1, 1970.

-      * @param s A date string

-      */

-    parse(s: string): number;

-    /**

-      * Returns the number of milliseconds between midnight, January 1, 1970 Universal Coordinated Time (UTC) (or GMT) and the specified date.

-      * @param year The full year designation is required for cross-century date accuracy. If year is between 0 and 99 is used, then year is assumed to be 1900 + year.

-      * @param month The month as an number between 0 and 11 (January to December).

-      * @param date The date as an number between 1 and 31.

-      * @param hours Must be supplied if minutes is supplied. An number from 0 to 23 (midnight to 11pm) that specifies the hour.

-      * @param minutes Must be supplied if seconds is supplied. An number from 0 to 59 that specifies the minutes.

-      * @param seconds Must be supplied if milliseconds is supplied. An number from 0 to 59 that specifies the seconds.

-      * @param ms An number from 0 to 999 that specifies the milliseconds.

-      */

-    UTC(year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): number;

-    now(): number;

-}

-

-declare var Date: DateConstructor;

-

-interface RegExpMatchArray extends Array<string> {

-    index?: number;

-    input?: string;

-}

-

-interface RegExpExecArray extends Array<string> {

-    index: number;

-    input: string;

-}

-

-interface RegExp {

-    /**

-      * Executes a search on a string using a regular expression pattern, and returns an array containing the results of that search.

-      * @param string The String object or string literal on which to perform the search.

-      */

-    exec(string: string): RegExpExecArray | null;

-

-    /**

-      * Returns a Boolean value that indicates whether or not a pattern exists in a searched string.

-      * @param string String on which to perform the search.

-      */

-    test(string: string): boolean;

-

-    /** Returns a copy of the text of the regular expression pattern. Read-only. The regExp argument is a Regular expression object. It can be a variable name or a literal. */

-    readonly source: string;

-

-    /** Returns a Boolean value indicating the state of the global flag (g) used with a regular expression. Default is false. Read-only. */

-    readonly global: boolean;

-

-    /** Returns a Boolean value indicating the state of the ignoreCase flag (i) used with a regular expression. Default is false. Read-only. */

-    readonly ignoreCase: boolean;

-

-    /** Returns a Boolean value indicating the state of the multiline flag (m) used with a regular expression. Default is false. Read-only. */

-    readonly multiline: boolean;

-

-    lastIndex: number;

-

-    // Non-standard extensions

-    compile(): this;

-}

-

-interface RegExpConstructor {

-    new(pattern: RegExp | string): RegExp;

-    new(pattern: string, flags?: string): RegExp;

-    (pattern: RegExp | string): RegExp;

-    (pattern: string, flags?: string): RegExp;

-    readonly prototype: RegExp;

-

-    // Non-standard extensions

-    $1: string;

-    $2: string;

-    $3: string;

-    $4: string;

-    $5: string;

-    $6: string;

-    $7: string;

-    $8: string;

-    $9: string;

-    lastMatch: string;

-}

-

-declare var RegExp: RegExpConstructor;

-

-interface Error {

-    name: string;

-    message: string;

-    stack?: string;

-}

-

-interface ErrorConstructor {

-    new(message?: string): Error;

-    (message?: string): Error;

-    readonly prototype: Error;

-}

-

-declare var Error: ErrorConstructor;

-

-interface EvalError extends Error {

-}

-

-interface EvalErrorConstructor {

-    new(message?: string): EvalError;

-    (message?: string): EvalError;

-    readonly prototype: EvalError;

-}

-

-declare var EvalError: EvalErrorConstructor;

-

-interface RangeError extends Error {

-}

-

-interface RangeErrorConstructor {

-    new(message?: string): RangeError;

-    (message?: string): RangeError;

-    readonly prototype: RangeError;

-}

-

-declare var RangeError: RangeErrorConstructor;

-

-interface ReferenceError extends Error {

-}

-

-interface ReferenceErrorConstructor {

-    new(message?: string): ReferenceError;

-    (message?: string): ReferenceError;

-    readonly prototype: ReferenceError;

-}

-

-declare var ReferenceError: ReferenceErrorConstructor;

-

-interface SyntaxError extends Error {

-}

-

-interface SyntaxErrorConstructor {

-    new(message?: string): SyntaxError;

-    (message?: string): SyntaxError;

-    readonly prototype: SyntaxError;

-}

-

-declare var SyntaxError: SyntaxErrorConstructor;

-

-interface TypeError extends Error {

-}

-

-interface TypeErrorConstructor {

-    new(message?: string): TypeError;

-    (message?: string): TypeError;

-    readonly prototype: TypeError;

-}

-

-declare var TypeError: TypeErrorConstructor;

-

-interface URIError extends Error {

-}

-

-interface URIErrorConstructor {

-    new(message?: string): URIError;

-    (message?: string): URIError;

-    readonly prototype: URIError;

-}

-

-declare var URIError: URIErrorConstructor;

-

-interface JSON {

-    /**

-      * Converts a JavaScript Object Notation (JSON) string into an object.

-      * @param text A valid JSON string.

-      * @param reviver A function that transforms the results. This function is called for each member of the object.

-      * If a member contains nested objects, the nested objects are transformed before the parent object is.

-      */

-    parse(text: string, reviver?: (this: any, key: string, value: any) => any): any;

-    /**

-      * Converts a JavaScript value to a JavaScript Object Notation (JSON) string.

-      * @param value A JavaScript value, usually an object or array, to be converted.

-      * @param replacer A function that transforms the results.

-      * @param space Adds indentation, white space, and line break characters to the return-value JSON text to make it easier to read.

-      */

-    stringify(value: any, replacer?: (this: any, key: string, value: any) => any, space?: string | number): string;

-    /**

-      * Converts a JavaScript value to a JavaScript Object Notation (JSON) string.

-      * @param value A JavaScript value, usually an object or array, to be converted.

-      * @param replacer An array of strings and numbers that acts as a approved list for selecting the object properties that will be stringified.

-      * @param space Adds indentation, white space, and line break characters to the return-value JSON text to make it easier to read.

-      */

-    stringify(value: any, replacer?: (number | string)[] | null, space?: string | number): string;

-}

-

-/**

-  * An intrinsic object that provides functions to convert JavaScript values to and from the JavaScript Object Notation (JSON) format.

-  */

-declare var JSON: JSON;

-

-

-/////////////////////////////

-/// ECMAScript Array API (specially handled by compiler)

-/////////////////////////////

-

-interface ReadonlyArray<T> {

-    /**

-      * Gets the length of the array. This is a number one higher than the highest element defined in an array.

-      */

-    readonly length: number;

-    /**

-      * Returns a string representation of an array.

-      */

-    toString(): string;

-    /**

-      * Returns a string representation of an array. The elements are converted to string using their toLocalString methods.

-      */

-    toLocaleString(): string;

-    /**

-      * Combines two or more arrays.

-      * @param items Additional items to add to the end of array1.

-      */

-    concat(...items: ConcatArray<T>[]): T[];

-    /**

-      * Combines two or more arrays.

-      * @param items Additional items to add to the end of array1.

-      */

-    concat(...items: (T | ConcatArray<T>)[]): T[];

-    /**

-      * Adds all the elements of an array separated by the specified separator string.

-      * @param separator A string used to separate one element of an array from the next in the resulting String. If omitted, the array elements are separated with a comma.

-      */

-    join(separator?: string): string;

-    /**

-      * Returns a section of an array.

-      * @param start The beginning of the specified portion of the array.

-      * @param end The end of the specified portion of the array.

-      */

-    slice(start?: number, end?: number): T[];

-    /**

-      * Returns the index of the first occurrence of a value in an array.

-      * @param searchElement The value to locate in the array.

-      * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the search starts at index 0.

-      */

-    indexOf(searchElement: T, fromIndex?: number): number;

-    /**

-      * Returns the index of the last occurrence of a specified value in an array.

-      * @param searchElement The value to locate in the array.

-      * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the search starts at the last index in the array.

-      */

-    lastIndexOf(searchElement: T, fromIndex?: number): number;

-    /**

-      * Determines whether all the members of an array satisfy the specified test.

-      * @param callbackfn A function that accepts up to three arguments. The every method calls the callbackfn function for each element in array1 until the callbackfn returns false, or until the end of the array.

-      * @param thisArg An object to which the this keyword can refer in the callbackfn function. If thisArg is omitted, undefined is used as the this value.

-      */

-    every(callbackfn: (value: T, index: number, array: ReadonlyArray<T>) => unknown, thisArg?: any): boolean;

-    /**

-      * Determines whether the specified callback function returns true for any element of an array.

-      * @param callbackfn A function that accepts up to three arguments. The some method calls the callbackfn function for each element in array1 until the callbackfn returns true, or until the end of the array.

-      * @param thisArg An object to which the this keyword can refer in the callbackfn function. If thisArg is omitted, undefined is used as the this value.

-      */

-    some(callbackfn: (value: T, index: number, array: ReadonlyArray<T>) => unknown, thisArg?: any): boolean;

-    /**

-      * Performs the specified action for each element in an array.

-      * @param callbackfn  A function that accepts up to three arguments. forEach calls the callbackfn function one time for each element in the array.

-      * @param thisArg  An object to which the this keyword can refer in the callbackfn function. If thisArg is omitted, undefined is used as the this value.

-      */

-    forEach(callbackfn: (value: T, index: number, array: ReadonlyArray<T>) => void, thisArg?: any): void;

-    /**

-      * Calls a defined callback function on each element of an array, and returns an array that contains the results.

-      * @param callbackfn A function that accepts up to three arguments. The map method calls the callbackfn function one time for each element in the array.

-      * @param thisArg An object to which the this keyword can refer in the callbackfn function. If thisArg is omitted, undefined is used as the this value.

-      */

-    map<U>(callbackfn: (value: T, index: number, array: ReadonlyArray<T>) => U, thisArg?: any): U[];

-    /**

-     * Returns the elements of an array that meet the condition specified in a callback function.

-     * @param callbackfn A function that accepts up to three arguments. The filter method calls the callbackfn function one time for each element in the array.

-     * @param thisArg An object to which the this keyword can refer in the callbackfn function. If thisArg is omitted, undefined is used as the this value.

-     */

-    filter<S extends T>(callbackfn: (value: T, index: number, array: ReadonlyArray<T>) => value is S, thisArg?: any): S[];

-    /**

-      * Returns the elements of an array that meet the condition specified in a callback function.

-      * @param callbackfn A function that accepts up to three arguments. The filter method calls the callbackfn function one time for each element in the array.

-      * @param thisArg An object to which the this keyword can refer in the callbackfn function. If thisArg is omitted, undefined is used as the this value.

-      */

-    filter(callbackfn: (value: T, index: number, array: ReadonlyArray<T>) => unknown, thisArg?: any): T[];

-    /**

-      * Calls the specified callback function for all the elements in an array. The return value of the callback function is the accumulated result, and is provided as an argument in the next call to the callback function.

-      * @param callbackfn A function that accepts up to four arguments. The reduce method calls the callbackfn function one time for each element in the array.

-      * @param initialValue If initialValue is specified, it is used as the initial value to start the accumulation. The first call to the callbackfn function provides this value as an argument instead of an array value.

-      */

-    reduce(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: ReadonlyArray<T>) => T): T;

-    reduce(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: ReadonlyArray<T>) => T, initialValue: T): T;

-    /**

-      * Calls the specified callback function for all the elements in an array. The return value of the callback function is the accumulated result, and is provided as an argument in the next call to the callback function.

-      * @param callbackfn A function that accepts up to four arguments. The reduce method calls the callbackfn function one time for each element in the array.

-      * @param initialValue If initialValue is specified, it is used as the initial value to start the accumulation. The first call to the callbackfn function provides this value as an argument instead of an array value.

-      */

-    reduce<U>(callbackfn: (previousValue: U, currentValue: T, currentIndex: number, array: ReadonlyArray<T>) => U, initialValue: U): U;

-    /**

-      * Calls the specified callback function for all the elements in an array, in descending order. The return value of the callback function is the accumulated result, and is provided as an argument in the next call to the callback function.

-      * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls the callbackfn function one time for each element in the array.

-      * @param initialValue If initialValue is specified, it is used as the initial value to start the accumulation. The first call to the callbackfn function provides this value as an argument instead of an array value.

-      */

-    reduceRight(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: ReadonlyArray<T>) => T): T;

-    reduceRight(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: ReadonlyArray<T>) => T, initialValue: T): T;

-    /**

-      * Calls the specified callback function for all the elements in an array, in descending order. The return value of the callback function is the accumulated result, and is provided as an argument in the next call to the callback function.

-      * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls the callbackfn function one time for each element in the array.

-      * @param initialValue If initialValue is specified, it is used as the initial value to start the accumulation. The first call to the callbackfn function provides this value as an argument instead of an array value.

-      */

-    reduceRight<U>(callbackfn: (previousValue: U, currentValue: T, currentIndex: number, array: ReadonlyArray<T>) => U, initialValue: U): U;

-

-    readonly [n: number]: T;

-}

-

-interface ConcatArray<T> {

-    readonly length: number;

-    readonly [n: number]: T;

-    join(separator?: string): string;

-    slice(start?: number, end?: number): T[];

-}

-

-interface Array<T> {

-    /**

-      * Gets or sets the length of the array. This is a number one higher than the highest element defined in an array.

-      */

-    length: number;

-    /**

-      * Returns a string representation of an array.

-      */

-    toString(): string;

-    /**

-      * Returns a string representation of an array. The elements are converted to string using their toLocalString methods.

-      */

-    toLocaleString(): string;

-    /**

-      * Removes the last element from an array and returns it.

-      */

-    pop(): T | undefined;

-    /**

-      * Appends new elements to an array, and returns the new length of the array.

-      * @param items New elements of the Array.

-      */

-    push(...items: T[]): number;

-    /**

-      * Combines two or more arrays.

-      * @param items Additional items to add to the end of array1.

-      */

-    concat(...items: ConcatArray<T>[]): T[];

-    /**

-      * Combines two or more arrays.

-      * @param items Additional items to add to the end of array1.

-      */

-    concat(...items: (T | ConcatArray<T>)[]): T[];

-    /**

-      * Adds all the elements of an array separated by the specified separator string.

-      * @param separator A string used to separate one element of an array from the next in the resulting String. If omitted, the array elements are separated with a comma.

-      */

-    join(separator?: string): string;

-    /**

-      * Reverses the elements in an Array.

-      */

-    reverse(): T[];

-    /**

-      * Removes the first element from an array and returns it.

-      */

-    shift(): T | undefined;

-    /**

-      * Returns a section of an array.

-      * @param start The beginning of the specified portion of the array.

-      * @param end The end of the specified portion of the array.

-      */

-    slice(start?: number, end?: number): T[];

-    /**

-      * Sorts an array.

-      * @param compareFn The name of the function used to determine the order of the elements. If omitted, the elements are sorted in ascending, ASCII character order.

-      */

-    sort(compareFn?: (a: T, b: T) => number): this;

-    /**

-      * Removes elements from an array and, if necessary, inserts new elements in their place, returning the deleted elements.

-      * @param start The zero-based location in the array from which to start removing elements.

-      * @param deleteCount The number of elements to remove.

-      */

-    splice(start: number, deleteCount?: number): T[];

-    /**

-      * Removes elements from an array and, if necessary, inserts new elements in their place, returning the deleted elements.

-      * @param start The zero-based location in the array from which to start removing elements.

-      * @param deleteCount The number of elements to remove.

-      * @param items Elements to insert into the array in place of the deleted elements.

-      */

-    splice(start: number, deleteCount: number, ...items: T[]): T[];

-    /**

-      * Inserts new elements at the start of an array.

-      * @param items  Elements to insert at the start of the Array.

-      */

-    unshift(...items: T[]): number;

-    /**

-      * Returns the index of the first occurrence of a value in an array.

-      * @param searchElement The value to locate in the array.

-      * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the search starts at index 0.

-      */

-    indexOf(searchElement: T, fromIndex?: number): number;

-    /**

-      * Returns the index of the last occurrence of a specified value in an array.

-      * @param searchElement The value to locate in the array.

-      * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the search starts at the last index in the array.

-      */

-    lastIndexOf(searchElement: T, fromIndex?: number): number;

-    /**

-      * Determines whether all the members of an array satisfy the specified test.

-      * @param callbackfn A function that accepts up to three arguments. The every method calls the callbackfn function for each element in array1 until the callbackfn returns false, or until the end of the array.

-      * @param thisArg An object to which the this keyword can refer in the callbackfn function. If thisArg is omitted, undefined is used as the this value.

-      */

-    every(callbackfn: (value: T, index: number, array: T[]) => unknown, thisArg?: any): boolean;

-    /**

-      * Determines whether the specified callback function returns true for any element of an array.

-      * @param callbackfn A function that accepts up to three arguments. The some method calls the callbackfn function for each element in array1 until the callbackfn returns true, or until the end of the array.

-      * @param thisArg An object to which the this keyword can refer in the callbackfn function. If thisArg is omitted, undefined is used as the this value.

-      */

-    some(callbackfn: (value: T, index: number, array: T[]) => unknown, thisArg?: any): boolean;

-    /**

-      * Performs the specified action for each element in an array.

-      * @param callbackfn  A function that accepts up to three arguments. forEach calls the callbackfn function one time for each element in the array.

-      * @param thisArg  An object to which the this keyword can refer in the callbackfn function. If thisArg is omitted, undefined is used as the this value.

-      */

-    forEach(callbackfn: (value: T, index: number, array: T[]) => void, thisArg?: any): void;

-    /**

-      * Calls a defined callback function on each element of an array, and returns an array that contains the results.

-      * @param callbackfn A function that accepts up to three arguments. The map method calls the callbackfn function one time for each element in the array.

-      * @param thisArg An object to which the this keyword can refer in the callbackfn function. If thisArg is omitted, undefined is used as the this value.

-      */

-    map<U>(callbackfn: (value: T, index: number, array: T[]) => U, thisArg?: any): U[];

-    /**

-     * Returns the elements of an array that meet the condition specified in a callback function.

-     * @param callbackfn A function that accepts up to three arguments. The filter method calls the callbackfn function one time for each element in the array.

-     * @param thisArg An object to which the this keyword can refer in the callbackfn function. If thisArg is omitted, undefined is used as the this value.

-     */

-    filter<S extends T>(callbackfn: (value: T, index: number, array: T[]) => value is S, thisArg?: any): S[];

-    /**

-      * Returns the elements of an array that meet the condition specified in a callback function.

-      * @param callbackfn A function that accepts up to three arguments. The filter method calls the callbackfn function one time for each element in the array.

-      * @param thisArg An object to which the this keyword can refer in the callbackfn function. If thisArg is omitted, undefined is used as the this value.

-      */

-    filter(callbackfn: (value: T, index: number, array: T[]) => unknown, thisArg?: any): T[];

-    /**

-      * Calls the specified callback function for all the elements in an array. The return value of the callback function is the accumulated result, and is provided as an argument in the next call to the callback function.

-      * @param callbackfn A function that accepts up to four arguments. The reduce method calls the callbackfn function one time for each element in the array.

-      * @param initialValue If initialValue is specified, it is used as the initial value to start the accumulation. The first call to the callbackfn function provides this value as an argument instead of an array value.

-      */

-    reduce(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T): T;

-    reduce(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T, initialValue: T): T;

-    /**

-      * Calls the specified callback function for all the elements in an array. The return value of the callback function is the accumulated result, and is provided as an argument in the next call to the callback function.

-      * @param callbackfn A function that accepts up to four arguments. The reduce method calls the callbackfn function one time for each element in the array.

-      * @param initialValue If initialValue is specified, it is used as the initial value to start the accumulation. The first call to the callbackfn function provides this value as an argument instead of an array value.

-      */

-    reduce<U>(callbackfn: (previousValue: U, currentValue: T, currentIndex: number, array: T[]) => U, initialValue: U): U;

-    /**

-      * Calls the specified callback function for all the elements in an array, in descending order. The return value of the callback function is the accumulated result, and is provided as an argument in the next call to the callback function.

-      * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls the callbackfn function one time for each element in the array.

-      * @param initialValue If initialValue is specified, it is used as the initial value to start the accumulation. The first call to the callbackfn function provides this value as an argument instead of an array value.

-      */

-    reduceRight(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T): T;

-    reduceRight(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T, initialValue: T): T;

-    /**

-      * Calls the specified callback function for all the elements in an array, in descending order. The return value of the callback function is the accumulated result, and is provided as an argument in the next call to the callback function.

-      * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls the callbackfn function one time for each element in the array.

-      * @param initialValue If initialValue is specified, it is used as the initial value to start the accumulation. The first call to the callbackfn function provides this value as an argument instead of an array value.

-      */

-    reduceRight<U>(callbackfn: (previousValue: U, currentValue: T, currentIndex: number, array: T[]) => U, initialValue: U): U;

-

-    [n: number]: T;

-}

-

-interface ArrayConstructor {

-    new(arrayLength?: number): any[];

-    new <T>(arrayLength: number): T[];

-    new <T>(...items: T[]): T[];

-    (arrayLength?: number): any[];

-    <T>(arrayLength: number): T[];

-    <T>(...items: T[]): T[];

-    isArray(arg: any): arg is Array<any>;

-    readonly prototype: Array<any>;

-}

-

-declare var Array: ArrayConstructor;

-

-interface TypedPropertyDescriptor<T> {

-    enumerable?: boolean;

-    configurable?: boolean;

-    writable?: boolean;

-    value?: T;

-    get?: () => T;

-    set?: (value: T) => void;

-}

-

-declare type ClassDecorator = <TFunction extends Function>(target: TFunction) => TFunction | void;

-declare type PropertyDecorator = (target: Object, propertyKey: string | symbol) => void;

-declare type MethodDecorator = <T>(target: Object, propertyKey: string | symbol, descriptor: TypedPropertyDescriptor<T>) => TypedPropertyDescriptor<T> | void;

-declare type ParameterDecorator = (target: Object, propertyKey: string | symbol, parameterIndex: number) => void;

-

-declare type PromiseConstructorLike = new <T>(executor: (resolve: (value?: T | PromiseLike<T>) => void, reject: (reason?: any) => void) => void) => PromiseLike<T>;

-

-interface PromiseLike<T> {

-    /**

-     * Attaches callbacks for the resolution and/or rejection of the Promise.

-     * @param onfulfilled The callback to execute when the Promise is resolved.

-     * @param onrejected The callback to execute when the Promise is rejected.

-     * @returns A Promise for the completion of which ever callback is executed.

-     */

-    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): PromiseLike<TResult1 | TResult2>;

-}

-

-/**

- * Represents the completion of an asynchronous operation

- */

-interface Promise<T> {

-    /**

-     * Attaches callbacks for the resolution and/or rejection of the Promise.

-     * @param onfulfilled The callback to execute when the Promise is resolved.

-     * @param onrejected The callback to execute when the Promise is rejected.

-     * @returns A Promise for the completion of which ever callback is executed.

-     */

-    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): Promise<TResult1 | TResult2>;

-

-    /**

-     * Attaches a callback for only the rejection of the Promise.

-     * @param onrejected The callback to execute when the Promise is rejected.

-     * @returns A Promise for the completion of the callback.

-     */

-    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): Promise<T | TResult>;

-}

-

-interface ArrayLike<T> {

-    readonly length: number;

-    readonly [n: number]: T;

-}

-

-/**

- * Make all properties in T optional

- */

-type Partial<T> = {

-    [P in keyof T]?: T[P];

-};

-

-/**

- * Make all properties in T required

- */

-type Required<T> = {

-    [P in keyof T]-?: T[P];

-};

-

-/**

- * Make all properties in T readonly

- */

-type Readonly<T> = {

-    readonly [P in keyof T]: T[P];

-};

-

-/**

- * From T, pick a set of properties whose keys are in the union K

- */

-type Pick<T, K extends keyof T> = {

-    [P in K]: T[P];

-};

-

-/**

- * Construct a type with a set of properties K of type T

- */

-type Record<K extends keyof any, T> = {

-    [P in K]: T;

-};

-

-/**

- * Exclude from T those types that are assignable to U

- */

-type Exclude<T, U> = T extends U ? never : T;

-

-/**

- * Extract from T those types that are assignable to U

- */

-type Extract<T, U> = T extends U ? T : never;

-

-/**

- * Construct a type with the properties of T except for those in type K.

- */

-type Omit<T, K extends keyof any> = Pick<T, Exclude<keyof T, K>>;

-

-/**

- * Exclude null and undefined from T

- */

-type NonNullable<T> = T extends null | undefined ? never : T;

-

-/**

- * Obtain the parameters of a function type in a tuple

- */

-type Parameters<T extends (...args: any) => any> = T extends (...args: infer P) => any ? P : never;

-

-/**

- * Obtain the parameters of a constructor function type in a tuple

- */

-type ConstructorParameters<T extends new (...args: any) => any> = T extends new (...args: infer P) => any ? P : never;

-

-/**

- * Obtain the return type of a function type

- */

-type ReturnType<T extends (...args: any) => any> = T extends (...args: any) => infer R ? R : any;

-

-/**

- * Obtain the return type of a constructor function type

- */

-type InstanceType<T extends new (...args: any) => any> = T extends new (...args: any) => infer R ? R : any;

-

-/**

- * Marker for contextual 'this' type

- */

-interface ThisType<T> { }

-

-/**

-  * Represents a raw buffer of binary data, which is used to store data for the

-  * different typed arrays. ArrayBuffers cannot be read from or written to directly,

-  * but can be passed to a typed array or DataView Object to interpret the raw

-  * buffer as needed.

-  */

-interface ArrayBuffer {

-    /**

-      * Read-only. The length of the ArrayBuffer (in bytes).

-      */

-    readonly byteLength: number;

-

-    /**

-      * Returns a section of an ArrayBuffer.

-      */

-    slice(begin: number, end?: number): ArrayBuffer;

-}

-

-/**

- * Allowed ArrayBuffer types for the buffer of an ArrayBufferView and related Typed Arrays.

- */

-interface ArrayBufferTypes {

-    ArrayBuffer: ArrayBuffer;

-}

-type ArrayBufferLike = ArrayBufferTypes[keyof ArrayBufferTypes];

-

-interface ArrayBufferConstructor {

-    readonly prototype: ArrayBuffer;

-    new(byteLength: number): ArrayBuffer;

-    isView(arg: any): arg is ArrayBufferView;

-}

-declare var ArrayBuffer: ArrayBufferConstructor;

-

-interface ArrayBufferView {

-    /**

-      * The ArrayBuffer instance referenced by the array.

-      */

-    buffer: ArrayBufferLike;

-

-    /**

-      * The length in bytes of the array.

-      */

-    byteLength: number;

-

-    /**

-      * The offset in bytes of the array.

-      */

-    byteOffset: number;

-}

-

-interface DataView {

-    readonly buffer: ArrayBuffer;

-    readonly byteLength: number;

-    readonly byteOffset: number;

-    /**

-      * Gets the Float32 value at the specified byte offset from the start of the view. There is

-      * no alignment constraint; multi-byte values may be fetched from any offset.

-      * @param byteOffset The place in the buffer at which the value should be retrieved.

-      */

-    getFloat32(byteOffset: number, littleEndian?: boolean): number;

-

-    /**

-      * Gets the Float64 value at the specified byte offset from the start of the view. There is

-      * no alignment constraint; multi-byte values may be fetched from any offset.

-      * @param byteOffset The place in the buffer at which the value should be retrieved.

-      */

-    getFloat64(byteOffset: number, littleEndian?: boolean): number;

-

-    /**

-      * Gets the Int8 value at the specified byte offset from the start of the view. There is

-      * no alignment constraint; multi-byte values may be fetched from any offset.

-      * @param byteOffset The place in the buffer at which the value should be retrieved.

-      */

-    getInt8(byteOffset: number): number;

-

-    /**

-      * Gets the Int16 value at the specified byte offset from the start of the view. There is

-      * no alignment constraint; multi-byte values may be fetched from any offset.

-      * @param byteOffset The place in the buffer at which the value should be retrieved.

-      */

-    getInt16(byteOffset: number, littleEndian?: boolean): number;

-    /**

-      * Gets the Int32 value at the specified byte offset from the start of the view. There is

-      * no alignment constraint; multi-byte values may be fetched from any offset.

-      * @param byteOffset The place in the buffer at which the value should be retrieved.

-      */

-    getInt32(byteOffset: number, littleEndian?: boolean): number;

-

-    /**

-      * Gets the Uint8 value at the specified byte offset from the start of the view. There is

-      * no alignment constraint; multi-byte values may be fetched from any offset.

-      * @param byteOffset The place in the buffer at which the value should be retrieved.

-      */

-    getUint8(byteOffset: number): number;

-

-    /**

-      * Gets the Uint16 value at the specified byte offset from the start of the view. There is

-      * no alignment constraint; multi-byte values may be fetched from any offset.

-      * @param byteOffset The place in the buffer at which the value should be retrieved.

-      */

-    getUint16(byteOffset: number, littleEndian?: boolean): number;

-

-    /**

-      * Gets the Uint32 value at the specified byte offset from the start of the view. There is

-      * no alignment constraint; multi-byte values may be fetched from any offset.

-      * @param byteOffset The place in the buffer at which the value should be retrieved.

-      */

-    getUint32(byteOffset: number, littleEndian?: boolean): number;

-

-    /**

-      * Stores an Float32 value at the specified byte offset from the start of the view.

-      * @param byteOffset The place in the buffer at which the value should be set.

-      * @param value The value to set.

-      * @param littleEndian If false or undefined, a big-endian value should be written,

-      * otherwise a little-endian value should be written.

-      */

-    setFloat32(byteOffset: number, value: number, littleEndian?: boolean): void;

-

-    /**

-      * Stores an Float64 value at the specified byte offset from the start of the view.

-      * @param byteOffset The place in the buffer at which the value should be set.

-      * @param value The value to set.

-      * @param littleEndian If false or undefined, a big-endian value should be written,

-      * otherwise a little-endian value should be written.

-      */

-    setFloat64(byteOffset: number, value: number, littleEndian?: boolean): void;

-

-    /**

-      * Stores an Int8 value at the specified byte offset from the start of the view.

-      * @param byteOffset The place in the buffer at which the value should be set.

-      * @param value The value to set.

-      */

-    setInt8(byteOffset: number, value: number): void;

-

-    /**

-      * Stores an Int16 value at the specified byte offset from the start of the view.

-      * @param byteOffset The place in the buffer at which the value should be set.

-      * @param value The value to set.

-      * @param littleEndian If false or undefined, a big-endian value should be written,

-      * otherwise a little-endian value should be written.

-      */

-    setInt16(byteOffset: number, value: number, littleEndian?: boolean): void;

-

-    /**

-      * Stores an Int32 value at the specified byte offset from the start of the view.

-      * @param byteOffset The place in the buffer at which the value should be set.

-      * @param value The value to set.

-      * @param littleEndian If false or undefined, a big-endian value should be written,

-      * otherwise a little-endian value should be written.

-      */

-    setInt32(byteOffset: number, value: number, littleEndian?: boolean): void;

-

-    /**

-      * Stores an Uint8 value at the specified byte offset from the start of the view.

-      * @param byteOffset The place in the buffer at which the value should be set.

-      * @param value The value to set.

-      */

-    setUint8(byteOffset: number, value: number): void;

-

-    /**

-      * Stores an Uint16 value at the specified byte offset from the start of the view.

-      * @param byteOffset The place in the buffer at which the value should be set.

-      * @param value The value to set.

-      * @param littleEndian If false or undefined, a big-endian value should be written,

-      * otherwise a little-endian value should be written.

-      */

-    setUint16(byteOffset: number, value: number, littleEndian?: boolean): void;

-

-    /**

-      * Stores an Uint32 value at the specified byte offset from the start of the view.

-      * @param byteOffset The place in the buffer at which the value should be set.

-      * @param value The value to set.

-      * @param littleEndian If false or undefined, a big-endian value should be written,

-      * otherwise a little-endian value should be written.

-      */

-    setUint32(byteOffset: number, value: number, littleEndian?: boolean): void;

-}

-

-interface DataViewConstructor {

-    new(buffer: ArrayBufferLike, byteOffset?: number, byteLength?: number): DataView;

-}

-declare var DataView: DataViewConstructor;

-

-/**

-  * A typed array of 8-bit integer values. The contents are initialized to 0. If the requested

-  * number of bytes could not be allocated an exception is raised.

-  */

-interface Int8Array {

-    /**

-      * The size in bytes of each element in the array.

-      */

-    readonly BYTES_PER_ELEMENT: number;

-

-    /**

-      * The ArrayBuffer instance referenced by the array.

-      */

-    readonly buffer: ArrayBufferLike;

-

-    /**

-      * The length in bytes of the array.

-      */

-    readonly byteLength: number;

-

-    /**

-      * The offset in bytes of the array.

-      */

-    readonly byteOffset: number;

-

-    /**

-      * Returns the this object after copying a section of the array identified by start and end

-      * to the same array starting at position target

-      * @param target If target is negative, it is treated as length+target where length is the

-      * length of the array.

-      * @param start If start is negative, it is treated as length+start. If end is negative, it

-      * is treated as length+end.

-      * @param end If not specified, length of the this object is used as its default value.

-      */

-    copyWithin(target: number, start: number, end?: number): this;

-

-    /**

-      * Determines whether all the members of an array satisfy the specified test.

-      * @param callbackfn A function that accepts up to three arguments. The every method calls

-      * the callbackfn function for each element in array1 until the callbackfn returns false,

-      * or until the end of the array.

-      * @param thisArg An object to which the this keyword can refer in the callbackfn function.

-      * If thisArg is omitted, undefined is used as the this value.

-      */

-    every(callbackfn: (value: number, index: number, array: Int8Array) => boolean, thisArg?: any): boolean;

-

-    /**

-        * Returns the this object after filling the section identified by start and end with value

-        * @param value value to fill array section with

-        * @param start index to start filling the array at. If start is negative, it is treated as

-        * length+start where length is the length of the array.

-        * @param end index to stop filling the array at. If end is negative, it is treated as

-        * length+end.

-        */

-    fill(value: number, start?: number, end?: number): this;

-

-    /**

-      * Returns the elements of an array that meet the condition specified in a callback function.

-      * @param callbackfn A function that accepts up to three arguments. The filter method calls

-      * the callbackfn function one time for each element in the array.

-      * @param thisArg An object to which the this keyword can refer in the callbackfn function.

-      * If thisArg is omitted, undefined is used as the this value.

-      */

-    filter(callbackfn: (value: number, index: number, array: Int8Array) => any, thisArg?: any): Int8Array;

-

-    /**

-      * Returns the value of the first element in the array where predicate is true, and undefined

-      * otherwise.

-      * @param predicate find calls predicate once for each element of the array, in ascending

-      * order, until it finds one where predicate returns true. If such an element is found, find

-      * immediately returns that element value. Otherwise, find returns undefined.

-      * @param thisArg If provided, it will be used as the this value for each invocation of

-      * predicate. If it is not provided, undefined is used instead.

-      */

-    find(predicate: (value: number, index: number, obj: Int8Array) => boolean, thisArg?: any): number | undefined;

-

-    /**

-      * Returns the index of the first element in the array where predicate is true, and -1

-      * otherwise.

-      * @param predicate find calls predicate once for each element of the array, in ascending

-      * order, until it finds one where predicate returns true. If such an element is found,

-      * findIndex immediately returns that element index. Otherwise, findIndex returns -1.

-      * @param thisArg If provided, it will be used as the this value for each invocation of

-      * predicate. If it is not provided, undefined is used instead.

-      */

-    findIndex(predicate: (value: number, index: number, obj: Int8Array) => boolean, thisArg?: any): number;

-

-    /**

-      * Performs the specified action for each element in an array.

-      * @param callbackfn  A function that accepts up to three arguments. forEach calls the

-      * callbackfn function one time for each element in the array.

-      * @param thisArg  An object to which the this keyword can refer in the callbackfn function.

-      * If thisArg is omitted, undefined is used as the this value.

-      */

-    forEach(callbackfn: (value: number, index: number, array: Int8Array) => void, thisArg?: any): void;

-

-    /**

-      * Returns the index of the first occurrence of a value in an array.

-      * @param searchElement The value to locate in the array.

-      * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the

-      *  search starts at index 0.

-      */

-    indexOf(searchElement: number, fromIndex?: number): number;

-

-    /**

-      * Adds all the elements of an array separated by the specified separator string.

-      * @param separator A string used to separate one element of an array from the next in the

-      * resulting String. If omitted, the array elements are separated with a comma.

-      */

-    join(separator?: string): string;

-

-    /**

-      * Returns the index of the last occurrence of a value in an array.

-      * @param searchElement The value to locate in the array.

-      * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the

-      * search starts at index 0.

-      */

-    lastIndexOf(searchElement: number, fromIndex?: number): number;

-

-    /**

-      * The length of the array.

-      */

-    readonly length: number;

-

-    /**

-      * Calls a defined callback function on each element of an array, and returns an array that

-      * contains the results.

-      * @param callbackfn A function that accepts up to three arguments. The map method calls the

-      * callbackfn function one time for each element in the array.

-      * @param thisArg An object to which the this keyword can refer in the callbackfn function.

-      * If thisArg is omitted, undefined is used as the this value.

-      */

-    map(callbackfn: (value: number, index: number, array: Int8Array) => number, thisArg?: any): Int8Array;

-

-    /**

-      * Calls the specified callback function for all the elements in an array. The return value of

-      * the callback function is the accumulated result, and is provided as an argument in the next

-      * call to the callback function.

-      * @param callbackfn A function that accepts up to four arguments. The reduce method calls the

-      * callbackfn function one time for each element in the array.

-      * @param initialValue If initialValue is specified, it is used as the initial value to start

-      * the accumulation. The first call to the callbackfn function provides this value as an argument

-      * instead of an array value.

-      */

-    reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Int8Array) => number): number;

-    reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Int8Array) => number, initialValue: number): number;

-

-    /**

-      * Calls the specified callback function for all the elements in an array. The return value of

-      * the callback function is the accumulated result, and is provided as an argument in the next

-      * call to the callback function.

-      * @param callbackfn A function that accepts up to four arguments. The reduce method calls the

-      * callbackfn function one time for each element in the array.

-      * @param initialValue If initialValue is specified, it is used as the initial value to start

-      * the accumulation. The first call to the callbackfn function provides this value as an argument

-      * instead of an array value.

-      */

-    reduce<U>(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Int8Array) => U, initialValue: U): U;

-

-    /**

-      * Calls the specified callback function for all the elements in an array, in descending order.

-      * The return value of the callback function is the accumulated result, and is provided as an

-      * argument in the next call to the callback function.

-      * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls

-      * the callbackfn function one time for each element in the array.

-      * @param initialValue If initialValue is specified, it is used as the initial value to start

-      * the accumulation. The first call to the callbackfn function provides this value as an

-      * argument instead of an array value.

-      */

-    reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Int8Array) => number): number;

-    reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Int8Array) => number, initialValue: number): number;

-

-    /**

-      * Calls the specified callback function for all the elements in an array, in descending order.

-      * The return value of the callback function is the accumulated result, and is provided as an

-      * argument in the next call to the callback function.

-      * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls

-      * the callbackfn function one time for each element in the array.

-      * @param initialValue If initialValue is specified, it is used as the initial value to start

-      * the accumulation. The first call to the callbackfn function provides this value as an argument

-      * instead of an array value.

-      */

-    reduceRight<U>(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Int8Array) => U, initialValue: U): U;

-

-    /**

-      * Reverses the elements in an Array.

-      */

-    reverse(): Int8Array;

-

-    /**

-      * Sets a value or an array of values.

-      * @param array A typed or untyped array of values to set.

-      * @param offset The index in the current array at which the values are to be written.

-      */

-    set(array: ArrayLike<number>, offset?: number): void;

-

-    /**

-      * Returns a section of an array.

-      * @param start The beginning of the specified portion of the array.

-      * @param end The end of the specified portion of the array.

-      */

-    slice(start?: number, end?: number): Int8Array;

-

-    /**

-      * Determines whether the specified callback function returns true for any element of an array.

-      * @param callbackfn A function that accepts up to three arguments. The some method calls the

-      * callbackfn function for each element in array1 until the callbackfn returns true, or until

-      * the end of the array.

-      * @param thisArg An object to which the this keyword can refer in the callbackfn function.

-      * If thisArg is omitted, undefined is used as the this value.

-      */

-    some(callbackfn: (value: number, index: number, array: Int8Array) => boolean, thisArg?: any): boolean;

-

-    /**

-      * Sorts an array.

-      * @param compareFn The name of the function used to determine the order of the elements. If

-      * omitted, the elements are sorted in ascending, ASCII character order.

-      */

-    sort(compareFn?: (a: number, b: number) => number): this;

-

-    /**

-      * Gets a new Int8Array view of the ArrayBuffer store for this array, referencing the elements

-      * at begin, inclusive, up to end, exclusive.

-      * @param begin The index of the beginning of the array.

-      * @param end The index of the end of the array.

-      */

-    subarray(begin: number, end?: number): Int8Array;

-

-    /**

-      * Converts a number to a string by using the current locale.

-      */

-    toLocaleString(): string;

-

-    /**

-      * Returns a string representation of an array.

-      */

-    toString(): string;

-

-    [index: number]: number;

-}

-interface Int8ArrayConstructor {

-    readonly prototype: Int8Array;

-    new(length: number): Int8Array;

-    new(arrayOrArrayBuffer: ArrayLike<number> | ArrayBufferLike): Int8Array;

-    new(buffer: ArrayBufferLike, byteOffset: number, length?: number): Int8Array;

-

-    /**

-      * The size in bytes of each element in the array.

-      */

-    readonly BYTES_PER_ELEMENT: number;

-

-    /**

-      * Returns a new array from a set of elements.

-      * @param items A set of elements to include in the new array object.

-      */

-    of(...items: number[]): Int8Array;

-

-    /**

-      * Creates an array from an array-like or iterable object.

-      * @param arrayLike An array-like or iterable object to convert to an array.

-      */

-    from(arrayLike: ArrayLike<number>): Int8Array;

-

-    /**

-      * Creates an array from an array-like or iterable object.

-      * @param arrayLike An array-like or iterable object to convert to an array.

-      * @param mapfn A mapping function to call on every element of the array.

-      * @param thisArg Value of 'this' used to invoke the mapfn.

-      */

-    from<T>(arrayLike: ArrayLike<T>, mapfn: (v: T, k: number) => number, thisArg?: any): Int8Array;

-

-

-}

-declare var Int8Array: Int8ArrayConstructor;

-

-/**

-  * A typed array of 8-bit unsigned integer values. The contents are initialized to 0. If the

-  * requested number of bytes could not be allocated an exception is raised.

-  */

-interface Uint8Array {

-    /**

-      * The size in bytes of each element in the array.

-      */

-    readonly BYTES_PER_ELEMENT: number;

-

-    /**

-      * The ArrayBuffer instance referenced by the array.

-      */

-    readonly buffer: ArrayBufferLike;

-

-    /**

-      * The length in bytes of the array.

-      */

-    readonly byteLength: number;

-

-    /**

-      * The offset in bytes of the array.

-      */

-    readonly byteOffset: number;

-

-    /**

-      * Returns the this object after copying a section of the array identified by start and end

-      * to the same array starting at position target

-      * @param target If target is negative, it is treated as length+target where length is the

-      * length of the array.

-      * @param start If start is negative, it is treated as length+start. If end is negative, it

-      * is treated as length+end.

-      * @param end If not specified, length of the this object is used as its default value.

-      */

-    copyWithin(target: number, start: number, end?: number): this;

-

-    /**

-      * Determines whether all the members of an array satisfy the specified test.

-      * @param callbackfn A function that accepts up to three arguments. The every method calls

-      * the callbackfn function for each element in array1 until the callbackfn returns false,

-      * or until the end of the array.

-      * @param thisArg An object to which the this keyword can refer in the callbackfn function.

-      * If thisArg is omitted, undefined is used as the this value.

-      */

-    every(callbackfn: (value: number, index: number, array: Uint8Array) => boolean, thisArg?: any): boolean;

-

-    /**

-        * Returns the this object after filling the section identified by start and end with value

-        * @param value value to fill array section with

-        * @param start index to start filling the array at. If start is negative, it is treated as

-        * length+start where length is the length of the array.

-        * @param end index to stop filling the array at. If end is negative, it is treated as

-        * length+end.

-        */

-    fill(value: number, start?: number, end?: number): this;

-

-    /**

-      * Returns the elements of an array that meet the condition specified in a callback function.

-      * @param callbackfn A function that accepts up to three arguments. The filter method calls

-      * the callbackfn function one time for each element in the array.

-      * @param thisArg An object to which the this keyword can refer in the callbackfn function.

-      * If thisArg is omitted, undefined is used as the this value.

-      */

-    filter(callbackfn: (value: number, index: number, array: Uint8Array) => any, thisArg?: any): Uint8Array;

-

-    /**

-      * Returns the value of the first element in the array where predicate is true, and undefined

-      * otherwise.

-      * @param predicate find calls predicate once for each element of the array, in ascending

-      * order, until it finds one where predicate returns true. If such an element is found, find

-      * immediately returns that element value. Otherwise, find returns undefined.

-      * @param thisArg If provided, it will be used as the this value for each invocation of

-      * predicate. If it is not provided, undefined is used instead.

-      */

-    find(predicate: (value: number, index: number, obj: Uint8Array) => boolean, thisArg?: any): number | undefined;

-

-    /**

-      * Returns the index of the first element in the array where predicate is true, and -1

-      * otherwise.

-      * @param predicate find calls predicate once for each element of the array, in ascending

-      * order, until it finds one where predicate returns true. If such an element is found,

-      * findIndex immediately returns that element index. Otherwise, findIndex returns -1.

-      * @param thisArg If provided, it will be used as the this value for each invocation of

-      * predicate. If it is not provided, undefined is used instead.

-      */

-    findIndex(predicate: (value: number, index: number, obj: Uint8Array) => boolean, thisArg?: any): number;

-

-    /**

-      * Performs the specified action for each element in an array.

-      * @param callbackfn  A function that accepts up to three arguments. forEach calls the

-      * callbackfn function one time for each element in the array.

-      * @param thisArg  An object to which the this keyword can refer in the callbackfn function.

-      * If thisArg is omitted, undefined is used as the this value.

-      */

-    forEach(callbackfn: (value: number, index: number, array: Uint8Array) => void, thisArg?: any): void;

-

-    /**

-      * Returns the index of the first occurrence of a value in an array.

-      * @param searchElement The value to locate in the array.

-      * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the

-      *  search starts at index 0.

-      */

-    indexOf(searchElement: number, fromIndex?: number): number;

-

-    /**

-      * Adds all the elements of an array separated by the specified separator string.

-      * @param separator A string used to separate one element of an array from the next in the

-      * resulting String. If omitted, the array elements are separated with a comma.

-      */

-    join(separator?: string): string;

-

-    /**

-      * Returns the index of the last occurrence of a value in an array.

-      * @param searchElement The value to locate in the array.

-      * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the

-      * search starts at index 0.

-      */

-    lastIndexOf(searchElement: number, fromIndex?: number): number;

-

-    /**

-      * The length of the array.

-      */

-    readonly length: number;

-

-    /**

-      * Calls a defined callback function on each element of an array, and returns an array that

-      * contains the results.

-      * @param callbackfn A function that accepts up to three arguments. The map method calls the

-      * callbackfn function one time for each element in the array.

-      * @param thisArg An object to which the this keyword can refer in the callbackfn function.

-      * If thisArg is omitted, undefined is used as the this value.

-      */

-    map(callbackfn: (value: number, index: number, array: Uint8Array) => number, thisArg?: any): Uint8Array;

-

-    /**

-      * Calls the specified callback function for all the elements in an array. The return value of

-      * the callback function is the accumulated result, and is provided as an argument in the next

-      * call to the callback function.

-      * @param callbackfn A function that accepts up to four arguments. The reduce method calls the

-      * callbackfn function one time for each element in the array.

-      * @param initialValue If initialValue is specified, it is used as the initial value to start

-      * the accumulation. The first call to the callbackfn function provides this value as an argument

-      * instead of an array value.

-      */

-    reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint8Array) => number): number;

-    reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint8Array) => number, initialValue: number): number;

-

-    /**

-      * Calls the specified callback function for all the elements in an array. The return value of

-      * the callback function is the accumulated result, and is provided as an argument in the next

-      * call to the callback function.

-      * @param callbackfn A function that accepts up to four arguments. The reduce method calls the

-      * callbackfn function one time for each element in the array.

-      * @param initialValue If initialValue is specified, it is used as the initial value to start

-      * the accumulation. The first call to the callbackfn function provides this value as an argument

-      * instead of an array value.

-      */

-    reduce<U>(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Uint8Array) => U, initialValue: U): U;

-

-    /**

-      * Calls the specified callback function for all the elements in an array, in descending order.

-      * The return value of the callback function is the accumulated result, and is provided as an

-      * argument in the next call to the callback function.

-      * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls

-      * the callbackfn function one time for each element in the array.

-      * @param initialValue If initialValue is specified, it is used as the initial value to start

-      * the accumulation. The first call to the callbackfn function provides this value as an

-      * argument instead of an array value.

-      */

-    reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint8Array) => number): number;

-    reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint8Array) => number, initialValue: number): number;

-

-    /**

-      * Calls the specified callback function for all the elements in an array, in descending order.

-      * The return value of the callback function is the accumulated result, and is provided as an

-      * argument in the next call to the callback function.

-      * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls

-      * the callbackfn function one time for each element in the array.

-      * @param initialValue If initialValue is specified, it is used as the initial value to start

-      * the accumulation. The first call to the callbackfn function provides this value as an argument

-      * instead of an array value.

-      */

-    reduceRight<U>(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Uint8Array) => U, initialValue: U): U;

-

-    /**

-      * Reverses the elements in an Array.

-      */

-    reverse(): Uint8Array;

-

-    /**

-      * Sets a value or an array of values.

-      * @param array A typed or untyped array of values to set.

-      * @param offset The index in the current array at which the values are to be written.

-      */

-    set(array: ArrayLike<number>, offset?: number): void;

-

-    /**

-      * Returns a section of an array.

-      * @param start The beginning of the specified portion of the array.

-      * @param end The end of the specified portion of the array.

-      */

-    slice(start?: number, end?: number): Uint8Array;

-

-    /**

-      * Determines whether the specified callback function returns true for any element of an array.

-      * @param callbackfn A function that accepts up to three arguments. The some method calls the

-      * callbackfn function for each element in array1 until the callbackfn returns true, or until

-      * the end of the array.

-      * @param thisArg An object to which the this keyword can refer in the callbackfn function.

-      * If thisArg is omitted, undefined is used as the this value.

-      */

-    some(callbackfn: (value: number, index: number, array: Uint8Array) => boolean, thisArg?: any): boolean;

-

-    /**

-      * Sorts an array.

-      * @param compareFn The name of the function used to determine the order of the elements. If

-      * omitted, the elements are sorted in ascending, ASCII character order.

-      */

-    sort(compareFn?: (a: number, b: number) => number): this;

-

-    /**

-      * Gets a new Uint8Array view of the ArrayBuffer store for this array, referencing the elements

-      * at begin, inclusive, up to end, exclusive.

-      * @param begin The index of the beginning of the array.

-      * @param end The index of the end of the array.

-      */

-    subarray(begin: number, end?: number): Uint8Array;

-

-    /**

-      * Converts a number to a string by using the current locale.

-      */

-    toLocaleString(): string;

-

-    /**

-      * Returns a string representation of an array.

-      */

-    toString(): string;

-

-    [index: number]: number;

-}

-

-interface Uint8ArrayConstructor {

-    readonly prototype: Uint8Array;

-    new(length: number): Uint8Array;

-    new(arrayOrArrayBuffer: ArrayLike<number> | ArrayBufferLike): Uint8Array;

-    new(buffer: ArrayBufferLike, byteOffset: number, length?: number): Uint8Array;

-

-    /**

-      * The size in bytes of each element in the array.

-      */

-    readonly BYTES_PER_ELEMENT: number;

-

-    /**

-      * Returns a new array from a set of elements.

-      * @param items A set of elements to include in the new array object.

-      */

-    of(...items: number[]): Uint8Array;

-

-    /**

-      * Creates an array from an array-like or iterable object.

-      * @param arrayLike An array-like or iterable object to convert to an array.

-      */

-    from(arrayLike: ArrayLike<number>): Uint8Array;

-

-    /**

-      * Creates an array from an array-like or iterable object.

-      * @param arrayLike An array-like or iterable object to convert to an array.

-      * @param mapfn A mapping function to call on every element of the array.

-      * @param thisArg Value of 'this' used to invoke the mapfn.

-      */

-    from<T>(arrayLike: ArrayLike<T>, mapfn: (v: T, k: number) => number, thisArg?: any): Uint8Array;

-

-}

-declare var Uint8Array: Uint8ArrayConstructor;

-

-/**

-  * A typed array of 8-bit unsigned integer (clamped) values. The contents are initialized to 0.

-  * If the requested number of bytes could not be allocated an exception is raised.

-  */

-interface Uint8ClampedArray {

-    /**

-      * The size in bytes of each element in the array.

-      */

-    readonly BYTES_PER_ELEMENT: number;

-

-    /**

-      * The ArrayBuffer instance referenced by the array.

-      */

-    readonly buffer: ArrayBufferLike;

-

-    /**

-      * The length in bytes of the array.

-      */

-    readonly byteLength: number;

-

-    /**

-      * The offset in bytes of the array.

-      */

-    readonly byteOffset: number;

-

-    /**

-      * Returns the this object after copying a section of the array identified by start and end

-      * to the same array starting at position target

-      * @param target If target is negative, it is treated as length+target where length is the

-      * length of the array.

-      * @param start If start is negative, it is treated as length+start. If end is negative, it

-      * is treated as length+end.

-      * @param end If not specified, length of the this object is used as its default value.

-      */

-    copyWithin(target: number, start: number, end?: number): this;

-

-    /**

-      * Determines whether all the members of an array satisfy the specified test.

-      * @param callbackfn A function that accepts up to three arguments. The every method calls

-      * the callbackfn function for each element in array1 until the callbackfn returns false,

-      * or until the end of the array.

-      * @param thisArg An object to which the this keyword can refer in the callbackfn function.

-      * If thisArg is omitted, undefined is used as the this value.

-      */

-    every(callbackfn: (value: number, index: number, array: Uint8ClampedArray) => boolean, thisArg?: any): boolean;

-

-    /**

-        * Returns the this object after filling the section identified by start and end with value

-        * @param value value to fill array section with

-        * @param start index to start filling the array at. If start is negative, it is treated as

-        * length+start where length is the length of the array.

-        * @param end index to stop filling the array at. If end is negative, it is treated as

-        * length+end.

-        */

-    fill(value: number, start?: number, end?: number): this;

-

-    /**

-      * Returns the elements of an array that meet the condition specified in a callback function.

-      * @param callbackfn A function that accepts up to three arguments. The filter method calls

-      * the callbackfn function one time for each element in the array.

-      * @param thisArg An object to which the this keyword can refer in the callbackfn function.

-      * If thisArg is omitted, undefined is used as the this value.

-      */

-    filter(callbackfn: (value: number, index: number, array: Uint8ClampedArray) => any, thisArg?: any): Uint8ClampedArray;

-

-    /**

-      * Returns the value of the first element in the array where predicate is true, and undefined

-      * otherwise.

-      * @param predicate find calls predicate once for each element of the array, in ascending

-      * order, until it finds one where predicate returns true. If such an element is found, find

-      * immediately returns that element value. Otherwise, find returns undefined.

-      * @param thisArg If provided, it will be used as the this value for each invocation of

-      * predicate. If it is not provided, undefined is used instead.

-      */

-    find(predicate: (value: number, index: number, obj: Uint8ClampedArray) => boolean, thisArg?: any): number | undefined;

-

-    /**

-      * Returns the index of the first element in the array where predicate is true, and -1

-      * otherwise.

-      * @param predicate find calls predicate once for each element of the array, in ascending

-      * order, until it finds one where predicate returns true. If such an element is found,

-      * findIndex immediately returns that element index. Otherwise, findIndex returns -1.

-      * @param thisArg If provided, it will be used as the this value for each invocation of

-      * predicate. If it is not provided, undefined is used instead.

-      */

-    findIndex(predicate: (value: number, index: number, obj: Uint8ClampedArray) => boolean, thisArg?: any): number;

-

-    /**

-      * Performs the specified action for each element in an array.

-      * @param callbackfn  A function that accepts up to three arguments. forEach calls the

-      * callbackfn function one time for each element in the array.

-      * @param thisArg  An object to which the this keyword can refer in the callbackfn function.

-      * If thisArg is omitted, undefined is used as the this value.

-      */

-    forEach(callbackfn: (value: number, index: number, array: Uint8ClampedArray) => void, thisArg?: any): void;

-

-    /**

-      * Returns the index of the first occurrence of a value in an array.

-      * @param searchElement The value to locate in the array.

-      * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the

-      *  search starts at index 0.

-      */

-    indexOf(searchElement: number, fromIndex?: number): number;

-

-    /**

-      * Adds all the elements of an array separated by the specified separator string.

-      * @param separator A string used to separate one element of an array from the next in the

-      * resulting String. If omitted, the array elements are separated with a comma.

-      */

-    join(separator?: string): string;

-

-    /**

-      * Returns the index of the last occurrence of a value in an array.

-      * @param searchElement The value to locate in the array.

-      * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the

-      * search starts at index 0.

-      */

-    lastIndexOf(searchElement: number, fromIndex?: number): number;

-

-    /**

-      * The length of the array.

-      */

-    readonly length: number;

-

-    /**

-      * Calls a defined callback function on each element of an array, and returns an array that

-      * contains the results.

-      * @param callbackfn A function that accepts up to three arguments. The map method calls the

-      * callbackfn function one time for each element in the array.

-      * @param thisArg An object to which the this keyword can refer in the callbackfn function.

-      * If thisArg is omitted, undefined is used as the this value.

-      */

-    map(callbackfn: (value: number, index: number, array: Uint8ClampedArray) => number, thisArg?: any): Uint8ClampedArray;

-

-    /**

-      * Calls the specified callback function for all the elements in an array. The return value of

-      * the callback function is the accumulated result, and is provided as an argument in the next

-      * call to the callback function.

-      * @param callbackfn A function that accepts up to four arguments. The reduce method calls the

-      * callbackfn function one time for each element in the array.

-      * @param initialValue If initialValue is specified, it is used as the initial value to start

-      * the accumulation. The first call to the callbackfn function provides this value as an argument

-      * instead of an array value.

-      */

-    reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint8ClampedArray) => number): number;

-    reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint8ClampedArray) => number, initialValue: number): number;

-

-    /**

-      * Calls the specified callback function for all the elements in an array. The return value of

-      * the callback function is the accumulated result, and is provided as an argument in the next

-      * call to the callback function.

-      * @param callbackfn A function that accepts up to four arguments. The reduce method calls the

-      * callbackfn function one time for each element in the array.

-      * @param initialValue If initialValue is specified, it is used as the initial value to start

-      * the accumulation. The first call to the callbackfn function provides this value as an argument

-      * instead of an array value.

-      */

-    reduce<U>(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Uint8ClampedArray) => U, initialValue: U): U;

-

-    /**

-      * Calls the specified callback function for all the elements in an array, in descending order.

-      * The return value of the callback function is the accumulated result, and is provided as an

-      * argument in the next call to the callback function.

-      * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls

-      * the callbackfn function one time for each element in the array.

-      * @param initialValue If initialValue is specified, it is used as the initial value to start

-      * the accumulation. The first call to the callbackfn function provides this value as an

-      * argument instead of an array value.

-      */

-    reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint8ClampedArray) => number): number;

-    reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint8ClampedArray) => number, initialValue: number): number;

-

-    /**

-      * Calls the specified callback function for all the elements in an array, in descending order.

-      * The return value of the callback function is the accumulated result, and is provided as an

-      * argument in the next call to the callback function.

-      * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls

-      * the callbackfn function one time for each element in the array.

-      * @param initialValue If initialValue is specified, it is used as the initial value to start

-      * the accumulation. The first call to the callbackfn function provides this value as an argument

-      * instead of an array value.

-      */

-    reduceRight<U>(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Uint8ClampedArray) => U, initialValue: U): U;

-

-    /**

-      * Reverses the elements in an Array.

-      */

-    reverse(): Uint8ClampedArray;

-

-    /**

-      * Sets a value or an array of values.

-      * @param array A typed or untyped array of values to set.

-      * @param offset The index in the current array at which the values are to be written.

-      */

-    set(array: ArrayLike<number>, offset?: number): void;

-

-    /**

-      * Returns a section of an array.

-      * @param start The beginning of the specified portion of the array.

-      * @param end The end of the specified portion of the array.

-      */

-    slice(start?: number, end?: number): Uint8ClampedArray;

-

-    /**

-      * Determines whether the specified callback function returns true for any element of an array.

-      * @param callbackfn A function that accepts up to three arguments. The some method calls the

-      * callbackfn function for each element in array1 until the callbackfn returns true, or until

-      * the end of the array.

-      * @param thisArg An object to which the this keyword can refer in the callbackfn function.

-      * If thisArg is omitted, undefined is used as the this value.

-      */

-    some(callbackfn: (value: number, index: number, array: Uint8ClampedArray) => boolean, thisArg?: any): boolean;

-

-    /**

-      * Sorts an array.

-      * @param compareFn The name of the function used to determine the order of the elements. If

-      * omitted, the elements are sorted in ascending, ASCII character order.

-      */

-    sort(compareFn?: (a: number, b: number) => number): this;

-

-    /**

-      * Gets a new Uint8ClampedArray view of the ArrayBuffer store for this array, referencing the elements

-      * at begin, inclusive, up to end, exclusive.

-      * @param begin The index of the beginning of the array.

-      * @param end The index of the end of the array.

-      */

-    subarray(begin: number, end?: number): Uint8ClampedArray;

-

-    /**

-      * Converts a number to a string by using the current locale.

-      */

-    toLocaleString(): string;

-

-    /**

-      * Returns a string representation of an array.

-      */

-    toString(): string;

-

-    [index: number]: number;

-}

-

-interface Uint8ClampedArrayConstructor {

-    readonly prototype: Uint8ClampedArray;

-    new(length: number): Uint8ClampedArray;

-    new(arrayOrArrayBuffer: ArrayLike<number> | ArrayBufferLike): Uint8ClampedArray;

-    new(buffer: ArrayBufferLike, byteOffset: number, length?: number): Uint8ClampedArray;

-

-    /**

-      * The size in bytes of each element in the array.

-      */

-    readonly BYTES_PER_ELEMENT: number;

-

-    /**

-      * Returns a new array from a set of elements.

-      * @param items A set of elements to include in the new array object.

-      */

-    of(...items: number[]): Uint8ClampedArray;

-

-    /**

-      * Creates an array from an array-like or iterable object.

-      * @param arrayLike An array-like or iterable object to convert to an array.

-      */

-    from(arrayLike: ArrayLike<number>): Uint8ClampedArray;

-

-    /**

-      * Creates an array from an array-like or iterable object.

-      * @param arrayLike An array-like or iterable object to convert to an array.

-      * @param mapfn A mapping function to call on every element of the array.

-      * @param thisArg Value of 'this' used to invoke the mapfn.

-      */

-    from<T>(arrayLike: ArrayLike<T>, mapfn: (v: T, k: number) => number, thisArg?: any): Uint8ClampedArray;

-}

-declare var Uint8ClampedArray: Uint8ClampedArrayConstructor;

-

-/**

-  * A typed array of 16-bit signed integer values. The contents are initialized to 0. If the

-  * requested number of bytes could not be allocated an exception is raised.

-  */

-interface Int16Array {

-    /**

-      * The size in bytes of each element in the array.

-      */

-    readonly BYTES_PER_ELEMENT: number;

-

-    /**

-      * The ArrayBuffer instance referenced by the array.

-      */

-    readonly buffer: ArrayBufferLike;

-

-    /**

-      * The length in bytes of the array.

-      */

-    readonly byteLength: number;

-

-    /**

-      * The offset in bytes of the array.

-      */

-    readonly byteOffset: number;

-

-    /**

-      * Returns the this object after copying a section of the array identified by start and end

-      * to the same array starting at position target

-      * @param target If target is negative, it is treated as length+target where length is the

-      * length of the array.

-      * @param start If start is negative, it is treated as length+start. If end is negative, it

-      * is treated as length+end.

-      * @param end If not specified, length of the this object is used as its default value.

-      */

-    copyWithin(target: number, start: number, end?: number): this;

-

-    /**

-      * Determines whether all the members of an array satisfy the specified test.

-      * @param callbackfn A function that accepts up to three arguments. The every method calls

-      * the callbackfn function for each element in array1 until the callbackfn returns false,

-      * or until the end of the array.

-      * @param thisArg An object to which the this keyword can refer in the callbackfn function.

-      * If thisArg is omitted, undefined is used as the this value.

-      */

-    every(callbackfn: (value: number, index: number, array: Int16Array) => boolean, thisArg?: any): boolean;

-

-    /**

-        * Returns the this object after filling the section identified by start and end with value

-        * @param value value to fill array section with

-        * @param start index to start filling the array at. If start is negative, it is treated as

-        * length+start where length is the length of the array.

-        * @param end index to stop filling the array at. If end is negative, it is treated as

-        * length+end.

-        */

-    fill(value: number, start?: number, end?: number): this;

-

-    /**

-      * Returns the elements of an array that meet the condition specified in a callback function.

-      * @param callbackfn A function that accepts up to three arguments. The filter method calls

-      * the callbackfn function one time for each element in the array.

-      * @param thisArg An object to which the this keyword can refer in the callbackfn function.

-      * If thisArg is omitted, undefined is used as the this value.

-      */

-    filter(callbackfn: (value: number, index: number, array: Int16Array) => any, thisArg?: any): Int16Array;

-

-    /**

-      * Returns the value of the first element in the array where predicate is true, and undefined

-      * otherwise.

-      * @param predicate find calls predicate once for each element of the array, in ascending

-      * order, until it finds one where predicate returns true. If such an element is found, find

-      * immediately returns that element value. Otherwise, find returns undefined.

-      * @param thisArg If provided, it will be used as the this value for each invocation of

-      * predicate. If it is not provided, undefined is used instead.

-      */

-    find(predicate: (value: number, index: number, obj: Int16Array) => boolean, thisArg?: any): number | undefined;

-

-    /**

-      * Returns the index of the first element in the array where predicate is true, and -1

-      * otherwise.

-      * @param predicate find calls predicate once for each element of the array, in ascending

-      * order, until it finds one where predicate returns true. If such an element is found,

-      * findIndex immediately returns that element index. Otherwise, findIndex returns -1.

-      * @param thisArg If provided, it will be used as the this value for each invocation of

-      * predicate. If it is not provided, undefined is used instead.

-      */

-    findIndex(predicate: (value: number, index: number, obj: Int16Array) => boolean, thisArg?: any): number;

-

-    /**

-      * Performs the specified action for each element in an array.

-      * @param callbackfn  A function that accepts up to three arguments. forEach calls the

-      * callbackfn function one time for each element in the array.

-      * @param thisArg  An object to which the this keyword can refer in the callbackfn function.

-      * If thisArg is omitted, undefined is used as the this value.

-      */

-    forEach(callbackfn: (value: number, index: number, array: Int16Array) => void, thisArg?: any): void;

-    /**

-      * Returns the index of the first occurrence of a value in an array.

-      * @param searchElement The value to locate in the array.

-      * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the

-      *  search starts at index 0.

-      */

-    indexOf(searchElement: number, fromIndex?: number): number;

-

-    /**

-      * Adds all the elements of an array separated by the specified separator string.

-      * @param separator A string used to separate one element of an array from the next in the

-      * resulting String. If omitted, the array elements are separated with a comma.

-      */

-    join(separator?: string): string;

-

-    /**

-      * Returns the index of the last occurrence of a value in an array.

-      * @param searchElement The value to locate in the array.

-      * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the

-      * search starts at index 0.

-      */

-    lastIndexOf(searchElement: number, fromIndex?: number): number;

-

-    /**

-      * The length of the array.

-      */

-    readonly length: number;

-

-    /**

-      * Calls a defined callback function on each element of an array, and returns an array that

-      * contains the results.

-      * @param callbackfn A function that accepts up to three arguments. The map method calls the

-      * callbackfn function one time for each element in the array.

-      * @param thisArg An object to which the this keyword can refer in the callbackfn function.

-      * If thisArg is omitted, undefined is used as the this value.

-      */

-    map(callbackfn: (value: number, index: number, array: Int16Array) => number, thisArg?: any): Int16Array;

-

-    /**

-      * Calls the specified callback function for all the elements in an array. The return value of

-      * the callback function is the accumulated result, and is provided as an argument in the next

-      * call to the callback function.

-      * @param callbackfn A function that accepts up to four arguments. The reduce method calls the

-      * callbackfn function one time for each element in the array.

-      * @param initialValue If initialValue is specified, it is used as the initial value to start

-      * the accumulation. The first call to the callbackfn function provides this value as an argument

-      * instead of an array value.

-      */

-    reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Int16Array) => number): number;

-    reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Int16Array) => number, initialValue: number): number;

-

-    /**

-      * Calls the specified callback function for all the elements in an array. The return value of

-      * the callback function is the accumulated result, and is provided as an argument in the next

-      * call to the callback function.

-      * @param callbackfn A function that accepts up to four arguments. The reduce method calls the

-      * callbackfn function one time for each element in the array.

-      * @param initialValue If initialValue is specified, it is used as the initial value to start

-      * the accumulation. The first call to the callbackfn function provides this value as an argument

-      * instead of an array value.

-      */

-    reduce<U>(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Int16Array) => U, initialValue: U): U;

-

-    /**

-      * Calls the specified callback function for all the elements in an array, in descending order.

-      * The return value of the callback function is the accumulated result, and is provided as an

-      * argument in the next call to the callback function.

-      * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls

-      * the callbackfn function one time for each element in the array.

-      * @param initialValue If initialValue is specified, it is used as the initial value to start

-      * the accumulation. The first call to the callbackfn function provides this value as an

-      * argument instead of an array value.

-      */

-    reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Int16Array) => number): number;

-    reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Int16Array) => number, initialValue: number): number;

-

-    /**

-      * Calls the specified callback function for all the elements in an array, in descending order.

-      * The return value of the callback function is the accumulated result, and is provided as an

-      * argument in the next call to the callback function.

-      * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls

-      * the callbackfn function one time for each element in the array.

-      * @param initialValue If initialValue is specified, it is used as the initial value to start

-      * the accumulation. The first call to the callbackfn function provides this value as an argument

-      * instead of an array value.

-      */

-    reduceRight<U>(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Int16Array) => U, initialValue: U): U;

-

-    /**

-      * Reverses the elements in an Array.

-      */

-    reverse(): Int16Array;

-

-    /**

-      * Sets a value or an array of values.

-      * @param array A typed or untyped array of values to set.

-      * @param offset The index in the current array at which the values are to be written.

-      */

-    set(array: ArrayLike<number>, offset?: number): void;

-

-    /**

-      * Returns a section of an array.

-      * @param start The beginning of the specified portion of the array.

-      * @param end The end of the specified portion of the array.

-      */

-    slice(start?: number, end?: number): Int16Array;

-

-    /**

-      * Determines whether the specified callback function returns true for any element of an array.

-      * @param callbackfn A function that accepts up to three arguments. The some method calls the

-      * callbackfn function for each element in array1 until the callbackfn returns true, or until

-      * the end of the array.

-      * @param thisArg An object to which the this keyword can refer in the callbackfn function.

-      * If thisArg is omitted, undefined is used as the this value.

-      */

-    some(callbackfn: (value: number, index: number, array: Int16Array) => boolean, thisArg?: any): boolean;

-

-    /**

-      * Sorts an array.

-      * @param compareFn The name of the function used to determine the order of the elements. If

-      * omitted, the elements are sorted in ascending, ASCII character order.

-      */

-    sort(compareFn?: (a: number, b: number) => number): this;

-

-    /**

-      * Gets a new Int16Array view of the ArrayBuffer store for this array, referencing the elements

-      * at begin, inclusive, up to end, exclusive.

-      * @param begin The index of the beginning of the array.

-      * @param end The index of the end of the array.

-      */

-    subarray(begin: number, end?: number): Int16Array;

-

-    /**

-      * Converts a number to a string by using the current locale.

-      */

-    toLocaleString(): string;

-

-    /**

-      * Returns a string representation of an array.

-      */

-    toString(): string;

-

-    [index: number]: number;

-}

-

-interface Int16ArrayConstructor {

-    readonly prototype: Int16Array;

-    new(length: number): Int16Array;

-    new(arrayOrArrayBuffer: ArrayLike<number> | ArrayBufferLike): Int16Array;

-    new(buffer: ArrayBufferLike, byteOffset: number, length?: number): Int16Array;

-

-    /**

-      * The size in bytes of each element in the array.

-      */

-    readonly BYTES_PER_ELEMENT: number;

-

-    /**

-      * Returns a new array from a set of elements.

-      * @param items A set of elements to include in the new array object.

-      */

-    of(...items: number[]): Int16Array;

-

-    /**

-      * Creates an array from an array-like or iterable object.

-      * @param arrayLike An array-like or iterable object to convert to an array.

-      */

-    from(arrayLike: ArrayLike<number>): Int16Array;

-

-    /**

-      * Creates an array from an array-like or iterable object.

-      * @param arrayLike An array-like or iterable object to convert to an array.

-      * @param mapfn A mapping function to call on every element of the array.

-      * @param thisArg Value of 'this' used to invoke the mapfn.

-      */

-    from<T>(arrayLike: ArrayLike<T>, mapfn: (v: T, k: number) => number, thisArg?: any): Int16Array;

-

-

-}

-declare var Int16Array: Int16ArrayConstructor;

-

-/**

-  * A typed array of 16-bit unsigned integer values. The contents are initialized to 0. If the

-  * requested number of bytes could not be allocated an exception is raised.

-  */

-interface Uint16Array {

-    /**

-      * The size in bytes of each element in the array.

-      */

-    readonly BYTES_PER_ELEMENT: number;

-

-    /**

-      * The ArrayBuffer instance referenced by the array.

-      */

-    readonly buffer: ArrayBufferLike;

-

-    /**

-      * The length in bytes of the array.

-      */

-    readonly byteLength: number;

-

-    /**

-      * The offset in bytes of the array.

-      */

-    readonly byteOffset: number;

-

-    /**

-      * Returns the this object after copying a section of the array identified by start and end

-      * to the same array starting at position target

-      * @param target If target is negative, it is treated as length+target where length is the

-      * length of the array.

-      * @param start If start is negative, it is treated as length+start. If end is negative, it

-      * is treated as length+end.

-      * @param end If not specified, length of the this object is used as its default value.

-      */

-    copyWithin(target: number, start: number, end?: number): this;

-

-    /**

-      * Determines whether all the members of an array satisfy the specified test.

-      * @param callbackfn A function that accepts up to three arguments. The every method calls

-      * the callbackfn function for each element in array1 until the callbackfn returns false,

-      * or until the end of the array.

-      * @param thisArg An object to which the this keyword can refer in the callbackfn function.

-      * If thisArg is omitted, undefined is used as the this value.

-      */

-    every(callbackfn: (value: number, index: number, array: Uint16Array) => boolean, thisArg?: any): boolean;

-

-    /**

-        * Returns the this object after filling the section identified by start and end with value

-        * @param value value to fill array section with

-        * @param start index to start filling the array at. If start is negative, it is treated as

-        * length+start where length is the length of the array.

-        * @param end index to stop filling the array at. If end is negative, it is treated as

-        * length+end.

-        */

-    fill(value: number, start?: number, end?: number): this;

-

-    /**

-      * Returns the elements of an array that meet the condition specified in a callback function.

-      * @param callbackfn A function that accepts up to three arguments. The filter method calls

-      * the callbackfn function one time for each element in the array.

-      * @param thisArg An object to which the this keyword can refer in the callbackfn function.

-      * If thisArg is omitted, undefined is used as the this value.

-      */

-    filter(callbackfn: (value: number, index: number, array: Uint16Array) => any, thisArg?: any): Uint16Array;

-

-    /**

-      * Returns the value of the first element in the array where predicate is true, and undefined

-      * otherwise.

-      * @param predicate find calls predicate once for each element of the array, in ascending

-      * order, until it finds one where predicate returns true. If such an element is found, find

-      * immediately returns that element value. Otherwise, find returns undefined.

-      * @param thisArg If provided, it will be used as the this value for each invocation of

-      * predicate. If it is not provided, undefined is used instead.

-      */

-    find(predicate: (value: number, index: number, obj: Uint16Array) => boolean, thisArg?: any): number | undefined;

-

-    /**

-      * Returns the index of the first element in the array where predicate is true, and -1

-      * otherwise.

-      * @param predicate find calls predicate once for each element of the array, in ascending

-      * order, until it finds one where predicate returns true. If such an element is found,

-      * findIndex immediately returns that element index. Otherwise, findIndex returns -1.

-      * @param thisArg If provided, it will be used as the this value for each invocation of

-      * predicate. If it is not provided, undefined is used instead.

-      */

-    findIndex(predicate: (value: number, index: number, obj: Uint16Array) => boolean, thisArg?: any): number;

-

-    /**

-      * Performs the specified action for each element in an array.

-      * @param callbackfn  A function that accepts up to three arguments. forEach calls the

-      * callbackfn function one time for each element in the array.

-      * @param thisArg  An object to which the this keyword can refer in the callbackfn function.

-      * If thisArg is omitted, undefined is used as the this value.

-      */

-    forEach(callbackfn: (value: number, index: number, array: Uint16Array) => void, thisArg?: any): void;

-

-    /**

-      * Returns the index of the first occurrence of a value in an array.

-      * @param searchElement The value to locate in the array.

-      * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the

-      *  search starts at index 0.

-      */

-    indexOf(searchElement: number, fromIndex?: number): number;

-

-    /**

-      * Adds all the elements of an array separated by the specified separator string.

-      * @param separator A string used to separate one element of an array from the next in the

-      * resulting String. If omitted, the array elements are separated with a comma.

-      */

-    join(separator?: string): string;

-

-    /**

-      * Returns the index of the last occurrence of a value in an array.

-      * @param searchElement The value to locate in the array.

-      * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the

-      * search starts at index 0.

-      */

-    lastIndexOf(searchElement: number, fromIndex?: number): number;

-

-    /**

-      * The length of the array.

-      */

-    readonly length: number;

-

-    /**

-      * Calls a defined callback function on each element of an array, and returns an array that

-      * contains the results.

-      * @param callbackfn A function that accepts up to three arguments. The map method calls the

-      * callbackfn function one time for each element in the array.

-      * @param thisArg An object to which the this keyword can refer in the callbackfn function.

-      * If thisArg is omitted, undefined is used as the this value.

-      */

-    map(callbackfn: (value: number, index: number, array: Uint16Array) => number, thisArg?: any): Uint16Array;

-

-    /**

-      * Calls the specified callback function for all the elements in an array. The return value of

-      * the callback function is the accumulated result, and is provided as an argument in the next

-      * call to the callback function.

-      * @param callbackfn A function that accepts up to four arguments. The reduce method calls the

-      * callbackfn function one time for each element in the array.

-      * @param initialValue If initialValue is specified, it is used as the initial value to start

-      * the accumulation. The first call to the callbackfn function provides this value as an argument

-      * instead of an array value.

-      */

-    reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint16Array) => number): number;

-    reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint16Array) => number, initialValue: number): number;

-

-    /**

-      * Calls the specified callback function for all the elements in an array. The return value of

-      * the callback function is the accumulated result, and is provided as an argument in the next

-      * call to the callback function.

-      * @param callbackfn A function that accepts up to four arguments. The reduce method calls the

-      * callbackfn function one time for each element in the array.

-      * @param initialValue If initialValue is specified, it is used as the initial value to start

-      * the accumulation. The first call to the callbackfn function provides this value as an argument

-      * instead of an array value.

-      */

-    reduce<U>(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Uint16Array) => U, initialValue: U): U;

-

-    /**

-      * Calls the specified callback function for all the elements in an array, in descending order.

-      * The return value of the callback function is the accumulated result, and is provided as an

-      * argument in the next call to the callback function.

-      * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls

-      * the callbackfn function one time for each element in the array.

-      * @param initialValue If initialValue is specified, it is used as the initial value to start

-      * the accumulation. The first call to the callbackfn function provides this value as an

-      * argument instead of an array value.

-      */

-    reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint16Array) => number): number;

-    reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint16Array) => number, initialValue: number): number;

-

-    /**

-      * Calls the specified callback function for all the elements in an array, in descending order.

-      * The return value of the callback function is the accumulated result, and is provided as an

-      * argument in the next call to the callback function.

-      * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls

-      * the callbackfn function one time for each element in the array.

-      * @param initialValue If initialValue is specified, it is used as the initial value to start

-      * the accumulation. The first call to the callbackfn function provides this value as an argument

-      * instead of an array value.

-      */

-    reduceRight<U>(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Uint16Array) => U, initialValue: U): U;

-

-    /**

-      * Reverses the elements in an Array.

-      */

-    reverse(): Uint16Array;

-

-    /**

-      * Sets a value or an array of values.

-      * @param array A typed or untyped array of values to set.

-      * @param offset The index in the current array at which the values are to be written.

-      */

-    set(array: ArrayLike<number>, offset?: number): void;

-

-    /**

-      * Returns a section of an array.

-      * @param start The beginning of the specified portion of the array.

-      * @param end The end of the specified portion of the array.

-      */

-    slice(start?: number, end?: number): Uint16Array;

-

-    /**

-      * Determines whether the specified callback function returns true for any element of an array.

-      * @param callbackfn A function that accepts up to three arguments. The some method calls the

-      * callbackfn function for each element in array1 until the callbackfn returns true, or until

-      * the end of the array.

-      * @param thisArg An object to which the this keyword can refer in the callbackfn function.

-      * If thisArg is omitted, undefined is used as the this value.

-      */

-    some(callbackfn: (value: number, index: number, array: Uint16Array) => boolean, thisArg?: any): boolean;

-

-    /**

-      * Sorts an array.

-      * @param compareFn The name of the function used to determine the order of the elements. If

-      * omitted, the elements are sorted in ascending, ASCII character order.

-      */

-    sort(compareFn?: (a: number, b: number) => number): this;

-

-    /**

-      * Gets a new Uint16Array view of the ArrayBuffer store for this array, referencing the elements

-      * at begin, inclusive, up to end, exclusive.

-      * @param begin The index of the beginning of the array.

-      * @param end The index of the end of the array.

-      */

-    subarray(begin: number, end?: number): Uint16Array;

-

-    /**

-      * Converts a number to a string by using the current locale.

-      */

-    toLocaleString(): string;

-

-    /**

-      * Returns a string representation of an array.

-      */

-    toString(): string;

-

-    [index: number]: number;

-}

-

-interface Uint16ArrayConstructor {

-    readonly prototype: Uint16Array;

-    new(length: number): Uint16Array;

-    new(arrayOrArrayBuffer: ArrayLike<number> | ArrayBufferLike): Uint16Array;

-    new(buffer: ArrayBufferLike, byteOffset: number, length?: number): Uint16Array;

-

-    /**

-      * The size in bytes of each element in the array.

-      */

-    readonly BYTES_PER_ELEMENT: number;

-

-    /**

-      * Returns a new array from a set of elements.

-      * @param items A set of elements to include in the new array object.

-      */

-    of(...items: number[]): Uint16Array;

-

-    /**

-      * Creates an array from an array-like or iterable object.

-      * @param arrayLike An array-like or iterable object to convert to an array.

-      */

-    from(arrayLike: ArrayLike<number>): Uint16Array;

-

-    /**

-      * Creates an array from an array-like or iterable object.

-      * @param arrayLike An array-like or iterable object to convert to an array.

-      * @param mapfn A mapping function to call on every element of the array.

-      * @param thisArg Value of 'this' used to invoke the mapfn.

-      */

-    from<T>(arrayLike: ArrayLike<T>, mapfn: (v: T, k: number) => number, thisArg?: any): Uint16Array;

-

-

-}

-declare var Uint16Array: Uint16ArrayConstructor;

-/**

-  * A typed array of 32-bit signed integer values. The contents are initialized to 0. If the

-  * requested number of bytes could not be allocated an exception is raised.

-  */

-interface Int32Array {

-    /**

-      * The size in bytes of each element in the array.

-      */

-    readonly BYTES_PER_ELEMENT: number;

-

-    /**

-      * The ArrayBuffer instance referenced by the array.

-      */

-    readonly buffer: ArrayBufferLike;

-

-    /**

-      * The length in bytes of the array.

-      */

-    readonly byteLength: number;

-

-    /**

-      * The offset in bytes of the array.

-      */

-    readonly byteOffset: number;

-

-    /**

-      * Returns the this object after copying a section of the array identified by start and end

-      * to the same array starting at position target

-      * @param target If target is negative, it is treated as length+target where length is the

-      * length of the array.

-      * @param start If start is negative, it is treated as length+start. If end is negative, it

-      * is treated as length+end.

-      * @param end If not specified, length of the this object is used as its default value.

-      */

-    copyWithin(target: number, start: number, end?: number): this;

-

-    /**

-      * Determines whether all the members of an array satisfy the specified test.

-      * @param callbackfn A function that accepts up to three arguments. The every method calls

-      * the callbackfn function for each element in array1 until the callbackfn returns false,

-      * or until the end of the array.

-      * @param thisArg An object to which the this keyword can refer in the callbackfn function.

-      * If thisArg is omitted, undefined is used as the this value.

-      */

-    every(callbackfn: (value: number, index: number, array: Int32Array) => boolean, thisArg?: any): boolean;

-

-    /**

-        * Returns the this object after filling the section identified by start and end with value

-        * @param value value to fill array section with

-        * @param start index to start filling the array at. If start is negative, it is treated as

-        * length+start where length is the length of the array.

-        * @param end index to stop filling the array at. If end is negative, it is treated as

-        * length+end.

-        */

-    fill(value: number, start?: number, end?: number): this;

-

-    /**

-      * Returns the elements of an array that meet the condition specified in a callback function.

-      * @param callbackfn A function that accepts up to three arguments. The filter method calls

-      * the callbackfn function one time for each element in the array.

-      * @param thisArg An object to which the this keyword can refer in the callbackfn function.

-      * If thisArg is omitted, undefined is used as the this value.

-      */

-    filter(callbackfn: (value: number, index: number, array: Int32Array) => any, thisArg?: any): Int32Array;

-

-    /**

-      * Returns the value of the first element in the array where predicate is true, and undefined

-      * otherwise.

-      * @param predicate find calls predicate once for each element of the array, in ascending

-      * order, until it finds one where predicate returns true. If such an element is found, find

-      * immediately returns that element value. Otherwise, find returns undefined.

-      * @param thisArg If provided, it will be used as the this value for each invocation of

-      * predicate. If it is not provided, undefined is used instead.

-      */

-    find(predicate: (value: number, index: number, obj: Int32Array) => boolean, thisArg?: any): number | undefined;

-

-    /**

-      * Returns the index of the first element in the array where predicate is true, and -1

-      * otherwise.

-      * @param predicate find calls predicate once for each element of the array, in ascending

-      * order, until it finds one where predicate returns true. If such an element is found,

-      * findIndex immediately returns that element index. Otherwise, findIndex returns -1.

-      * @param thisArg If provided, it will be used as the this value for each invocation of

-      * predicate. If it is not provided, undefined is used instead.

-      */

-    findIndex(predicate: (value: number, index: number, obj: Int32Array) => boolean, thisArg?: any): number;

-

-    /**

-      * Performs the specified action for each element in an array.

-      * @param callbackfn  A function that accepts up to three arguments. forEach calls the

-      * callbackfn function one time for each element in the array.

-      * @param thisArg  An object to which the this keyword can refer in the callbackfn function.

-      * If thisArg is omitted, undefined is used as the this value.

-      */

-    forEach(callbackfn: (value: number, index: number, array: Int32Array) => void, thisArg?: any): void;

-

-    /**

-      * Returns the index of the first occurrence of a value in an array.

-      * @param searchElement The value to locate in the array.

-      * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the

-      *  search starts at index 0.

-      */

-    indexOf(searchElement: number, fromIndex?: number): number;

-

-    /**

-      * Adds all the elements of an array separated by the specified separator string.

-      * @param separator A string used to separate one element of an array from the next in the

-      * resulting String. If omitted, the array elements are separated with a comma.

-      */

-    join(separator?: string): string;

-

-    /**

-      * Returns the index of the last occurrence of a value in an array.

-      * @param searchElement The value to locate in the array.

-      * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the

-      * search starts at index 0.

-      */

-    lastIndexOf(searchElement: number, fromIndex?: number): number;

-

-    /**

-      * The length of the array.

-      */

-    readonly length: number;

-

-    /**

-      * Calls a defined callback function on each element of an array, and returns an array that

-      * contains the results.

-      * @param callbackfn A function that accepts up to three arguments. The map method calls the

-      * callbackfn function one time for each element in the array.

-      * @param thisArg An object to which the this keyword can refer in the callbackfn function.

-      * If thisArg is omitted, undefined is used as the this value.

-      */

-    map(callbackfn: (value: number, index: number, array: Int32Array) => number, thisArg?: any): Int32Array;

-

-    /**

-      * Calls the specified callback function for all the elements in an array. The return value of

-      * the callback function is the accumulated result, and is provided as an argument in the next

-      * call to the callback function.

-      * @param callbackfn A function that accepts up to four arguments. The reduce method calls the

-      * callbackfn function one time for each element in the array.

-      * @param initialValue If initialValue is specified, it is used as the initial value to start

-      * the accumulation. The first call to the callbackfn function provides this value as an argument

-      * instead of an array value.

-      */

-    reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Int32Array) => number): number;

-    reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Int32Array) => number, initialValue: number): number;

-

-    /**

-      * Calls the specified callback function for all the elements in an array. The return value of

-      * the callback function is the accumulated result, and is provided as an argument in the next

-      * call to the callback function.

-      * @param callbackfn A function that accepts up to four arguments. The reduce method calls the

-      * callbackfn function one time for each element in the array.

-      * @param initialValue If initialValue is specified, it is used as the initial value to start

-      * the accumulation. The first call to the callbackfn function provides this value as an argument

-      * instead of an array value.

-      */

-    reduce<U>(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Int32Array) => U, initialValue: U): U;

-

-    /**

-      * Calls the specified callback function for all the elements in an array, in descending order.

-      * The return value of the callback function is the accumulated result, and is provided as an

-      * argument in the next call to the callback function.

-      * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls

-      * the callbackfn function one time for each element in the array.

-      * @param initialValue If initialValue is specified, it is used as the initial value to start

-      * the accumulation. The first call to the callbackfn function provides this value as an

-      * argument instead of an array value.

-      */

-    reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Int32Array) => number): number;

-    reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Int32Array) => number, initialValue: number): number;

-

-    /**

-      * Calls the specified callback function for all the elements in an array, in descending order.

-      * The return value of the callback function is the accumulated result, and is provided as an

-      * argument in the next call to the callback function.

-      * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls

-      * the callbackfn function one time for each element in the array.

-      * @param initialValue If initialValue is specified, it is used as the initial value to start

-      * the accumulation. The first call to the callbackfn function provides this value as an argument

-      * instead of an array value.

-      */

-    reduceRight<U>(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Int32Array) => U, initialValue: U): U;

-

-    /**

-      * Reverses the elements in an Array.

-      */

-    reverse(): Int32Array;

-

-    /**

-      * Sets a value or an array of values.

-      * @param array A typed or untyped array of values to set.

-      * @param offset The index in the current array at which the values are to be written.

-      */

-    set(array: ArrayLike<number>, offset?: number): void;

-

-    /**

-      * Returns a section of an array.

-      * @param start The beginning of the specified portion of the array.

-      * @param end The end of the specified portion of the array.

-      */

-    slice(start?: number, end?: number): Int32Array;

-

-    /**

-      * Determines whether the specified callback function returns true for any element of an array.

-      * @param callbackfn A function that accepts up to three arguments. The some method calls the

-      * callbackfn function for each element in array1 until the callbackfn returns true, or until

-      * the end of the array.

-      * @param thisArg An object to which the this keyword can refer in the callbackfn function.

-      * If thisArg is omitted, undefined is used as the this value.

-      */

-    some(callbackfn: (value: number, index: number, array: Int32Array) => boolean, thisArg?: any): boolean;

-

-    /**

-      * Sorts an array.

-      * @param compareFn The name of the function used to determine the order of the elements. If

-      * omitted, the elements are sorted in ascending, ASCII character order.

-      */

-    sort(compareFn?: (a: number, b: number) => number): this;

-

-    /**

-      * Gets a new Int32Array view of the ArrayBuffer store for this array, referencing the elements

-      * at begin, inclusive, up to end, exclusive.

-      * @param begin The index of the beginning of the array.

-      * @param end The index of the end of the array.

-      */

-    subarray(begin: number, end?: number): Int32Array;

-

-    /**

-      * Converts a number to a string by using the current locale.

-      */

-    toLocaleString(): string;

-

-    /**

-      * Returns a string representation of an array.

-      */

-    toString(): string;

-

-    [index: number]: number;

-}

-

-interface Int32ArrayConstructor {

-    readonly prototype: Int32Array;

-    new(length: number): Int32Array;

-    new(arrayOrArrayBuffer: ArrayLike<number> | ArrayBufferLike): Int32Array;

-    new(buffer: ArrayBufferLike, byteOffset: number, length?: number): Int32Array;

-

-    /**

-      * The size in bytes of each element in the array.

-      */

-    readonly BYTES_PER_ELEMENT: number;

-

-    /**

-      * Returns a new array from a set of elements.

-      * @param items A set of elements to include in the new array object.

-      */

-    of(...items: number[]): Int32Array;

-

-    /**

-      * Creates an array from an array-like or iterable object.

-      * @param arrayLike An array-like or iterable object to convert to an array.

-      */

-    from(arrayLike: ArrayLike<number>): Int32Array;

-

-    /**

-      * Creates an array from an array-like or iterable object.

-      * @param arrayLike An array-like or iterable object to convert to an array.

-      * @param mapfn A mapping function to call on every element of the array.

-      * @param thisArg Value of 'this' used to invoke the mapfn.

-      */

-    from<T>(arrayLike: ArrayLike<T>, mapfn: (v: T, k: number) => number, thisArg?: any): Int32Array;

-

-}

-declare var Int32Array: Int32ArrayConstructor;

-

-/**

-  * A typed array of 32-bit unsigned integer values. The contents are initialized to 0. If the

-  * requested number of bytes could not be allocated an exception is raised.

-  */

-interface Uint32Array {

-    /**

-      * The size in bytes of each element in the array.

-      */

-    readonly BYTES_PER_ELEMENT: number;

-

-    /**

-      * The ArrayBuffer instance referenced by the array.

-      */

-    readonly buffer: ArrayBufferLike;

-

-    /**

-      * The length in bytes of the array.

-      */

-    readonly byteLength: number;

-

-    /**

-      * The offset in bytes of the array.

-      */

-    readonly byteOffset: number;

-

-    /**

-      * Returns the this object after copying a section of the array identified by start and end

-      * to the same array starting at position target

-      * @param target If target is negative, it is treated as length+target where length is the

-      * length of the array.

-      * @param start If start is negative, it is treated as length+start. If end is negative, it

-      * is treated as length+end.

-      * @param end If not specified, length of the this object is used as its default value.

-      */

-    copyWithin(target: number, start: number, end?: number): this;

-

-    /**

-      * Determines whether all the members of an array satisfy the specified test.

-      * @param callbackfn A function that accepts up to three arguments. The every method calls

-      * the callbackfn function for each element in array1 until the callbackfn returns false,

-      * or until the end of the array.

-      * @param thisArg An object to which the this keyword can refer in the callbackfn function.

-      * If thisArg is omitted, undefined is used as the this value.

-      */

-    every(callbackfn: (value: number, index: number, array: Uint32Array) => boolean, thisArg?: any): boolean;

-

-    /**

-        * Returns the this object after filling the section identified by start and end with value

-        * @param value value to fill array section with

-        * @param start index to start filling the array at. If start is negative, it is treated as

-        * length+start where length is the length of the array.

-        * @param end index to stop filling the array at. If end is negative, it is treated as

-        * length+end.

-        */

-    fill(value: number, start?: number, end?: number): this;

-

-    /**

-      * Returns the elements of an array that meet the condition specified in a callback function.

-      * @param callbackfn A function that accepts up to three arguments. The filter method calls

-      * the callbackfn function one time for each element in the array.

-      * @param thisArg An object to which the this keyword can refer in the callbackfn function.

-      * If thisArg is omitted, undefined is used as the this value.

-      */

-    filter(callbackfn: (value: number, index: number, array: Uint32Array) => any, thisArg?: any): Uint32Array;

-

-    /**

-      * Returns the value of the first element in the array where predicate is true, and undefined

-      * otherwise.

-      * @param predicate find calls predicate once for each element of the array, in ascending

-      * order, until it finds one where predicate returns true. If such an element is found, find

-      * immediately returns that element value. Otherwise, find returns undefined.

-      * @param thisArg If provided, it will be used as the this value for each invocation of

-      * predicate. If it is not provided, undefined is used instead.

-      */

-    find(predicate: (value: number, index: number, obj: Uint32Array) => boolean, thisArg?: any): number | undefined;

-

-    /**

-      * Returns the index of the first element in the array where predicate is true, and -1

-      * otherwise.

-      * @param predicate find calls predicate once for each element of the array, in ascending

-      * order, until it finds one where predicate returns true. If such an element is found,

-      * findIndex immediately returns that element index. Otherwise, findIndex returns -1.

-      * @param thisArg If provided, it will be used as the this value for each invocation of

-      * predicate. If it is not provided, undefined is used instead.

-      */

-    findIndex(predicate: (value: number, index: number, obj: Uint32Array) => boolean, thisArg?: any): number;

-

-    /**

-      * Performs the specified action for each element in an array.

-      * @param callbackfn  A function that accepts up to three arguments. forEach calls the

-      * callbackfn function one time for each element in the array.

-      * @param thisArg  An object to which the this keyword can refer in the callbackfn function.

-      * If thisArg is omitted, undefined is used as the this value.

-      */

-    forEach(callbackfn: (value: number, index: number, array: Uint32Array) => void, thisArg?: any): void;

-    /**

-      * Returns the index of the first occurrence of a value in an array.

-      * @param searchElement The value to locate in the array.

-      * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the

-      *  search starts at index 0.

-      */

-    indexOf(searchElement: number, fromIndex?: number): number;

-

-    /**

-      * Adds all the elements of an array separated by the specified separator string.

-      * @param separator A string used to separate one element of an array from the next in the

-      * resulting String. If omitted, the array elements are separated with a comma.

-      */

-    join(separator?: string): string;

-

-    /**

-      * Returns the index of the last occurrence of a value in an array.

-      * @param searchElement The value to locate in the array.

-      * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the

-      * search starts at index 0.

-      */

-    lastIndexOf(searchElement: number, fromIndex?: number): number;

-

-    /**

-      * The length of the array.

-      */

-    readonly length: number;

-

-    /**

-      * Calls a defined callback function on each element of an array, and returns an array that

-      * contains the results.

-      * @param callbackfn A function that accepts up to three arguments. The map method calls the

-      * callbackfn function one time for each element in the array.

-      * @param thisArg An object to which the this keyword can refer in the callbackfn function.

-      * If thisArg is omitted, undefined is used as the this value.

-      */

-    map(callbackfn: (value: number, index: number, array: Uint32Array) => number, thisArg?: any): Uint32Array;

-

-    /**

-      * Calls the specified callback function for all the elements in an array. The return value of

-      * the callback function is the accumulated result, and is provided as an argument in the next

-      * call to the callback function.

-      * @param callbackfn A function that accepts up to four arguments. The reduce method calls the

-      * callbackfn function one time for each element in the array.

-      * @param initialValue If initialValue is specified, it is used as the initial value to start

-      * the accumulation. The first call to the callbackfn function provides this value as an argument

-      * instead of an array value.

-      */

-    reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint32Array) => number): number;

-    reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint32Array) => number, initialValue: number): number;

-

-    /**

-      * Calls the specified callback function for all the elements in an array. The return value of

-      * the callback function is the accumulated result, and is provided as an argument in the next

-      * call to the callback function.

-      * @param callbackfn A function that accepts up to four arguments. The reduce method calls the

-      * callbackfn function one time for each element in the array.

-      * @param initialValue If initialValue is specified, it is used as the initial value to start

-      * the accumulation. The first call to the callbackfn function provides this value as an argument

-      * instead of an array value.

-      */

-    reduce<U>(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Uint32Array) => U, initialValue: U): U;

-

-    /**

-      * Calls the specified callback function for all the elements in an array, in descending order.

-      * The return value of the callback function is the accumulated result, and is provided as an

-      * argument in the next call to the callback function.

-      * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls

-      * the callbackfn function one time for each element in the array.

-      * @param initialValue If initialValue is specified, it is used as the initial value to start

-      * the accumulation. The first call to the callbackfn function provides this value as an

-      * argument instead of an array value.

-      */

-    reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint32Array) => number): number;

-    reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint32Array) => number, initialValue: number): number;

-

-    /**

-      * Calls the specified callback function for all the elements in an array, in descending order.

-      * The return value of the callback function is the accumulated result, and is provided as an

-      * argument in the next call to the callback function.

-      * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls

-      * the callbackfn function one time for each element in the array.

-      * @param initialValue If initialValue is specified, it is used as the initial value to start

-      * the accumulation. The first call to the callbackfn function provides this value as an argument

-      * instead of an array value.

-      */

-    reduceRight<U>(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Uint32Array) => U, initialValue: U): U;

-

-    /**

-      * Reverses the elements in an Array.

-      */

-    reverse(): Uint32Array;

-

-    /**

-      * Sets a value or an array of values.

-      * @param array A typed or untyped array of values to set.

-      * @param offset The index in the current array at which the values are to be written.

-      */

-    set(array: ArrayLike<number>, offset?: number): void;

-

-    /**

-      * Returns a section of an array.

-      * @param start The beginning of the specified portion of the array.

-      * @param end The end of the specified portion of the array.

-      */

-    slice(start?: number, end?: number): Uint32Array;

-

-    /**

-      * Determines whether the specified callback function returns true for any element of an array.

-      * @param callbackfn A function that accepts up to three arguments. The some method calls the

-      * callbackfn function for each element in array1 until the callbackfn returns true, or until

-      * the end of the array.

-      * @param thisArg An object to which the this keyword can refer in the callbackfn function.

-      * If thisArg is omitted, undefined is used as the this value.

-      */

-    some(callbackfn: (value: number, index: number, array: Uint32Array) => boolean, thisArg?: any): boolean;

-

-    /**

-      * Sorts an array.

-      * @param compareFn The name of the function used to determine the order of the elements. If

-      * omitted, the elements are sorted in ascending, ASCII character order.

-      */

-    sort(compareFn?: (a: number, b: number) => number): this;

-

-    /**

-      * Gets a new Uint32Array view of the ArrayBuffer store for this array, referencing the elements

-      * at begin, inclusive, up to end, exclusive.

-      * @param begin The index of the beginning of the array.

-      * @param end The index of the end of the array.

-      */

-    subarray(begin: number, end?: number): Uint32Array;

-

-    /**

-      * Converts a number to a string by using the current locale.

-      */

-    toLocaleString(): string;

-

-    /**

-      * Returns a string representation of an array.

-      */

-    toString(): string;

-

-    [index: number]: number;

-}

-

-interface Uint32ArrayConstructor {

-    readonly prototype: Uint32Array;

-    new(length: number): Uint32Array;

-    new(arrayOrArrayBuffer: ArrayLike<number> | ArrayBufferLike): Uint32Array;

-    new(buffer: ArrayBufferLike, byteOffset: number, length?: number): Uint32Array;

-

-    /**

-      * The size in bytes of each element in the array.

-      */

-    readonly BYTES_PER_ELEMENT: number;

-

-    /**

-      * Returns a new array from a set of elements.

-      * @param items A set of elements to include in the new array object.

-      */

-    of(...items: number[]): Uint32Array;

-

-    /**

-      * Creates an array from an array-like or iterable object.

-      * @param arrayLike An array-like or iterable object to convert to an array.

-      */

-    from(arrayLike: ArrayLike<number>): Uint32Array;

-

-    /**

-      * Creates an array from an array-like or iterable object.

-      * @param arrayLike An array-like or iterable object to convert to an array.

-      * @param mapfn A mapping function to call on every element of the array.

-      * @param thisArg Value of 'this' used to invoke the mapfn.

-      */

-    from<T>(arrayLike: ArrayLike<T>, mapfn: (v: T, k: number) => number, thisArg?: any): Uint32Array;

-

-}

-declare var Uint32Array: Uint32ArrayConstructor;

-

-/**

-  * A typed array of 32-bit float values. The contents are initialized to 0. If the requested number

-  * of bytes could not be allocated an exception is raised.

-  */

-interface Float32Array {

-    /**

-      * The size in bytes of each element in the array.

-      */

-    readonly BYTES_PER_ELEMENT: number;

-

-    /**

-      * The ArrayBuffer instance referenced by the array.

-      */

-    readonly buffer: ArrayBufferLike;

-

-    /**

-      * The length in bytes of the array.

-      */

-    readonly byteLength: number;

-

-    /**

-      * The offset in bytes of the array.

-      */

-    readonly byteOffset: number;

-

-    /**

-      * Returns the this object after copying a section of the array identified by start and end

-      * to the same array starting at position target

-      * @param target If target is negative, it is treated as length+target where length is the

-      * length of the array.

-      * @param start If start is negative, it is treated as length+start. If end is negative, it

-      * is treated as length+end.

-      * @param end If not specified, length of the this object is used as its default value.

-      */

-    copyWithin(target: number, start: number, end?: number): this;

-

-    /**

-      * Determines whether all the members of an array satisfy the specified test.

-      * @param callbackfn A function that accepts up to three arguments. The every method calls

-      * the callbackfn function for each element in array1 until the callbackfn returns false,

-      * or until the end of the array.

-      * @param thisArg An object to which the this keyword can refer in the callbackfn function.

-      * If thisArg is omitted, undefined is used as the this value.

-      */

-    every(callbackfn: (value: number, index: number, array: Float32Array) => boolean, thisArg?: any): boolean;

-

-    /**

-        * Returns the this object after filling the section identified by start and end with value

-        * @param value value to fill array section with

-        * @param start index to start filling the array at. If start is negative, it is treated as

-        * length+start where length is the length of the array.

-        * @param end index to stop filling the array at. If end is negative, it is treated as

-        * length+end.

-        */

-    fill(value: number, start?: number, end?: number): this;

-

-    /**

-      * Returns the elements of an array that meet the condition specified in a callback function.

-      * @param callbackfn A function that accepts up to three arguments. The filter method calls

-      * the callbackfn function one time for each element in the array.

-      * @param thisArg An object to which the this keyword can refer in the callbackfn function.

-      * If thisArg is omitted, undefined is used as the this value.

-      */

-    filter(callbackfn: (value: number, index: number, array: Float32Array) => any, thisArg?: any): Float32Array;

-

-    /**

-      * Returns the value of the first element in the array where predicate is true, and undefined

-      * otherwise.

-      * @param predicate find calls predicate once for each element of the array, in ascending

-      * order, until it finds one where predicate returns true. If such an element is found, find

-      * immediately returns that element value. Otherwise, find returns undefined.

-      * @param thisArg If provided, it will be used as the this value for each invocation of

-      * predicate. If it is not provided, undefined is used instead.

-      */

-    find(predicate: (value: number, index: number, obj: Float32Array) => boolean, thisArg?: any): number | undefined;

-

-    /**

-      * Returns the index of the first element in the array where predicate is true, and -1

-      * otherwise.

-      * @param predicate find calls predicate once for each element of the array, in ascending

-      * order, until it finds one where predicate returns true. If such an element is found,

-      * findIndex immediately returns that element index. Otherwise, findIndex returns -1.

-      * @param thisArg If provided, it will be used as the this value for each invocation of

-      * predicate. If it is not provided, undefined is used instead.

-      */

-    findIndex(predicate: (value: number, index: number, obj: Float32Array) => boolean, thisArg?: any): number;

-

-    /**

-      * Performs the specified action for each element in an array.

-      * @param callbackfn  A function that accepts up to three arguments. forEach calls the

-      * callbackfn function one time for each element in the array.

-      * @param thisArg  An object to which the this keyword can refer in the callbackfn function.

-      * If thisArg is omitted, undefined is used as the this value.

-      */

-    forEach(callbackfn: (value: number, index: number, array: Float32Array) => void, thisArg?: any): void;

-

-    /**

-      * Returns the index of the first occurrence of a value in an array.

-      * @param searchElement The value to locate in the array.

-      * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the

-      *  search starts at index 0.

-      */

-    indexOf(searchElement: number, fromIndex?: number): number;

-

-    /**

-      * Adds all the elements of an array separated by the specified separator string.

-      * @param separator A string used to separate one element of an array from the next in the

-      * resulting String. If omitted, the array elements are separated with a comma.

-      */

-    join(separator?: string): string;

-

-    /**

-      * Returns the index of the last occurrence of a value in an array.

-      * @param searchElement The value to locate in the array.

-      * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the

-      * search starts at index 0.

-      */

-    lastIndexOf(searchElement: number, fromIndex?: number): number;

-

-    /**

-      * The length of the array.

-      */

-    readonly length: number;

-

-    /**

-      * Calls a defined callback function on each element of an array, and returns an array that

-      * contains the results.

-      * @param callbackfn A function that accepts up to three arguments. The map method calls the

-      * callbackfn function one time for each element in the array.

-      * @param thisArg An object to which the this keyword can refer in the callbackfn function.

-      * If thisArg is omitted, undefined is used as the this value.

-      */

-    map(callbackfn: (value: number, index: number, array: Float32Array) => number, thisArg?: any): Float32Array;

-

-    /**

-      * Calls the specified callback function for all the elements in an array. The return value of

-      * the callback function is the accumulated result, and is provided as an argument in the next

-      * call to the callback function.

-      * @param callbackfn A function that accepts up to four arguments. The reduce method calls the

-      * callbackfn function one time for each element in the array.

-      * @param initialValue If initialValue is specified, it is used as the initial value to start

-      * the accumulation. The first call to the callbackfn function provides this value as an argument

-      * instead of an array value.

-      */

-    reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Float32Array) => number): number;

-    reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Float32Array) => number, initialValue: number): number;

-

-    /**

-      * Calls the specified callback function for all the elements in an array. The return value of

-      * the callback function is the accumulated result, and is provided as an argument in the next

-      * call to the callback function.

-      * @param callbackfn A function that accepts up to four arguments. The reduce method calls the

-      * callbackfn function one time for each element in the array.

-      * @param initialValue If initialValue is specified, it is used as the initial value to start

-      * the accumulation. The first call to the callbackfn function provides this value as an argument

-      * instead of an array value.

-      */

-    reduce<U>(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Float32Array) => U, initialValue: U): U;

-

-    /**

-      * Calls the specified callback function for all the elements in an array, in descending order.

-      * The return value of the callback function is the accumulated result, and is provided as an

-      * argument in the next call to the callback function.

-      * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls

-      * the callbackfn function one time for each element in the array.

-      * @param initialValue If initialValue is specified, it is used as the initial value to start

-      * the accumulation. The first call to the callbackfn function provides this value as an

-      * argument instead of an array value.

-      */

-    reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Float32Array) => number): number;

-    reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Float32Array) => number, initialValue: number): number;

-

-    /**

-      * Calls the specified callback function for all the elements in an array, in descending order.

-      * The return value of the callback function is the accumulated result, and is provided as an

-      * argument in the next call to the callback function.

-      * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls

-      * the callbackfn function one time for each element in the array.

-      * @param initialValue If initialValue is specified, it is used as the initial value to start

-      * the accumulation. The first call to the callbackfn function provides this value as an argument

-      * instead of an array value.

-      */

-    reduceRight<U>(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Float32Array) => U, initialValue: U): U;

-

-    /**

-      * Reverses the elements in an Array.

-      */

-    reverse(): Float32Array;

-

-    /**

-      * Sets a value or an array of values.

-      * @param array A typed or untyped array of values to set.

-      * @param offset The index in the current array at which the values are to be written.

-      */

-    set(array: ArrayLike<number>, offset?: number): void;

-

-    /**

-      * Returns a section of an array.

-      * @param start The beginning of the specified portion of the array.

-      * @param end The end of the specified portion of the array.

-      */

-    slice(start?: number, end?: number): Float32Array;

-

-    /**

-      * Determines whether the specified callback function returns true for any element of an array.

-      * @param callbackfn A function that accepts up to three arguments. The some method calls the

-      * callbackfn function for each element in array1 until the callbackfn returns true, or until

-      * the end of the array.

-      * @param thisArg An object to which the this keyword can refer in the callbackfn function.

-      * If thisArg is omitted, undefined is used as the this value.

-      */

-    some(callbackfn: (value: number, index: number, array: Float32Array) => boolean, thisArg?: any): boolean;

-

-    /**

-      * Sorts an array.

-      * @param compareFn The name of the function used to determine the order of the elements. If

-      * omitted, the elements are sorted in ascending, ASCII character order.

-      */

-    sort(compareFn?: (a: number, b: number) => number): this;

-

-    /**

-      * Gets a new Float32Array view of the ArrayBuffer store for this array, referencing the elements

-      * at begin, inclusive, up to end, exclusive.

-      * @param begin The index of the beginning of the array.

-      * @param end The index of the end of the array.

-      */

-    subarray(begin: number, end?: number): Float32Array;

-

-    /**

-      * Converts a number to a string by using the current locale.

-      */

-    toLocaleString(): string;

-

-    /**

-      * Returns a string representation of an array.

-      */

-    toString(): string;

-

-    [index: number]: number;

-}

-

-interface Float32ArrayConstructor {

-    readonly prototype: Float32Array;

-    new(length: number): Float32Array;

-    new(arrayOrArrayBuffer: ArrayLike<number> | ArrayBufferLike): Float32Array;

-    new(buffer: ArrayBufferLike, byteOffset: number, length?: number): Float32Array;

-

-    /**

-      * The size in bytes of each element in the array.

-      */

-    readonly BYTES_PER_ELEMENT: number;

-

-    /**

-      * Returns a new array from a set of elements.

-      * @param items A set of elements to include in the new array object.

-      */

-    of(...items: number[]): Float32Array;

-

-    /**

-      * Creates an array from an array-like or iterable object.

-      * @param arrayLike An array-like or iterable object to convert to an array.

-      */

-    from(arrayLike: ArrayLike<number>): Float32Array;

-

-    /**

-      * Creates an array from an array-like or iterable object.

-      * @param arrayLike An array-like or iterable object to convert to an array.

-      * @param mapfn A mapping function to call on every element of the array.

-      * @param thisArg Value of 'this' used to invoke the mapfn.

-      */

-    from<T>(arrayLike: ArrayLike<T>, mapfn: (v: T, k: number) => number, thisArg?: any): Float32Array;

-

-

-}

-declare var Float32Array: Float32ArrayConstructor;

-

-/**

-  * A typed array of 64-bit float values. The contents are initialized to 0. If the requested

-  * number of bytes could not be allocated an exception is raised.

-  */

-interface Float64Array {

-    /**

-      * The size in bytes of each element in the array.

-      */

-    readonly BYTES_PER_ELEMENT: number;

-

-    /**

-      * The ArrayBuffer instance referenced by the array.

-      */

-    readonly buffer: ArrayBufferLike;

-

-    /**

-      * The length in bytes of the array.

-      */

-    readonly byteLength: number;

-

-    /**

-      * The offset in bytes of the array.

-      */

-    readonly byteOffset: number;

-

-    /**

-      * Returns the this object after copying a section of the array identified by start and end

-      * to the same array starting at position target

-      * @param target If target is negative, it is treated as length+target where length is the

-      * length of the array.

-      * @param start If start is negative, it is treated as length+start. If end is negative, it

-      * is treated as length+end.

-      * @param end If not specified, length of the this object is used as its default value.

-      */

-    copyWithin(target: number, start: number, end?: number): this;

-

-    /**

-      * Determines whether all the members of an array satisfy the specified test.

-      * @param callbackfn A function that accepts up to three arguments. The every method calls

-      * the callbackfn function for each element in array1 until the callbackfn returns false,

-      * or until the end of the array.

-      * @param thisArg An object to which the this keyword can refer in the callbackfn function.

-      * If thisArg is omitted, undefined is used as the this value.

-      */

-    every(callbackfn: (value: number, index: number, array: Float64Array) => boolean, thisArg?: any): boolean;

-

-    /**

-        * Returns the this object after filling the section identified by start and end with value

-        * @param value value to fill array section with

-        * @param start index to start filling the array at. If start is negative, it is treated as

-        * length+start where length is the length of the array.

-        * @param end index to stop filling the array at. If end is negative, it is treated as

-        * length+end.

-        */

-    fill(value: number, start?: number, end?: number): this;

-

-    /**

-      * Returns the elements of an array that meet the condition specified in a callback function.

-      * @param callbackfn A function that accepts up to three arguments. The filter method calls

-      * the callbackfn function one time for each element in the array.

-      * @param thisArg An object to which the this keyword can refer in the callbackfn function.

-      * If thisArg is omitted, undefined is used as the this value.

-      */

-    filter(callbackfn: (value: number, index: number, array: Float64Array) => any, thisArg?: any): Float64Array;

-

-    /**

-      * Returns the value of the first element in the array where predicate is true, and undefined

-      * otherwise.

-      * @param predicate find calls predicate once for each element of the array, in ascending

-      * order, until it finds one where predicate returns true. If such an element is found, find

-      * immediately returns that element value. Otherwise, find returns undefined.

-      * @param thisArg If provided, it will be used as the this value for each invocation of

-      * predicate. If it is not provided, undefined is used instead.

-      */

-    find(predicate: (value: number, index: number, obj: Float64Array) => boolean, thisArg?: any): number | undefined;

-

-    /**

-      * Returns the index of the first element in the array where predicate is true, and -1

-      * otherwise.

-      * @param predicate find calls predicate once for each element of the array, in ascending

-      * order, until it finds one where predicate returns true. If such an element is found,

-      * findIndex immediately returns that element index. Otherwise, findIndex returns -1.

-      * @param thisArg If provided, it will be used as the this value for each invocation of

-      * predicate. If it is not provided, undefined is used instead.

-      */

-    findIndex(predicate: (value: number, index: number, obj: Float64Array) => boolean, thisArg?: any): number;

-

-    /**

-      * Performs the specified action for each element in an array.

-      * @param callbackfn  A function that accepts up to three arguments. forEach calls the

-      * callbackfn function one time for each element in the array.

-      * @param thisArg  An object to which the this keyword can refer in the callbackfn function.

-      * If thisArg is omitted, undefined is used as the this value.

-      */

-    forEach(callbackfn: (value: number, index: number, array: Float64Array) => void, thisArg?: any): void;

-

-    /**

-      * Returns the index of the first occurrence of a value in an array.

-      * @param searchElement The value to locate in the array.

-      * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the

-      *  search starts at index 0.

-      */

-    indexOf(searchElement: number, fromIndex?: number): number;

-

-    /**

-      * Adds all the elements of an array separated by the specified separator string.

-      * @param separator A string used to separate one element of an array from the next in the

-      * resulting String. If omitted, the array elements are separated with a comma.

-      */

-    join(separator?: string): string;

-

-    /**

-      * Returns the index of the last occurrence of a value in an array.

-      * @param searchElement The value to locate in the array.

-      * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the

-      * search starts at index 0.

-      */

-    lastIndexOf(searchElement: number, fromIndex?: number): number;

-

-    /**

-      * The length of the array.

-      */

-    readonly length: number;

-

-    /**

-      * Calls a defined callback function on each element of an array, and returns an array that

-      * contains the results.

-      * @param callbackfn A function that accepts up to three arguments. The map method calls the

-      * callbackfn function one time for each element in the array.

-      * @param thisArg An object to which the this keyword can refer in the callbackfn function.

-      * If thisArg is omitted, undefined is used as the this value.

-      */

-    map(callbackfn: (value: number, index: number, array: Float64Array) => number, thisArg?: any): Float64Array;

-

-    /**

-      * Calls the specified callback function for all the elements in an array. The return value of

-      * the callback function is the accumulated result, and is provided as an argument in the next

-      * call to the callback function.

-      * @param callbackfn A function that accepts up to four arguments. The reduce method calls the

-      * callbackfn function one time for each element in the array.

-      * @param initialValue If initialValue is specified, it is used as the initial value to start

-      * the accumulation. The first call to the callbackfn function provides this value as an argument

-      * instead of an array value.

-      */

-    reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Float64Array) => number): number;

-    reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Float64Array) => number, initialValue: number): number;

-

-    /**

-      * Calls the specified callback function for all the elements in an array. The return value of

-      * the callback function is the accumulated result, and is provided as an argument in the next

-      * call to the callback function.

-      * @param callbackfn A function that accepts up to four arguments. The reduce method calls the

-      * callbackfn function one time for each element in the array.

-      * @param initialValue If initialValue is specified, it is used as the initial value to start

-      * the accumulation. The first call to the callbackfn function provides this value as an argument

-      * instead of an array value.

-      */

-    reduce<U>(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Float64Array) => U, initialValue: U): U;

-

-    /**

-      * Calls the specified callback function for all the elements in an array, in descending order.

-      * The return value of the callback function is the accumulated result, and is provided as an

-      * argument in the next call to the callback function.

-      * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls

-      * the callbackfn function one time for each element in the array.

-      * @param initialValue If initialValue is specified, it is used as the initial value to start

-      * the accumulation. The first call to the callbackfn function provides this value as an

-      * argument instead of an array value.

-      */

-    reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Float64Array) => number): number;

-    reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Float64Array) => number, initialValue: number): number;

-

-    /**

-      * Calls the specified callback function for all the elements in an array, in descending order.

-      * The return value of the callback function is the accumulated result, and is provided as an

-      * argument in the next call to the callback function.

-      * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls

-      * the callbackfn function one time for each element in the array.

-      * @param initialValue If initialValue is specified, it is used as the initial value to start

-      * the accumulation. The first call to the callbackfn function provides this value as an argument

-      * instead of an array value.

-      */

-    reduceRight<U>(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Float64Array) => U, initialValue: U): U;

-

-    /**

-      * Reverses the elements in an Array.

-      */

-    reverse(): Float64Array;

-

-    /**

-      * Sets a value or an array of values.

-      * @param array A typed or untyped array of values to set.

-      * @param offset The index in the current array at which the values are to be written.

-      */

-    set(array: ArrayLike<number>, offset?: number): void;

-

-    /**

-      * Returns a section of an array.

-      * @param start The beginning of the specified portion of the array.

-      * @param end The end of the specified portion of the array.

-      */

-    slice(start?: number, end?: number): Float64Array;

-

-    /**

-      * Determines whether the specified callback function returns true for any element of an array.

-      * @param callbackfn A function that accepts up to three arguments. The some method calls the

-      * callbackfn function for each element in array1 until the callbackfn returns true, or until

-      * the end of the array.

-      * @param thisArg An object to which the this keyword can refer in the callbackfn function.

-      * If thisArg is omitted, undefined is used as the this value.

-      */

-    some(callbackfn: (value: number, index: number, array: Float64Array) => boolean, thisArg?: any): boolean;

-

-    /**

-      * Sorts an array.

-      * @param compareFn The name of the function used to determine the order of the elements. If

-      * omitted, the elements are sorted in ascending, ASCII character order.

-      */

-    sort(compareFn?: (a: number, b: number) => number): this;

-

-    /**

-      * Gets a new Float64Array view of the ArrayBuffer store for this array, referencing the elements

-      * at begin, inclusive, up to end, exclusive.

-      * @param begin The index of the beginning of the array.

-      * @param end The index of the end of the array.

-      */

-    subarray(begin: number, end?: number): Float64Array;

-

-    /**

-      * Converts a number to a string by using the current locale.

-      */

-    toLocaleString(): string;

-

-    /**

-      * Returns a string representation of an array.

-      */

-    toString(): string;

-

-    [index: number]: number;

-}

-

-interface Float64ArrayConstructor {

-    readonly prototype: Float64Array;

-    new(length: number): Float64Array;

-    new(arrayOrArrayBuffer: ArrayLike<number> | ArrayBufferLike): Float64Array;

-    new(buffer: ArrayBufferLike, byteOffset: number, length?: number): Float64Array;

-

-    /**

-      * The size in bytes of each element in the array.

-      */

-    readonly BYTES_PER_ELEMENT: number;

-

-    /**

-      * Returns a new array from a set of elements.

-      * @param items A set of elements to include in the new array object.

-      */

-    of(...items: number[]): Float64Array;

-

-    /**

-      * Creates an array from an array-like or iterable object.

-      * @param arrayLike An array-like or iterable object to convert to an array.

-      */

-    from(arrayLike: ArrayLike<number>): Float64Array;

-

-    /**

-      * Creates an array from an array-like or iterable object.

-      * @param arrayLike An array-like or iterable object to convert to an array.

-      * @param mapfn A mapping function to call on every element of the array.

-      * @param thisArg Value of 'this' used to invoke the mapfn.

-      */

-    from<T>(arrayLike: ArrayLike<T>, mapfn: (v: T, k: number) => number, thisArg?: any): Float64Array;

-

-}

-declare var Float64Array: Float64ArrayConstructor;

-

-/////////////////////////////

-/// ECMAScript Internationalization API

-/////////////////////////////

-

-declare namespace Intl {

-    interface CollatorOptions {

-        usage?: string;

-        localeMatcher?: string;

-        numeric?: boolean;

-        caseFirst?: string;

-        sensitivity?: string;

-        ignorePunctuation?: boolean;

-    }

-

-    interface ResolvedCollatorOptions {

-        locale: string;

-        usage: string;

-        sensitivity: string;

-        ignorePunctuation: boolean;

-        collation: string;

-        caseFirst: string;

-        numeric: boolean;

-    }

-

-    interface Collator {

-        compare(x: string, y: string): number;

-        resolvedOptions(): ResolvedCollatorOptions;

-    }

-    var Collator: {

-        new(locales?: string | string[], options?: CollatorOptions): Collator;

-        (locales?: string | string[], options?: CollatorOptions): Collator;

-        supportedLocalesOf(locales: string | string[], options?: CollatorOptions): string[];

-    };

-

-    interface NumberFormatOptions {

-        localeMatcher?: string;

-        style?: string;

-        currency?: string;

-        currencyDisplay?: string;

-        useGrouping?: boolean;

-        minimumIntegerDigits?: number;

-        minimumFractionDigits?: number;

-        maximumFractionDigits?: number;

-        minimumSignificantDigits?: number;

-        maximumSignificantDigits?: number;

-    }

-

-    interface ResolvedNumberFormatOptions {

-        locale: string;

-        numberingSystem: string;

-        style: string;

-        currency?: string;

-        currencyDisplay?: string;

-        minimumIntegerDigits: number;

-        minimumFractionDigits: number;

-        maximumFractionDigits: number;

-        minimumSignificantDigits?: number;

-        maximumSignificantDigits?: number;

-        useGrouping: boolean;

-    }

-

-    interface NumberFormat {

-        format(value: number): string;

-        resolvedOptions(): ResolvedNumberFormatOptions;

-    }

-    var NumberFormat: {

-        new(locales?: string | string[], options?: NumberFormatOptions): NumberFormat;

-        (locales?: string | string[], options?: NumberFormatOptions): NumberFormat;

-        supportedLocalesOf(locales: string | string[], options?: NumberFormatOptions): string[];

-    };

-

-    interface DateTimeFormatOptions {

-        localeMatcher?: string;

-        weekday?: string;

-        era?: string;

-        year?: string;

-        month?: string;

-        day?: string;

-        hour?: string;

-        minute?: string;

-        second?: string;

-        timeZoneName?: string;

-        formatMatcher?: string;

-        hour12?: boolean;

-        timeZone?: string;

-    }

-

-    interface ResolvedDateTimeFormatOptions {

-        locale: string;

-        calendar: string;

-        numberingSystem: string;

-        timeZone: string;

-        hour12?: boolean;

-        weekday?: string;

-        era?: string;

-        year?: string;

-        month?: string;

-        day?: string;

-        hour?: string;

-        minute?: string;

-        second?: string;

-        timeZoneName?: string;

-    }

-

-    interface DateTimeFormat {

-        format(date?: Date | number): string;

-        resolvedOptions(): ResolvedDateTimeFormatOptions;

-    }

-    var DateTimeFormat: {

-        new(locales?: string | string[], options?: DateTimeFormatOptions): DateTimeFormat;

-        (locales?: string | string[], options?: DateTimeFormatOptions): DateTimeFormat;

-        supportedLocalesOf(locales: string | string[], options?: DateTimeFormatOptions): string[];

-    };

-}

-

-interface String {

-    /**

-      * Determines whether two strings are equivalent in the current or specified locale.

-      * @param that String to compare to target string

-      * @param locales A locale string or array of locale strings that contain one or more language or locale tags. If you include more than one locale string, list them in descending order of priority so that the first entry is the preferred locale. If you omit this parameter, the default locale of the JavaScript runtime is used. This parameter must conform to BCP 47 standards; see the Intl.Collator object for details.

-      * @param options An object that contains one or more properties that specify comparison options. see the Intl.Collator object for details.

-      */

-    localeCompare(that: string, locales?: string | string[], options?: Intl.CollatorOptions): number;

-}

-

-interface Number {

-    /**

-      * Converts a number to a string by using the current or specified locale.

-      * @param locales A locale string or array of locale strings that contain one or more language or locale tags. If you include more than one locale string, list them in descending order of priority so that the first entry is the preferred locale. If you omit this parameter, the default locale of the JavaScript runtime is used.

-      * @param options An object that contains one or more properties that specify comparison options.

-      */

-    toLocaleString(locales?: string | string[], options?: Intl.NumberFormatOptions): string;

-}

-

-interface Date {

-    /**

-      * Converts a date and time to a string by using the current or specified locale.

-      * @param locales A locale string or array of locale strings that contain one or more language or locale tags. If you include more than one locale string, list them in descending order of priority so that the first entry is the preferred locale. If you omit this parameter, the default locale of the JavaScript runtime is used.

-      * @param options An object that contains one or more properties that specify comparison options.

-      */

-    toLocaleString(locales?: string | string[], options?: Intl.DateTimeFormatOptions): string;

-    /**

-      * Converts a date to a string by using the current or specified locale.

-      * @param locales A locale string or array of locale strings that contain one or more language or locale tags. If you include more than one locale string, list them in descending order of priority so that the first entry is the preferred locale. If you omit this parameter, the default locale of the JavaScript runtime is used.

-      * @param options An object that contains one or more properties that specify comparison options.

-      */

-    toLocaleDateString(locales?: string | string[], options?: Intl.DateTimeFormatOptions): string;

-

-    /**

-      * Converts a time to a string by using the current or specified locale.

-      * @param locales A locale string or array of locale strings that contain one or more language or locale tags. If you include more than one locale string, list them in descending order of priority so that the first entry is the preferred locale. If you omit this parameter, the default locale of the JavaScript runtime is used.

-      * @param options An object that contains one or more properties that specify comparison options.

-      */

-    toLocaleTimeString(locales?: string | string[], options?: Intl.DateTimeFormatOptions): string;

-}

+/////////////////////////////
+/// ECMAScript APIs
+/////////////////////////////
+
+declare var NaN: number;
+declare var Infinity: number;
+
+/**
+  * Evaluates JavaScript code and executes it.
+  * @param x A String value that contains valid JavaScript code.
+  */
+declare function eval(x: string): any;
+
+/**
+  * Converts A string to an integer.
+  * @param s A string to convert into a number.
+  * @param radix A value between 2 and 36 that specifies the base of the number in numString.
+  * If this argument is not supplied, strings with a prefix of '0x' are considered hexadecimal.
+  * All other strings are considered decimal.
+  */
+declare function parseInt(s: string, radix?: number): number;
+
+/**
+  * Converts a string to a floating-point number.
+  * @param string A string that contains a floating-point number.
+  */
+declare function parseFloat(string: string): number;
+
+/**
+  * Returns a Boolean value that indicates whether a value is the reserved value NaN (not a number).
+  * @param number A numeric value.
+  */
+declare function isNaN(number: number): boolean;
+
+/**
+  * Determines whether a supplied number is finite.
+  * @param number Any numeric value.
+  */
+declare function isFinite(number: number): boolean;
+
+/**
+  * Gets the unencoded version of an encoded Uniform Resource Identifier (URI).
+  * @param encodedURI A value representing an encoded URI.
+  */
+declare function decodeURI(encodedURI: string): string;
+
+/**
+  * Gets the unencoded version of an encoded component of a Uniform Resource Identifier (URI).
+  * @param encodedURIComponent A value representing an encoded URI component.
+  */
+declare function decodeURIComponent(encodedURIComponent: string): string;
+
+/**
+  * Encodes a text string as a valid Uniform Resource Identifier (URI)
+  * @param uri A value representing an encoded URI.
+  */
+declare function encodeURI(uri: string): string;
+
+/**
+  * Encodes a text string as a valid component of a Uniform Resource Identifier (URI).
+  * @param uriComponent A value representing an encoded URI component.
+  */
+declare function encodeURIComponent(uriComponent: string | number | boolean): string;
+
+/**
+  * Computes a new string in which certain characters have been replaced by a hexadecimal escape sequence.
+  * @param string A string value
+  */
+declare function escape(string: string): string;
+
+/**
+  * Computes a new string in which hexadecimal escape sequences are replaced with the character that it represents.
+  * @param string A string value
+  */
+declare function unescape(string: string): string;
+
+interface Symbol {
+  /** Returns a string representation of an object. */
+  toString(): string;
+
+  /** Returns the primitive value of the specified object. */
+  valueOf(): symbol;
+}
+
+declare type PropertyKey = string | number | symbol;
+
+interface PropertyDescriptor {
+    configurable?: boolean;
+    enumerable?: boolean;
+    value?: any;
+    writable?: boolean;
+    get?(): any;
+    set?(v: any): void;
+}
+
+interface PropertyDescriptorMap {
+    [s: string]: PropertyDescriptor;
+}
+
+interface Object {
+    /** The initial value of Object.prototype.constructor is the standard built-in Object constructor. */
+    constructor: Function;
+
+    /** Returns a string representation of an object. */
+    toString(): string;
+
+    /** Returns a date converted to a string using the current locale. */
+    toLocaleString(): string;
+
+    /** Returns the primitive value of the specified object. */
+    valueOf(): Object;
+
+    /**
+      * Determines whether an object has a property with the specified name.
+      * @param v A property name.
+      */
+    hasOwnProperty(v: PropertyKey): boolean;
+
+    /**
+      * Determines whether an object exists in another object's prototype chain.
+      * @param v Another object whose prototype chain is to be checked.
+      */
+    isPrototypeOf(v: Object): boolean;
+
+    /**
+      * Determines whether a specified property is enumerable.
+      * @param v A property name.
+      */
+    propertyIsEnumerable(v: PropertyKey): boolean;
+}
+
+interface ObjectConstructor {
+    new(value?: any): Object;
+    (): any;
+    (value: any): any;
+
+    /** A reference to the prototype for a class of objects. */
+    readonly prototype: Object;
+
+    /**
+      * Returns the prototype of an object.
+      * @param o The object that references the prototype.
+      */
+    getPrototypeOf(o: any): any;
+
+    /**
+      * Gets the own property descriptor of the specified object.
+      * An own property descriptor is one that is defined directly on the object and is not inherited from the object's prototype.
+      * @param o Object that contains the property.
+      * @param p Name of the property.
+    */
+    getOwnPropertyDescriptor(o: any, p: PropertyKey): PropertyDescriptor | undefined;
+
+    /**
+      * Returns the names of the own properties of an object. The own properties of an object are those that are defined directly
+      * on that object, and are not inherited from the object's prototype. The properties of an object include both fields (objects) and functions.
+      * @param o Object that contains the own properties.
+      */
+    getOwnPropertyNames(o: any): string[];
+
+    /**
+      * Creates an object that has the specified prototype or that has null prototype.
+      * @param o Object to use as a prototype. May be null.
+      */
+    create(o: object | null): any;
+
+    /**
+      * Creates an object that has the specified prototype, and that optionally contains specified properties.
+      * @param o Object to use as a prototype. May be null
+      * @param properties JavaScript object that contains one or more property descriptors.
+      */
+    create(o: object | null, properties: PropertyDescriptorMap & ThisType<any>): any;
+
+    /**
+      * Adds a property to an object, or modifies attributes of an existing property.
+      * @param o Object on which to add or modify the property. This can be a native JavaScript object (that is, a user-defined object or a built in object) or a DOM object.
+      * @param p The property name.
+      * @param attributes Descriptor for the property. It can be for a data property or an accessor property.
+      */
+    defineProperty(o: any, p: PropertyKey, attributes: PropertyDescriptor & ThisType<any>): any;
+
+    /**
+      * Adds one or more properties to an object, and/or modifies attributes of existing properties.
+      * @param o Object on which to add or modify the properties. This can be a native JavaScript object or a DOM object.
+      * @param properties JavaScript object that contains one or more descriptor objects. Each descriptor object describes a data property or an accessor property.
+      */
+    defineProperties(o: any, properties: PropertyDescriptorMap & ThisType<any>): any;
+
+    /**
+      * Prevents the modification of attributes of existing properties, and prevents the addition of new properties.
+      * @param o Object on which to lock the attributes.
+      */
+    seal<T>(o: T): T;
+
+    /**
+      * Prevents the modification of existing property attributes and values, and prevents the addition of new properties.
+      * @param o Object on which to lock the attributes.
+      */
+    freeze<T>(a: T[]): ReadonlyArray<T>;
+
+    /**
+      * Prevents the modification of existing property attributes and values, and prevents the addition of new properties.
+      * @param o Object on which to lock the attributes.
+      */
+    freeze<T extends Function>(f: T): T;
+
+    /**
+      * Prevents the modification of existing property attributes and values, and prevents the addition of new properties.
+      * @param o Object on which to lock the attributes.
+      */
+    freeze<T>(o: T): Readonly<T>;
+
+    /**
+      * Prevents the addition of new properties to an object.
+      * @param o Object to make non-extensible.
+      */
+    preventExtensions<T>(o: T): T;
+
+    /**
+      * Returns true if existing property attributes cannot be modified in an object and new properties cannot be added to the object.
+      * @param o Object to test.
+      */
+    isSealed(o: any): boolean;
+
+    /**
+      * Returns true if existing property attributes and values cannot be modified in an object, and new properties cannot be added to the object.
+      * @param o Object to test.
+      */
+    isFrozen(o: any): boolean;
+
+    /**
+      * Returns a value that indicates whether new properties can be added to an object.
+      * @param o Object to test.
+      */
+    isExtensible(o: any): boolean;
+
+    /**
+      * Returns the names of the enumerable string properties and methods of an object.
+      * @param o Object that contains the properties and methods. This can be an object that you created or an existing Document Object Model (DOM) object.
+      */
+     keys(o: object): string[];
+}
+
+/**
+  * Provides functionality common to all JavaScript objects.
+  */
+declare var Object: ObjectConstructor;
+
+/**
+  * Creates a new function.
+  */
+interface Function {
+    /**
+      * Calls the function, substituting the specified object for the this value of the function, and the specified array for the arguments of the function.
+      * @param thisArg The object to be used as the this object.
+      * @param argArray A set of arguments to be passed to the function.
+      */
+    apply(this: Function, thisArg: any, argArray?: any): any;
+
+    /**
+      * Calls a method of an object, substituting another object for the current object.
+      * @param thisArg The object to be used as the current object.
+      * @param argArray A list of arguments to be passed to the method.
+      */
+    call(this: Function, thisArg: any, ...argArray: any[]): any;
+
+    /**
+      * For a given function, creates a bound function that has the same body as the original function.
+      * The this object of the bound function is associated with the specified object, and has the specified initial parameters.
+      * @param thisArg An object to which the this keyword can refer inside the new function.
+      * @param argArray A list of arguments to be passed to the new function.
+      */
+    bind(this: Function, thisArg: any, ...argArray: any[]): any;
+
+    /** Returns a string representation of a function. */
+    toString(): string;
+
+    prototype: any;
+    readonly length: number;
+
+    // Non-standard extensions
+    arguments: any;
+    caller: Function;
+}
+
+interface FunctionConstructor {
+    /**
+      * Creates a new function.
+      * @param args A list of arguments the function accepts.
+      */
+    new(...args: string[]): Function;
+    (...args: string[]): Function;
+    readonly prototype: Function;
+}
+
+declare var Function: FunctionConstructor;
+
+/**
+ * Extracts the type of the 'this' parameter of a function type, or 'unknown' if the function type has no 'this' parameter.
+ */
+type ThisParameterType<T> = T extends (this: unknown, ...args: any[]) => any ? unknown : T extends (this: infer U, ...args: any[]) => any ? U : unknown;
+
+/**
+ * Removes the 'this' parameter from a function type.
+ */
+type OmitThisParameter<T> = unknown extends ThisParameterType<T> ? T : T extends (...args: infer A) => infer R ? (...args: A) => R : T;
+
+interface CallableFunction extends Function {
+    /**
+      * Calls the function with the specified object as the this value and the elements of specified array as the arguments.
+      * @param thisArg The object to be used as the this object.
+      * @param args An array of argument values to be passed to the function.
+      */
+    apply<T, R>(this: (this: T) => R, thisArg: T): R;
+    apply<T, A extends any[], R>(this: (this: T, ...args: A) => R, thisArg: T, args: A): R;
+
+    /**
+      * Calls the function with the specified object as the this value and the specified rest arguments as the arguments.
+      * @param thisArg The object to be used as the this object.
+      * @param args Argument values to be passed to the function.
+      */
+    call<T, A extends any[], R>(this: (this: T, ...args: A) => R, thisArg: T, ...args: A): R;
+
+    /**
+      * For a given function, creates a bound function that has the same body as the original function.
+      * The this object of the bound function is associated with the specified object, and has the specified initial parameters.
+      * @param thisArg The object to be used as the this object.
+      * @param args Arguments to bind to the parameters of the function.
+      */
+    bind<T>(this: T, thisArg: ThisParameterType<T>): OmitThisParameter<T>;
+    bind<T, A0, A extends any[], R>(this: (this: T, arg0: A0, ...args: A) => R, thisArg: T, arg0: A0): (...args: A) => R;
+    bind<T, A0, A1, A extends any[], R>(this: (this: T, arg0: A0, arg1: A1, ...args: A) => R, thisArg: T, arg0: A0, arg1: A1): (...args: A) => R;
+    bind<T, A0, A1, A2, A extends any[], R>(this: (this: T, arg0: A0, arg1: A1, arg2: A2, ...args: A) => R, thisArg: T, arg0: A0, arg1: A1, arg2: A2): (...args: A) => R;
+    bind<T, A0, A1, A2, A3, A extends any[], R>(this: (this: T, arg0: A0, arg1: A1, arg2: A2, arg3: A3, ...args: A) => R, thisArg: T, arg0: A0, arg1: A1, arg2: A2, arg3: A3): (...args: A) => R;
+    bind<T, AX, R>(this: (this: T, ...args: AX[]) => R, thisArg: T, ...args: AX[]): (...args: AX[]) => R;
+}
+
+interface NewableFunction extends Function {
+    /**
+      * Calls the function with the specified object as the this value and the elements of specified array as the arguments.
+      * @param thisArg The object to be used as the this object.
+      * @param args An array of argument values to be passed to the function.
+      */
+    apply<T>(this: new () => T, thisArg: T): void;
+    apply<T, A extends any[]>(this: new (...args: A) => T, thisArg: T, args: A): void;
+
+    /**
+      * Calls the function with the specified object as the this value and the specified rest arguments as the arguments.
+      * @param thisArg The object to be used as the this object.
+      * @param args Argument values to be passed to the function.
+      */
+    call<T, A extends any[]>(this: new (...args: A) => T, thisArg: T, ...args: A): void;
+
+    /**
+      * For a given function, creates a bound function that has the same body as the original function.
+      * The this object of the bound function is associated with the specified object, and has the specified initial parameters.
+      * @param thisArg The object to be used as the this object.
+      * @param args Arguments to bind to the parameters of the function.
+      */
+    bind<T>(this: T, thisArg: any): T;
+    bind<A0, A extends any[], R>(this: new (arg0: A0, ...args: A) => R, thisArg: any, arg0: A0): new (...args: A) => R;
+    bind<A0, A1, A extends any[], R>(this: new (arg0: A0, arg1: A1, ...args: A) => R, thisArg: any, arg0: A0, arg1: A1): new (...args: A) => R;
+    bind<A0, A1, A2, A extends any[], R>(this: new (arg0: A0, arg1: A1, arg2: A2, ...args: A) => R, thisArg: any, arg0: A0, arg1: A1, arg2: A2): new (...args: A) => R;
+    bind<A0, A1, A2, A3, A extends any[], R>(this: new (arg0: A0, arg1: A1, arg2: A2, arg3: A3, ...args: A) => R, thisArg: any, arg0: A0, arg1: A1, arg2: A2, arg3: A3): new (...args: A) => R;
+    bind<AX, R>(this: new (...args: AX[]) => R, thisArg: any, ...args: AX[]): new (...args: AX[]) => R;
+}
+
+interface IArguments {
+    [index: number]: any;
+    length: number;
+    callee: Function;
+}
+
+interface String {
+    /** Returns a string representation of a string. */
+    toString(): string;
+
+    /**
+      * Returns the character at the specified index.
+      * @param pos The zero-based index of the desired character.
+      */
+    charAt(pos: number): string;
+
+    /**
+      * Returns the Unicode value of the character at the specified location.
+      * @param index The zero-based index of the desired character. If there is no character at the specified index, NaN is returned.
+      */
+    charCodeAt(index: number): number;
+
+    /**
+      * Returns a string that contains the concatenation of two or more strings.
+      * @param strings The strings to append to the end of the string.
+      */
+    concat(...strings: string[]): string;
+
+    /**
+      * Returns the position of the first occurrence of a substring.
+      * @param searchString The substring to search for in the string
+      * @param position The index at which to begin searching the String object. If omitted, search starts at the beginning of the string.
+      */
+    indexOf(searchString: string, position?: number): number;
+
+    /**
+      * Returns the last occurrence of a substring in the string.
+      * @param searchString The substring to search for.
+      * @param position The index at which to begin searching. If omitted, the search begins at the end of the string.
+      */
+    lastIndexOf(searchString: string, position?: number): number;
+
+    /**
+      * Determines whether two strings are equivalent in the current locale.
+      * @param that String to compare to target string
+      */
+    localeCompare(that: string): number;
+
+    /**
+      * Matches a string with a regular expression, and returns an array containing the results of that search.
+      * @param regexp A variable name or string literal containing the regular expression pattern and flags.
+      */
+    match(regexp: string | RegExp): RegExpMatchArray | null;
+
+    /**
+      * Replaces text in a string, using a regular expression or search string.
+      * @param searchValue A string to search for.
+      * @param replaceValue A string containing the text to replace for every successful match of searchValue in this string.
+      */
+    replace(searchValue: string | RegExp, replaceValue: string): string;
+
+    /**
+      * Replaces text in a string, using a regular expression or search string.
+      * @param searchValue A string to search for.
+      * @param replacer A function that returns the replacement text.
+      */
+    replace(searchValue: string | RegExp, replacer: (substring: string, ...args: any[]) => string): string;
+
+    /**
+      * Finds the first substring match in a regular expression search.
+      * @param regexp The regular expression pattern and applicable flags.
+      */
+    search(regexp: string | RegExp): number;
+
+    /**
+      * Returns a section of a string.
+      * @param start The index to the beginning of the specified portion of stringObj.
+      * @param end The index to the end of the specified portion of stringObj. The substring includes the characters up to, but not including, the character indicated by end.
+      * If this value is not specified, the substring continues to the end of stringObj.
+      */
+    slice(start?: number, end?: number): string;
+
+    /**
+      * Split a string into substrings using the specified separator and return them as an array.
+      * @param separator A string that identifies character or characters to use in separating the string. If omitted, a single-element array containing the entire string is returned.
+      * @param limit A value used to limit the number of elements returned in the array.
+      */
+    split(separator: string | RegExp, limit?: number): string[];
+
+    /**
+      * Returns the substring at the specified location within a String object.
+      * @param start The zero-based index number indicating the beginning of the substring.
+      * @param end Zero-based index number indicating the end of the substring. The substring includes the characters up to, but not including, the character indicated by end.
+      * If end is omitted, the characters from start through the end of the original string are returned.
+      */
+    substring(start: number, end?: number): string;
+
+    /** Converts all the alphabetic characters in a string to lowercase. */
+    toLowerCase(): string;
+
+    /** Converts all alphabetic characters to lowercase, taking into account the host environment's current locale. */
+    toLocaleLowerCase(): string;
+
+    /** Converts all the alphabetic characters in a string to uppercase. */
+    toUpperCase(): string;
+
+    /** Returns a string where all alphabetic characters have been converted to uppercase, taking into account the host environment's current locale. */
+    toLocaleUpperCase(): string;
+
+    /** Removes the leading and trailing white space and line terminator characters from a string. */
+    trim(): string;
+
+    /** Returns the length of a String object. */
+    readonly length: number;
+
+    // IE extensions
+    /**
+      * Gets a substring beginning at the specified location and having the specified length.
+      * @param from The starting position of the desired substring. The index of the first character in the string is zero.
+      * @param length The number of characters to include in the returned substring.
+      */
+    substr(from: number, length?: number): string;
+
+    /** Returns the primitive value of the specified object. */
+    valueOf(): string;
+
+    readonly [index: number]: string;
+}
+
+interface StringConstructor {
+    new(value?: any): String;
+    (value?: any): string;
+    readonly prototype: String;
+    fromCharCode(...codes: number[]): string;
+}
+
+/**
+  * Allows manipulation and formatting of text strings and determination and location of substrings within strings.
+  */
+declare var String: StringConstructor;
+
+interface Boolean {
+    /** Returns the primitive value of the specified object. */
+    valueOf(): boolean;
+}
+
+interface BooleanConstructor {
+    new(value?: any): Boolean;
+    <T>(value?: T): boolean;
+    readonly prototype: Boolean;
+}
+
+declare var Boolean: BooleanConstructor;
+
+interface Number {
+    /**
+      * Returns a string representation of an object.
+      * @param radix Specifies a radix for converting numeric values to strings. This value is only used for numbers.
+      */
+    toString(radix?: number): string;
+
+    /**
+      * Returns a string representing a number in fixed-point notation.
+      * @param fractionDigits Number of digits after the decimal point. Must be in the range 0 - 20, inclusive.
+      */
+    toFixed(fractionDigits?: number): string;
+
+    /**
+      * Returns a string containing a number represented in exponential notation.
+      * @param fractionDigits Number of digits after the decimal point. Must be in the range 0 - 20, inclusive.
+      */
+    toExponential(fractionDigits?: number): string;
+
+    /**
+      * Returns a string containing a number represented either in exponential or fixed-point notation with a specified number of digits.
+      * @param precision Number of significant digits. Must be in the range 1 - 21, inclusive.
+      */
+    toPrecision(precision?: number): string;
+
+    /** Returns the primitive value of the specified object. */
+    valueOf(): number;
+}
+
+interface NumberConstructor {
+    new(value?: any): Number;
+    (value?: any): number;
+    readonly prototype: Number;
+
+    /** The largest number that can be represented in JavaScript. Equal to approximately 1.79E+308. */
+    readonly MAX_VALUE: number;
+
+    /** The closest number to zero that can be represented in JavaScript. Equal to approximately 5.00E-324. */
+    readonly MIN_VALUE: number;
+
+    /**
+      * A value that is not a number.
+      * In equality comparisons, NaN does not equal any value, including itself. To test whether a value is equivalent to NaN, use the isNaN function.
+      */
+    readonly NaN: number;
+
+    /**
+      * A value that is less than the largest negative number that can be represented in JavaScript.
+      * JavaScript displays NEGATIVE_INFINITY values as -infinity.
+      */
+    readonly NEGATIVE_INFINITY: number;
+
+    /**
+      * A value greater than the largest number that can be represented in JavaScript.
+      * JavaScript displays POSITIVE_INFINITY values as infinity.
+      */
+    readonly POSITIVE_INFINITY: number;
+}
+
+/** An object that represents a number of any kind. All JavaScript numbers are 64-bit floating-point numbers. */
+declare var Number: NumberConstructor;
+
+interface TemplateStringsArray extends ReadonlyArray<string> {
+    readonly raw: ReadonlyArray<string>;
+}
+
+/**
+ * The type of `import.meta`.
+ *
+ * If you need to declare that a given property exists on `import.meta`,
+ * this type may be augmented via interface merging.
+ */
+interface ImportMeta {
+}
+
+interface Math {
+    /** The mathematical constant e. This is Euler's number, the base of natural logarithms. */
+    readonly E: number;
+    /** The natural logarithm of 10. */
+    readonly LN10: number;
+    /** The natural logarithm of 2. */
+    readonly LN2: number;
+    /** The base-2 logarithm of e. */
+    readonly LOG2E: number;
+    /** The base-10 logarithm of e. */
+    readonly LOG10E: number;
+    /** Pi. This is the ratio of the circumference of a circle to its diameter. */
+    readonly PI: number;
+    /** The square root of 0.5, or, equivalently, one divided by the square root of 2. */
+    readonly SQRT1_2: number;
+    /** The square root of 2. */
+    readonly SQRT2: number;
+    /**
+      * Returns the absolute value of a number (the value without regard to whether it is positive or negative).
+      * For example, the absolute value of -5 is the same as the absolute value of 5.
+      * @param x A numeric expression for which the absolute value is needed.
+      */
+    abs(x: number): number;
+    /**
+      * Returns the arc cosine (or inverse cosine) of a number.
+      * @param x A numeric expression.
+      */
+    acos(x: number): number;
+    /**
+      * Returns the arcsine of a number.
+      * @param x A numeric expression.
+      */
+    asin(x: number): number;
+    /**
+      * Returns the arctangent of a number.
+      * @param x A numeric expression for which the arctangent is needed.
+      */
+    atan(x: number): number;
+    /**
+      * Returns the angle (in radians) from the X axis to a point.
+      * @param y A numeric expression representing the cartesian y-coordinate.
+      * @param x A numeric expression representing the cartesian x-coordinate.
+      */
+    atan2(y: number, x: number): number;
+    /**
+      * Returns the smallest integer greater than or equal to its numeric argument.
+      * @param x A numeric expression.
+      */
+    ceil(x: number): number;
+    /**
+      * Returns the cosine of a number.
+      * @param x A numeric expression that contains an angle measured in radians.
+      */
+    cos(x: number): number;
+    /**
+      * Returns e (the base of natural logarithms) raised to a power.
+      * @param x A numeric expression representing the power of e.
+      */
+    exp(x: number): number;
+    /**
+      * Returns the greatest integer less than or equal to its numeric argument.
+      * @param x A numeric expression.
+      */
+    floor(x: number): number;
+    /**
+      * Returns the natural logarithm (base e) of a number.
+      * @param x A numeric expression.
+      */
+    log(x: number): number;
+    /**
+      * Returns the larger of a set of supplied numeric expressions.
+      * @param values Numeric expressions to be evaluated.
+      */
+    max(...values: number[]): number;
+    /**
+      * Returns the smaller of a set of supplied numeric expressions.
+      * @param values Numeric expressions to be evaluated.
+      */
+    min(...values: number[]): number;
+    /**
+      * Returns the value of a base expression taken to a specified power.
+      * @param x The base value of the expression.
+      * @param y The exponent value of the expression.
+      */
+    pow(x: number, y: number): number;
+    /** Returns a pseudorandom number between 0 and 1. */
+    random(): number;
+    /**
+      * Returns a supplied numeric expression rounded to the nearest number.
+      * @param x The value to be rounded to the nearest number.
+      */
+    round(x: number): number;
+    /**
+      * Returns the sine of a number.
+      * @param x A numeric expression that contains an angle measured in radians.
+      */
+    sin(x: number): number;
+    /**
+      * Returns the square root of a number.
+      * @param x A numeric expression.
+      */
+    sqrt(x: number): number;
+    /**
+      * Returns the tangent of a number.
+      * @param x A numeric expression that contains an angle measured in radians.
+      */
+    tan(x: number): number;
+}
+/** An intrinsic object that provides basic mathematics functionality and constants. */
+declare var Math: Math;
+
+/** Enables basic storage and retrieval of dates and times. */
+interface Date {
+    /** Returns a string representation of a date. The format of the string depends on the locale. */
+    toString(): string;
+    /** Returns a date as a string value. */
+    toDateString(): string;
+    /** Returns a time as a string value. */
+    toTimeString(): string;
+    /** Returns a value as a string value appropriate to the host environment's current locale. */
+    toLocaleString(): string;
+    /** Returns a date as a string value appropriate to the host environment's current locale. */
+    toLocaleDateString(): string;
+    /** Returns a time as a string value appropriate to the host environment's current locale. */
+    toLocaleTimeString(): string;
+    /** Returns the stored time value in milliseconds since midnight, January 1, 1970 UTC. */
+    valueOf(): number;
+    /** Gets the time value in milliseconds. */
+    getTime(): number;
+    /** Gets the year, using local time. */
+    getFullYear(): number;
+    /** Gets the year using Universal Coordinated Time (UTC). */
+    getUTCFullYear(): number;
+    /** Gets the month, using local time. */
+    getMonth(): number;
+    /** Gets the month of a Date object using Universal Coordinated Time (UTC). */
+    getUTCMonth(): number;
+    /** Gets the day-of-the-month, using local time. */
+    getDate(): number;
+    /** Gets the day-of-the-month, using Universal Coordinated Time (UTC). */
+    getUTCDate(): number;
+    /** Gets the day of the week, using local time. */
+    getDay(): number;
+    /** Gets the day of the week using Universal Coordinated Time (UTC). */
+    getUTCDay(): number;
+    /** Gets the hours in a date, using local time. */
+    getHours(): number;
+    /** Gets the hours value in a Date object using Universal Coordinated Time (UTC). */
+    getUTCHours(): number;
+    /** Gets the minutes of a Date object, using local time. */
+    getMinutes(): number;
+    /** Gets the minutes of a Date object using Universal Coordinated Time (UTC). */
+    getUTCMinutes(): number;
+    /** Gets the seconds of a Date object, using local time. */
+    getSeconds(): number;
+    /** Gets the seconds of a Date object using Universal Coordinated Time (UTC). */
+    getUTCSeconds(): number;
+    /** Gets the milliseconds of a Date, using local time. */
+    getMilliseconds(): number;
+    /** Gets the milliseconds of a Date object using Universal Coordinated Time (UTC). */
+    getUTCMilliseconds(): number;
+    /** Gets the difference in minutes between the time on the local computer and Universal Coordinated Time (UTC). */
+    getTimezoneOffset(): number;
+    /**
+      * Sets the date and time value in the Date object.
+      * @param time A numeric value representing the number of elapsed milliseconds since midnight, January 1, 1970 GMT.
+      */
+    setTime(time: number): number;
+    /**
+      * Sets the milliseconds value in the Date object using local time.
+      * @param ms A numeric value equal to the millisecond value.
+      */
+    setMilliseconds(ms: number): number;
+    /**
+      * Sets the milliseconds value in the Date object using Universal Coordinated Time (UTC).
+      * @param ms A numeric value equal to the millisecond value.
+      */
+    setUTCMilliseconds(ms: number): number;
+
+    /**
+      * Sets the seconds value in the Date object using local time.
+      * @param sec A numeric value equal to the seconds value.
+      * @param ms A numeric value equal to the milliseconds value.
+      */
+    setSeconds(sec: number, ms?: number): number;
+    /**
+      * Sets the seconds value in the Date object using Universal Coordinated Time (UTC).
+      * @param sec A numeric value equal to the seconds value.
+      * @param ms A numeric value equal to the milliseconds value.
+      */
+    setUTCSeconds(sec: number, ms?: number): number;
+    /**
+      * Sets the minutes value in the Date object using local time.
+      * @param min A numeric value equal to the minutes value.
+      * @param sec A numeric value equal to the seconds value.
+      * @param ms A numeric value equal to the milliseconds value.
+      */
+    setMinutes(min: number, sec?: number, ms?: number): number;
+    /**
+      * Sets the minutes value in the Date object using Universal Coordinated Time (UTC).
+      * @param min A numeric value equal to the minutes value.
+      * @param sec A numeric value equal to the seconds value.
+      * @param ms A numeric value equal to the milliseconds value.
+      */
+    setUTCMinutes(min: number, sec?: number, ms?: number): number;
+    /**
+      * Sets the hour value in the Date object using local time.
+      * @param hours A numeric value equal to the hours value.
+      * @param min A numeric value equal to the minutes value.
+      * @param sec A numeric value equal to the seconds value.
+      * @param ms A numeric value equal to the milliseconds value.
+      */
+    setHours(hours: number, min?: number, sec?: number, ms?: number): number;
+    /**
+      * Sets the hours value in the Date object using Universal Coordinated Time (UTC).
+      * @param hours A numeric value equal to the hours value.
+      * @param min A numeric value equal to the minutes value.
+      * @param sec A numeric value equal to the seconds value.
+      * @param ms A numeric value equal to the milliseconds value.
+      */
+    setUTCHours(hours: number, min?: number, sec?: number, ms?: number): number;
+    /**
+      * Sets the numeric day-of-the-month value of the Date object using local time.
+      * @param date A numeric value equal to the day of the month.
+      */
+    setDate(date: number): number;
+    /**
+      * Sets the numeric day of the month in the Date object using Universal Coordinated Time (UTC).
+      * @param date A numeric value equal to the day of the month.
+      */
+    setUTCDate(date: number): number;
+    /**
+      * Sets the month value in the Date object using local time.
+      * @param month A numeric value equal to the month. The value for January is 0, and other month values follow consecutively.
+      * @param date A numeric value representing the day of the month. If this value is not supplied, the value from a call to the getDate method is used.
+      */
+    setMonth(month: number, date?: number): number;
+    /**
+      * Sets the month value in the Date object using Universal Coordinated Time (UTC).
+      * @param month A numeric value equal to the month. The value for January is 0, and other month values follow consecutively.
+      * @param date A numeric value representing the day of the month. If it is not supplied, the value from a call to the getUTCDate method is used.
+      */
+    setUTCMonth(month: number, date?: number): number;
+    /**
+      * Sets the year of the Date object using local time.
+      * @param year A numeric value for the year.
+      * @param month A zero-based numeric value for the month (0 for January, 11 for December). Must be specified if numDate is specified.
+      * @param date A numeric value equal for the day of the month.
+      */
+    setFullYear(year: number, month?: number, date?: number): number;
+    /**
+      * Sets the year value in the Date object using Universal Coordinated Time (UTC).
+      * @param year A numeric value equal to the year.
+      * @param month A numeric value equal to the month. The value for January is 0, and other month values follow consecutively. Must be supplied if numDate is supplied.
+      * @param date A numeric value equal to the day of the month.
+      */
+    setUTCFullYear(year: number, month?: number, date?: number): number;
+    /** Returns a date converted to a string using Universal Coordinated Time (UTC). */
+    toUTCString(): string;
+    /** Returns a date as a string value in ISO format. */
+    toISOString(): string;
+    /** Used by the JSON.stringify method to enable the transformation of an object's data for JavaScript Object Notation (JSON) serialization. */
+    toJSON(key?: any): string;
+}
+
+interface DateConstructor {
+    new(): Date;
+    new(value: number | string): Date;
+    new(year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): Date;
+    (): string;
+    readonly prototype: Date;
+    /**
+      * Parses a string containing a date, and returns the number of milliseconds between that date and midnight, January 1, 1970.
+      * @param s A date string
+      */
+    parse(s: string): number;
+    /**
+      * Returns the number of milliseconds between midnight, January 1, 1970 Universal Coordinated Time (UTC) (or GMT) and the specified date.
+      * @param year The full year designation is required for cross-century date accuracy. If year is between 0 and 99 is used, then year is assumed to be 1900 + year.
+      * @param month The month as an number between 0 and 11 (January to December).
+      * @param date The date as an number between 1 and 31.
+      * @param hours Must be supplied if minutes is supplied. An number from 0 to 23 (midnight to 11pm) that specifies the hour.
+      * @param minutes Must be supplied if seconds is supplied. An number from 0 to 59 that specifies the minutes.
+      * @param seconds Must be supplied if milliseconds is supplied. An number from 0 to 59 that specifies the seconds.
+      * @param ms An number from 0 to 999 that specifies the milliseconds.
+      */
+    UTC(year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): number;
+    now(): number;
+}
+
+declare var Date: DateConstructor;
+
+interface RegExpMatchArray extends Array<string> {
+    index?: number;
+    input?: string;
+}
+
+interface RegExpExecArray extends Array<string> {
+    index: number;
+    input: string;
+}
+
+interface RegExp {
+    /**
+      * Executes a search on a string using a regular expression pattern, and returns an array containing the results of that search.
+      * @param string The String object or string literal on which to perform the search.
+      */
+    exec(string: string): RegExpExecArray | null;
+
+    /**
+      * Returns a Boolean value that indicates whether or not a pattern exists in a searched string.
+      * @param string String on which to perform the search.
+      */
+    test(string: string): boolean;
+
+    /** Returns a copy of the text of the regular expression pattern. Read-only. The regExp argument is a Regular expression object. It can be a variable name or a literal. */
+    readonly source: string;
+
+    /** Returns a Boolean value indicating the state of the global flag (g) used with a regular expression. Default is false. Read-only. */
+    readonly global: boolean;
+
+    /** Returns a Boolean value indicating the state of the ignoreCase flag (i) used with a regular expression. Default is false. Read-only. */
+    readonly ignoreCase: boolean;
+
+    /** Returns a Boolean value indicating the state of the multiline flag (m) used with a regular expression. Default is false. Read-only. */
+    readonly multiline: boolean;
+
+    lastIndex: number;
+
+    // Non-standard extensions
+    compile(): this;
+}
+
+interface RegExpConstructor {
+    new(pattern: RegExp | string): RegExp;
+    new(pattern: string, flags?: string): RegExp;
+    (pattern: RegExp | string): RegExp;
+    (pattern: string, flags?: string): RegExp;
+    readonly prototype: RegExp;
+
+    // Non-standard extensions
+    $1: string;
+    $2: string;
+    $3: string;
+    $4: string;
+    $5: string;
+    $6: string;
+    $7: string;
+    $8: string;
+    $9: string;
+    lastMatch: string;
+}
+
+declare var RegExp: RegExpConstructor;
+
+interface Error {
+    name: string;
+    message: string;
+    stack?: string;
+}
+
+interface ErrorConstructor {
+    new(message?: string): Error;
+    (message?: string): Error;
+    readonly prototype: Error;
+}
+
+declare var Error: ErrorConstructor;
+
+interface EvalError extends Error {
+}
+
+interface EvalErrorConstructor {
+    new(message?: string): EvalError;
+    (message?: string): EvalError;
+    readonly prototype: EvalError;
+}
+
+declare var EvalError: EvalErrorConstructor;
+
+interface RangeError extends Error {
+}
+
+interface RangeErrorConstructor {
+    new(message?: string): RangeError;
+    (message?: string): RangeError;
+    readonly prototype: RangeError;
+}
+
+declare var RangeError: RangeErrorConstructor;
+
+interface ReferenceError extends Error {
+}
+
+interface ReferenceErrorConstructor {
+    new(message?: string): ReferenceError;
+    (message?: string): ReferenceError;
+    readonly prototype: ReferenceError;
+}
+
+declare var ReferenceError: ReferenceErrorConstructor;
+
+interface SyntaxError extends Error {
+}
+
+interface SyntaxErrorConstructor {
+    new(message?: string): SyntaxError;
+    (message?: string): SyntaxError;
+    readonly prototype: SyntaxError;
+}
+
+declare var SyntaxError: SyntaxErrorConstructor;
+
+interface TypeError extends Error {
+}
+
+interface TypeErrorConstructor {
+    new(message?: string): TypeError;
+    (message?: string): TypeError;
+    readonly prototype: TypeError;
+}
+
+declare var TypeError: TypeErrorConstructor;
+
+interface URIError extends Error {
+}
+
+interface URIErrorConstructor {
+    new(message?: string): URIError;
+    (message?: string): URIError;
+    readonly prototype: URIError;
+}
+
+declare var URIError: URIErrorConstructor;
+
+interface JSON {
+    /**
+      * Converts a JavaScript Object Notation (JSON) string into an object.
+      * @param text A valid JSON string.
+      * @param reviver A function that transforms the results. This function is called for each member of the object.
+      * If a member contains nested objects, the nested objects are transformed before the parent object is.
+      */
+    parse(text: string, reviver?: (this: any, key: string, value: any) => any): any;
+    /**
+      * Converts a JavaScript value to a JavaScript Object Notation (JSON) string.
+      * @param value A JavaScript value, usually an object or array, to be converted.
+      * @param replacer A function that transforms the results.
+      * @param space Adds indentation, white space, and line break characters to the return-value JSON text to make it easier to read.
+      */
+    stringify(value: any, replacer?: (this: any, key: string, value: any) => any, space?: string | number): string;
+    /**
+      * Converts a JavaScript value to a JavaScript Object Notation (JSON) string.
+      * @param value A JavaScript value, usually an object or array, to be converted.
+      * @param replacer An array of strings and numbers that acts as a approved list for selecting the object properties that will be stringified.
+      * @param space Adds indentation, white space, and line break characters to the return-value JSON text to make it easier to read.
+      */
+    stringify(value: any, replacer?: (number | string)[] | null, space?: string | number): string;
+}
+
+/**
+  * An intrinsic object that provides functions to convert JavaScript values to and from the JavaScript Object Notation (JSON) format.
+  */
+declare var JSON: JSON;
+
+
+/////////////////////////////
+/// ECMAScript Array API (specially handled by compiler)
+/////////////////////////////
+
+interface ReadonlyArray<T> {
+    /**
+      * Gets the length of the array. This is a number one higher than the highest element defined in an array.
+      */
+    readonly length: number;
+    /**
+      * Returns a string representation of an array.
+      */
+    toString(): string;
+    /**
+      * Returns a string representation of an array. The elements are converted to string using their toLocalString methods.
+      */
+    toLocaleString(): string;
+    /**
+      * Combines two or more arrays.
+      * @param items Additional items to add to the end of array1.
+      */
+    concat(...items: ConcatArray<T>[]): T[];
+    /**
+      * Combines two or more arrays.
+      * @param items Additional items to add to the end of array1.
+      */
+    concat(...items: (T | ConcatArray<T>)[]): T[];
+    /**
+      * Adds all the elements of an array separated by the specified separator string.
+      * @param separator A string used to separate one element of an array from the next in the resulting String. If omitted, the array elements are separated with a comma.
+      */
+    join(separator?: string): string;
+    /**
+      * Returns a section of an array.
+      * @param start The beginning of the specified portion of the array.
+      * @param end The end of the specified portion of the array.
+      */
+    slice(start?: number, end?: number): T[];
+    /**
+      * Returns the index of the first occurrence of a value in an array.
+      * @param searchElement The value to locate in the array.
+      * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the search starts at index 0.
+      */
+    indexOf(searchElement: T, fromIndex?: number): number;
+    /**
+      * Returns the index of the last occurrence of a specified value in an array.
+      * @param searchElement The value to locate in the array.
+      * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the search starts at the last index in the array.
+      */
+    lastIndexOf(searchElement: T, fromIndex?: number): number;
+    /**
+      * Determines whether all the members of an array satisfy the specified test.
+      * @param callbackfn A function that accepts up to three arguments. The every method calls the callbackfn function for each element in array1 until the callbackfn returns false, or until the end of the array.
+      * @param thisArg An object to which the this keyword can refer in the callbackfn function. If thisArg is omitted, undefined is used as the this value.
+      */
+    every(callbackfn: (value: T, index: number, array: ReadonlyArray<T>) => unknown, thisArg?: any): boolean;
+    /**
+      * Determines whether the specified callback function returns true for any element of an array.
+      * @param callbackfn A function that accepts up to three arguments. The some method calls the callbackfn function for each element in array1 until the callbackfn returns true, or until the end of the array.
+      * @param thisArg An object to which the this keyword can refer in the callbackfn function. If thisArg is omitted, undefined is used as the this value.
+      */
+    some(callbackfn: (value: T, index: number, array: ReadonlyArray<T>) => unknown, thisArg?: any): boolean;
+    /**
+      * Performs the specified action for each element in an array.
+      * @param callbackfn  A function that accepts up to three arguments. forEach calls the callbackfn function one time for each element in the array.
+      * @param thisArg  An object to which the this keyword can refer in the callbackfn function. If thisArg is omitted, undefined is used as the this value.
+      */
+    forEach(callbackfn: (value: T, index: number, array: ReadonlyArray<T>) => void, thisArg?: any): void;
+    /**
+      * Calls a defined callback function on each element of an array, and returns an array that contains the results.
+      * @param callbackfn A function that accepts up to three arguments. The map method calls the callbackfn function one time for each element in the array.
+      * @param thisArg An object to which the this keyword can refer in the callbackfn function. If thisArg is omitted, undefined is used as the this value.
+      */
+    map<U>(callbackfn: (value: T, index: number, array: ReadonlyArray<T>) => U, thisArg?: any): U[];
+    /**
+     * Returns the elements of an array that meet the condition specified in a callback function.
+     * @param callbackfn A function that accepts up to three arguments. The filter method calls the callbackfn function one time for each element in the array.
+     * @param thisArg An object to which the this keyword can refer in the callbackfn function. If thisArg is omitted, undefined is used as the this value.
+     */
+    filter<S extends T>(callbackfn: (value: T, index: number, array: ReadonlyArray<T>) => value is S, thisArg?: any): S[];
+    /**
+      * Returns the elements of an array that meet the condition specified in a callback function.
+      * @param callbackfn A function that accepts up to three arguments. The filter method calls the callbackfn function one time for each element in the array.
+      * @param thisArg An object to which the this keyword can refer in the callbackfn function. If thisArg is omitted, undefined is used as the this value.
+      */
+    filter(callbackfn: (value: T, index: number, array: ReadonlyArray<T>) => unknown, thisArg?: any): T[];
+    /**
+      * Calls the specified callback function for all the elements in an array. The return value of the callback function is the accumulated result, and is provided as an argument in the next call to the callback function.
+      * @param callbackfn A function that accepts up to four arguments. The reduce method calls the callbackfn function one time for each element in the array.
+      * @param initialValue If initialValue is specified, it is used as the initial value to start the accumulation. The first call to the callbackfn function provides this value as an argument instead of an array value.
+      */
+    reduce(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: ReadonlyArray<T>) => T): T;
+    reduce(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: ReadonlyArray<T>) => T, initialValue: T): T;
+    /**
+      * Calls the specified callback function for all the elements in an array. The return value of the callback function is the accumulated result, and is provided as an argument in the next call to the callback function.
+      * @param callbackfn A function that accepts up to four arguments. The reduce method calls the callbackfn function one time for each element in the array.
+      * @param initialValue If initialValue is specified, it is used as the initial value to start the accumulation. The first call to the callbackfn function provides this value as an argument instead of an array value.
+      */
+    reduce<U>(callbackfn: (previousValue: U, currentValue: T, currentIndex: number, array: ReadonlyArray<T>) => U, initialValue: U): U;
+    /**
+      * Calls the specified callback function for all the elements in an array, in descending order. The return value of the callback function is the accumulated result, and is provided as an argument in the next call to the callback function.
+      * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls the callbackfn function one time for each element in the array.
+      * @param initialValue If initialValue is specified, it is used as the initial value to start the accumulation. The first call to the callbackfn function provides this value as an argument instead of an array value.
+      */
+    reduceRight(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: ReadonlyArray<T>) => T): T;
+    reduceRight(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: ReadonlyArray<T>) => T, initialValue: T): T;
+    /**
+      * Calls the specified callback function for all the elements in an array, in descending order. The return value of the callback function is the accumulated result, and is provided as an argument in the next call to the callback function.
+      * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls the callbackfn function one time for each element in the array.
+      * @param initialValue If initialValue is specified, it is used as the initial value to start the accumulation. The first call to the callbackfn function provides this value as an argument instead of an array value.
+      */
+    reduceRight<U>(callbackfn: (previousValue: U, currentValue: T, currentIndex: number, array: ReadonlyArray<T>) => U, initialValue: U): U;
+
+    readonly [n: number]: T;
+}
+
+interface ConcatArray<T> {
+    readonly length: number;
+    readonly [n: number]: T;
+    join(separator?: string): string;
+    slice(start?: number, end?: number): T[];
+}
+
+interface Array<T> {
+    /**
+      * Gets or sets the length of the array. This is a number one higher than the highest element defined in an array.
+      */
+    length: number;
+    /**
+      * Returns a string representation of an array.
+      */
+    toString(): string;
+    /**
+      * Returns a string representation of an array. The elements are converted to string using their toLocalString methods.
+      */
+    toLocaleString(): string;
+    /**
+      * Removes the last element from an array and returns it.
+      */
+    pop(): T | undefined;
+    /**
+      * Appends new elements to an array, and returns the new length of the array.
+      * @param items New elements of the Array.
+      */
+    push(...items: T[]): number;
+    /**
+      * Combines two or more arrays.
+      * @param items Additional items to add to the end of array1.
+      */
+    concat(...items: ConcatArray<T>[]): T[];
+    /**
+      * Combines two or more arrays.
+      * @param items Additional items to add to the end of array1.
+      */
+    concat(...items: (T | ConcatArray<T>)[]): T[];
+    /**
+      * Adds all the elements of an array separated by the specified separator string.
+      * @param separator A string used to separate one element of an array from the next in the resulting String. If omitted, the array elements are separated with a comma.
+      */
+    join(separator?: string): string;
+    /**
+      * Reverses the elements in an Array.
+      */
+    reverse(): T[];
+    /**
+      * Removes the first element from an array and returns it.
+      */
+    shift(): T | undefined;
+    /**
+      * Returns a section of an array.
+      * @param start The beginning of the specified portion of the array.
+      * @param end The end of the specified portion of the array.
+      */
+    slice(start?: number, end?: number): T[];
+    /**
+      * Sorts an array.
+      * @param compareFn The name of the function used to determine the order of the elements. If omitted, the elements are sorted in ascending, ASCII character order.
+      */
+    sort(compareFn?: (a: T, b: T) => number): this;
+    /**
+      * Removes elements from an array and, if necessary, inserts new elements in their place, returning the deleted elements.
+      * @param start The zero-based location in the array from which to start removing elements.
+      * @param deleteCount The number of elements to remove.
+      */
+    splice(start: number, deleteCount?: number): T[];
+    /**
+      * Removes elements from an array and, if necessary, inserts new elements in their place, returning the deleted elements.
+      * @param start The zero-based location in the array from which to start removing elements.
+      * @param deleteCount The number of elements to remove.
+      * @param items Elements to insert into the array in place of the deleted elements.
+      */
+    splice(start: number, deleteCount: number, ...items: T[]): T[];
+    /**
+      * Inserts new elements at the start of an array.
+      * @param items  Elements to insert at the start of the Array.
+      */
+    unshift(...items: T[]): number;
+    /**
+      * Returns the index of the first occurrence of a value in an array.
+      * @param searchElement The value to locate in the array.
+      * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the search starts at index 0.
+      */
+    indexOf(searchElement: T, fromIndex?: number): number;
+    /**
+      * Returns the index of the last occurrence of a specified value in an array.
+      * @param searchElement The value to locate in the array.
+      * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the search starts at the last index in the array.
+      */
+    lastIndexOf(searchElement: T, fromIndex?: number): number;
+    /**
+      * Determines whether all the members of an array satisfy the specified test.
+      * @param callbackfn A function that accepts up to three arguments. The every method calls the callbackfn function for each element in array1 until the callbackfn returns false, or until the end of the array.
+      * @param thisArg An object to which the this keyword can refer in the callbackfn function. If thisArg is omitted, undefined is used as the this value.
+      */
+    every(callbackfn: (value: T, index: number, array: T[]) => unknown, thisArg?: any): boolean;
+    /**
+      * Determines whether the specified callback function returns true for any element of an array.
+      * @param callbackfn A function that accepts up to three arguments. The some method calls the callbackfn function for each element in array1 until the callbackfn returns true, or until the end of the array.
+      * @param thisArg An object to which the this keyword can refer in the callbackfn function. If thisArg is omitted, undefined is used as the this value.
+      */
+    some(callbackfn: (value: T, index: number, array: T[]) => unknown, thisArg?: any): boolean;
+    /**
+      * Performs the specified action for each element in an array.
+      * @param callbackfn  A function that accepts up to three arguments. forEach calls the callbackfn function one time for each element in the array.
+      * @param thisArg  An object to which the this keyword can refer in the callbackfn function. If thisArg is omitted, undefined is used as the this value.
+      */
+    forEach(callbackfn: (value: T, index: number, array: T[]) => void, thisArg?: any): void;
+    /**
+      * Calls a defined callback function on each element of an array, and returns an array that contains the results.
+      * @param callbackfn A function that accepts up to three arguments. The map method calls the callbackfn function one time for each element in the array.
+      * @param thisArg An object to which the this keyword can refer in the callbackfn function. If thisArg is omitted, undefined is used as the this value.
+      */
+    map<U>(callbackfn: (value: T, index: number, array: T[]) => U, thisArg?: any): U[];
+    /**
+     * Returns the elements of an array that meet the condition specified in a callback function.
+     * @param callbackfn A function that accepts up to three arguments. The filter method calls the callbackfn function one time for each element in the array.
+     * @param thisArg An object to which the this keyword can refer in the callbackfn function. If thisArg is omitted, undefined is used as the this value.
+     */
+    filter<S extends T>(callbackfn: (value: T, index: number, array: T[]) => value is S, thisArg?: any): S[];
+    /**
+      * Returns the elements of an array that meet the condition specified in a callback function.
+      * @param callbackfn A function that accepts up to three arguments. The filter method calls the callbackfn function one time for each element in the array.
+      * @param thisArg An object to which the this keyword can refer in the callbackfn function. If thisArg is omitted, undefined is used as the this value.
+      */
+    filter(callbackfn: (value: T, index: number, array: T[]) => unknown, thisArg?: any): T[];
+    /**
+      * Calls the specified callback function for all the elements in an array. The return value of the callback function is the accumulated result, and is provided as an argument in the next call to the callback function.
+      * @param callbackfn A function that accepts up to four arguments. The reduce method calls the callbackfn function one time for each element in the array.
+      * @param initialValue If initialValue is specified, it is used as the initial value to start the accumulation. The first call to the callbackfn function provides this value as an argument instead of an array value.
+      */
+    reduce(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T): T;
+    reduce(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T, initialValue: T): T;
+    /**
+      * Calls the specified callback function for all the elements in an array. The return value of the callback function is the accumulated result, and is provided as an argument in the next call to the callback function.
+      * @param callbackfn A function that accepts up to four arguments. The reduce method calls the callbackfn function one time for each element in the array.
+      * @param initialValue If initialValue is specified, it is used as the initial value to start the accumulation. The first call to the callbackfn function provides this value as an argument instead of an array value.
+      */
+    reduce<U>(callbackfn: (previousValue: U, currentValue: T, currentIndex: number, array: T[]) => U, initialValue: U): U;
+    /**
+      * Calls the specified callback function for all the elements in an array, in descending order. The return value of the callback function is the accumulated result, and is provided as an argument in the next call to the callback function.
+      * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls the callbackfn function one time for each element in the array.
+      * @param initialValue If initialValue is specified, it is used as the initial value to start the accumulation. The first call to the callbackfn function provides this value as an argument instead of an array value.
+      */
+    reduceRight(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T): T;
+    reduceRight(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T, initialValue: T): T;
+    /**
+      * Calls the specified callback function for all the elements in an array, in descending order. The return value of the callback function is the accumulated result, and is provided as an argument in the next call to the callback function.
+      * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls the callbackfn function one time for each element in the array.
+      * @param initialValue If initialValue is specified, it is used as the initial value to start the accumulation. The first call to the callbackfn function provides this value as an argument instead of an array value.
+      */
+    reduceRight<U>(callbackfn: (previousValue: U, currentValue: T, currentIndex: number, array: T[]) => U, initialValue: U): U;
+
+    [n: number]: T;
+}
+
+interface ArrayConstructor {
+    new(arrayLength?: number): any[];
+    new <T>(arrayLength: number): T[];
+    new <T>(...items: T[]): T[];
+    (arrayLength?: number): any[];
+    <T>(arrayLength: number): T[];
+    <T>(...items: T[]): T[];
+    isArray(arg: any): arg is Array<any>;
+    readonly prototype: Array<any>;
+}
+
+declare var Array: ArrayConstructor;
+
+interface TypedPropertyDescriptor<T> {
+    enumerable?: boolean;
+    configurable?: boolean;
+    writable?: boolean;
+    value?: T;
+    get?: () => T;
+    set?: (value: T) => void;
+}
+
+declare type ClassDecorator = <TFunction extends Function>(target: TFunction) => TFunction | void;
+declare type PropertyDecorator = (target: Object, propertyKey: string | symbol) => void;
+declare type MethodDecorator = <T>(target: Object, propertyKey: string | symbol, descriptor: TypedPropertyDescriptor<T>) => TypedPropertyDescriptor<T> | void;
+declare type ParameterDecorator = (target: Object, propertyKey: string | symbol, parameterIndex: number) => void;
+
+declare type PromiseConstructorLike = new <T>(executor: (resolve: (value?: T | PromiseLike<T>) => void, reject: (reason?: any) => void) => void) => PromiseLike<T>;
+
+interface PromiseLike<T> {
+    /**
+     * Attaches callbacks for the resolution and/or rejection of the Promise.
+     * @param onfulfilled The callback to execute when the Promise is resolved.
+     * @param onrejected The callback to execute when the Promise is rejected.
+     * @returns A Promise for the completion of which ever callback is executed.
+     */
+    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): PromiseLike<TResult1 | TResult2>;
+}
+
+/**
+ * Represents the completion of an asynchronous operation
+ */
+interface Promise<T> {
+    /**
+     * Attaches callbacks for the resolution and/or rejection of the Promise.
+     * @param onfulfilled The callback to execute when the Promise is resolved.
+     * @param onrejected The callback to execute when the Promise is rejected.
+     * @returns A Promise for the completion of which ever callback is executed.
+     */
+    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): Promise<TResult1 | TResult2>;
+
+    /**
+     * Attaches a callback for only the rejection of the Promise.
+     * @param onrejected The callback to execute when the Promise is rejected.
+     * @returns A Promise for the completion of the callback.
+     */
+    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): Promise<T | TResult>;
+}
+
+interface ArrayLike<T> {
+    readonly length: number;
+    readonly [n: number]: T;
+}
+
+/**
+ * Make all properties in T optional
+ */
+type Partial<T> = {
+    [P in keyof T]?: T[P];
+};
+
+/**
+ * Make all properties in T required
+ */
+type Required<T> = {
+    [P in keyof T]-?: T[P];
+};
+
+/**
+ * Make all properties in T readonly
+ */
+type Readonly<T> = {
+    readonly [P in keyof T]: T[P];
+};
+
+/**
+ * From T, pick a set of properties whose keys are in the union K
+ */
+type Pick<T, K extends keyof T> = {
+    [P in K]: T[P];
+};
+
+/**
+ * Construct a type with a set of properties K of type T
+ */
+type Record<K extends keyof any, T> = {
+    [P in K]: T;
+};
+
+/**
+ * Exclude from T those types that are assignable to U
+ */
+type Exclude<T, U> = T extends U ? never : T;
+
+/**
+ * Extract from T those types that are assignable to U
+ */
+type Extract<T, U> = T extends U ? T : never;
+
+/**
+ * Construct a type with the properties of T except for those in type K.
+ */
+type Omit<T, K extends keyof any> = Pick<T, Exclude<keyof T, K>>;
+
+/**
+ * Exclude null and undefined from T
+ */
+type NonNullable<T> = T extends null | undefined ? never : T;
+
+/**
+ * Obtain the parameters of a function type in a tuple
+ */
+type Parameters<T extends (...args: any) => any> = T extends (...args: infer P) => any ? P : never;
+
+/**
+ * Obtain the parameters of a constructor function type in a tuple
+ */
+type ConstructorParameters<T extends new (...args: any) => any> = T extends new (...args: infer P) => any ? P : never;
+
+/**
+ * Obtain the return type of a function type
+ */
+type ReturnType<T extends (...args: any) => any> = T extends (...args: any) => infer R ? R : any;
+
+/**
+ * Obtain the return type of a constructor function type
+ */
+type InstanceType<T extends new (...args: any) => any> = T extends new (...args: any) => infer R ? R : any;
+
+/**
+ * Marker for contextual 'this' type
+ */
+interface ThisType<T> { }
+
+/**
+  * Represents a raw buffer of binary data, which is used to store data for the
+  * different typed arrays. ArrayBuffers cannot be read from or written to directly,
+  * but can be passed to a typed array or DataView Object to interpret the raw
+  * buffer as needed.
+  */
+interface ArrayBuffer {
+    /**
+      * Read-only. The length of the ArrayBuffer (in bytes).
+      */
+    readonly byteLength: number;
+
+    /**
+      * Returns a section of an ArrayBuffer.
+      */
+    slice(begin: number, end?: number): ArrayBuffer;
+}
+
+/**
+ * Allowed ArrayBuffer types for the buffer of an ArrayBufferView and related Typed Arrays.
+ */
+interface ArrayBufferTypes {
+    ArrayBuffer: ArrayBuffer;
+}
+type ArrayBufferLike = ArrayBufferTypes[keyof ArrayBufferTypes];
+
+interface ArrayBufferConstructor {
+    readonly prototype: ArrayBuffer;
+    new(byteLength: number): ArrayBuffer;
+    isView(arg: any): arg is ArrayBufferView;
+}
+declare var ArrayBuffer: ArrayBufferConstructor;
+
+interface ArrayBufferView {
+    /**
+      * The ArrayBuffer instance referenced by the array.
+      */
+    buffer: ArrayBufferLike;
+
+    /**
+      * The length in bytes of the array.
+      */
+    byteLength: number;
+
+    /**
+      * The offset in bytes of the array.
+      */
+    byteOffset: number;
+}
+
+interface DataView {
+    readonly buffer: ArrayBuffer;
+    readonly byteLength: number;
+    readonly byteOffset: number;
+    /**
+      * Gets the Float32 value at the specified byte offset from the start of the view. There is
+      * no alignment constraint; multi-byte values may be fetched from any offset.
+      * @param byteOffset The place in the buffer at which the value should be retrieved.
+      */
+    getFloat32(byteOffset: number, littleEndian?: boolean): number;
+
+    /**
+      * Gets the Float64 value at the specified byte offset from the start of the view. There is
+      * no alignment constraint; multi-byte values may be fetched from any offset.
+      * @param byteOffset The place in the buffer at which the value should be retrieved.
+      */
+    getFloat64(byteOffset: number, littleEndian?: boolean): number;
+
+    /**
+      * Gets the Int8 value at the specified byte offset from the start of the view. There is
+      * no alignment constraint; multi-byte values may be fetched from any offset.
+      * @param byteOffset The place in the buffer at which the value should be retrieved.
+      */
+    getInt8(byteOffset: number): number;
+
+    /**
+      * Gets the Int16 value at the specified byte offset from the start of the view. There is
+      * no alignment constraint; multi-byte values may be fetched from any offset.
+      * @param byteOffset The place in the buffer at which the value should be retrieved.
+      */
+    getInt16(byteOffset: number, littleEndian?: boolean): number;
+    /**
+      * Gets the Int32 value at the specified byte offset from the start of the view. There is
+      * no alignment constraint; multi-byte values may be fetched from any offset.
+      * @param byteOffset The place in the buffer at which the value should be retrieved.
+      */
+    getInt32(byteOffset: number, littleEndian?: boolean): number;
+
+    /**
+      * Gets the Uint8 value at the specified byte offset from the start of the view. There is
+      * no alignment constraint; multi-byte values may be fetched from any offset.
+      * @param byteOffset The place in the buffer at which the value should be retrieved.
+      */
+    getUint8(byteOffset: number): number;
+
+    /**
+      * Gets the Uint16 value at the specified byte offset from the start of the view. There is
+      * no alignment constraint; multi-byte values may be fetched from any offset.
+      * @param byteOffset The place in the buffer at which the value should be retrieved.
+      */
+    getUint16(byteOffset: number, littleEndian?: boolean): number;
+
+    /**
+      * Gets the Uint32 value at the specified byte offset from the start of the view. There is
+      * no alignment constraint; multi-byte values may be fetched from any offset.
+      * @param byteOffset The place in the buffer at which the value should be retrieved.
+      */
+    getUint32(byteOffset: number, littleEndian?: boolean): number;
+
+    /**
+      * Stores an Float32 value at the specified byte offset from the start of the view.
+      * @param byteOffset The place in the buffer at which the value should be set.
+      * @param value The value to set.
+      * @param littleEndian If false or undefined, a big-endian value should be written,
+      * otherwise a little-endian value should be written.
+      */
+    setFloat32(byteOffset: number, value: number, littleEndian?: boolean): void;
+
+    /**
+      * Stores an Float64 value at the specified byte offset from the start of the view.
+      * @param byteOffset The place in the buffer at which the value should be set.
+      * @param value The value to set.
+      * @param littleEndian If false or undefined, a big-endian value should be written,
+      * otherwise a little-endian value should be written.
+      */
+    setFloat64(byteOffset: number, value: number, littleEndian?: boolean): void;
+
+    /**
+      * Stores an Int8 value at the specified byte offset from the start of the view.
+      * @param byteOffset The place in the buffer at which the value should be set.
+      * @param value The value to set.
+      */
+    setInt8(byteOffset: number, value: number): void;
+
+    /**
+      * Stores an Int16 value at the specified byte offset from the start of the view.
+      * @param byteOffset The place in the buffer at which the value should be set.
+      * @param value The value to set.
+      * @param littleEndian If false or undefined, a big-endian value should be written,
+      * otherwise a little-endian value should be written.
+      */
+    setInt16(byteOffset: number, value: number, littleEndian?: boolean): void;
+
+    /**
+      * Stores an Int32 value at the specified byte offset from the start of the view.
+      * @param byteOffset The place in the buffer at which the value should be set.
+      * @param value The value to set.
+      * @param littleEndian If false or undefined, a big-endian value should be written,
+      * otherwise a little-endian value should be written.
+      */
+    setInt32(byteOffset: number, value: number, littleEndian?: boolean): void;
+
+    /**
+      * Stores an Uint8 value at the specified byte offset from the start of the view.
+      * @param byteOffset The place in the buffer at which the value should be set.
+      * @param value The value to set.
+      */
+    setUint8(byteOffset: number, value: number): void;
+
+    /**
+      * Stores an Uint16 value at the specified byte offset from the start of the view.
+      * @param byteOffset The place in the buffer at which the value should be set.
+      * @param value The value to set.
+      * @param littleEndian If false or undefined, a big-endian value should be written,
+      * otherwise a little-endian value should be written.
+      */
+    setUint16(byteOffset: number, value: number, littleEndian?: boolean): void;
+
+    /**
+      * Stores an Uint32 value at the specified byte offset from the start of the view.
+      * @param byteOffset The place in the buffer at which the value should be set.
+      * @param value The value to set.
+      * @param littleEndian If false or undefined, a big-endian value should be written,
+      * otherwise a little-endian value should be written.
+      */
+    setUint32(byteOffset: number, value: number, littleEndian?: boolean): void;
+}
+
+interface DataViewConstructor {
+    new(buffer: ArrayBufferLike, byteOffset?: number, byteLength?: number): DataView;
+}
+declare var DataView: DataViewConstructor;
+
+/**
+  * A typed array of 8-bit integer values. The contents are initialized to 0. If the requested
+  * number of bytes could not be allocated an exception is raised.
+  */
+interface Int8Array {
+    /**
+      * The size in bytes of each element in the array.
+      */
+    readonly BYTES_PER_ELEMENT: number;
+
+    /**
+      * The ArrayBuffer instance referenced by the array.
+      */
+    readonly buffer: ArrayBufferLike;
+
+    /**
+      * The length in bytes of the array.
+      */
+    readonly byteLength: number;
+
+    /**
+      * The offset in bytes of the array.
+      */
+    readonly byteOffset: number;
+
+    /**
+      * Returns the this object after copying a section of the array identified by start and end
+      * to the same array starting at position target
+      * @param target If target is negative, it is treated as length+target where length is the
+      * length of the array.
+      * @param start If start is negative, it is treated as length+start. If end is negative, it
+      * is treated as length+end.
+      * @param end If not specified, length of the this object is used as its default value.
+      */
+    copyWithin(target: number, start: number, end?: number): this;
+
+    /**
+      * Determines whether all the members of an array satisfy the specified test.
+      * @param callbackfn A function that accepts up to three arguments. The every method calls
+      * the callbackfn function for each element in array1 until the callbackfn returns false,
+      * or until the end of the array.
+      * @param thisArg An object to which the this keyword can refer in the callbackfn function.
+      * If thisArg is omitted, undefined is used as the this value.
+      */
+    every(callbackfn: (value: number, index: number, array: Int8Array) => boolean, thisArg?: any): boolean;
+
+    /**
+        * Returns the this object after filling the section identified by start and end with value
+        * @param value value to fill array section with
+        * @param start index to start filling the array at. If start is negative, it is treated as
+        * length+start where length is the length of the array.
+        * @param end index to stop filling the array at. If end is negative, it is treated as
+        * length+end.
+        */
+    fill(value: number, start?: number, end?: number): this;
+
+    /**
+      * Returns the elements of an array that meet the condition specified in a callback function.
+      * @param callbackfn A function that accepts up to three arguments. The filter method calls
+      * the callbackfn function one time for each element in the array.
+      * @param thisArg An object to which the this keyword can refer in the callbackfn function.
+      * If thisArg is omitted, undefined is used as the this value.
+      */
+    filter(callbackfn: (value: number, index: number, array: Int8Array) => any, thisArg?: any): Int8Array;
+
+    /**
+      * Returns the value of the first element in the array where predicate is true, and undefined
+      * otherwise.
+      * @param predicate find calls predicate once for each element of the array, in ascending
+      * order, until it finds one where predicate returns true. If such an element is found, find
+      * immediately returns that element value. Otherwise, find returns undefined.
+      * @param thisArg If provided, it will be used as the this value for each invocation of
+      * predicate. If it is not provided, undefined is used instead.
+      */
+    find(predicate: (value: number, index: number, obj: Int8Array) => boolean, thisArg?: any): number | undefined;
+
+    /**
+      * Returns the index of the first element in the array where predicate is true, and -1
+      * otherwise.
+      * @param predicate find calls predicate once for each element of the array, in ascending
+      * order, until it finds one where predicate returns true. If such an element is found,
+      * findIndex immediately returns that element index. Otherwise, findIndex returns -1.
+      * @param thisArg If provided, it will be used as the this value for each invocation of
+      * predicate. If it is not provided, undefined is used instead.
+      */
+    findIndex(predicate: (value: number, index: number, obj: Int8Array) => boolean, thisArg?: any): number;
+
+    /**
+      * Performs the specified action for each element in an array.
+      * @param callbackfn  A function that accepts up to three arguments. forEach calls the
+      * callbackfn function one time for each element in the array.
+      * @param thisArg  An object to which the this keyword can refer in the callbackfn function.
+      * If thisArg is omitted, undefined is used as the this value.
+      */
+    forEach(callbackfn: (value: number, index: number, array: Int8Array) => void, thisArg?: any): void;
+
+    /**
+      * Returns the index of the first occurrence of a value in an array.
+      * @param searchElement The value to locate in the array.
+      * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the
+      *  search starts at index 0.
+      */
+    indexOf(searchElement: number, fromIndex?: number): number;
+
+    /**
+      * Adds all the elements of an array separated by the specified separator string.
+      * @param separator A string used to separate one element of an array from the next in the
+      * resulting String. If omitted, the array elements are separated with a comma.
+      */
+    join(separator?: string): string;
+
+    /**
+      * Returns the index of the last occurrence of a value in an array.
+      * @param searchElement The value to locate in the array.
+      * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the
+      * search starts at index 0.
+      */
+    lastIndexOf(searchElement: number, fromIndex?: number): number;
+
+    /**
+      * The length of the array.
+      */
+    readonly length: number;
+
+    /**
+      * Calls a defined callback function on each element of an array, and returns an array that
+      * contains the results.
+      * @param callbackfn A function that accepts up to three arguments. The map method calls the
+      * callbackfn function one time for each element in the array.
+      * @param thisArg An object to which the this keyword can refer in the callbackfn function.
+      * If thisArg is omitted, undefined is used as the this value.
+      */
+    map(callbackfn: (value: number, index: number, array: Int8Array) => number, thisArg?: any): Int8Array;
+
+    /**
+      * Calls the specified callback function for all the elements in an array. The return value of
+      * the callback function is the accumulated result, and is provided as an argument in the next
+      * call to the callback function.
+      * @param callbackfn A function that accepts up to four arguments. The reduce method calls the
+      * callbackfn function one time for each element in the array.
+      * @param initialValue If initialValue is specified, it is used as the initial value to start
+      * the accumulation. The first call to the callbackfn function provides this value as an argument
+      * instead of an array value.
+      */
+    reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Int8Array) => number): number;
+    reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Int8Array) => number, initialValue: number): number;
+
+    /**
+      * Calls the specified callback function for all the elements in an array. The return value of
+      * the callback function is the accumulated result, and is provided as an argument in the next
+      * call to the callback function.
+      * @param callbackfn A function that accepts up to four arguments. The reduce method calls the
+      * callbackfn function one time for each element in the array.
+      * @param initialValue If initialValue is specified, it is used as the initial value to start
+      * the accumulation. The first call to the callbackfn function provides this value as an argument
+      * instead of an array value.
+      */
+    reduce<U>(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Int8Array) => U, initialValue: U): U;
+
+    /**
+      * Calls the specified callback function for all the elements in an array, in descending order.
+      * The return value of the callback function is the accumulated result, and is provided as an
+      * argument in the next call to the callback function.
+      * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls
+      * the callbackfn function one time for each element in the array.
+      * @param initialValue If initialValue is specified, it is used as the initial value to start
+      * the accumulation. The first call to the callbackfn function provides this value as an
+      * argument instead of an array value.
+      */
+    reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Int8Array) => number): number;
+    reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Int8Array) => number, initialValue: number): number;
+
+    /**
+      * Calls the specified callback function for all the elements in an array, in descending order.
+      * The return value of the callback function is the accumulated result, and is provided as an
+      * argument in the next call to the callback function.
+      * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls
+      * the callbackfn function one time for each element in the array.
+      * @param initialValue If initialValue is specified, it is used as the initial value to start
+      * the accumulation. The first call to the callbackfn function provides this value as an argument
+      * instead of an array value.
+      */
+    reduceRight<U>(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Int8Array) => U, initialValue: U): U;
+
+    /**
+      * Reverses the elements in an Array.
+      */
+    reverse(): Int8Array;
+
+    /**
+      * Sets a value or an array of values.
+      * @param array A typed or untyped array of values to set.
+      * @param offset The index in the current array at which the values are to be written.
+      */
+    set(array: ArrayLike<number>, offset?: number): void;
+
+    /**
+      * Returns a section of an array.
+      * @param start The beginning of the specified portion of the array.
+      * @param end The end of the specified portion of the array.
+      */
+    slice(start?: number, end?: number): Int8Array;
+
+    /**
+      * Determines whether the specified callback function returns true for any element of an array.
+      * @param callbackfn A function that accepts up to three arguments. The some method calls the
+      * callbackfn function for each element in array1 until the callbackfn returns true, or until
+      * the end of the array.
+      * @param thisArg An object to which the this keyword can refer in the callbackfn function.
+      * If thisArg is omitted, undefined is used as the this value.
+      */
+    some(callbackfn: (value: number, index: number, array: Int8Array) => boolean, thisArg?: any): boolean;
+
+    /**
+      * Sorts an array.
+      * @param compareFn The name of the function used to determine the order of the elements. If
+      * omitted, the elements are sorted in ascending, ASCII character order.
+      */
+    sort(compareFn?: (a: number, b: number) => number): this;
+
+    /**
+      * Gets a new Int8Array view of the ArrayBuffer store for this array, referencing the elements
+      * at begin, inclusive, up to end, exclusive.
+      * @param begin The index of the beginning of the array.
+      * @param end The index of the end of the array.
+      */
+    subarray(begin: number, end?: number): Int8Array;
+
+    /**
+      * Converts a number to a string by using the current locale.
+      */
+    toLocaleString(): string;
+
+    /**
+      * Returns a string representation of an array.
+      */
+    toString(): string;
+
+    [index: number]: number;
+}
+interface Int8ArrayConstructor {
+    readonly prototype: Int8Array;
+    new(length: number): Int8Array;
+    new(arrayOrArrayBuffer: ArrayLike<number> | ArrayBufferLike): Int8Array;
+    new(buffer: ArrayBufferLike, byteOffset: number, length?: number): Int8Array;
+
+    /**
+      * The size in bytes of each element in the array.
+      */
+    readonly BYTES_PER_ELEMENT: number;
+
+    /**
+      * Returns a new array from a set of elements.
+      * @param items A set of elements to include in the new array object.
+      */
+    of(...items: number[]): Int8Array;
+
+    /**
+      * Creates an array from an array-like or iterable object.
+      * @param arrayLike An array-like or iterable object to convert to an array.
+      */
+    from(arrayLike: ArrayLike<number>): Int8Array;
+
+    /**
+      * Creates an array from an array-like or iterable object.
+      * @param arrayLike An array-like or iterable object to convert to an array.
+      * @param mapfn A mapping function to call on every element of the array.
+      * @param thisArg Value of 'this' used to invoke the mapfn.
+      */
+    from<T>(arrayLike: ArrayLike<T>, mapfn: (v: T, k: number) => number, thisArg?: any): Int8Array;
+
+
+}
+declare var Int8Array: Int8ArrayConstructor;
+
+/**
+  * A typed array of 8-bit unsigned integer values. The contents are initialized to 0. If the
+  * requested number of bytes could not be allocated an exception is raised.
+  */
+interface Uint8Array {
+    /**
+      * The size in bytes of each element in the array.
+      */
+    readonly BYTES_PER_ELEMENT: number;
+
+    /**
+      * The ArrayBuffer instance referenced by the array.
+      */
+    readonly buffer: ArrayBufferLike;
+
+    /**
+      * The length in bytes of the array.
+      */
+    readonly byteLength: number;
+
+    /**
+      * The offset in bytes of the array.
+      */
+    readonly byteOffset: number;
+
+    /**
+      * Returns the this object after copying a section of the array identified by start and end
+      * to the same array starting at position target
+      * @param target If target is negative, it is treated as length+target where length is the
+      * length of the array.
+      * @param start If start is negative, it is treated as length+start. If end is negative, it
+      * is treated as length+end.
+      * @param end If not specified, length of the this object is used as its default value.
+      */
+    copyWithin(target: number, start: number, end?: number): this;
+
+    /**
+      * Determines whether all the members of an array satisfy the specified test.
+      * @param callbackfn A function that accepts up to three arguments. The every method calls
+      * the callbackfn function for each element in array1 until the callbackfn returns false,
+      * or until the end of the array.
+      * @param thisArg An object to which the this keyword can refer in the callbackfn function.
+      * If thisArg is omitted, undefined is used as the this value.
+      */
+    every(callbackfn: (value: number, index: number, array: Uint8Array) => boolean, thisArg?: any): boolean;
+
+    /**
+        * Returns the this object after filling the section identified by start and end with value
+        * @param value value to fill array section with
+        * @param start index to start filling the array at. If start is negative, it is treated as
+        * length+start where length is the length of the array.
+        * @param end index to stop filling the array at. If end is negative, it is treated as
+        * length+end.
+        */
+    fill(value: number, start?: number, end?: number): this;
+
+    /**
+      * Returns the elements of an array that meet the condition specified in a callback function.
+      * @param callbackfn A function that accepts up to three arguments. The filter method calls
+      * the callbackfn function one time for each element in the array.
+      * @param thisArg An object to which the this keyword can refer in the callbackfn function.
+      * If thisArg is omitted, undefined is used as the this value.
+      */
+    filter(callbackfn: (value: number, index: number, array: Uint8Array) => any, thisArg?: any): Uint8Array;
+
+    /**
+      * Returns the value of the first element in the array where predicate is true, and undefined
+      * otherwise.
+      * @param predicate find calls predicate once for each element of the array, in ascending
+      * order, until it finds one where predicate returns true. If such an element is found, find
+      * immediately returns that element value. Otherwise, find returns undefined.
+      * @param thisArg If provided, it will be used as the this value for each invocation of
+      * predicate. If it is not provided, undefined is used instead.
+      */
+    find(predicate: (value: number, index: number, obj: Uint8Array) => boolean, thisArg?: any): number | undefined;
+
+    /**
+      * Returns the index of the first element in the array where predicate is true, and -1
+      * otherwise.
+      * @param predicate find calls predicate once for each element of the array, in ascending
+      * order, until it finds one where predicate returns true. If such an element is found,
+      * findIndex immediately returns that element index. Otherwise, findIndex returns -1.
+      * @param thisArg If provided, it will be used as the this value for each invocation of
+      * predicate. If it is not provided, undefined is used instead.
+      */
+    findIndex(predicate: (value: number, index: number, obj: Uint8Array) => boolean, thisArg?: any): number;
+
+    /**
+      * Performs the specified action for each element in an array.
+      * @param callbackfn  A function that accepts up to three arguments. forEach calls the
+      * callbackfn function one time for each element in the array.
+      * @param thisArg  An object to which the this keyword can refer in the callbackfn function.
+      * If thisArg is omitted, undefined is used as the this value.
+      */
+    forEach(callbackfn: (value: number, index: number, array: Uint8Array) => void, thisArg?: any): void;
+
+    /**
+      * Returns the index of the first occurrence of a value in an array.
+      * @param searchElement The value to locate in the array.
+      * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the
+      *  search starts at index 0.
+      */
+    indexOf(searchElement: number, fromIndex?: number): number;
+
+    /**
+      * Adds all the elements of an array separated by the specified separator string.
+      * @param separator A string used to separate one element of an array from the next in the
+      * resulting String. If omitted, the array elements are separated with a comma.
+      */
+    join(separator?: string): string;
+
+    /**
+      * Returns the index of the last occurrence of a value in an array.
+      * @param searchElement The value to locate in the array.
+      * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the
+      * search starts at index 0.
+      */
+    lastIndexOf(searchElement: number, fromIndex?: number): number;
+
+    /**
+      * The length of the array.
+      */
+    readonly length: number;
+
+    /**
+      * Calls a defined callback function on each element of an array, and returns an array that
+      * contains the results.
+      * @param callbackfn A function that accepts up to three arguments. The map method calls the
+      * callbackfn function one time for each element in the array.
+      * @param thisArg An object to which the this keyword can refer in the callbackfn function.
+      * If thisArg is omitted, undefined is used as the this value.
+      */
+    map(callbackfn: (value: number, index: number, array: Uint8Array) => number, thisArg?: any): Uint8Array;
+
+    /**
+      * Calls the specified callback function for all the elements in an array. The return value of
+      * the callback function is the accumulated result, and is provided as an argument in the next
+      * call to the callback function.
+      * @param callbackfn A function that accepts up to four arguments. The reduce method calls the
+      * callbackfn function one time for each element in the array.
+      * @param initialValue If initialValue is specified, it is used as the initial value to start
+      * the accumulation. The first call to the callbackfn function provides this value as an argument
+      * instead of an array value.
+      */
+    reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint8Array) => number): number;
+    reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint8Array) => number, initialValue: number): number;
+
+    /**
+      * Calls the specified callback function for all the elements in an array. The return value of
+      * the callback function is the accumulated result, and is provided as an argument in the next
+      * call to the callback function.
+      * @param callbackfn A function that accepts up to four arguments. The reduce method calls the
+      * callbackfn function one time for each element in the array.
+      * @param initialValue If initialValue is specified, it is used as the initial value to start
+      * the accumulation. The first call to the callbackfn function provides this value as an argument
+      * instead of an array value.
+      */
+    reduce<U>(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Uint8Array) => U, initialValue: U): U;
+
+    /**
+      * Calls the specified callback function for all the elements in an array, in descending order.
+      * The return value of the callback function is the accumulated result, and is provided as an
+      * argument in the next call to the callback function.
+      * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls
+      * the callbackfn function one time for each element in the array.
+      * @param initialValue If initialValue is specified, it is used as the initial value to start
+      * the accumulation. The first call to the callbackfn function provides this value as an
+      * argument instead of an array value.
+      */
+    reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint8Array) => number): number;
+    reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint8Array) => number, initialValue: number): number;
+
+    /**
+      * Calls the specified callback function for all the elements in an array, in descending order.
+      * The return value of the callback function is the accumulated result, and is provided as an
+      * argument in the next call to the callback function.
+      * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls
+      * the callbackfn function one time for each element in the array.
+      * @param initialValue If initialValue is specified, it is used as the initial value to start
+      * the accumulation. The first call to the callbackfn function provides this value as an argument
+      * instead of an array value.
+      */
+    reduceRight<U>(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Uint8Array) => U, initialValue: U): U;
+
+    /**
+      * Reverses the elements in an Array.
+      */
+    reverse(): Uint8Array;
+
+    /**
+      * Sets a value or an array of values.
+      * @param array A typed or untyped array of values to set.
+      * @param offset The index in the current array at which the values are to be written.
+      */
+    set(array: ArrayLike<number>, offset?: number): void;
+
+    /**
+      * Returns a section of an array.
+      * @param start The beginning of the specified portion of the array.
+      * @param end The end of the specified portion of the array.
+      */
+    slice(start?: number, end?: number): Uint8Array;
+
+    /**
+      * Determines whether the specified callback function returns true for any element of an array.
+      * @param callbackfn A function that accepts up to three arguments. The some method calls the
+      * callbackfn function for each element in array1 until the callbackfn returns true, or until
+      * the end of the array.
+      * @param thisArg An object to which the this keyword can refer in the callbackfn function.
+      * If thisArg is omitted, undefined is used as the this value.
+      */
+    some(callbackfn: (value: number, index: number, array: Uint8Array) => boolean, thisArg?: any): boolean;
+
+    /**
+      * Sorts an array.
+      * @param compareFn The name of the function used to determine the order of the elements. If
+      * omitted, the elements are sorted in ascending, ASCII character order.
+      */
+    sort(compareFn?: (a: number, b: number) => number): this;
+
+    /**
+      * Gets a new Uint8Array view of the ArrayBuffer store for this array, referencing the elements
+      * at begin, inclusive, up to end, exclusive.
+      * @param begin The index of the beginning of the array.
+      * @param end The index of the end of the array.
+      */
+    subarray(begin: number, end?: number): Uint8Array;
+
+    /**
+      * Converts a number to a string by using the current locale.
+      */
+    toLocaleString(): string;
+
+    /**
+      * Returns a string representation of an array.
+      */
+    toString(): string;
+
+    [index: number]: number;
+}
+
+interface Uint8ArrayConstructor {
+    readonly prototype: Uint8Array;
+    new(length: number): Uint8Array;
+    new(arrayOrArrayBuffer: ArrayLike<number> | ArrayBufferLike): Uint8Array;
+    new(buffer: ArrayBufferLike, byteOffset: number, length?: number): Uint8Array;
+
+    /**
+      * The size in bytes of each element in the array.
+      */
+    readonly BYTES_PER_ELEMENT: number;
+
+    /**
+      * Returns a new array from a set of elements.
+      * @param items A set of elements to include in the new array object.
+      */
+    of(...items: number[]): Uint8Array;
+
+    /**
+      * Creates an array from an array-like or iterable object.
+      * @param arrayLike An array-like or iterable object to convert to an array.
+      */
+    from(arrayLike: ArrayLike<number>): Uint8Array;
+
+    /**
+      * Creates an array from an array-like or iterable object.
+      * @param arrayLike An array-like or iterable object to convert to an array.
+      * @param mapfn A mapping function to call on every element of the array.
+      * @param thisArg Value of 'this' used to invoke the mapfn.
+      */
+    from<T>(arrayLike: ArrayLike<T>, mapfn: (v: T, k: number) => number, thisArg?: any): Uint8Array;
+
+}
+declare var Uint8Array: Uint8ArrayConstructor;
+
+/**
+  * A typed array of 8-bit unsigned integer (clamped) values. The contents are initialized to 0.
+  * If the requested number of bytes could not be allocated an exception is raised.
+  */
+interface Uint8ClampedArray {
+    /**
+      * The size in bytes of each element in the array.
+      */
+    readonly BYTES_PER_ELEMENT: number;
+
+    /**
+      * The ArrayBuffer instance referenced by the array.
+      */
+    readonly buffer: ArrayBufferLike;
+
+    /**
+      * The length in bytes of the array.
+      */
+    readonly byteLength: number;
+
+    /**
+      * The offset in bytes of the array.
+      */
+    readonly byteOffset: number;
+
+    /**
+      * Returns the this object after copying a section of the array identified by start and end
+      * to the same array starting at position target
+      * @param target If target is negative, it is treated as length+target where length is the
+      * length of the array.
+      * @param start If start is negative, it is treated as length+start. If end is negative, it
+      * is treated as length+end.
+      * @param end If not specified, length of the this object is used as its default value.
+      */
+    copyWithin(target: number, start: number, end?: number): this;
+
+    /**
+      * Determines whether all the members of an array satisfy the specified test.
+      * @param callbackfn A function that accepts up to three arguments. The every method calls
+      * the callbackfn function for each element in array1 until the callbackfn returns false,
+      * or until the end of the array.
+      * @param thisArg An object to which the this keyword can refer in the callbackfn function.
+      * If thisArg is omitted, undefined is used as the this value.
+      */
+    every(callbackfn: (value: number, index: number, array: Uint8ClampedArray) => boolean, thisArg?: any): boolean;
+
+    /**
+        * Returns the this object after filling the section identified by start and end with value
+        * @param value value to fill array section with
+        * @param start index to start filling the array at. If start is negative, it is treated as
+        * length+start where length is the length of the array.
+        * @param end index to stop filling the array at. If end is negative, it is treated as
+        * length+end.
+        */
+    fill(value: number, start?: number, end?: number): this;
+
+    /**
+      * Returns the elements of an array that meet the condition specified in a callback function.
+      * @param callbackfn A function that accepts up to three arguments. The filter method calls
+      * the callbackfn function one time for each element in the array.
+      * @param thisArg An object to which the this keyword can refer in the callbackfn function.
+      * If thisArg is omitted, undefined is used as the this value.
+      */
+    filter(callbackfn: (value: number, index: number, array: Uint8ClampedArray) => any, thisArg?: any): Uint8ClampedArray;
+
+    /**
+      * Returns the value of the first element in the array where predicate is true, and undefined
+      * otherwise.
+      * @param predicate find calls predicate once for each element of the array, in ascending
+      * order, until it finds one where predicate returns true. If such an element is found, find
+      * immediately returns that element value. Otherwise, find returns undefined.
+      * @param thisArg If provided, it will be used as the this value for each invocation of
+      * predicate. If it is not provided, undefined is used instead.
+      */
+    find(predicate: (value: number, index: number, obj: Uint8ClampedArray) => boolean, thisArg?: any): number | undefined;
+
+    /**
+      * Returns the index of the first element in the array where predicate is true, and -1
+      * otherwise.
+      * @param predicate find calls predicate once for each element of the array, in ascending
+      * order, until it finds one where predicate returns true. If such an element is found,
+      * findIndex immediately returns that element index. Otherwise, findIndex returns -1.
+      * @param thisArg If provided, it will be used as the this value for each invocation of
+      * predicate. If it is not provided, undefined is used instead.
+      */
+    findIndex(predicate: (value: number, index: number, obj: Uint8ClampedArray) => boolean, thisArg?: any): number;
+
+    /**
+      * Performs the specified action for each element in an array.
+      * @param callbackfn  A function that accepts up to three arguments. forEach calls the
+      * callbackfn function one time for each element in the array.
+      * @param thisArg  An object to which the this keyword can refer in the callbackfn function.
+      * If thisArg is omitted, undefined is used as the this value.
+      */
+    forEach(callbackfn: (value: number, index: number, array: Uint8ClampedArray) => void, thisArg?: any): void;
+
+    /**
+      * Returns the index of the first occurrence of a value in an array.
+      * @param searchElement The value to locate in the array.
+      * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the
+      *  search starts at index 0.
+      */
+    indexOf(searchElement: number, fromIndex?: number): number;
+
+    /**
+      * Adds all the elements of an array separated by the specified separator string.
+      * @param separator A string used to separate one element of an array from the next in the
+      * resulting String. If omitted, the array elements are separated with a comma.
+      */
+    join(separator?: string): string;
+
+    /**
+      * Returns the index of the last occurrence of a value in an array.
+      * @param searchElement The value to locate in the array.
+      * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the
+      * search starts at index 0.
+      */
+    lastIndexOf(searchElement: number, fromIndex?: number): number;
+
+    /**
+      * The length of the array.
+      */
+    readonly length: number;
+
+    /**
+      * Calls a defined callback function on each element of an array, and returns an array that
+      * contains the results.
+      * @param callbackfn A function that accepts up to three arguments. The map method calls the
+      * callbackfn function one time for each element in the array.
+      * @param thisArg An object to which the this keyword can refer in the callbackfn function.
+      * If thisArg is omitted, undefined is used as the this value.
+      */
+    map(callbackfn: (value: number, index: number, array: Uint8ClampedArray) => number, thisArg?: any): Uint8ClampedArray;
+
+    /**
+      * Calls the specified callback function for all the elements in an array. The return value of
+      * the callback function is the accumulated result, and is provided as an argument in the next
+      * call to the callback function.
+      * @param callbackfn A function that accepts up to four arguments. The reduce method calls the
+      * callbackfn function one time for each element in the array.
+      * @param initialValue If initialValue is specified, it is used as the initial value to start
+      * the accumulation. The first call to the callbackfn function provides this value as an argument
+      * instead of an array value.
+      */
+    reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint8ClampedArray) => number): number;
+    reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint8ClampedArray) => number, initialValue: number): number;
+
+    /**
+      * Calls the specified callback function for all the elements in an array. The return value of
+      * the callback function is the accumulated result, and is provided as an argument in the next
+      * call to the callback function.
+      * @param callbackfn A function that accepts up to four arguments. The reduce method calls the
+      * callbackfn function one time for each element in the array.
+      * @param initialValue If initialValue is specified, it is used as the initial value to start
+      * the accumulation. The first call to the callbackfn function provides this value as an argument
+      * instead of an array value.
+      */
+    reduce<U>(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Uint8ClampedArray) => U, initialValue: U): U;
+
+    /**
+      * Calls the specified callback function for all the elements in an array, in descending order.
+      * The return value of the callback function is the accumulated result, and is provided as an
+      * argument in the next call to the callback function.
+      * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls
+      * the callbackfn function one time for each element in the array.
+      * @param initialValue If initialValue is specified, it is used as the initial value to start
+      * the accumulation. The first call to the callbackfn function provides this value as an
+      * argument instead of an array value.
+      */
+    reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint8ClampedArray) => number): number;
+    reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint8ClampedArray) => number, initialValue: number): number;
+
+    /**
+      * Calls the specified callback function for all the elements in an array, in descending order.
+      * The return value of the callback function is the accumulated result, and is provided as an
+      * argument in the next call to the callback function.
+      * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls
+      * the callbackfn function one time for each element in the array.
+      * @param initialValue If initialValue is specified, it is used as the initial value to start
+      * the accumulation. The first call to the callbackfn function provides this value as an argument
+      * instead of an array value.
+      */
+    reduceRight<U>(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Uint8ClampedArray) => U, initialValue: U): U;
+
+    /**
+      * Reverses the elements in an Array.
+      */
+    reverse(): Uint8ClampedArray;
+
+    /**
+      * Sets a value or an array of values.
+      * @param array A typed or untyped array of values to set.
+      * @param offset The index in the current array at which the values are to be written.
+      */
+    set(array: ArrayLike<number>, offset?: number): void;
+
+    /**
+      * Returns a section of an array.
+      * @param start The beginning of the specified portion of the array.
+      * @param end The end of the specified portion of the array.
+      */
+    slice(start?: number, end?: number): Uint8ClampedArray;
+
+    /**
+      * Determines whether the specified callback function returns true for any element of an array.
+      * @param callbackfn A function that accepts up to three arguments. The some method calls the
+      * callbackfn function for each element in array1 until the callbackfn returns true, or until
+      * the end of the array.
+      * @param thisArg An object to which the this keyword can refer in the callbackfn function.
+      * If thisArg is omitted, undefined is used as the this value.
+      */
+    some(callbackfn: (value: number, index: number, array: Uint8ClampedArray) => boolean, thisArg?: any): boolean;
+
+    /**
+      * Sorts an array.
+      * @param compareFn The name of the function used to determine the order of the elements. If
+      * omitted, the elements are sorted in ascending, ASCII character order.
+      */
+    sort(compareFn?: (a: number, b: number) => number): this;
+
+    /**
+      * Gets a new Uint8ClampedArray view of the ArrayBuffer store for this array, referencing the elements
+      * at begin, inclusive, up to end, exclusive.
+      * @param begin The index of the beginning of the array.
+      * @param end The index of the end of the array.
+      */
+    subarray(begin: number, end?: number): Uint8ClampedArray;
+
+    /**
+      * Converts a number to a string by using the current locale.
+      */
+    toLocaleString(): string;
+
+    /**
+      * Returns a string representation of an array.
+      */
+    toString(): string;
+
+    [index: number]: number;
+}
+
+interface Uint8ClampedArrayConstructor {
+    readonly prototype: Uint8ClampedArray;
+    new(length: number): Uint8ClampedArray;
+    new(arrayOrArrayBuffer: ArrayLike<number> | ArrayBufferLike): Uint8ClampedArray;
+    new(buffer: ArrayBufferLike, byteOffset: number, length?: number): Uint8ClampedArray;
+
+    /**
+      * The size in bytes of each element in the array.
+      */
+    readonly BYTES_PER_ELEMENT: number;
+
+    /**
+      * Returns a new array from a set of elements.
+      * @param items A set of elements to include in the new array object.
+      */
+    of(...items: number[]): Uint8ClampedArray;
+
+    /**
+      * Creates an array from an array-like or iterable object.
+      * @param arrayLike An array-like or iterable object to convert to an array.
+      */
+    from(arrayLike: ArrayLike<number>): Uint8ClampedArray;
+
+    /**
+      * Creates an array from an array-like or iterable object.
+      * @param arrayLike An array-like or iterable object to convert to an array.
+      * @param mapfn A mapping function to call on every element of the array.
+      * @param thisArg Value of 'this' used to invoke the mapfn.
+      */
+    from<T>(arrayLike: ArrayLike<T>, mapfn: (v: T, k: number) => number, thisArg?: any): Uint8ClampedArray;
+}
+declare var Uint8ClampedArray: Uint8ClampedArrayConstructor;
+
+/**
+  * A typed array of 16-bit signed integer values. The contents are initialized to 0. If the
+  * requested number of bytes could not be allocated an exception is raised.
+  */
+interface Int16Array {
+    /**
+      * The size in bytes of each element in the array.
+      */
+    readonly BYTES_PER_ELEMENT: number;
+
+    /**
+      * The ArrayBuffer instance referenced by the array.
+      */
+    readonly buffer: ArrayBufferLike;
+
+    /**
+      * The length in bytes of the array.
+      */
+    readonly byteLength: number;
+
+    /**
+      * The offset in bytes of the array.
+      */
+    readonly byteOffset: number;
+
+    /**
+      * Returns the this object after copying a section of the array identified by start and end
+      * to the same array starting at position target
+      * @param target If target is negative, it is treated as length+target where length is the
+      * length of the array.
+      * @param start If start is negative, it is treated as length+start. If end is negative, it
+      * is treated as length+end.
+      * @param end If not specified, length of the this object is used as its default value.
+      */
+    copyWithin(target: number, start: number, end?: number): this;
+
+    /**
+      * Determines whether all the members of an array satisfy the specified test.
+      * @param callbackfn A function that accepts up to three arguments. The every method calls
+      * the callbackfn function for each element in array1 until the callbackfn returns false,
+      * or until the end of the array.
+      * @param thisArg An object to which the this keyword can refer in the callbackfn function.
+      * If thisArg is omitted, undefined is used as the this value.
+      */
+    every(callbackfn: (value: number, index: number, array: Int16Array) => boolean, thisArg?: any): boolean;
+
+    /**
+        * Returns the this object after filling the section identified by start and end with value
+        * @param value value to fill array section with
+        * @param start index to start filling the array at. If start is negative, it is treated as
+        * length+start where length is the length of the array.
+        * @param end index to stop filling the array at. If end is negative, it is treated as
+        * length+end.
+        */
+    fill(value: number, start?: number, end?: number): this;
+
+    /**
+      * Returns the elements of an array that meet the condition specified in a callback function.
+      * @param callbackfn A function that accepts up to three arguments. The filter method calls
+      * the callbackfn function one time for each element in the array.
+      * @param thisArg An object to which the this keyword can refer in the callbackfn function.
+      * If thisArg is omitted, undefined is used as the this value.
+      */
+    filter(callbackfn: (value: number, index: number, array: Int16Array) => any, thisArg?: any): Int16Array;
+
+    /**
+      * Returns the value of the first element in the array where predicate is true, and undefined
+      * otherwise.
+      * @param predicate find calls predicate once for each element of the array, in ascending
+      * order, until it finds one where predicate returns true. If such an element is found, find
+      * immediately returns that element value. Otherwise, find returns undefined.
+      * @param thisArg If provided, it will be used as the this value for each invocation of
+      * predicate. If it is not provided, undefined is used instead.
+      */
+    find(predicate: (value: number, index: number, obj: Int16Array) => boolean, thisArg?: any): number | undefined;
+
+    /**
+      * Returns the index of the first element in the array where predicate is true, and -1
+      * otherwise.
+      * @param predicate find calls predicate once for each element of the array, in ascending
+      * order, until it finds one where predicate returns true. If such an element is found,
+      * findIndex immediately returns that element index. Otherwise, findIndex returns -1.
+      * @param thisArg If provided, it will be used as the this value for each invocation of
+      * predicate. If it is not provided, undefined is used instead.
+      */
+    findIndex(predicate: (value: number, index: number, obj: Int16Array) => boolean, thisArg?: any): number;
+
+    /**
+      * Performs the specified action for each element in an array.
+      * @param callbackfn  A function that accepts up to three arguments. forEach calls the
+      * callbackfn function one time for each element in the array.
+      * @param thisArg  An object to which the this keyword can refer in the callbackfn function.
+      * If thisArg is omitted, undefined is used as the this value.
+      */
+    forEach(callbackfn: (value: number, index: number, array: Int16Array) => void, thisArg?: any): void;
+    /**
+      * Returns the index of the first occurrence of a value in an array.
+      * @param searchElement The value to locate in the array.
+      * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the
+      *  search starts at index 0.
+      */
+    indexOf(searchElement: number, fromIndex?: number): number;
+
+    /**
+      * Adds all the elements of an array separated by the specified separator string.
+      * @param separator A string used to separate one element of an array from the next in the
+      * resulting String. If omitted, the array elements are separated with a comma.
+      */
+    join(separator?: string): string;
+
+    /**
+      * Returns the index of the last occurrence of a value in an array.
+      * @param searchElement The value to locate in the array.
+      * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the
+      * search starts at index 0.
+      */
+    lastIndexOf(searchElement: number, fromIndex?: number): number;
+
+    /**
+      * The length of the array.
+      */
+    readonly length: number;
+
+    /**
+      * Calls a defined callback function on each element of an array, and returns an array that
+      * contains the results.
+      * @param callbackfn A function that accepts up to three arguments. The map method calls the
+      * callbackfn function one time for each element in the array.
+      * @param thisArg An object to which the this keyword can refer in the callbackfn function.
+      * If thisArg is omitted, undefined is used as the this value.
+      */
+    map(callbackfn: (value: number, index: number, array: Int16Array) => number, thisArg?: any): Int16Array;
+
+    /**
+      * Calls the specified callback function for all the elements in an array. The return value of
+      * the callback function is the accumulated result, and is provided as an argument in the next
+      * call to the callback function.
+      * @param callbackfn A function that accepts up to four arguments. The reduce method calls the
+      * callbackfn function one time for each element in the array.
+      * @param initialValue If initialValue is specified, it is used as the initial value to start
+      * the accumulation. The first call to the callbackfn function provides this value as an argument
+      * instead of an array value.
+      */
+    reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Int16Array) => number): number;
+    reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Int16Array) => number, initialValue: number): number;
+
+    /**
+      * Calls the specified callback function for all the elements in an array. The return value of
+      * the callback function is the accumulated result, and is provided as an argument in the next
+      * call to the callback function.
+      * @param callbackfn A function that accepts up to four arguments. The reduce method calls the
+      * callbackfn function one time for each element in the array.
+      * @param initialValue If initialValue is specified, it is used as the initial value to start
+      * the accumulation. The first call to the callbackfn function provides this value as an argument
+      * instead of an array value.
+      */
+    reduce<U>(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Int16Array) => U, initialValue: U): U;
+
+    /**
+      * Calls the specified callback function for all the elements in an array, in descending order.
+      * The return value of the callback function is the accumulated result, and is provided as an
+      * argument in the next call to the callback function.
+      * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls
+      * the callbackfn function one time for each element in the array.
+      * @param initialValue If initialValue is specified, it is used as the initial value to start
+      * the accumulation. The first call to the callbackfn function provides this value as an
+      * argument instead of an array value.
+      */
+    reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Int16Array) => number): number;
+    reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Int16Array) => number, initialValue: number): number;
+
+    /**
+      * Calls the specified callback function for all the elements in an array, in descending order.
+      * The return value of the callback function is the accumulated result, and is provided as an
+      * argument in the next call to the callback function.
+      * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls
+      * the callbackfn function one time for each element in the array.
+      * @param initialValue If initialValue is specified, it is used as the initial value to start
+      * the accumulation. The first call to the callbackfn function provides this value as an argument
+      * instead of an array value.
+      */
+    reduceRight<U>(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Int16Array) => U, initialValue: U): U;
+
+    /**
+      * Reverses the elements in an Array.
+      */
+    reverse(): Int16Array;
+
+    /**
+      * Sets a value or an array of values.
+      * @param array A typed or untyped array of values to set.
+      * @param offset The index in the current array at which the values are to be written.
+      */
+    set(array: ArrayLike<number>, offset?: number): void;
+
+    /**
+      * Returns a section of an array.
+      * @param start The beginning of the specified portion of the array.
+      * @param end The end of the specified portion of the array.
+      */
+    slice(start?: number, end?: number): Int16Array;
+
+    /**
+      * Determines whether the specified callback function returns true for any element of an array.
+      * @param callbackfn A function that accepts up to three arguments. The some method calls the
+      * callbackfn function for each element in array1 until the callbackfn returns true, or until
+      * the end of the array.
+      * @param thisArg An object to which the this keyword can refer in the callbackfn function.
+      * If thisArg is omitted, undefined is used as the this value.
+      */
+    some(callbackfn: (value: number, index: number, array: Int16Array) => boolean, thisArg?: any): boolean;
+
+    /**
+      * Sorts an array.
+      * @param compareFn The name of the function used to determine the order of the elements. If
+      * omitted, the elements are sorted in ascending, ASCII character order.
+      */
+    sort(compareFn?: (a: number, b: number) => number): this;
+
+    /**
+      * Gets a new Int16Array view of the ArrayBuffer store for this array, referencing the elements
+      * at begin, inclusive, up to end, exclusive.
+      * @param begin The index of the beginning of the array.
+      * @param end The index of the end of the array.
+      */
+    subarray(begin: number, end?: number): Int16Array;
+
+    /**
+      * Converts a number to a string by using the current locale.
+      */
+    toLocaleString(): string;
+
+    /**
+      * Returns a string representation of an array.
+      */
+    toString(): string;
+
+    [index: number]: number;
+}
+
+interface Int16ArrayConstructor {
+    readonly prototype: Int16Array;
+    new(length: number): Int16Array;
+    new(arrayOrArrayBuffer: ArrayLike<number> | ArrayBufferLike): Int16Array;
+    new(buffer: ArrayBufferLike, byteOffset: number, length?: number): Int16Array;
+
+    /**
+      * The size in bytes of each element in the array.
+      */
+    readonly BYTES_PER_ELEMENT: number;
+
+    /**
+      * Returns a new array from a set of elements.
+      * @param items A set of elements to include in the new array object.
+      */
+    of(...items: number[]): Int16Array;
+
+    /**
+      * Creates an array from an array-like or iterable object.
+      * @param arrayLike An array-like or iterable object to convert to an array.
+      */
+    from(arrayLike: ArrayLike<number>): Int16Array;
+
+    /**
+      * Creates an array from an array-like or iterable object.
+      * @param arrayLike An array-like or iterable object to convert to an array.
+      * @param mapfn A mapping function to call on every element of the array.
+      * @param thisArg Value of 'this' used to invoke the mapfn.
+      */
+    from<T>(arrayLike: ArrayLike<T>, mapfn: (v: T, k: number) => number, thisArg?: any): Int16Array;
+
+
+}
+declare var Int16Array: Int16ArrayConstructor;
+
+/**
+  * A typed array of 16-bit unsigned integer values. The contents are initialized to 0. If the
+  * requested number of bytes could not be allocated an exception is raised.
+  */
+interface Uint16Array {
+    /**
+      * The size in bytes of each element in the array.
+      */
+    readonly BYTES_PER_ELEMENT: number;
+
+    /**
+      * The ArrayBuffer instance referenced by the array.
+      */
+    readonly buffer: ArrayBufferLike;
+
+    /**
+      * The length in bytes of the array.
+      */
+    readonly byteLength: number;
+
+    /**
+      * The offset in bytes of the array.
+      */
+    readonly byteOffset: number;
+
+    /**
+      * Returns the this object after copying a section of the array identified by start and end
+      * to the same array starting at position target
+      * @param target If target is negative, it is treated as length+target where length is the
+      * length of the array.
+      * @param start If start is negative, it is treated as length+start. If end is negative, it
+      * is treated as length+end.
+      * @param end If not specified, length of the this object is used as its default value.
+      */
+    copyWithin(target: number, start: number, end?: number): this;
+
+    /**
+      * Determines whether all the members of an array satisfy the specified test.
+      * @param callbackfn A function that accepts up to three arguments. The every method calls
+      * the callbackfn function for each element in array1 until the callbackfn returns false,
+      * or until the end of the array.
+      * @param thisArg An object to which the this keyword can refer in the callbackfn function.
+      * If thisArg is omitted, undefined is used as the this value.
+      */
+    every(callbackfn: (value: number, index: number, array: Uint16Array) => boolean, thisArg?: any): boolean;
+
+    /**
+        * Returns the this object after filling the section identified by start and end with value
+        * @param value value to fill array section with
+        * @param start index to start filling the array at. If start is negative, it is treated as
+        * length+start where length is the length of the array.
+        * @param end index to stop filling the array at. If end is negative, it is treated as
+        * length+end.
+        */
+    fill(value: number, start?: number, end?: number): this;
+
+    /**
+      * Returns the elements of an array that meet the condition specified in a callback function.
+      * @param callbackfn A function that accepts up to three arguments. The filter method calls
+      * the callbackfn function one time for each element in the array.
+      * @param thisArg An object to which the this keyword can refer in the callbackfn function.
+      * If thisArg is omitted, undefined is used as the this value.
+      */
+    filter(callbackfn: (value: number, index: number, array: Uint16Array) => any, thisArg?: any): Uint16Array;
+
+    /**
+      * Returns the value of the first element in the array where predicate is true, and undefined
+      * otherwise.
+      * @param predicate find calls predicate once for each element of the array, in ascending
+      * order, until it finds one where predicate returns true. If such an element is found, find
+      * immediately returns that element value. Otherwise, find returns undefined.
+      * @param thisArg If provided, it will be used as the this value for each invocation of
+      * predicate. If it is not provided, undefined is used instead.
+      */
+    find(predicate: (value: number, index: number, obj: Uint16Array) => boolean, thisArg?: any): number | undefined;
+
+    /**
+      * Returns the index of the first element in the array where predicate is true, and -1
+      * otherwise.
+      * @param predicate find calls predicate once for each element of the array, in ascending
+      * order, until it finds one where predicate returns true. If such an element is found,
+      * findIndex immediately returns that element index. Otherwise, findIndex returns -1.
+      * @param thisArg If provided, it will be used as the this value for each invocation of
+      * predicate. If it is not provided, undefined is used instead.
+      */
+    findIndex(predicate: (value: number, index: number, obj: Uint16Array) => boolean, thisArg?: any): number;
+
+    /**
+      * Performs the specified action for each element in an array.
+      * @param callbackfn  A function that accepts up to three arguments. forEach calls the
+      * callbackfn function one time for each element in the array.
+      * @param thisArg  An object to which the this keyword can refer in the callbackfn function.
+      * If thisArg is omitted, undefined is used as the this value.
+      */
+    forEach(callbackfn: (value: number, index: number, array: Uint16Array) => void, thisArg?: any): void;
+
+    /**
+      * Returns the index of the first occurrence of a value in an array.
+      * @param searchElement The value to locate in the array.
+      * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the
+      *  search starts at index 0.
+      */
+    indexOf(searchElement: number, fromIndex?: number): number;
+
+    /**
+      * Adds all the elements of an array separated by the specified separator string.
+      * @param separator A string used to separate one element of an array from the next in the
+      * resulting String. If omitted, the array elements are separated with a comma.
+      */
+    join(separator?: string): string;
+
+    /**
+      * Returns the index of the last occurrence of a value in an array.
+      * @param searchElement The value to locate in the array.
+      * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the
+      * search starts at index 0.
+      */
+    lastIndexOf(searchElement: number, fromIndex?: number): number;
+
+    /**
+      * The length of the array.
+      */
+    readonly length: number;
+
+    /**
+      * Calls a defined callback function on each element of an array, and returns an array that
+      * contains the results.
+      * @param callbackfn A function that accepts up to three arguments. The map method calls the
+      * callbackfn function one time for each element in the array.
+      * @param thisArg An object to which the this keyword can refer in the callbackfn function.
+      * If thisArg is omitted, undefined is used as the this value.
+      */
+    map(callbackfn: (value: number, index: number, array: Uint16Array) => number, thisArg?: any): Uint16Array;
+
+    /**
+      * Calls the specified callback function for all the elements in an array. The return value of
+      * the callback function is the accumulated result, and is provided as an argument in the next
+      * call to the callback function.
+      * @param callbackfn A function that accepts up to four arguments. The reduce method calls the
+      * callbackfn function one time for each element in the array.
+      * @param initialValue If initialValue is specified, it is used as the initial value to start
+      * the accumulation. The first call to the callbackfn function provides this value as an argument
+      * instead of an array value.
+      */
+    reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint16Array) => number): number;
+    reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint16Array) => number, initialValue: number): number;
+
+    /**
+      * Calls the specified callback function for all the elements in an array. The return value of
+      * the callback function is the accumulated result, and is provided as an argument in the next
+      * call to the callback function.
+      * @param callbackfn A function that accepts up to four arguments. The reduce method calls the
+      * callbackfn function one time for each element in the array.
+      * @param initialValue If initialValue is specified, it is used as the initial value to start
+      * the accumulation. The first call to the callbackfn function provides this value as an argument
+      * instead of an array value.
+      */
+    reduce<U>(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Uint16Array) => U, initialValue: U): U;
+
+    /**
+      * Calls the specified callback function for all the elements in an array, in descending order.
+      * The return value of the callback function is the accumulated result, and is provided as an
+      * argument in the next call to the callback function.
+      * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls
+      * the callbackfn function one time for each element in the array.
+      * @param initialValue If initialValue is specified, it is used as the initial value to start
+      * the accumulation. The first call to the callbackfn function provides this value as an
+      * argument instead of an array value.
+      */
+    reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint16Array) => number): number;
+    reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint16Array) => number, initialValue: number): number;
+
+    /**
+      * Calls the specified callback function for all the elements in an array, in descending order.
+      * The return value of the callback function is the accumulated result, and is provided as an
+      * argument in the next call to the callback function.
+      * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls
+      * the callbackfn function one time for each element in the array.
+      * @param initialValue If initialValue is specified, it is used as the initial value to start
+      * the accumulation. The first call to the callbackfn function provides this value as an argument
+      * instead of an array value.
+      */
+    reduceRight<U>(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Uint16Array) => U, initialValue: U): U;
+
+    /**
+      * Reverses the elements in an Array.
+      */
+    reverse(): Uint16Array;
+
+    /**
+      * Sets a value or an array of values.
+      * @param array A typed or untyped array of values to set.
+      * @param offset The index in the current array at which the values are to be written.
+      */
+    set(array: ArrayLike<number>, offset?: number): void;
+
+    /**
+      * Returns a section of an array.
+      * @param start The beginning of the specified portion of the array.
+      * @param end The end of the specified portion of the array.
+      */
+    slice(start?: number, end?: number): Uint16Array;
+
+    /**
+      * Determines whether the specified callback function returns true for any element of an array.
+      * @param callbackfn A function that accepts up to three arguments. The some method calls the
+      * callbackfn function for each element in array1 until the callbackfn returns true, or until
+      * the end of the array.
+      * @param thisArg An object to which the this keyword can refer in the callbackfn function.
+      * If thisArg is omitted, undefined is used as the this value.
+      */
+    some(callbackfn: (value: number, index: number, array: Uint16Array) => boolean, thisArg?: any): boolean;
+
+    /**
+      * Sorts an array.
+      * @param compareFn The name of the function used to determine the order of the elements. If
+      * omitted, the elements are sorted in ascending, ASCII character order.
+      */
+    sort(compareFn?: (a: number, b: number) => number): this;
+
+    /**
+      * Gets a new Uint16Array view of the ArrayBuffer store for this array, referencing the elements
+      * at begin, inclusive, up to end, exclusive.
+      * @param begin The index of the beginning of the array.
+      * @param end The index of the end of the array.
+      */
+    subarray(begin: number, end?: number): Uint16Array;
+
+    /**
+      * Converts a number to a string by using the current locale.
+      */
+    toLocaleString(): string;
+
+    /**
+      * Returns a string representation of an array.
+      */
+    toString(): string;
+
+    [index: number]: number;
+}
+
+interface Uint16ArrayConstructor {
+    readonly prototype: Uint16Array;
+    new(length: number): Uint16Array;
+    new(arrayOrArrayBuffer: ArrayLike<number> | ArrayBufferLike): Uint16Array;
+    new(buffer: ArrayBufferLike, byteOffset: number, length?: number): Uint16Array;
+
+    /**
+      * The size in bytes of each element in the array.
+      */
+    readonly BYTES_PER_ELEMENT: number;
+
+    /**
+      * Returns a new array from a set of elements.
+      * @param items A set of elements to include in the new array object.
+      */
+    of(...items: number[]): Uint16Array;
+
+    /**
+      * Creates an array from an array-like or iterable object.
+      * @param arrayLike An array-like or iterable object to convert to an array.
+      */
+    from(arrayLike: ArrayLike<number>): Uint16Array;
+
+    /**
+      * Creates an array from an array-like or iterable object.
+      * @param arrayLike An array-like or iterable object to convert to an array.
+      * @param mapfn A mapping function to call on every element of the array.
+      * @param thisArg Value of 'this' used to invoke the mapfn.
+      */
+    from<T>(arrayLike: ArrayLike<T>, mapfn: (v: T, k: number) => number, thisArg?: any): Uint16Array;
+
+
+}
+declare var Uint16Array: Uint16ArrayConstructor;
+/**
+  * A typed array of 32-bit signed integer values. The contents are initialized to 0. If the
+  * requested number of bytes could not be allocated an exception is raised.
+  */
+interface Int32Array {
+    /**
+      * The size in bytes of each element in the array.
+      */
+    readonly BYTES_PER_ELEMENT: number;
+
+    /**
+      * The ArrayBuffer instance referenced by the array.
+      */
+    readonly buffer: ArrayBufferLike;
+
+    /**
+      * The length in bytes of the array.
+      */
+    readonly byteLength: number;
+
+    /**
+      * The offset in bytes of the array.
+      */
+    readonly byteOffset: number;
+
+    /**
+      * Returns the this object after copying a section of the array identified by start and end
+      * to the same array starting at position target
+      * @param target If target is negative, it is treated as length+target where length is the
+      * length of the array.
+      * @param start If start is negative, it is treated as length+start. If end is negative, it
+      * is treated as length+end.
+      * @param end If not specified, length of the this object is used as its default value.
+      */
+    copyWithin(target: number, start: number, end?: number): this;
+
+    /**
+      * Determines whether all the members of an array satisfy the specified test.
+      * @param callbackfn A function that accepts up to three arguments. The every method calls
+      * the callbackfn function for each element in array1 until the callbackfn returns false,
+      * or until the end of the array.
+      * @param thisArg An object to which the this keyword can refer in the callbackfn function.
+      * If thisArg is omitted, undefined is used as the this value.
+      */
+    every(callbackfn: (value: number, index: number, array: Int32Array) => boolean, thisArg?: any): boolean;
+
+    /**
+        * Returns the this object after filling the section identified by start and end with value
+        * @param value value to fill array section with
+        * @param start index to start filling the array at. If start is negative, it is treated as
+        * length+start where length is the length of the array.
+        * @param end index to stop filling the array at. If end is negative, it is treated as
+        * length+end.
+        */
+    fill(value: number, start?: number, end?: number): this;
+
+    /**
+      * Returns the elements of an array that meet the condition specified in a callback function.
+      * @param callbackfn A function that accepts up to three arguments. The filter method calls
+      * the callbackfn function one time for each element in the array.
+      * @param thisArg An object to which the this keyword can refer in the callbackfn function.
+      * If thisArg is omitted, undefined is used as the this value.
+      */
+    filter(callbackfn: (value: number, index: number, array: Int32Array) => any, thisArg?: any): Int32Array;
+
+    /**
+      * Returns the value of the first element in the array where predicate is true, and undefined
+      * otherwise.
+      * @param predicate find calls predicate once for each element of the array, in ascending
+      * order, until it finds one where predicate returns true. If such an element is found, find
+      * immediately returns that element value. Otherwise, find returns undefined.
+      * @param thisArg If provided, it will be used as the this value for each invocation of
+      * predicate. If it is not provided, undefined is used instead.
+      */
+    find(predicate: (value: number, index: number, obj: Int32Array) => boolean, thisArg?: any): number | undefined;
+
+    /**
+      * Returns the index of the first element in the array where predicate is true, and -1
+      * otherwise.
+      * @param predicate find calls predicate once for each element of the array, in ascending
+      * order, until it finds one where predicate returns true. If such an element is found,
+      * findIndex immediately returns that element index. Otherwise, findIndex returns -1.
+      * @param thisArg If provided, it will be used as the this value for each invocation of
+      * predicate. If it is not provided, undefined is used instead.
+      */
+    findIndex(predicate: (value: number, index: number, obj: Int32Array) => boolean, thisArg?: any): number;
+
+    /**
+      * Performs the specified action for each element in an array.
+      * @param callbackfn  A function that accepts up to three arguments. forEach calls the
+      * callbackfn function one time for each element in the array.
+      * @param thisArg  An object to which the this keyword can refer in the callbackfn function.
+      * If thisArg is omitted, undefined is used as the this value.
+      */
+    forEach(callbackfn: (value: number, index: number, array: Int32Array) => void, thisArg?: any): void;
+
+    /**
+      * Returns the index of the first occurrence of a value in an array.
+      * @param searchElement The value to locate in the array.
+      * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the
+      *  search starts at index 0.
+      */
+    indexOf(searchElement: number, fromIndex?: number): number;
+
+    /**
+      * Adds all the elements of an array separated by the specified separator string.
+      * @param separator A string used to separate one element of an array from the next in the
+      * resulting String. If omitted, the array elements are separated with a comma.
+      */
+    join(separator?: string): string;
+
+    /**
+      * Returns the index of the last occurrence of a value in an array.
+      * @param searchElement The value to locate in the array.
+      * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the
+      * search starts at index 0.
+      */
+    lastIndexOf(searchElement: number, fromIndex?: number): number;
+
+    /**
+      * The length of the array.
+      */
+    readonly length: number;
+
+    /**
+      * Calls a defined callback function on each element of an array, and returns an array that
+      * contains the results.
+      * @param callbackfn A function that accepts up to three arguments. The map method calls the
+      * callbackfn function one time for each element in the array.
+      * @param thisArg An object to which the this keyword can refer in the callbackfn function.
+      * If thisArg is omitted, undefined is used as the this value.
+      */
+    map(callbackfn: (value: number, index: number, array: Int32Array) => number, thisArg?: any): Int32Array;
+
+    /**
+      * Calls the specified callback function for all the elements in an array. The return value of
+      * the callback function is the accumulated result, and is provided as an argument in the next
+      * call to the callback function.
+      * @param callbackfn A function that accepts up to four arguments. The reduce method calls the
+      * callbackfn function one time for each element in the array.
+      * @param initialValue If initialValue is specified, it is used as the initial value to start
+      * the accumulation. The first call to the callbackfn function provides this value as an argument
+      * instead of an array value.
+      */
+    reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Int32Array) => number): number;
+    reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Int32Array) => number, initialValue: number): number;
+
+    /**
+      * Calls the specified callback function for all the elements in an array. The return value of
+      * the callback function is the accumulated result, and is provided as an argument in the next
+      * call to the callback function.
+      * @param callbackfn A function that accepts up to four arguments. The reduce method calls the
+      * callbackfn function one time for each element in the array.
+      * @param initialValue If initialValue is specified, it is used as the initial value to start
+      * the accumulation. The first call to the callbackfn function provides this value as an argument
+      * instead of an array value.
+      */
+    reduce<U>(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Int32Array) => U, initialValue: U): U;
+
+    /**
+      * Calls the specified callback function for all the elements in an array, in descending order.
+      * The return value of the callback function is the accumulated result, and is provided as an
+      * argument in the next call to the callback function.
+      * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls
+      * the callbackfn function one time for each element in the array.
+      * @param initialValue If initialValue is specified, it is used as the initial value to start
+      * the accumulation. The first call to the callbackfn function provides this value as an
+      * argument instead of an array value.
+      */
+    reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Int32Array) => number): number;
+    reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Int32Array) => number, initialValue: number): number;
+
+    /**
+      * Calls the specified callback function for all the elements in an array, in descending order.
+      * The return value of the callback function is the accumulated result, and is provided as an
+      * argument in the next call to the callback function.
+      * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls
+      * the callbackfn function one time for each element in the array.
+      * @param initialValue If initialValue is specified, it is used as the initial value to start
+      * the accumulation. The first call to the callbackfn function provides this value as an argument
+      * instead of an array value.
+      */
+    reduceRight<U>(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Int32Array) => U, initialValue: U): U;
+
+    /**
+      * Reverses the elements in an Array.
+      */
+    reverse(): Int32Array;
+
+    /**
+      * Sets a value or an array of values.
+      * @param array A typed or untyped array of values to set.
+      * @param offset The index in the current array at which the values are to be written.
+      */
+    set(array: ArrayLike<number>, offset?: number): void;
+
+    /**
+      * Returns a section of an array.
+      * @param start The beginning of the specified portion of the array.
+      * @param end The end of the specified portion of the array.
+      */
+    slice(start?: number, end?: number): Int32Array;
+
+    /**
+      * Determines whether the specified callback function returns true for any element of an array.
+      * @param callbackfn A function that accepts up to three arguments. The some method calls the
+      * callbackfn function for each element in array1 until the callbackfn returns true, or until
+      * the end of the array.
+      * @param thisArg An object to which the this keyword can refer in the callbackfn function.
+      * If thisArg is omitted, undefined is used as the this value.
+      */
+    some(callbackfn: (value: number, index: number, array: Int32Array) => boolean, thisArg?: any): boolean;
+
+    /**
+      * Sorts an array.
+      * @param compareFn The name of the function used to determine the order of the elements. If
+      * omitted, the elements are sorted in ascending, ASCII character order.
+      */
+    sort(compareFn?: (a: number, b: number) => number): this;
+
+    /**
+      * Gets a new Int32Array view of the ArrayBuffer store for this array, referencing the elements
+      * at begin, inclusive, up to end, exclusive.
+      * @param begin The index of the beginning of the array.
+      * @param end The index of the end of the array.
+      */
+    subarray(begin: number, end?: number): Int32Array;
+
+    /**
+      * Converts a number to a string by using the current locale.
+      */
+    toLocaleString(): string;
+
+    /**
+      * Returns a string representation of an array.
+      */
+    toString(): string;
+
+    [index: number]: number;
+}
+
+interface Int32ArrayConstructor {
+    readonly prototype: Int32Array;
+    new(length: number): Int32Array;
+    new(arrayOrArrayBuffer: ArrayLike<number> | ArrayBufferLike): Int32Array;
+    new(buffer: ArrayBufferLike, byteOffset: number, length?: number): Int32Array;
+
+    /**
+      * The size in bytes of each element in the array.
+      */
+    readonly BYTES_PER_ELEMENT: number;
+
+    /**
+      * Returns a new array from a set of elements.
+      * @param items A set of elements to include in the new array object.
+      */
+    of(...items: number[]): Int32Array;
+
+    /**
+      * Creates an array from an array-like or iterable object.
+      * @param arrayLike An array-like or iterable object to convert to an array.
+      */
+    from(arrayLike: ArrayLike<number>): Int32Array;
+
+    /**
+      * Creates an array from an array-like or iterable object.
+      * @param arrayLike An array-like or iterable object to convert to an array.
+      * @param mapfn A mapping function to call on every element of the array.
+      * @param thisArg Value of 'this' used to invoke the mapfn.
+      */
+    from<T>(arrayLike: ArrayLike<T>, mapfn: (v: T, k: number) => number, thisArg?: any): Int32Array;
+
+}
+declare var Int32Array: Int32ArrayConstructor;
+
+/**
+  * A typed array of 32-bit unsigned integer values. The contents are initialized to 0. If the
+  * requested number of bytes could not be allocated an exception is raised.
+  */
+interface Uint32Array {
+    /**
+      * The size in bytes of each element in the array.
+      */
+    readonly BYTES_PER_ELEMENT: number;
+
+    /**
+      * The ArrayBuffer instance referenced by the array.
+      */
+    readonly buffer: ArrayBufferLike;
+
+    /**
+      * The length in bytes of the array.
+      */
+    readonly byteLength: number;
+
+    /**
+      * The offset in bytes of the array.
+      */
+    readonly byteOffset: number;
+
+    /**
+      * Returns the this object after copying a section of the array identified by start and end
+      * to the same array starting at position target
+      * @param target If target is negative, it is treated as length+target where length is the
+      * length of the array.
+      * @param start If start is negative, it is treated as length+start. If end is negative, it
+      * is treated as length+end.
+      * @param end If not specified, length of the this object is used as its default value.
+      */
+    copyWithin(target: number, start: number, end?: number): this;
+
+    /**
+      * Determines whether all the members of an array satisfy the specified test.
+      * @param callbackfn A function that accepts up to three arguments. The every method calls
+      * the callbackfn function for each element in array1 until the callbackfn returns false,
+      * or until the end of the array.
+      * @param thisArg An object to which the this keyword can refer in the callbackfn function.
+      * If thisArg is omitted, undefined is used as the this value.
+      */
+    every(callbackfn: (value: number, index: number, array: Uint32Array) => boolean, thisArg?: any): boolean;
+
+    /**
+        * Returns the this object after filling the section identified by start and end with value
+        * @param value value to fill array section with
+        * @param start index to start filling the array at. If start is negative, it is treated as
+        * length+start where length is the length of the array.
+        * @param end index to stop filling the array at. If end is negative, it is treated as
+        * length+end.
+        */
+    fill(value: number, start?: number, end?: number): this;
+
+    /**
+      * Returns the elements of an array that meet the condition specified in a callback function.
+      * @param callbackfn A function that accepts up to three arguments. The filter method calls
+      * the callbackfn function one time for each element in the array.
+      * @param thisArg An object to which the this keyword can refer in the callbackfn function.
+      * If thisArg is omitted, undefined is used as the this value.
+      */
+    filter(callbackfn: (value: number, index: number, array: Uint32Array) => any, thisArg?: any): Uint32Array;
+
+    /**
+      * Returns the value of the first element in the array where predicate is true, and undefined
+      * otherwise.
+      * @param predicate find calls predicate once for each element of the array, in ascending
+      * order, until it finds one where predicate returns true. If such an element is found, find
+      * immediately returns that element value. Otherwise, find returns undefined.
+      * @param thisArg If provided, it will be used as the this value for each invocation of
+      * predicate. If it is not provided, undefined is used instead.
+      */
+    find(predicate: (value: number, index: number, obj: Uint32Array) => boolean, thisArg?: any): number | undefined;
+
+    /**
+      * Returns the index of the first element in the array where predicate is true, and -1
+      * otherwise.
+      * @param predicate find calls predicate once for each element of the array, in ascending
+      * order, until it finds one where predicate returns true. If such an element is found,
+      * findIndex immediately returns that element index. Otherwise, findIndex returns -1.
+      * @param thisArg If provided, it will be used as the this value for each invocation of
+      * predicate. If it is not provided, undefined is used instead.
+      */
+    findIndex(predicate: (value: number, index: number, obj: Uint32Array) => boolean, thisArg?: any): number;
+
+    /**
+      * Performs the specified action for each element in an array.
+      * @param callbackfn  A function that accepts up to three arguments. forEach calls the
+      * callbackfn function one time for each element in the array.
+      * @param thisArg  An object to which the this keyword can refer in the callbackfn function.
+      * If thisArg is omitted, undefined is used as the this value.
+      */
+    forEach(callbackfn: (value: number, index: number, array: Uint32Array) => void, thisArg?: any): void;
+    /**
+      * Returns the index of the first occurrence of a value in an array.
+      * @param searchElement The value to locate in the array.
+      * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the
+      *  search starts at index 0.
+      */
+    indexOf(searchElement: number, fromIndex?: number): number;
+
+    /**
+      * Adds all the elements of an array separated by the specified separator string.
+      * @param separator A string used to separate one element of an array from the next in the
+      * resulting String. If omitted, the array elements are separated with a comma.
+      */
+    join(separator?: string): string;
+
+    /**
+      * Returns the index of the last occurrence of a value in an array.
+      * @param searchElement The value to locate in the array.
+      * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the
+      * search starts at index 0.
+      */
+    lastIndexOf(searchElement: number, fromIndex?: number): number;
+
+    /**
+      * The length of the array.
+      */
+    readonly length: number;
+
+    /**
+      * Calls a defined callback function on each element of an array, and returns an array that
+      * contains the results.
+      * @param callbackfn A function that accepts up to three arguments. The map method calls the
+      * callbackfn function one time for each element in the array.
+      * @param thisArg An object to which the this keyword can refer in the callbackfn function.
+      * If thisArg is omitted, undefined is used as the this value.
+      */
+    map(callbackfn: (value: number, index: number, array: Uint32Array) => number, thisArg?: any): Uint32Array;
+
+    /**
+      * Calls the specified callback function for all the elements in an array. The return value of
+      * the callback function is the accumulated result, and is provided as an argument in the next
+      * call to the callback function.
+      * @param callbackfn A function that accepts up to four arguments. The reduce method calls the
+      * callbackfn function one time for each element in the array.
+      * @param initialValue If initialValue is specified, it is used as the initial value to start
+      * the accumulation. The first call to the callbackfn function provides this value as an argument
+      * instead of an array value.
+      */
+    reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint32Array) => number): number;
+    reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint32Array) => number, initialValue: number): number;
+
+    /**
+      * Calls the specified callback function for all the elements in an array. The return value of
+      * the callback function is the accumulated result, and is provided as an argument in the next
+      * call to the callback function.
+      * @param callbackfn A function that accepts up to four arguments. The reduce method calls the
+      * callbackfn function one time for each element in the array.
+      * @param initialValue If initialValue is specified, it is used as the initial value to start
+      * the accumulation. The first call to the callbackfn function provides this value as an argument
+      * instead of an array value.
+      */
+    reduce<U>(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Uint32Array) => U, initialValue: U): U;
+
+    /**
+      * Calls the specified callback function for all the elements in an array, in descending order.
+      * The return value of the callback function is the accumulated result, and is provided as an
+      * argument in the next call to the callback function.
+      * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls
+      * the callbackfn function one time for each element in the array.
+      * @param initialValue If initialValue is specified, it is used as the initial value to start
+      * the accumulation. The first call to the callbackfn function provides this value as an
+      * argument instead of an array value.
+      */
+    reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint32Array) => number): number;
+    reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint32Array) => number, initialValue: number): number;
+
+    /**
+      * Calls the specified callback function for all the elements in an array, in descending order.
+      * The return value of the callback function is the accumulated result, and is provided as an
+      * argument in the next call to the callback function.
+      * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls
+      * the callbackfn function one time for each element in the array.
+      * @param initialValue If initialValue is specified, it is used as the initial value to start
+      * the accumulation. The first call to the callbackfn function provides this value as an argument
+      * instead of an array value.
+      */
+    reduceRight<U>(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Uint32Array) => U, initialValue: U): U;
+
+    /**
+      * Reverses the elements in an Array.
+      */
+    reverse(): Uint32Array;
+
+    /**
+      * Sets a value or an array of values.
+      * @param array A typed or untyped array of values to set.
+      * @param offset The index in the current array at which the values are to be written.
+      */
+    set(array: ArrayLike<number>, offset?: number): void;
+
+    /**
+      * Returns a section of an array.
+      * @param start The beginning of the specified portion of the array.
+      * @param end The end of the specified portion of the array.
+      */
+    slice(start?: number, end?: number): Uint32Array;
+
+    /**
+      * Determines whether the specified callback function returns true for any element of an array.
+      * @param callbackfn A function that accepts up to three arguments. The some method calls the
+      * callbackfn function for each element in array1 until the callbackfn returns true, or until
+      * the end of the array.
+      * @param thisArg An object to which the this keyword can refer in the callbackfn function.
+      * If thisArg is omitted, undefined is used as the this value.
+      */
+    some(callbackfn: (value: number, index: number, array: Uint32Array) => boolean, thisArg?: any): boolean;
+
+    /**
+      * Sorts an array.
+      * @param compareFn The name of the function used to determine the order of the elements. If
+      * omitted, the elements are sorted in ascending, ASCII character order.
+      */
+    sort(compareFn?: (a: number, b: number) => number): this;
+
+    /**
+      * Gets a new Uint32Array view of the ArrayBuffer store for this array, referencing the elements
+      * at begin, inclusive, up to end, exclusive.
+      * @param begin The index of the beginning of the array.
+      * @param end The index of the end of the array.
+      */
+    subarray(begin: number, end?: number): Uint32Array;
+
+    /**
+      * Converts a number to a string by using the current locale.
+      */
+    toLocaleString(): string;
+
+    /**
+      * Returns a string representation of an array.
+      */
+    toString(): string;
+
+    [index: number]: number;
+}
+
+interface Uint32ArrayConstructor {
+    readonly prototype: Uint32Array;
+    new(length: number): Uint32Array;
+    new(arrayOrArrayBuffer: ArrayLike<number> | ArrayBufferLike): Uint32Array;
+    new(buffer: ArrayBufferLike, byteOffset: number, length?: number): Uint32Array;
+
+    /**
+      * The size in bytes of each element in the array.
+      */
+    readonly BYTES_PER_ELEMENT: number;
+
+    /**
+      * Returns a new array from a set of elements.
+      * @param items A set of elements to include in the new array object.
+      */
+    of(...items: number[]): Uint32Array;
+
+    /**
+      * Creates an array from an array-like or iterable object.
+      * @param arrayLike An array-like or iterable object to convert to an array.
+      */
+    from(arrayLike: ArrayLike<number>): Uint32Array;
+
+    /**
+      * Creates an array from an array-like or iterable object.
+      * @param arrayLike An array-like or iterable object to convert to an array.
+      * @param mapfn A mapping function to call on every element of the array.
+      * @param thisArg Value of 'this' used to invoke the mapfn.
+      */
+    from<T>(arrayLike: ArrayLike<T>, mapfn: (v: T, k: number) => number, thisArg?: any): Uint32Array;
+
+}
+declare var Uint32Array: Uint32ArrayConstructor;
+
+/**
+  * A typed array of 32-bit float values. The contents are initialized to 0. If the requested number
+  * of bytes could not be allocated an exception is raised.
+  */
+interface Float32Array {
+    /**
+      * The size in bytes of each element in the array.
+      */
+    readonly BYTES_PER_ELEMENT: number;
+
+    /**
+      * The ArrayBuffer instance referenced by the array.
+      */
+    readonly buffer: ArrayBufferLike;
+
+    /**
+      * The length in bytes of the array.
+      */
+    readonly byteLength: number;
+
+    /**
+      * The offset in bytes of the array.
+      */
+    readonly byteOffset: number;
+
+    /**
+      * Returns the this object after copying a section of the array identified by start and end
+      * to the same array starting at position target
+      * @param target If target is negative, it is treated as length+target where length is the
+      * length of the array.
+      * @param start If start is negative, it is treated as length+start. If end is negative, it
+      * is treated as length+end.
+      * @param end If not specified, length of the this object is used as its default value.
+      */
+    copyWithin(target: number, start: number, end?: number): this;
+
+    /**
+      * Determines whether all the members of an array satisfy the specified test.
+      * @param callbackfn A function that accepts up to three arguments. The every method calls
+      * the callbackfn function for each element in array1 until the callbackfn returns false,
+      * or until the end of the array.
+      * @param thisArg An object to which the this keyword can refer in the callbackfn function.
+      * If thisArg is omitted, undefined is used as the this value.
+      */
+    every(callbackfn: (value: number, index: number, array: Float32Array) => boolean, thisArg?: any): boolean;
+
+    /**
+        * Returns the this object after filling the section identified by start and end with value
+        * @param value value to fill array section with
+        * @param start index to start filling the array at. If start is negative, it is treated as
+        * length+start where length is the length of the array.
+        * @param end index to stop filling the array at. If end is negative, it is treated as
+        * length+end.
+        */
+    fill(value: number, start?: number, end?: number): this;
+
+    /**
+      * Returns the elements of an array that meet the condition specified in a callback function.
+      * @param callbackfn A function that accepts up to three arguments. The filter method calls
+      * the callbackfn function one time for each element in the array.
+      * @param thisArg An object to which the this keyword can refer in the callbackfn function.
+      * If thisArg is omitted, undefined is used as the this value.
+      */
+    filter(callbackfn: (value: number, index: number, array: Float32Array) => any, thisArg?: any): Float32Array;
+
+    /**
+      * Returns the value of the first element in the array where predicate is true, and undefined
+      * otherwise.
+      * @param predicate find calls predicate once for each element of the array, in ascending
+      * order, until it finds one where predicate returns true. If such an element is found, find
+      * immediately returns that element value. Otherwise, find returns undefined.
+      * @param thisArg If provided, it will be used as the this value for each invocation of
+      * predicate. If it is not provided, undefined is used instead.
+      */
+    find(predicate: (value: number, index: number, obj: Float32Array) => boolean, thisArg?: any): number | undefined;
+
+    /**
+      * Returns the index of the first element in the array where predicate is true, and -1
+      * otherwise.
+      * @param predicate find calls predicate once for each element of the array, in ascending
+      * order, until it finds one where predicate returns true. If such an element is found,
+      * findIndex immediately returns that element index. Otherwise, findIndex returns -1.
+      * @param thisArg If provided, it will be used as the this value for each invocation of
+      * predicate. If it is not provided, undefined is used instead.
+      */
+    findIndex(predicate: (value: number, index: number, obj: Float32Array) => boolean, thisArg?: any): number;
+
+    /**
+      * Performs the specified action for each element in an array.
+      * @param callbackfn  A function that accepts up to three arguments. forEach calls the
+      * callbackfn function one time for each element in the array.
+      * @param thisArg  An object to which the this keyword can refer in the callbackfn function.
+      * If thisArg is omitted, undefined is used as the this value.
+      */
+    forEach(callbackfn: (value: number, index: number, array: Float32Array) => void, thisArg?: any): void;
+
+    /**
+      * Returns the index of the first occurrence of a value in an array.
+      * @param searchElement The value to locate in the array.
+      * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the
+      *  search starts at index 0.
+      */
+    indexOf(searchElement: number, fromIndex?: number): number;
+
+    /**
+      * Adds all the elements of an array separated by the specified separator string.
+      * @param separator A string used to separate one element of an array from the next in the
+      * resulting String. If omitted, the array elements are separated with a comma.
+      */
+    join(separator?: string): string;
+
+    /**
+      * Returns the index of the last occurrence of a value in an array.
+      * @param searchElement The value to locate in the array.
+      * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the
+      * search starts at index 0.
+      */
+    lastIndexOf(searchElement: number, fromIndex?: number): number;
+
+    /**
+      * The length of the array.
+      */
+    readonly length: number;
+
+    /**
+      * Calls a defined callback function on each element of an array, and returns an array that
+      * contains the results.
+      * @param callbackfn A function that accepts up to three arguments. The map method calls the
+      * callbackfn function one time for each element in the array.
+      * @param thisArg An object to which the this keyword can refer in the callbackfn function.
+      * If thisArg is omitted, undefined is used as the this value.
+      */
+    map(callbackfn: (value: number, index: number, array: Float32Array) => number, thisArg?: any): Float32Array;
+
+    /**
+      * Calls the specified callback function for all the elements in an array. The return value of
+      * the callback function is the accumulated result, and is provided as an argument in the next
+      * call to the callback function.
+      * @param callbackfn A function that accepts up to four arguments. The reduce method calls the
+      * callbackfn function one time for each element in the array.
+      * @param initialValue If initialValue is specified, it is used as the initial value to start
+      * the accumulation. The first call to the callbackfn function provides this value as an argument
+      * instead of an array value.
+      */
+    reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Float32Array) => number): number;
+    reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Float32Array) => number, initialValue: number): number;
+
+    /**
+      * Calls the specified callback function for all the elements in an array. The return value of
+      * the callback function is the accumulated result, and is provided as an argument in the next
+      * call to the callback function.
+      * @param callbackfn A function that accepts up to four arguments. The reduce method calls the
+      * callbackfn function one time for each element in the array.
+      * @param initialValue If initialValue is specified, it is used as the initial value to start
+      * the accumulation. The first call to the callbackfn function provides this value as an argument
+      * instead of an array value.
+      */
+    reduce<U>(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Float32Array) => U, initialValue: U): U;
+
+    /**
+      * Calls the specified callback function for all the elements in an array, in descending order.
+      * The return value of the callback function is the accumulated result, and is provided as an
+      * argument in the next call to the callback function.
+      * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls
+      * the callbackfn function one time for each element in the array.
+      * @param initialValue If initialValue is specified, it is used as the initial value to start
+      * the accumulation. The first call to the callbackfn function provides this value as an
+      * argument instead of an array value.
+      */
+    reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Float32Array) => number): number;
+    reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Float32Array) => number, initialValue: number): number;
+
+    /**
+      * Calls the specified callback function for all the elements in an array, in descending order.
+      * The return value of the callback function is the accumulated result, and is provided as an
+      * argument in the next call to the callback function.
+      * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls
+      * the callbackfn function one time for each element in the array.
+      * @param initialValue If initialValue is specified, it is used as the initial value to start
+      * the accumulation. The first call to the callbackfn function provides this value as an argument
+      * instead of an array value.
+      */
+    reduceRight<U>(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Float32Array) => U, initialValue: U): U;
+
+    /**
+      * Reverses the elements in an Array.
+      */
+    reverse(): Float32Array;
+
+    /**
+      * Sets a value or an array of values.
+      * @param array A typed or untyped array of values to set.
+      * @param offset The index in the current array at which the values are to be written.
+      */
+    set(array: ArrayLike<number>, offset?: number): void;
+
+    /**
+      * Returns a section of an array.
+      * @param start The beginning of the specified portion of the array.
+      * @param end The end of the specified portion of the array.
+      */
+    slice(start?: number, end?: number): Float32Array;
+
+    /**
+      * Determines whether the specified callback function returns true for any element of an array.
+      * @param callbackfn A function that accepts up to three arguments. The some method calls the
+      * callbackfn function for each element in array1 until the callbackfn returns true, or until
+      * the end of the array.
+      * @param thisArg An object to which the this keyword can refer in the callbackfn function.
+      * If thisArg is omitted, undefined is used as the this value.
+      */
+    some(callbackfn: (value: number, index: number, array: Float32Array) => boolean, thisArg?: any): boolean;
+
+    /**
+      * Sorts an array.
+      * @param compareFn The name of the function used to determine the order of the elements. If
+      * omitted, the elements are sorted in ascending, ASCII character order.
+      */
+    sort(compareFn?: (a: number, b: number) => number): this;
+
+    /**
+      * Gets a new Float32Array view of the ArrayBuffer store for this array, referencing the elements
+      * at begin, inclusive, up to end, exclusive.
+      * @param begin The index of the beginning of the array.
+      * @param end The index of the end of the array.
+      */
+    subarray(begin: number, end?: number): Float32Array;
+
+    /**
+      * Converts a number to a string by using the current locale.
+      */
+    toLocaleString(): string;
+
+    /**
+      * Returns a string representation of an array.
+      */
+    toString(): string;
+
+    [index: number]: number;
+}
+
+interface Float32ArrayConstructor {
+    readonly prototype: Float32Array;
+    new(length: number): Float32Array;
+    new(arrayOrArrayBuffer: ArrayLike<number> | ArrayBufferLike): Float32Array;
+    new(buffer: ArrayBufferLike, byteOffset: number, length?: number): Float32Array;
+
+    /**
+      * The size in bytes of each element in the array.
+      */
+    readonly BYTES_PER_ELEMENT: number;
+
+    /**
+      * Returns a new array from a set of elements.
+      * @param items A set of elements to include in the new array object.
+      */
+    of(...items: number[]): Float32Array;
+
+    /**
+      * Creates an array from an array-like or iterable object.
+      * @param arrayLike An array-like or iterable object to convert to an array.
+      */
+    from(arrayLike: ArrayLike<number>): Float32Array;
+
+    /**
+      * Creates an array from an array-like or iterable object.
+      * @param arrayLike An array-like or iterable object to convert to an array.
+      * @param mapfn A mapping function to call on every element of the array.
+      * @param thisArg Value of 'this' used to invoke the mapfn.
+      */
+    from<T>(arrayLike: ArrayLike<T>, mapfn: (v: T, k: number) => number, thisArg?: any): Float32Array;
+
+
+}
+declare var Float32Array: Float32ArrayConstructor;
+
+/**
+  * A typed array of 64-bit float values. The contents are initialized to 0. If the requested
+  * number of bytes could not be allocated an exception is raised.
+  */
+interface Float64Array {
+    /**
+      * The size in bytes of each element in the array.
+      */
+    readonly BYTES_PER_ELEMENT: number;
+
+    /**
+      * The ArrayBuffer instance referenced by the array.
+      */
+    readonly buffer: ArrayBufferLike;
+
+    /**
+      * The length in bytes of the array.
+      */
+    readonly byteLength: number;
+
+    /**
+      * The offset in bytes of the array.
+      */
+    readonly byteOffset: number;
+
+    /**
+      * Returns the this object after copying a section of the array identified by start and end
+      * to the same array starting at position target
+      * @param target If target is negative, it is treated as length+target where length is the
+      * length of the array.
+      * @param start If start is negative, it is treated as length+start. If end is negative, it
+      * is treated as length+end.
+      * @param end If not specified, length of the this object is used as its default value.
+      */
+    copyWithin(target: number, start: number, end?: number): this;
+
+    /**
+      * Determines whether all the members of an array satisfy the specified test.
+      * @param callbackfn A function that accepts up to three arguments. The every method calls
+      * the callbackfn function for each element in array1 until the callbackfn returns false,
+      * or until the end of the array.
+      * @param thisArg An object to which the this keyword can refer in the callbackfn function.
+      * If thisArg is omitted, undefined is used as the this value.
+      */
+    every(callbackfn: (value: number, index: number, array: Float64Array) => boolean, thisArg?: any): boolean;
+
+    /**
+        * Returns the this object after filling the section identified by start and end with value
+        * @param value value to fill array section with
+        * @param start index to start filling the array at. If start is negative, it is treated as
+        * length+start where length is the length of the array.
+        * @param end index to stop filling the array at. If end is negative, it is treated as
+        * length+end.
+        */
+    fill(value: number, start?: number, end?: number): this;
+
+    /**
+      * Returns the elements of an array that meet the condition specified in a callback function.
+      * @param callbackfn A function that accepts up to three arguments. The filter method calls
+      * the callbackfn function one time for each element in the array.
+      * @param thisArg An object to which the this keyword can refer in the callbackfn function.
+      * If thisArg is omitted, undefined is used as the this value.
+      */
+    filter(callbackfn: (value: number, index: number, array: Float64Array) => any, thisArg?: any): Float64Array;
+
+    /**
+      * Returns the value of the first element in the array where predicate is true, and undefined
+      * otherwise.
+      * @param predicate find calls predicate once for each element of the array, in ascending
+      * order, until it finds one where predicate returns true. If such an element is found, find
+      * immediately returns that element value. Otherwise, find returns undefined.
+      * @param thisArg If provided, it will be used as the this value for each invocation of
+      * predicate. If it is not provided, undefined is used instead.
+      */
+    find(predicate: (value: number, index: number, obj: Float64Array) => boolean, thisArg?: any): number | undefined;
+
+    /**
+      * Returns the index of the first element in the array where predicate is true, and -1
+      * otherwise.
+      * @param predicate find calls predicate once for each element of the array, in ascending
+      * order, until it finds one where predicate returns true. If such an element is found,
+      * findIndex immediately returns that element index. Otherwise, findIndex returns -1.
+      * @param thisArg If provided, it will be used as the this value for each invocation of
+      * predicate. If it is not provided, undefined is used instead.
+      */
+    findIndex(predicate: (value: number, index: number, obj: Float64Array) => boolean, thisArg?: any): number;
+
+    /**
+      * Performs the specified action for each element in an array.
+      * @param callbackfn  A function that accepts up to three arguments. forEach calls the
+      * callbackfn function one time for each element in the array.
+      * @param thisArg  An object to which the this keyword can refer in the callbackfn function.
+      * If thisArg is omitted, undefined is used as the this value.
+      */
+    forEach(callbackfn: (value: number, index: number, array: Float64Array) => void, thisArg?: any): void;
+
+    /**
+      * Returns the index of the first occurrence of a value in an array.
+      * @param searchElement The value to locate in the array.
+      * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the
+      *  search starts at index 0.
+      */
+    indexOf(searchElement: number, fromIndex?: number): number;
+
+    /**
+      * Adds all the elements of an array separated by the specified separator string.
+      * @param separator A string used to separate one element of an array from the next in the
+      * resulting String. If omitted, the array elements are separated with a comma.
+      */
+    join(separator?: string): string;
+
+    /**
+      * Returns the index of the last occurrence of a value in an array.
+      * @param searchElement The value to locate in the array.
+      * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the
+      * search starts at index 0.
+      */
+    lastIndexOf(searchElement: number, fromIndex?: number): number;
+
+    /**
+      * The length of the array.
+      */
+    readonly length: number;
+
+    /**
+      * Calls a defined callback function on each element of an array, and returns an array that
+      * contains the results.
+      * @param callbackfn A function that accepts up to three arguments. The map method calls the
+      * callbackfn function one time for each element in the array.
+      * @param thisArg An object to which the this keyword can refer in the callbackfn function.
+      * If thisArg is omitted, undefined is used as the this value.
+      */
+    map(callbackfn: (value: number, index: number, array: Float64Array) => number, thisArg?: any): Float64Array;
+
+    /**
+      * Calls the specified callback function for all the elements in an array. The return value of
+      * the callback function is the accumulated result, and is provided as an argument in the next
+      * call to the callback function.
+      * @param callbackfn A function that accepts up to four arguments. The reduce method calls the
+      * callbackfn function one time for each element in the array.
+      * @param initialValue If initialValue is specified, it is used as the initial value to start
+      * the accumulation. The first call to the callbackfn function provides this value as an argument
+      * instead of an array value.
+      */
+    reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Float64Array) => number): number;
+    reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Float64Array) => number, initialValue: number): number;
+
+    /**
+      * Calls the specified callback function for all the elements in an array. The return value of
+      * the callback function is the accumulated result, and is provided as an argument in the next
+      * call to the callback function.
+      * @param callbackfn A function that accepts up to four arguments. The reduce method calls the
+      * callbackfn function one time for each element in the array.
+      * @param initialValue If initialValue is specified, it is used as the initial value to start
+      * the accumulation. The first call to the callbackfn function provides this value as an argument
+      * instead of an array value.
+      */
+    reduce<U>(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Float64Array) => U, initialValue: U): U;
+
+    /**
+      * Calls the specified callback function for all the elements in an array, in descending order.
+      * The return value of the callback function is the accumulated result, and is provided as an
+      * argument in the next call to the callback function.
+      * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls
+      * the callbackfn function one time for each element in the array.
+      * @param initialValue If initialValue is specified, it is used as the initial value to start
+      * the accumulation. The first call to the callbackfn function provides this value as an
+      * argument instead of an array value.
+      */
+    reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Float64Array) => number): number;
+    reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Float64Array) => number, initialValue: number): number;
+
+    /**
+      * Calls the specified callback function for all the elements in an array, in descending order.
+      * The return value of the callback function is the accumulated result, and is provided as an
+      * argument in the next call to the callback function.
+      * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls
+      * the callbackfn function one time for each element in the array.
+      * @param initialValue If initialValue is specified, it is used as the initial value to start
+      * the accumulation. The first call to the callbackfn function provides this value as an argument
+      * instead of an array value.
+      */
+    reduceRight<U>(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Float64Array) => U, initialValue: U): U;
+
+    /**
+      * Reverses the elements in an Array.
+      */
+    reverse(): Float64Array;
+
+    /**
+      * Sets a value or an array of values.
+      * @param array A typed or untyped array of values to set.
+      * @param offset The index in the current array at which the values are to be written.
+      */
+    set(array: ArrayLike<number>, offset?: number): void;
+
+    /**
+      * Returns a section of an array.
+      * @param start The beginning of the specified portion of the array.
+      * @param end The end of the specified portion of the array.
+      */
+    slice(start?: number, end?: number): Float64Array;
+
+    /**
+      * Determines whether the specified callback function returns true for any element of an array.
+      * @param callbackfn A function that accepts up to three arguments. The some method calls the
+      * callbackfn function for each element in array1 until the callbackfn returns true, or until
+      * the end of the array.
+      * @param thisArg An object to which the this keyword can refer in the callbackfn function.
+      * If thisArg is omitted, undefined is used as the this value.
+      */
+    some(callbackfn: (value: number, index: number, array: Float64Array) => boolean, thisArg?: any): boolean;
+
+    /**
+      * Sorts an array.
+      * @param compareFn The name of the function used to determine the order of the elements. If
+      * omitted, the elements are sorted in ascending, ASCII character order.
+      */
+    sort(compareFn?: (a: number, b: number) => number): this;
+
+    /**
+      * Gets a new Float64Array view of the ArrayBuffer store for this array, referencing the elements
+      * at begin, inclusive, up to end, exclusive.
+      * @param begin The index of the beginning of the array.
+      * @param end The index of the end of the array.
+      */
+    subarray(begin: number, end?: number): Float64Array;
+
+    /**
+      * Converts a number to a string by using the current locale.
+      */
+    toLocaleString(): string;
+
+    /**
+      * Returns a string representation of an array.
+      */
+    toString(): string;
+
+    [index: number]: number;
+}
+
+interface Float64ArrayConstructor {
+    readonly prototype: Float64Array;
+    new(length: number): Float64Array;
+    new(arrayOrArrayBuffer: ArrayLike<number> | ArrayBufferLike): Float64Array;
+    new(buffer: ArrayBufferLike, byteOffset: number, length?: number): Float64Array;
+
+    /**
+      * The size in bytes of each element in the array.
+      */
+    readonly BYTES_PER_ELEMENT: number;
+
+    /**
+      * Returns a new array from a set of elements.
+      * @param items A set of elements to include in the new array object.
+      */
+    of(...items: number[]): Float64Array;
+
+    /**
+      * Creates an array from an array-like or iterable object.
+      * @param arrayLike An array-like or iterable object to convert to an array.
+      */
+    from(arrayLike: ArrayLike<number>): Float64Array;
+
+    /**
+      * Creates an array from an array-like or iterable object.
+      * @param arrayLike An array-like or iterable object to convert to an array.
+      * @param mapfn A mapping function to call on every element of the array.
+      * @param thisArg Value of 'this' used to invoke the mapfn.
+      */
+    from<T>(arrayLike: ArrayLike<T>, mapfn: (v: T, k: number) => number, thisArg?: any): Float64Array;
+
+}
+declare var Float64Array: Float64ArrayConstructor;
+
+/////////////////////////////
+/// ECMAScript Internationalization API
+/////////////////////////////
+
+declare namespace Intl {
+    interface CollatorOptions {
+        usage?: string;
+        localeMatcher?: string;
+        numeric?: boolean;
+        caseFirst?: string;
+        sensitivity?: string;
+        ignorePunctuation?: boolean;
+    }
+
+    interface ResolvedCollatorOptions {
+        locale: string;
+        usage: string;
+        sensitivity: string;
+        ignorePunctuation: boolean;
+        collation: string;
+        caseFirst: string;
+        numeric: boolean;
+    }
+
+    interface Collator {
+        compare(x: string, y: string): number;
+        resolvedOptions(): ResolvedCollatorOptions;
+    }
+    var Collator: {
+        new(locales?: string | string[], options?: CollatorOptions): Collator;
+        (locales?: string | string[], options?: CollatorOptions): Collator;
+        supportedLocalesOf(locales: string | string[], options?: CollatorOptions): string[];
+    };
+
+    interface NumberFormatOptions {
+        localeMatcher?: string;
+        style?: string;
+        currency?: string;
+        currencyDisplay?: string;
+        useGrouping?: boolean;
+        minimumIntegerDigits?: number;
+        minimumFractionDigits?: number;
+        maximumFractionDigits?: number;
+        minimumSignificantDigits?: number;
+        maximumSignificantDigits?: number;
+    }
+
+    interface ResolvedNumberFormatOptions {
+        locale: string;
+        numberingSystem: string;
+        style: string;
+        currency?: string;
+        currencyDisplay?: string;
+        minimumIntegerDigits: number;
+        minimumFractionDigits: number;
+        maximumFractionDigits: number;
+        minimumSignificantDigits?: number;
+        maximumSignificantDigits?: number;
+        useGrouping: boolean;
+    }
+
+    interface NumberFormat {
+        format(value: number): string;
+        resolvedOptions(): ResolvedNumberFormatOptions;
+    }
+    var NumberFormat: {
+        new(locales?: string | string[], options?: NumberFormatOptions): NumberFormat;
+        (locales?: string | string[], options?: NumberFormatOptions): NumberFormat;
+        supportedLocalesOf(locales: string | string[], options?: NumberFormatOptions): string[];
+    };
+
+    interface DateTimeFormatOptions {
+        localeMatcher?: string;
+        weekday?: string;
+        era?: string;
+        year?: string;
+        month?: string;
+        day?: string;
+        hour?: string;
+        minute?: string;
+        second?: string;
+        timeZoneName?: string;
+        formatMatcher?: string;
+        hour12?: boolean;
+        timeZone?: string;
+    }
+
+    interface ResolvedDateTimeFormatOptions {
+        locale: string;
+        calendar: string;
+        numberingSystem: string;
+        timeZone: string;
+        hour12?: boolean;
+        weekday?: string;
+        era?: string;
+        year?: string;
+        month?: string;
+        day?: string;
+        hour?: string;
+        minute?: string;
+        second?: string;
+        timeZoneName?: string;
+    }
+
+    interface DateTimeFormat {
+        format(date?: Date | number): string;
+        resolvedOptions(): ResolvedDateTimeFormatOptions;
+    }
+    var DateTimeFormat: {
+        new(locales?: string | string[], options?: DateTimeFormatOptions): DateTimeFormat;
+        (locales?: string | string[], options?: DateTimeFormatOptions): DateTimeFormat;
+        supportedLocalesOf(locales: string | string[], options?: DateTimeFormatOptions): string[];
+    };
+}
+
+interface String {
+    /**
+      * Determines whether two strings are equivalent in the current or specified locale.
+      * @param that String to compare to target string
+      * @param locales A locale string or array of locale strings that contain one or more language or locale tags. If you include more than one locale string, list them in descending order of priority so that the first entry is the preferred locale. If you omit this parameter, the default locale of the JavaScript runtime is used. This parameter must conform to BCP 47 standards; see the Intl.Collator object for details.
+      * @param options An object that contains one or more properties that specify comparison options. see the Intl.Collator object for details.
+      */
+    localeCompare(that: string, locales?: string | string[], options?: Intl.CollatorOptions): number;
+}
+
+interface Number {
+    /**
+      * Converts a number to a string by using the current or specified locale.
+      * @param locales A locale string or array of locale strings that contain one or more language or locale tags. If you include more than one locale string, list them in descending order of priority so that the first entry is the preferred locale. If you omit this parameter, the default locale of the JavaScript runtime is used.
+      * @param options An object that contains one or more properties that specify comparison options.
+      */
+    toLocaleString(locales?: string | string[], options?: Intl.NumberFormatOptions): string;
+}
+
+interface Date {
+    /**
+      * Converts a date and time to a string by using the current or specified locale.
+      * @param locales A locale string or array of locale strings that contain one or more language or locale tags. If you include more than one locale string, list them in descending order of priority so that the first entry is the preferred locale. If you omit this parameter, the default locale of the JavaScript runtime is used.
+      * @param options An object that contains one or more properties that specify comparison options.
+      */
+    toLocaleString(locales?: string | string[], options?: Intl.DateTimeFormatOptions): string;
+    /**
+      * Converts a date to a string by using the current or specified locale.
+      * @param locales A locale string or array of locale strings that contain one or more language or locale tags. If you include more than one locale string, list them in descending order of priority so that the first entry is the preferred locale. If you omit this parameter, the default locale of the JavaScript runtime is used.
+      * @param options An object that contains one or more properties that specify comparison options.
+      */
+    toLocaleDateString(locales?: string | string[], options?: Intl.DateTimeFormatOptions): string;
+
+    /**
+      * Converts a time to a string by using the current or specified locale.
+      * @param locales A locale string or array of locale strings that contain one or more language or locale tags. If you include more than one locale string, list them in descending order of priority so that the first entry is the preferred locale. If you omit this parameter, the default locale of the JavaScript runtime is used.
+      * @param options An object that contains one or more properties that specify comparison options.
+      */
+    toLocaleTimeString(locales?: string | string[], options?: Intl.DateTimeFormatOptions): string;
+}
diff --git a/src/cobalt/debug/remote/devtools/node_modules/typescript/lib/lib.es6.d.ts b/src/third_party/devtools/node_modules/typescript/lib/lib.es6.d.ts
similarity index 99%
rename from src/cobalt/debug/remote/devtools/node_modules/typescript/lib/lib.es6.d.ts
rename to src/third_party/devtools/node_modules/typescript/lib/lib.es6.d.ts
index f2ebe02..6149c4a 100644
--- a/src/cobalt/debug/remote/devtools/node_modules/typescript/lib/lib.es6.d.ts
+++ b/src/third_party/devtools/node_modules/typescript/lib/lib.es6.d.ts
@@ -15,11 +15,11 @@
 
 
 
-/// <reference no-default-lib="true"/>

+/// <reference no-default-lib="true"/>
 
 
-/// <reference lib="es2015" />

-/// <reference lib="dom" />

-/// <reference lib="dom.iterable" />

-/// <reference lib="webworker.importscripts" />

-/// <reference lib="scripthost" />

+/// <reference lib="es2015" />
+/// <reference lib="dom" />
+/// <reference lib="dom.iterable" />
+/// <reference lib="webworker.importscripts" />
+/// <reference lib="scripthost" />
diff --git a/src/cobalt/debug/remote/devtools/node_modules/typescript/lib/lib.esnext.array.d.ts b/src/third_party/devtools/node_modules/typescript/lib/lib.esnext.array.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/typescript/lib/lib.esnext.array.d.ts
rename to src/third_party/devtools/node_modules/typescript/lib/lib.esnext.array.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/typescript/lib/lib.esnext.asynciterable.d.ts b/src/third_party/devtools/node_modules/typescript/lib/lib.esnext.asynciterable.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/typescript/lib/lib.esnext.asynciterable.d.ts
rename to src/third_party/devtools/node_modules/typescript/lib/lib.esnext.asynciterable.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/typescript/lib/lib.esnext.bigint.d.ts b/src/third_party/devtools/node_modules/typescript/lib/lib.esnext.bigint.d.ts
similarity index 99%
rename from src/cobalt/debug/remote/devtools/node_modules/typescript/lib/lib.esnext.bigint.d.ts
rename to src/third_party/devtools/node_modules/typescript/lib/lib.esnext.bigint.d.ts
index ae6711a..50967de 100644
--- a/src/cobalt/debug/remote/devtools/node_modules/typescript/lib/lib.esnext.bigint.d.ts
+++ b/src/third_party/devtools/node_modules/typescript/lib/lib.esnext.bigint.d.ts
@@ -15,615 +15,615 @@
 
 
 
-/// <reference no-default-lib="true"/>

+/// <reference no-default-lib="true"/>
 
 
-interface BigInt {

-    /**

-      * Returns a string representation of an object.

-      * @param radix Specifies a radix for converting numeric values to strings.

-      */

-    toString(radix?: number): string;

-

-    /** Returns a string representation appropriate to the host environment's current locale. */

-    toLocaleString(): string;

-

-    /** Returns the primitive value of the specified object. */

-    valueOf(): bigint;

-

-    readonly [Symbol.toStringTag]: "BigInt";

-}

-

-interface BigIntConstructor {

-    (value?: any): bigint;

-    readonly prototype: BigInt;

-

-    /**

-      * Interprets the low bits of a BigInt as a 2's-complement signed integer.

-      * All higher bits are discarded.

-      * @param bits The number of low bits to use

-      * @param int The BigInt whose bits to extract

-      */

-    asIntN(bits: number, int: bigint): bigint;

-    /**

-      * Interprets the low bits of a BigInt as an unsigned integer.

-      * All higher bits are discarded.

-      * @param bits The number of low bits to use

-      * @param int The BigInt whose bits to extract

-      */

-    asUintN(bits: number, int: bigint): bigint;

-}

-

-declare var BigInt: BigIntConstructor;

-

-/**

-  * A typed array of 64-bit signed integer values. The contents are initialized to 0. If the

-  * requested number of bytes could not be allocated, an exception is raised.

-  */

-interface BigInt64Array {

-    /** The size in bytes of each element in the array. */

-    readonly BYTES_PER_ELEMENT: number;

-

-    /** The ArrayBuffer instance referenced by the array. */

-    readonly buffer: ArrayBufferLike;

-

-    /** The length in bytes of the array. */

-    readonly byteLength: number;

-

-    /** The offset in bytes of the array. */

-    readonly byteOffset: number;

-

-    /**

-      * Returns the this object after copying a section of the array identified by start and end

-      * to the same array starting at position target

-      * @param target If target is negative, it is treated as length+target where length is the

-      * length of the array.

-      * @param start If start is negative, it is treated as length+start. If end is negative, it

-      * is treated as length+end.

-      * @param end If not specified, length of the this object is used as its default value.

-      */

-    copyWithin(target: number, start: number, end?: number): this;

-

-    /** Yields index, value pairs for every entry in the array. */

-    entries(): IterableIterator<[number, bigint]>;

-

-    /**

-      * Determines whether all the members of an array satisfy the specified test.

-      * @param callbackfn A function that accepts up to three arguments. The every method calls

-      * the callbackfn function for each element in the array until the callbackfn returns false,

-      * or until the end of the array.

-      * @param thisArg An object to which the this keyword can refer in the callbackfn function.

-      * If thisArg is omitted, undefined is used as the this value.

-      */

-    every(callbackfn: (value: bigint, index: number, array: BigInt64Array) => boolean, thisArg?: any): boolean;

-

-    /**

-      * Returns the this object after filling the section identified by start and end with value

-      * @param value value to fill array section with

-      * @param start index to start filling the array at. If start is negative, it is treated as

-      * length+start where length is the length of the array.

-      * @param end index to stop filling the array at. If end is negative, it is treated as

-      * length+end.

-      */

-    fill(value: bigint, start?: number, end?: number): this;

-

-    /**

-      * Returns the elements of an array that meet the condition specified in a callback function.

-      * @param callbackfn A function that accepts up to three arguments. The filter method calls

-      * the callbackfn function one time for each element in the array.

-      * @param thisArg An object to which the this keyword can refer in the callbackfn function.

-      * If thisArg is omitted, undefined is used as the this value.

-      */

-    filter(callbackfn: (value: bigint, index: number, array: BigInt64Array) => any, thisArg?: any): BigInt64Array;

-

-    /**

-      * Returns the value of the first element in the array where predicate is true, and undefined

-      * otherwise.

-      * @param predicate find calls predicate once for each element of the array, in ascending

-      * order, until it finds one where predicate returns true. If such an element is found, find

-      * immediately returns that element value. Otherwise, find returns undefined.

-      * @param thisArg If provided, it will be used as the this value for each invocation of

-      * predicate. If it is not provided, undefined is used instead.

-      */

-    find(predicate: (value: bigint, index: number, array: BigInt64Array) => boolean, thisArg?: any): bigint | undefined;

-

-    /**

-      * Returns the index of the first element in the array where predicate is true, and -1

-      * otherwise.

-      * @param predicate find calls predicate once for each element of the array, in ascending

-      * order, until it finds one where predicate returns true. If such an element is found,

-      * findIndex immediately returns that element index. Otherwise, findIndex returns -1.

-      * @param thisArg If provided, it will be used as the this value for each invocation of

-      * predicate. If it is not provided, undefined is used instead.

-      */

-    findIndex(predicate: (value: bigint, index: number, array: BigInt64Array) => boolean, thisArg?: any): number;

-

-    /**

-      * Performs the specified action for each element in an array.

-      * @param callbackfn A function that accepts up to three arguments. forEach calls the

-      * callbackfn function one time for each element in the array.

-      * @param thisArg An object to which the this keyword can refer in the callbackfn function.

-      * If thisArg is omitted, undefined is used as the this value.

-      */

-    forEach(callbackfn: (value: bigint, index: number, array: BigInt64Array) => void, thisArg?: any): void;

-

-    /**

-      * Determines whether an array includes a certain element, returning true or false as appropriate.

-      * @param searchElement The element to search for.

-      * @param fromIndex The position in this array at which to begin searching for searchElement.

-      */

-    includes(searchElement: bigint, fromIndex?: number): boolean;

-

-    /**

-      * Returns the index of the first occurrence of a value in an array.

-      * @param searchElement The value to locate in the array.

-      * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the

-      * search starts at index 0.

-      */

-    indexOf(searchElement: bigint, fromIndex?: number): number;

-

-    /**

-      * Adds all the elements of an array separated by the specified separator string.

-      * @param separator A string used to separate one element of an array from the next in the

-      * resulting String. If omitted, the array elements are separated with a comma.

-      */

-    join(separator?: string): string;

-

-    /** Yields each index in the array. */

-    keys(): IterableIterator<number>;

-

-    /**

-      * Returns the index of the last occurrence of a value in an array.

-      * @param searchElement The value to locate in the array.

-      * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the

-      * search starts at index 0.

-      */

-    lastIndexOf(searchElement: bigint, fromIndex?: number): number;

-

-    /** The length of the array. */

-    readonly length: number;

-

-    /**

-      * Calls a defined callback function on each element of an array, and returns an array that

-      * contains the results.

-      * @param callbackfn A function that accepts up to three arguments. The map method calls the

-      * callbackfn function one time for each element in the array.

-      * @param thisArg An object to which the this keyword can refer in the callbackfn function.

-      * If thisArg is omitted, undefined is used as the this value.

-      */

-    map(callbackfn: (value: bigint, index: number, array: BigInt64Array) => bigint, thisArg?: any): BigInt64Array;

-

-    /**

-      * Calls the specified callback function for all the elements in an array. The return value of

-      * the callback function is the accumulated result, and is provided as an argument in the next

-      * call to the callback function.

-      * @param callbackfn A function that accepts up to four arguments. The reduce method calls the

-      * callbackfn function one time for each element in the array.

-      * @param initialValue If initialValue is specified, it is used as the initial value to start

-      * the accumulation. The first call to the callbackfn function provides this value as an argument

-      * instead of an array value.

-      */

-    reduce(callbackfn: (previousValue: bigint, currentValue: bigint, currentIndex: number, array: BigInt64Array) => bigint): bigint;

-

-    /**

-      * Calls the specified callback function for all the elements in an array. The return value of

-      * the callback function is the accumulated result, and is provided as an argument in the next

-      * call to the callback function.

-      * @param callbackfn A function that accepts up to four arguments. The reduce method calls the

-      * callbackfn function one time for each element in the array.

-      * @param initialValue If initialValue is specified, it is used as the initial value to start

-      * the accumulation. The first call to the callbackfn function provides this value as an argument

-      * instead of an array value.

-      */

-    reduce<U>(callbackfn: (previousValue: U, currentValue: bigint, currentIndex: number, array: BigInt64Array) => U, initialValue: U): U;

-

-    /**

-      * Calls the specified callback function for all the elements in an array, in descending order.

-      * The return value of the callback function is the accumulated result, and is provided as an

-      * argument in the next call to the callback function.

-      * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls

-      * the callbackfn function one time for each element in the array.

-      * @param initialValue If initialValue is specified, it is used as the initial value to start

-      * the accumulation. The first call to the callbackfn function provides this value as an

-      * argument instead of an array value.

-      */

-    reduceRight(callbackfn: (previousValue: bigint, currentValue: bigint, currentIndex: number, array: BigInt64Array) => bigint): bigint;

-

-    /**

-      * Calls the specified callback function for all the elements in an array, in descending order.

-      * The return value of the callback function is the accumulated result, and is provided as an

-      * argument in the next call to the callback function.

-      * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls

-      * the callbackfn function one time for each element in the array.

-      * @param initialValue If initialValue is specified, it is used as the initial value to start

-      * the accumulation. The first call to the callbackfn function provides this value as an argument

-      * instead of an array value.

-      */

-    reduceRight<U>(callbackfn: (previousValue: U, currentValue: bigint, currentIndex: number, array: BigInt64Array) => U, initialValue: U): U;

-

-    /** Reverses the elements in the array. */

-    reverse(): this;

-

-    /**

-      * Sets a value or an array of values.

-      * @param array A typed or untyped array of values to set.

-      * @param offset The index in the current array at which the values are to be written.

-      */

-    set(array: ArrayLike<bigint>, offset?: number): void;

-

-    /**

-      * Returns a section of an array.

-      * @param start The beginning of the specified portion of the array.

-      * @param end The end of the specified portion of the array.

-      */

-    slice(start?: number, end?: number): BigInt64Array;

-

-    /**

-      * Determines whether the specified callback function returns true for any element of an array.

-      * @param callbackfn A function that accepts up to three arguments. The some method calls the

-      * callbackfn function for each element in the array until the callbackfn returns true, or until

-      * the end of the array.

-      * @param thisArg An object to which the this keyword can refer in the callbackfn function.

-      * If thisArg is omitted, undefined is used as the this value.

-      */

-    some(callbackfn: (value: bigint, index: number, array: BigInt64Array) => boolean, thisArg?: any): boolean;

-

-    /**

-      * Sorts the array.

-      * @param compareFn The function used to determine the order of the elements. If omitted, the elements are sorted in ascending order.

-      */

-    sort(compareFn?: (a: bigint, b: bigint) => number | bigint): this;

-

-    /**

-      * Gets a new BigInt64Array view of the ArrayBuffer store for this array, referencing the elements

-      * at begin, inclusive, up to end, exclusive.

-      * @param begin The index of the beginning of the array.

-      * @param end The index of the end of the array.

-      */

-    subarray(begin: number, end?: number): BigInt64Array;

-

-    /** Converts the array to a string by using the current locale. */

-    toLocaleString(): string;

-

-    /** Returns a string representation of the array. */

-    toString(): string;

-

-    /** Yields each value in the array. */

-    values(): IterableIterator<bigint>;

-

-    [Symbol.iterator](): IterableIterator<bigint>;

-

-    readonly [Symbol.toStringTag]: "BigInt64Array";

-

-    [index: number]: bigint;

-}

-

-interface BigInt64ArrayConstructor {

-    readonly prototype: BigInt64Array;

-    new(length?: number): BigInt64Array;

-    new(array: Iterable<bigint>): BigInt64Array;

-    new(buffer: ArrayBufferLike, byteOffset?: number, length?: number): BigInt64Array;

-

-    /** The size in bytes of each element in the array. */

-    readonly BYTES_PER_ELEMENT: number;

-

-    /**

-      * Returns a new array from a set of elements.

-      * @param items A set of elements to include in the new array object.

-      */

-    of(...items: bigint[]): BigInt64Array;

-

-    /**

-      * Creates an array from an array-like or iterable object.

-      * @param arrayLike An array-like or iterable object to convert to an array.

-      * @param mapfn A mapping function to call on every element of the array.

-      * @param thisArg Value of 'this' used to invoke the mapfn.

-      */

-    from(arrayLike: ArrayLike<bigint>): BigInt64Array;

-    from<U>(arrayLike: ArrayLike<U>, mapfn: (v: U, k: number) => bigint, thisArg?: any): BigInt64Array;

-}

-

-declare var BigInt64Array: BigInt64ArrayConstructor;

-

-/**

-  * A typed array of 64-bit unsigned integer values. The contents are initialized to 0. If the

-  * requested number of bytes could not be allocated, an exception is raised.

-  */

-interface BigUint64Array {

-    /** The size in bytes of each element in the array. */

-    readonly BYTES_PER_ELEMENT: number;

-

-    /** The ArrayBuffer instance referenced by the array. */

-    readonly buffer: ArrayBufferLike;

-

-    /** The length in bytes of the array. */

-    readonly byteLength: number;

-

-    /** The offset in bytes of the array. */

-    readonly byteOffset: number;

-

-    /**

-      * Returns the this object after copying a section of the array identified by start and end

-      * to the same array starting at position target

-      * @param target If target is negative, it is treated as length+target where length is the

-      * length of the array.

-      * @param start If start is negative, it is treated as length+start. If end is negative, it

-      * is treated as length+end.

-      * @param end If not specified, length of the this object is used as its default value.

-      */

-    copyWithin(target: number, start: number, end?: number): this;

-

-    /** Yields index, value pairs for every entry in the array. */

-    entries(): IterableIterator<[number, bigint]>;

-

-    /**

-      * Determines whether all the members of an array satisfy the specified test.

-      * @param callbackfn A function that accepts up to three arguments. The every method calls

-      * the callbackfn function for each element in the array until the callbackfn returns false,

-      * or until the end of the array.

-      * @param thisArg An object to which the this keyword can refer in the callbackfn function.

-      * If thisArg is omitted, undefined is used as the this value.

-      */

-    every(callbackfn: (value: bigint, index: number, array: BigUint64Array) => boolean, thisArg?: any): boolean;

-

-    /**

-      * Returns the this object after filling the section identified by start and end with value

-      * @param value value to fill array section with

-      * @param start index to start filling the array at. If start is negative, it is treated as

-      * length+start where length is the length of the array.

-      * @param end index to stop filling the array at. If end is negative, it is treated as

-      * length+end.

-      */

-    fill(value: bigint, start?: number, end?: number): this;

-

-    /**

-      * Returns the elements of an array that meet the condition specified in a callback function.

-      * @param callbackfn A function that accepts up to three arguments. The filter method calls

-      * the callbackfn function one time for each element in the array.

-      * @param thisArg An object to which the this keyword can refer in the callbackfn function.

-      * If thisArg is omitted, undefined is used as the this value.

-      */

-    filter(callbackfn: (value: bigint, index: number, array: BigUint64Array) => any, thisArg?: any): BigUint64Array;

-

-    /**

-      * Returns the value of the first element in the array where predicate is true, and undefined

-      * otherwise.

-      * @param predicate find calls predicate once for each element of the array, in ascending

-      * order, until it finds one where predicate returns true. If such an element is found, find

-      * immediately returns that element value. Otherwise, find returns undefined.

-      * @param thisArg If provided, it will be used as the this value for each invocation of

-      * predicate. If it is not provided, undefined is used instead.

-      */

-    find(predicate: (value: bigint, index: number, array: BigUint64Array) => boolean, thisArg?: any): bigint | undefined;

-

-    /**

-      * Returns the index of the first element in the array where predicate is true, and -1

-      * otherwise.

-      * @param predicate find calls predicate once for each element of the array, in ascending

-      * order, until it finds one where predicate returns true. If such an element is found,

-      * findIndex immediately returns that element index. Otherwise, findIndex returns -1.

-      * @param thisArg If provided, it will be used as the this value for each invocation of

-      * predicate. If it is not provided, undefined is used instead.

-      */

-    findIndex(predicate: (value: bigint, index: number, array: BigUint64Array) => boolean, thisArg?: any): number;

-

-    /**

-      * Performs the specified action for each element in an array.

-      * @param callbackfn A function that accepts up to three arguments. forEach calls the

-      * callbackfn function one time for each element in the array.

-      * @param thisArg An object to which the this keyword can refer in the callbackfn function.

-      * If thisArg is omitted, undefined is used as the this value.

-      */

-    forEach(callbackfn: (value: bigint, index: number, array: BigUint64Array) => void, thisArg?: any): void;

-

-    /**

-      * Determines whether an array includes a certain element, returning true or false as appropriate.

-      * @param searchElement The element to search for.

-      * @param fromIndex The position in this array at which to begin searching for searchElement.

-      */

-    includes(searchElement: bigint, fromIndex?: number): boolean;

-

-    /**

-      * Returns the index of the first occurrence of a value in an array.

-      * @param searchElement The value to locate in the array.

-      * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the

-      * search starts at index 0.

-      */

-    indexOf(searchElement: bigint, fromIndex?: number): number;

-

-    /**

-      * Adds all the elements of an array separated by the specified separator string.

-      * @param separator A string used to separate one element of an array from the next in the

-      * resulting String. If omitted, the array elements are separated with a comma.

-      */

-    join(separator?: string): string;

-

-    /** Yields each index in the array. */

-    keys(): IterableIterator<number>;

-

-    /**

-      * Returns the index of the last occurrence of a value in an array.

-      * @param searchElement The value to locate in the array.

-      * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the

-      * search starts at index 0.

-      */

-    lastIndexOf(searchElement: bigint, fromIndex?: number): number;

-

-    /** The length of the array. */

-    readonly length: number;

-

-    /**

-      * Calls a defined callback function on each element of an array, and returns an array that

-      * contains the results.

-      * @param callbackfn A function that accepts up to three arguments. The map method calls the

-      * callbackfn function one time for each element in the array.

-      * @param thisArg An object to which the this keyword can refer in the callbackfn function.

-      * If thisArg is omitted, undefined is used as the this value.

-      */

-    map(callbackfn: (value: bigint, index: number, array: BigUint64Array) => bigint, thisArg?: any): BigUint64Array;

-

-    /**

-      * Calls the specified callback function for all the elements in an array. The return value of

-      * the callback function is the accumulated result, and is provided as an argument in the next

-      * call to the callback function.

-      * @param callbackfn A function that accepts up to four arguments. The reduce method calls the

-      * callbackfn function one time for each element in the array.

-      * @param initialValue If initialValue is specified, it is used as the initial value to start

-      * the accumulation. The first call to the callbackfn function provides this value as an argument

-      * instead of an array value.

-      */

-    reduce(callbackfn: (previousValue: bigint, currentValue: bigint, currentIndex: number, array: BigUint64Array) => bigint): bigint;

-

-    /**

-      * Calls the specified callback function for all the elements in an array. The return value of

-      * the callback function is the accumulated result, and is provided as an argument in the next

-      * call to the callback function.

-      * @param callbackfn A function that accepts up to four arguments. The reduce method calls the

-      * callbackfn function one time for each element in the array.

-      * @param initialValue If initialValue is specified, it is used as the initial value to start

-      * the accumulation. The first call to the callbackfn function provides this value as an argument

-      * instead of an array value.

-      */

-    reduce<U>(callbackfn: (previousValue: U, currentValue: bigint, currentIndex: number, array: BigUint64Array) => U, initialValue: U): U;

-

-    /**

-      * Calls the specified callback function for all the elements in an array, in descending order.

-      * The return value of the callback function is the accumulated result, and is provided as an

-      * argument in the next call to the callback function.

-      * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls

-      * the callbackfn function one time for each element in the array.

-      * @param initialValue If initialValue is specified, it is used as the initial value to start

-      * the accumulation. The first call to the callbackfn function provides this value as an

-      * argument instead of an array value.

-      */

-    reduceRight(callbackfn: (previousValue: bigint, currentValue: bigint, currentIndex: number, array: BigUint64Array) => bigint): bigint;

-

-    /**

-      * Calls the specified callback function for all the elements in an array, in descending order.

-      * The return value of the callback function is the accumulated result, and is provided as an

-      * argument in the next call to the callback function.

-      * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls

-      * the callbackfn function one time for each element in the array.

-      * @param initialValue If initialValue is specified, it is used as the initial value to start

-      * the accumulation. The first call to the callbackfn function provides this value as an argument

-      * instead of an array value.

-      */

-    reduceRight<U>(callbackfn: (previousValue: U, currentValue: bigint, currentIndex: number, array: BigUint64Array) => U, initialValue: U): U;

-

-    /** Reverses the elements in the array. */

-    reverse(): this;

-

-    /**

-      * Sets a value or an array of values.

-      * @param array A typed or untyped array of values to set.

-      * @param offset The index in the current array at which the values are to be written.

-      */

-    set(array: ArrayLike<bigint>, offset?: number): void;

-

-    /**

-      * Returns a section of an array.

-      * @param start The beginning of the specified portion of the array.

-      * @param end The end of the specified portion of the array.

-      */

-    slice(start?: number, end?: number): BigUint64Array;

-

-    /**

-      * Determines whether the specified callback function returns true for any element of an array.

-      * @param callbackfn A function that accepts up to three arguments. The some method calls the

-      * callbackfn function for each element in the array until the callbackfn returns true, or until

-      * the end of the array.

-      * @param thisArg An object to which the this keyword can refer in the callbackfn function.

-      * If thisArg is omitted, undefined is used as the this value.

-      */

-    some(callbackfn: (value: bigint, index: number, array: BigUint64Array) => boolean, thisArg?: any): boolean;

-

-    /**

-      * Sorts the array.

-      * @param compareFn The function used to determine the order of the elements. If omitted, the elements are sorted in ascending order.

-      */

-    sort(compareFn?: (a: bigint, b: bigint) => number | bigint): this;

-

-    /**

-      * Gets a new BigUint64Array view of the ArrayBuffer store for this array, referencing the elements

-      * at begin, inclusive, up to end, exclusive.

-      * @param begin The index of the beginning of the array.

-      * @param end The index of the end of the array.

-      */

-    subarray(begin: number, end?: number): BigUint64Array;

-

-    /** Converts the array to a string by using the current locale. */

-    toLocaleString(): string;

-

-    /** Returns a string representation of the array. */

-    toString(): string;

-

-    /** Yields each value in the array. */

-    values(): IterableIterator<bigint>;

-

-    [Symbol.iterator](): IterableIterator<bigint>;

-

-    readonly [Symbol.toStringTag]: "BigUint64Array";

-

-    [index: number]: bigint;

-}

-

-interface BigUint64ArrayConstructor {

-    readonly prototype: BigUint64Array;

-    new(length?: number): BigUint64Array;

-    new(array: Iterable<bigint>): BigUint64Array;

-    new(buffer: ArrayBufferLike, byteOffset?: number, length?: number): BigUint64Array;

-

-    /** The size in bytes of each element in the array. */

-    readonly BYTES_PER_ELEMENT: number;

-

-    /**

-      * Returns a new array from a set of elements.

-      * @param items A set of elements to include in the new array object.

-      */

-    of(...items: bigint[]): BigUint64Array;

-

-    /**

-      * Creates an array from an array-like or iterable object.

-      * @param arrayLike An array-like or iterable object to convert to an array.

-      * @param mapfn A mapping function to call on every element of the array.

-      * @param thisArg Value of 'this' used to invoke the mapfn.

-      */

-    from(arrayLike: ArrayLike<bigint>): BigUint64Array;

-    from<U>(arrayLike: ArrayLike<U>, mapfn: (v: U, k: number) => bigint, thisArg?: any): BigUint64Array;

-}

-

-declare var BigUint64Array: BigUint64ArrayConstructor;

-

-interface DataView {

-    /**

-      * Gets the BigInt64 value at the specified byte offset from the start of the view. There is

-      * no alignment constraint; multi-byte values may be fetched from any offset.

-      * @param byteOffset The place in the buffer at which the value should be retrieved.

-      */

-    getBigInt64(byteOffset: number, littleEndian?: boolean): bigint;

-

-    /**

-      * Gets the BigUint64 value at the specified byte offset from the start of the view. There is

-      * no alignment constraint; multi-byte values may be fetched from any offset.

-      * @param byteOffset The place in the buffer at which the value should be retrieved.

-      */

-    getBigUint64(byteOffset: number, littleEndian?: boolean): bigint;

-

-    /**

-      * Stores a BigInt64 value at the specified byte offset from the start of the view.

-      * @param byteOffset The place in the buffer at which the value should be set.

-      * @param value The value to set.

-      * @param littleEndian If false or undefined, a big-endian value should be written,

-      * otherwise a little-endian value should be written.

-      */

-    setBigInt64(byteOffset: number, value: bigint, littleEndian?: boolean): void;

-

-    /**

-      * Stores a BigUint64 value at the specified byte offset from the start of the view.

-      * @param byteOffset The place in the buffer at which the value should be set.

-      * @param value The value to set.

-      * @param littleEndian If false or undefined, a big-endian value should be written,

-      * otherwise a little-endian value should be written.

-      */

-    setBigUint64(byteOffset: number, value: bigint, littleEndian?: boolean): void;

-}

+interface BigInt {
+    /**
+      * Returns a string representation of an object.
+      * @param radix Specifies a radix for converting numeric values to strings.
+      */
+    toString(radix?: number): string;
+
+    /** Returns a string representation appropriate to the host environment's current locale. */
+    toLocaleString(): string;
+
+    /** Returns the primitive value of the specified object. */
+    valueOf(): bigint;
+
+    readonly [Symbol.toStringTag]: "BigInt";
+}
+
+interface BigIntConstructor {
+    (value?: any): bigint;
+    readonly prototype: BigInt;
+
+    /**
+      * Interprets the low bits of a BigInt as a 2's-complement signed integer.
+      * All higher bits are discarded.
+      * @param bits The number of low bits to use
+      * @param int The BigInt whose bits to extract
+      */
+    asIntN(bits: number, int: bigint): bigint;
+    /**
+      * Interprets the low bits of a BigInt as an unsigned integer.
+      * All higher bits are discarded.
+      * @param bits The number of low bits to use
+      * @param int The BigInt whose bits to extract
+      */
+    asUintN(bits: number, int: bigint): bigint;
+}
+
+declare var BigInt: BigIntConstructor;
+
+/**
+  * A typed array of 64-bit signed integer values. The contents are initialized to 0. If the
+  * requested number of bytes could not be allocated, an exception is raised.
+  */
+interface BigInt64Array {
+    /** The size in bytes of each element in the array. */
+    readonly BYTES_PER_ELEMENT: number;
+
+    /** The ArrayBuffer instance referenced by the array. */
+    readonly buffer: ArrayBufferLike;
+
+    /** The length in bytes of the array. */
+    readonly byteLength: number;
+
+    /** The offset in bytes of the array. */
+    readonly byteOffset: number;
+
+    /**
+      * Returns the this object after copying a section of the array identified by start and end
+      * to the same array starting at position target
+      * @param target If target is negative, it is treated as length+target where length is the
+      * length of the array.
+      * @param start If start is negative, it is treated as length+start. If end is negative, it
+      * is treated as length+end.
+      * @param end If not specified, length of the this object is used as its default value.
+      */
+    copyWithin(target: number, start: number, end?: number): this;
+
+    /** Yields index, value pairs for every entry in the array. */
+    entries(): IterableIterator<[number, bigint]>;
+
+    /**
+      * Determines whether all the members of an array satisfy the specified test.
+      * @param callbackfn A function that accepts up to three arguments. The every method calls
+      * the callbackfn function for each element in the array until the callbackfn returns false,
+      * or until the end of the array.
+      * @param thisArg An object to which the this keyword can refer in the callbackfn function.
+      * If thisArg is omitted, undefined is used as the this value.
+      */
+    every(callbackfn: (value: bigint, index: number, array: BigInt64Array) => boolean, thisArg?: any): boolean;
+
+    /**
+      * Returns the this object after filling the section identified by start and end with value
+      * @param value value to fill array section with
+      * @param start index to start filling the array at. If start is negative, it is treated as
+      * length+start where length is the length of the array.
+      * @param end index to stop filling the array at. If end is negative, it is treated as
+      * length+end.
+      */
+    fill(value: bigint, start?: number, end?: number): this;
+
+    /**
+      * Returns the elements of an array that meet the condition specified in a callback function.
+      * @param callbackfn A function that accepts up to three arguments. The filter method calls
+      * the callbackfn function one time for each element in the array.
+      * @param thisArg An object to which the this keyword can refer in the callbackfn function.
+      * If thisArg is omitted, undefined is used as the this value.
+      */
+    filter(callbackfn: (value: bigint, index: number, array: BigInt64Array) => any, thisArg?: any): BigInt64Array;
+
+    /**
+      * Returns the value of the first element in the array where predicate is true, and undefined
+      * otherwise.
+      * @param predicate find calls predicate once for each element of the array, in ascending
+      * order, until it finds one where predicate returns true. If such an element is found, find
+      * immediately returns that element value. Otherwise, find returns undefined.
+      * @param thisArg If provided, it will be used as the this value for each invocation of
+      * predicate. If it is not provided, undefined is used instead.
+      */
+    find(predicate: (value: bigint, index: number, array: BigInt64Array) => boolean, thisArg?: any): bigint | undefined;
+
+    /**
+      * Returns the index of the first element in the array where predicate is true, and -1
+      * otherwise.
+      * @param predicate find calls predicate once for each element of the array, in ascending
+      * order, until it finds one where predicate returns true. If such an element is found,
+      * findIndex immediately returns that element index. Otherwise, findIndex returns -1.
+      * @param thisArg If provided, it will be used as the this value for each invocation of
+      * predicate. If it is not provided, undefined is used instead.
+      */
+    findIndex(predicate: (value: bigint, index: number, array: BigInt64Array) => boolean, thisArg?: any): number;
+
+    /**
+      * Performs the specified action for each element in an array.
+      * @param callbackfn A function that accepts up to three arguments. forEach calls the
+      * callbackfn function one time for each element in the array.
+      * @param thisArg An object to which the this keyword can refer in the callbackfn function.
+      * If thisArg is omitted, undefined is used as the this value.
+      */
+    forEach(callbackfn: (value: bigint, index: number, array: BigInt64Array) => void, thisArg?: any): void;
+
+    /**
+      * Determines whether an array includes a certain element, returning true or false as appropriate.
+      * @param searchElement The element to search for.
+      * @param fromIndex The position in this array at which to begin searching for searchElement.
+      */
+    includes(searchElement: bigint, fromIndex?: number): boolean;
+
+    /**
+      * Returns the index of the first occurrence of a value in an array.
+      * @param searchElement The value to locate in the array.
+      * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the
+      * search starts at index 0.
+      */
+    indexOf(searchElement: bigint, fromIndex?: number): number;
+
+    /**
+      * Adds all the elements of an array separated by the specified separator string.
+      * @param separator A string used to separate one element of an array from the next in the
+      * resulting String. If omitted, the array elements are separated with a comma.
+      */
+    join(separator?: string): string;
+
+    /** Yields each index in the array. */
+    keys(): IterableIterator<number>;
+
+    /**
+      * Returns the index of the last occurrence of a value in an array.
+      * @param searchElement The value to locate in the array.
+      * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the
+      * search starts at index 0.
+      */
+    lastIndexOf(searchElement: bigint, fromIndex?: number): number;
+
+    /** The length of the array. */
+    readonly length: number;
+
+    /**
+      * Calls a defined callback function on each element of an array, and returns an array that
+      * contains the results.
+      * @param callbackfn A function that accepts up to three arguments. The map method calls the
+      * callbackfn function one time for each element in the array.
+      * @param thisArg An object to which the this keyword can refer in the callbackfn function.
+      * If thisArg is omitted, undefined is used as the this value.
+      */
+    map(callbackfn: (value: bigint, index: number, array: BigInt64Array) => bigint, thisArg?: any): BigInt64Array;
+
+    /**
+      * Calls the specified callback function for all the elements in an array. The return value of
+      * the callback function is the accumulated result, and is provided as an argument in the next
+      * call to the callback function.
+      * @param callbackfn A function that accepts up to four arguments. The reduce method calls the
+      * callbackfn function one time for each element in the array.
+      * @param initialValue If initialValue is specified, it is used as the initial value to start
+      * the accumulation. The first call to the callbackfn function provides this value as an argument
+      * instead of an array value.
+      */
+    reduce(callbackfn: (previousValue: bigint, currentValue: bigint, currentIndex: number, array: BigInt64Array) => bigint): bigint;
+
+    /**
+      * Calls the specified callback function for all the elements in an array. The return value of
+      * the callback function is the accumulated result, and is provided as an argument in the next
+      * call to the callback function.
+      * @param callbackfn A function that accepts up to four arguments. The reduce method calls the
+      * callbackfn function one time for each element in the array.
+      * @param initialValue If initialValue is specified, it is used as the initial value to start
+      * the accumulation. The first call to the callbackfn function provides this value as an argument
+      * instead of an array value.
+      */
+    reduce<U>(callbackfn: (previousValue: U, currentValue: bigint, currentIndex: number, array: BigInt64Array) => U, initialValue: U): U;
+
+    /**
+      * Calls the specified callback function for all the elements in an array, in descending order.
+      * The return value of the callback function is the accumulated result, and is provided as an
+      * argument in the next call to the callback function.
+      * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls
+      * the callbackfn function one time for each element in the array.
+      * @param initialValue If initialValue is specified, it is used as the initial value to start
+      * the accumulation. The first call to the callbackfn function provides this value as an
+      * argument instead of an array value.
+      */
+    reduceRight(callbackfn: (previousValue: bigint, currentValue: bigint, currentIndex: number, array: BigInt64Array) => bigint): bigint;
+
+    /**
+      * Calls the specified callback function for all the elements in an array, in descending order.
+      * The return value of the callback function is the accumulated result, and is provided as an
+      * argument in the next call to the callback function.
+      * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls
+      * the callbackfn function one time for each element in the array.
+      * @param initialValue If initialValue is specified, it is used as the initial value to start
+      * the accumulation. The first call to the callbackfn function provides this value as an argument
+      * instead of an array value.
+      */
+    reduceRight<U>(callbackfn: (previousValue: U, currentValue: bigint, currentIndex: number, array: BigInt64Array) => U, initialValue: U): U;
+
+    /** Reverses the elements in the array. */
+    reverse(): this;
+
+    /**
+      * Sets a value or an array of values.
+      * @param array A typed or untyped array of values to set.
+      * @param offset The index in the current array at which the values are to be written.
+      */
+    set(array: ArrayLike<bigint>, offset?: number): void;
+
+    /**
+      * Returns a section of an array.
+      * @param start The beginning of the specified portion of the array.
+      * @param end The end of the specified portion of the array.
+      */
+    slice(start?: number, end?: number): BigInt64Array;
+
+    /**
+      * Determines whether the specified callback function returns true for any element of an array.
+      * @param callbackfn A function that accepts up to three arguments. The some method calls the
+      * callbackfn function for each element in the array until the callbackfn returns true, or until
+      * the end of the array.
+      * @param thisArg An object to which the this keyword can refer in the callbackfn function.
+      * If thisArg is omitted, undefined is used as the this value.
+      */
+    some(callbackfn: (value: bigint, index: number, array: BigInt64Array) => boolean, thisArg?: any): boolean;
+
+    /**
+      * Sorts the array.
+      * @param compareFn The function used to determine the order of the elements. If omitted, the elements are sorted in ascending order.
+      */
+    sort(compareFn?: (a: bigint, b: bigint) => number | bigint): this;
+
+    /**
+      * Gets a new BigInt64Array view of the ArrayBuffer store for this array, referencing the elements
+      * at begin, inclusive, up to end, exclusive.
+      * @param begin The index of the beginning of the array.
+      * @param end The index of the end of the array.
+      */
+    subarray(begin: number, end?: number): BigInt64Array;
+
+    /** Converts the array to a string by using the current locale. */
+    toLocaleString(): string;
+
+    /** Returns a string representation of the array. */
+    toString(): string;
+
+    /** Yields each value in the array. */
+    values(): IterableIterator<bigint>;
+
+    [Symbol.iterator](): IterableIterator<bigint>;
+
+    readonly [Symbol.toStringTag]: "BigInt64Array";
+
+    [index: number]: bigint;
+}
+
+interface BigInt64ArrayConstructor {
+    readonly prototype: BigInt64Array;
+    new(length?: number): BigInt64Array;
+    new(array: Iterable<bigint>): BigInt64Array;
+    new(buffer: ArrayBufferLike, byteOffset?: number, length?: number): BigInt64Array;
+
+    /** The size in bytes of each element in the array. */
+    readonly BYTES_PER_ELEMENT: number;
+
+    /**
+      * Returns a new array from a set of elements.
+      * @param items A set of elements to include in the new array object.
+      */
+    of(...items: bigint[]): BigInt64Array;
+
+    /**
+      * Creates an array from an array-like or iterable object.
+      * @param arrayLike An array-like or iterable object to convert to an array.
+      * @param mapfn A mapping function to call on every element of the array.
+      * @param thisArg Value of 'this' used to invoke the mapfn.
+      */
+    from(arrayLike: ArrayLike<bigint>): BigInt64Array;
+    from<U>(arrayLike: ArrayLike<U>, mapfn: (v: U, k: number) => bigint, thisArg?: any): BigInt64Array;
+}
+
+declare var BigInt64Array: BigInt64ArrayConstructor;
+
+/**
+  * A typed array of 64-bit unsigned integer values. The contents are initialized to 0. If the
+  * requested number of bytes could not be allocated, an exception is raised.
+  */
+interface BigUint64Array {
+    /** The size in bytes of each element in the array. */
+    readonly BYTES_PER_ELEMENT: number;
+
+    /** The ArrayBuffer instance referenced by the array. */
+    readonly buffer: ArrayBufferLike;
+
+    /** The length in bytes of the array. */
+    readonly byteLength: number;
+
+    /** The offset in bytes of the array. */
+    readonly byteOffset: number;
+
+    /**
+      * Returns the this object after copying a section of the array identified by start and end
+      * to the same array starting at position target
+      * @param target If target is negative, it is treated as length+target where length is the
+      * length of the array.
+      * @param start If start is negative, it is treated as length+start. If end is negative, it
+      * is treated as length+end.
+      * @param end If not specified, length of the this object is used as its default value.
+      */
+    copyWithin(target: number, start: number, end?: number): this;
+
+    /** Yields index, value pairs for every entry in the array. */
+    entries(): IterableIterator<[number, bigint]>;
+
+    /**
+      * Determines whether all the members of an array satisfy the specified test.
+      * @param callbackfn A function that accepts up to three arguments. The every method calls
+      * the callbackfn function for each element in the array until the callbackfn returns false,
+      * or until the end of the array.
+      * @param thisArg An object to which the this keyword can refer in the callbackfn function.
+      * If thisArg is omitted, undefined is used as the this value.
+      */
+    every(callbackfn: (value: bigint, index: number, array: BigUint64Array) => boolean, thisArg?: any): boolean;
+
+    /**
+      * Returns the this object after filling the section identified by start and end with value
+      * @param value value to fill array section with
+      * @param start index to start filling the array at. If start is negative, it is treated as
+      * length+start where length is the length of the array.
+      * @param end index to stop filling the array at. If end is negative, it is treated as
+      * length+end.
+      */
+    fill(value: bigint, start?: number, end?: number): this;
+
+    /**
+      * Returns the elements of an array that meet the condition specified in a callback function.
+      * @param callbackfn A function that accepts up to three arguments. The filter method calls
+      * the callbackfn function one time for each element in the array.
+      * @param thisArg An object to which the this keyword can refer in the callbackfn function.
+      * If thisArg is omitted, undefined is used as the this value.
+      */
+    filter(callbackfn: (value: bigint, index: number, array: BigUint64Array) => any, thisArg?: any): BigUint64Array;
+
+    /**
+      * Returns the value of the first element in the array where predicate is true, and undefined
+      * otherwise.
+      * @param predicate find calls predicate once for each element of the array, in ascending
+      * order, until it finds one where predicate returns true. If such an element is found, find
+      * immediately returns that element value. Otherwise, find returns undefined.
+      * @param thisArg If provided, it will be used as the this value for each invocation of
+      * predicate. If it is not provided, undefined is used instead.
+      */
+    find(predicate: (value: bigint, index: number, array: BigUint64Array) => boolean, thisArg?: any): bigint | undefined;
+
+    /**
+      * Returns the index of the first element in the array where predicate is true, and -1
+      * otherwise.
+      * @param predicate find calls predicate once for each element of the array, in ascending
+      * order, until it finds one where predicate returns true. If such an element is found,
+      * findIndex immediately returns that element index. Otherwise, findIndex returns -1.
+      * @param thisArg If provided, it will be used as the this value for each invocation of
+      * predicate. If it is not provided, undefined is used instead.
+      */
+    findIndex(predicate: (value: bigint, index: number, array: BigUint64Array) => boolean, thisArg?: any): number;
+
+    /**
+      * Performs the specified action for each element in an array.
+      * @param callbackfn A function that accepts up to three arguments. forEach calls the
+      * callbackfn function one time for each element in the array.
+      * @param thisArg An object to which the this keyword can refer in the callbackfn function.
+      * If thisArg is omitted, undefined is used as the this value.
+      */
+    forEach(callbackfn: (value: bigint, index: number, array: BigUint64Array) => void, thisArg?: any): void;
+
+    /**
+      * Determines whether an array includes a certain element, returning true or false as appropriate.
+      * @param searchElement The element to search for.
+      * @param fromIndex The position in this array at which to begin searching for searchElement.
+      */
+    includes(searchElement: bigint, fromIndex?: number): boolean;
+
+    /**
+      * Returns the index of the first occurrence of a value in an array.
+      * @param searchElement The value to locate in the array.
+      * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the
+      * search starts at index 0.
+      */
+    indexOf(searchElement: bigint, fromIndex?: number): number;
+
+    /**
+      * Adds all the elements of an array separated by the specified separator string.
+      * @param separator A string used to separate one element of an array from the next in the
+      * resulting String. If omitted, the array elements are separated with a comma.
+      */
+    join(separator?: string): string;
+
+    /** Yields each index in the array. */
+    keys(): IterableIterator<number>;
+
+    /**
+      * Returns the index of the last occurrence of a value in an array.
+      * @param searchElement The value to locate in the array.
+      * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the
+      * search starts at index 0.
+      */
+    lastIndexOf(searchElement: bigint, fromIndex?: number): number;
+
+    /** The length of the array. */
+    readonly length: number;
+
+    /**
+      * Calls a defined callback function on each element of an array, and returns an array that
+      * contains the results.
+      * @param callbackfn A function that accepts up to three arguments. The map method calls the
+      * callbackfn function one time for each element in the array.
+      * @param thisArg An object to which the this keyword can refer in the callbackfn function.
+      * If thisArg is omitted, undefined is used as the this value.
+      */
+    map(callbackfn: (value: bigint, index: number, array: BigUint64Array) => bigint, thisArg?: any): BigUint64Array;
+
+    /**
+      * Calls the specified callback function for all the elements in an array. The return value of
+      * the callback function is the accumulated result, and is provided as an argument in the next
+      * call to the callback function.
+      * @param callbackfn A function that accepts up to four arguments. The reduce method calls the
+      * callbackfn function one time for each element in the array.
+      * @param initialValue If initialValue is specified, it is used as the initial value to start
+      * the accumulation. The first call to the callbackfn function provides this value as an argument
+      * instead of an array value.
+      */
+    reduce(callbackfn: (previousValue: bigint, currentValue: bigint, currentIndex: number, array: BigUint64Array) => bigint): bigint;
+
+    /**
+      * Calls the specified callback function for all the elements in an array. The return value of
+      * the callback function is the accumulated result, and is provided as an argument in the next
+      * call to the callback function.
+      * @param callbackfn A function that accepts up to four arguments. The reduce method calls the
+      * callbackfn function one time for each element in the array.
+      * @param initialValue If initialValue is specified, it is used as the initial value to start
+      * the accumulation. The first call to the callbackfn function provides this value as an argument
+      * instead of an array value.
+      */
+    reduce<U>(callbackfn: (previousValue: U, currentValue: bigint, currentIndex: number, array: BigUint64Array) => U, initialValue: U): U;
+
+    /**
+      * Calls the specified callback function for all the elements in an array, in descending order.
+      * The return value of the callback function is the accumulated result, and is provided as an
+      * argument in the next call to the callback function.
+      * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls
+      * the callbackfn function one time for each element in the array.
+      * @param initialValue If initialValue is specified, it is used as the initial value to start
+      * the accumulation. The first call to the callbackfn function provides this value as an
+      * argument instead of an array value.
+      */
+    reduceRight(callbackfn: (previousValue: bigint, currentValue: bigint, currentIndex: number, array: BigUint64Array) => bigint): bigint;
+
+    /**
+      * Calls the specified callback function for all the elements in an array, in descending order.
+      * The return value of the callback function is the accumulated result, and is provided as an
+      * argument in the next call to the callback function.
+      * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls
+      * the callbackfn function one time for each element in the array.
+      * @param initialValue If initialValue is specified, it is used as the initial value to start
+      * the accumulation. The first call to the callbackfn function provides this value as an argument
+      * instead of an array value.
+      */
+    reduceRight<U>(callbackfn: (previousValue: U, currentValue: bigint, currentIndex: number, array: BigUint64Array) => U, initialValue: U): U;
+
+    /** Reverses the elements in the array. */
+    reverse(): this;
+
+    /**
+      * Sets a value or an array of values.
+      * @param array A typed or untyped array of values to set.
+      * @param offset The index in the current array at which the values are to be written.
+      */
+    set(array: ArrayLike<bigint>, offset?: number): void;
+
+    /**
+      * Returns a section of an array.
+      * @param start The beginning of the specified portion of the array.
+      * @param end The end of the specified portion of the array.
+      */
+    slice(start?: number, end?: number): BigUint64Array;
+
+    /**
+      * Determines whether the specified callback function returns true for any element of an array.
+      * @param callbackfn A function that accepts up to three arguments. The some method calls the
+      * callbackfn function for each element in the array until the callbackfn returns true, or until
+      * the end of the array.
+      * @param thisArg An object to which the this keyword can refer in the callbackfn function.
+      * If thisArg is omitted, undefined is used as the this value.
+      */
+    some(callbackfn: (value: bigint, index: number, array: BigUint64Array) => boolean, thisArg?: any): boolean;
+
+    /**
+      * Sorts the array.
+      * @param compareFn The function used to determine the order of the elements. If omitted, the elements are sorted in ascending order.
+      */
+    sort(compareFn?: (a: bigint, b: bigint) => number | bigint): this;
+
+    /**
+      * Gets a new BigUint64Array view of the ArrayBuffer store for this array, referencing the elements
+      * at begin, inclusive, up to end, exclusive.
+      * @param begin The index of the beginning of the array.
+      * @param end The index of the end of the array.
+      */
+    subarray(begin: number, end?: number): BigUint64Array;
+
+    /** Converts the array to a string by using the current locale. */
+    toLocaleString(): string;
+
+    /** Returns a string representation of the array. */
+    toString(): string;
+
+    /** Yields each value in the array. */
+    values(): IterableIterator<bigint>;
+
+    [Symbol.iterator](): IterableIterator<bigint>;
+
+    readonly [Symbol.toStringTag]: "BigUint64Array";
+
+    [index: number]: bigint;
+}
+
+interface BigUint64ArrayConstructor {
+    readonly prototype: BigUint64Array;
+    new(length?: number): BigUint64Array;
+    new(array: Iterable<bigint>): BigUint64Array;
+    new(buffer: ArrayBufferLike, byteOffset?: number, length?: number): BigUint64Array;
+
+    /** The size in bytes of each element in the array. */
+    readonly BYTES_PER_ELEMENT: number;
+
+    /**
+      * Returns a new array from a set of elements.
+      * @param items A set of elements to include in the new array object.
+      */
+    of(...items: bigint[]): BigUint64Array;
+
+    /**
+      * Creates an array from an array-like or iterable object.
+      * @param arrayLike An array-like or iterable object to convert to an array.
+      * @param mapfn A mapping function to call on every element of the array.
+      * @param thisArg Value of 'this' used to invoke the mapfn.
+      */
+    from(arrayLike: ArrayLike<bigint>): BigUint64Array;
+    from<U>(arrayLike: ArrayLike<U>, mapfn: (v: U, k: number) => bigint, thisArg?: any): BigUint64Array;
+}
+
+declare var BigUint64Array: BigUint64ArrayConstructor;
+
+interface DataView {
+    /**
+      * Gets the BigInt64 value at the specified byte offset from the start of the view. There is
+      * no alignment constraint; multi-byte values may be fetched from any offset.
+      * @param byteOffset The place in the buffer at which the value should be retrieved.
+      */
+    getBigInt64(byteOffset: number, littleEndian?: boolean): bigint;
+
+    /**
+      * Gets the BigUint64 value at the specified byte offset from the start of the view. There is
+      * no alignment constraint; multi-byte values may be fetched from any offset.
+      * @param byteOffset The place in the buffer at which the value should be retrieved.
+      */
+    getBigUint64(byteOffset: number, littleEndian?: boolean): bigint;
+
+    /**
+      * Stores a BigInt64 value at the specified byte offset from the start of the view.
+      * @param byteOffset The place in the buffer at which the value should be set.
+      * @param value The value to set.
+      * @param littleEndian If false or undefined, a big-endian value should be written,
+      * otherwise a little-endian value should be written.
+      */
+    setBigInt64(byteOffset: number, value: bigint, littleEndian?: boolean): void;
+
+    /**
+      * Stores a BigUint64 value at the specified byte offset from the start of the view.
+      * @param byteOffset The place in the buffer at which the value should be set.
+      * @param value The value to set.
+      * @param littleEndian If false or undefined, a big-endian value should be written,
+      * otherwise a little-endian value should be written.
+      */
+    setBigUint64(byteOffset: number, value: bigint, littleEndian?: boolean): void;
+}
diff --git a/src/cobalt/debug/remote/devtools/node_modules/typescript/lib/lib.esnext.d.ts b/src/third_party/devtools/node_modules/typescript/lib/lib.esnext.d.ts
similarity index 99%
rename from src/cobalt/debug/remote/devtools/node_modules/typescript/lib/lib.esnext.d.ts
rename to src/third_party/devtools/node_modules/typescript/lib/lib.esnext.d.ts
index f944474..ea5841b 100644
--- a/src/cobalt/debug/remote/devtools/node_modules/typescript/lib/lib.esnext.d.ts
+++ b/src/third_party/devtools/node_modules/typescript/lib/lib.esnext.d.ts
@@ -15,9 +15,9 @@
 
 
 
-/// <reference no-default-lib="true"/>

+/// <reference no-default-lib="true"/>
 
 
-/// <reference lib="es2019" />

-/// <reference lib="esnext.bigint" />

-/// <reference lib="esnext.intl" />

+/// <reference lib="es2019" />
+/// <reference lib="esnext.bigint" />
+/// <reference lib="esnext.intl" />
diff --git a/src/cobalt/debug/remote/devtools/node_modules/typescript/lib/lib.esnext.full.d.ts b/src/third_party/devtools/node_modules/typescript/lib/lib.esnext.full.d.ts
similarity index 99%
rename from src/cobalt/debug/remote/devtools/node_modules/typescript/lib/lib.esnext.full.d.ts
rename to src/third_party/devtools/node_modules/typescript/lib/lib.esnext.full.d.ts
index db0b25c..e3c4fa5 100644
--- a/src/cobalt/debug/remote/devtools/node_modules/typescript/lib/lib.esnext.full.d.ts
+++ b/src/third_party/devtools/node_modules/typescript/lib/lib.esnext.full.d.ts
@@ -15,11 +15,11 @@
 
 
 
-/// <reference no-default-lib="true"/>

+/// <reference no-default-lib="true"/>
 
 
-/// <reference lib="esnext" />

-/// <reference lib="dom" />

-/// <reference lib="webworker.importscripts" />

-/// <reference lib="scripthost" />

+/// <reference lib="esnext" />
+/// <reference lib="dom" />
+/// <reference lib="webworker.importscripts" />
+/// <reference lib="scripthost" />
 /// <reference lib="dom.iterable" />
\ No newline at end of file
diff --git a/src/cobalt/debug/remote/devtools/node_modules/typescript/lib/lib.esnext.intl.d.ts b/src/third_party/devtools/node_modules/typescript/lib/lib.esnext.intl.d.ts
similarity index 99%
rename from src/cobalt/debug/remote/devtools/node_modules/typescript/lib/lib.esnext.intl.d.ts
rename to src/third_party/devtools/node_modules/typescript/lib/lib.esnext.intl.d.ts
index 72a9bae..73a45ee 100644
--- a/src/cobalt/debug/remote/devtools/node_modules/typescript/lib/lib.esnext.intl.d.ts
+++ b/src/third_party/devtools/node_modules/typescript/lib/lib.esnext.intl.d.ts
@@ -15,18 +15,18 @@
 
 
 
-/// <reference no-default-lib="true"/>

+/// <reference no-default-lib="true"/>
 
 
-declare namespace Intl {

-    type NumberFormatPartTypes = "currency" | "decimal" | "fraction" | "group" | "infinity" | "integer" | "literal" | "minusSign" | "nan" | "plusSign" | "percentSign";

-

-    interface NumberFormatPart {

-        type: NumberFormatPartTypes;

-        value: string;

-    }

-

-    interface NumberFormat {

-        formatToParts(number?: number): NumberFormatPart[];

-    }

-  }

+declare namespace Intl {
+    type NumberFormatPartTypes = "currency" | "decimal" | "fraction" | "group" | "infinity" | "integer" | "literal" | "minusSign" | "nan" | "plusSign" | "percentSign";
+
+    interface NumberFormatPart {
+        type: NumberFormatPartTypes;
+        value: string;
+    }
+
+    interface NumberFormat {
+        formatToParts(number?: number): NumberFormatPart[];
+    }
+  }
diff --git a/src/cobalt/debug/remote/devtools/node_modules/typescript/lib/lib.esnext.symbol.d.ts b/src/third_party/devtools/node_modules/typescript/lib/lib.esnext.symbol.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/typescript/lib/lib.esnext.symbol.d.ts
rename to src/third_party/devtools/node_modules/typescript/lib/lib.esnext.symbol.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/typescript/lib/lib.scripthost.d.ts b/src/third_party/devtools/node_modules/typescript/lib/lib.scripthost.d.ts
similarity index 99%
rename from src/cobalt/debug/remote/devtools/node_modules/typescript/lib/lib.scripthost.d.ts
rename to src/third_party/devtools/node_modules/typescript/lib/lib.scripthost.d.ts
index 5795c68..5aab121 100644
--- a/src/cobalt/debug/remote/devtools/node_modules/typescript/lib/lib.scripthost.d.ts
+++ b/src/third_party/devtools/node_modules/typescript/lib/lib.scripthost.d.ts
@@ -15,313 +15,313 @@
 
 
 
-/// <reference no-default-lib="true"/>

+/// <reference no-default-lib="true"/>
 
 
-

-

-/////////////////////////////

-/// Windows Script Host APIS

-/////////////////////////////

-

-

-interface ActiveXObject {

-    new (s: string): any;

-}

-declare var ActiveXObject: ActiveXObject;

-

-interface ITextWriter {

-    Write(s: string): void;

-    WriteLine(s: string): void;

-    Close(): void;

-}

-

-interface TextStreamBase {

-    /**

-     * The column number of the current character position in an input stream.

-     */

-    Column: number;

-

-    /**

-     * The current line number in an input stream.

-     */

-    Line: number;

-

-    /**

-     * Closes a text stream.

-     * It is not necessary to close standard streams; they close automatically when the process ends. If

-     * you close a standard stream, be aware that any other pointers to that standard stream become invalid.

-     */

-    Close(): void;

-}

-

-interface TextStreamWriter extends TextStreamBase {

-    /**

-     * Sends a string to an output stream.

-     */

-    Write(s: string): void;

-

-    /**

-     * Sends a specified number of blank lines (newline characters) to an output stream.

-     */

-    WriteBlankLines(intLines: number): void;

-

-    /**

-     * Sends a string followed by a newline character to an output stream.

-     */

-    WriteLine(s: string): void;

-}

-

-interface TextStreamReader extends TextStreamBase {

-    /**

-     * Returns a specified number of characters from an input stream, starting at the current pointer position.

-     * Does not return until the ENTER key is pressed.

-     * Can only be used on a stream in reading mode; causes an error in writing or appending mode.

-     */

-    Read(characters: number): string;

-

-    /**

-     * Returns all characters from an input stream.

-     * Can only be used on a stream in reading mode; causes an error in writing or appending mode.

-     */

-    ReadAll(): string;

-

-    /**

-     * Returns an entire line from an input stream.

-     * Although this method extracts the newline character, it does not add it to the returned string.

-     * Can only be used on a stream in reading mode; causes an error in writing or appending mode.

-     */

-    ReadLine(): string;

-

-    /**

-     * Skips a specified number of characters when reading from an input text stream.

-     * Can only be used on a stream in reading mode; causes an error in writing or appending mode.

-     * @param characters Positive number of characters to skip forward. (Backward skipping is not supported.)

-     */

-    Skip(characters: number): void;

-

-    /**

-     * Skips the next line when reading from an input text stream.

-     * Can only be used on a stream in reading mode, not writing or appending mode.

-     */

-    SkipLine(): void;

-

-    /**

-     * Indicates whether the stream pointer position is at the end of a line.

-     */

-    AtEndOfLine: boolean;

-

-    /**

-     * Indicates whether the stream pointer position is at the end of a stream.

-     */

-    AtEndOfStream: boolean;

-}

-

-declare var WScript: {

-    /**

-     * Outputs text to either a message box (under WScript.exe) or the command console window followed by

-     * a newline (under CScript.exe).

-     */

-    Echo(s: any): void;

-

-    /**

-     * Exposes the write-only error output stream for the current script.

-     * Can be accessed only while using CScript.exe.

-     */

-    StdErr: TextStreamWriter;

-

-    /**

-     * Exposes the write-only output stream for the current script.

-     * Can be accessed only while using CScript.exe.

-     */

-    StdOut: TextStreamWriter;

-    Arguments: { length: number; Item(n: number): string; };

-

-    /**

-     *  The full path of the currently running script.

-     */

-    ScriptFullName: string;

-

-    /**

-     * Forces the script to stop immediately, with an optional exit code.

-     */

-    Quit(exitCode?: number): number;

-

-    /**

-     * The Windows Script Host build version number.

-     */

-    BuildVersion: number;

-

-    /**

-     * Fully qualified path of the host executable.

-     */

-    FullName: string;

-

-    /**

-     * Gets/sets the script mode - interactive(true) or batch(false).

-     */

-    Interactive: boolean;

-

-    /**

-     * The name of the host executable (WScript.exe or CScript.exe).

-     */

-    Name: string;

-

-    /**

-     * Path of the directory containing the host executable.

-     */

-    Path: string;

-

-    /**

-     * The filename of the currently running script.

-     */

-    ScriptName: string;

-

-    /**

-     * Exposes the read-only input stream for the current script.

-     * Can be accessed only while using CScript.exe.

-     */

-    StdIn: TextStreamReader;

-

-    /**

-     * Windows Script Host version

-     */

-    Version: string;

-

-    /**

-     * Connects a COM object's event sources to functions named with a given prefix, in the form prefix_event.

-     */

-    ConnectObject(objEventSource: any, strPrefix: string): void;

-

-    /**

-     * Creates a COM object.

-     * @param strProgiID

-     * @param strPrefix Function names in the form prefix_event will be bound to this object's COM events.

-     */

-    CreateObject(strProgID: string, strPrefix?: string): any;

-

-    /**

-     * Disconnects a COM object from its event sources.

-     */

-    DisconnectObject(obj: any): void;

-

-    /**

-     * Retrieves an existing object with the specified ProgID from memory, or creates a new one from a file.

-     * @param strPathname Fully qualified path to the file containing the object persisted to disk.

-     *                       For objects in memory, pass a zero-length string.

-     * @param strProgID

-     * @param strPrefix Function names in the form prefix_event will be bound to this object's COM events.

-     */

-    GetObject(strPathname: string, strProgID?: string, strPrefix?: string): any;

-

-    /**

-     * Suspends script execution for a specified length of time, then continues execution.

-     * @param intTime Interval (in milliseconds) to suspend script execution.

-     */

-    Sleep(intTime: number): void;

-};

-

-/**

- * WSH is an alias for WScript under Windows Script Host

- */

-declare var WSH: typeof WScript;

-

-/**

- * Represents an Automation SAFEARRAY

- */

-declare class SafeArray<T = any> {

-    private constructor();

-    private SafeArray_typekey: SafeArray<T>;

-}

-

-/**

- * Allows enumerating over a COM collection, which may not have indexed item access.

- */

-interface Enumerator<T = any> {

-    /**

-     * Returns true if the current item is the last one in the collection, or the collection is empty,

-     * or the current item is undefined.

-     */

-    atEnd(): boolean;

-

-    /**

-     * Returns the current item in the collection

-     */

-    item(): T;

-

-    /**

-     * Resets the current item in the collection to the first item. If there are no items in the collection,

-     * the current item is set to undefined.

-     */

-    moveFirst(): void;

-

-    /**

-     * Moves the current item to the next item in the collection. If the enumerator is at the end of

-     * the collection or the collection is empty, the current item is set to undefined.

-     */

-    moveNext(): void;

-}

-

-interface EnumeratorConstructor {

-    new <T = any>(safearray: SafeArray<T>): Enumerator<T>;

-    new <T = any>(collection: { Item(index: any): T }): Enumerator<T>;

-    new <T = any>(collection: any): Enumerator<T>;

-}

-

-declare var Enumerator: EnumeratorConstructor;

-

-/**

- * Enables reading from a COM safe array, which might have an alternate lower bound, or multiple dimensions.

- */

-interface VBArray<T = any> {

-    /**

-     * Returns the number of dimensions (1-based).

-     */

-    dimensions(): number;

-

-    /**

-     * Takes an index for each dimension in the array, and returns the item at the corresponding location.

-     */

-    getItem(dimension1Index: number, ...dimensionNIndexes: number[]): T;

-

-    /**

-     * Returns the smallest available index for a given dimension.

-     * @param dimension 1-based dimension (defaults to 1)

-     */

-    lbound(dimension?: number): number;

-

-    /**

-     * Returns the largest available index for a given dimension.

-     * @param dimension 1-based dimension (defaults to 1)

-     */

-    ubound(dimension?: number): number;

-

-    /**

-     * Returns a Javascript array with all the elements in the VBArray. If there are multiple dimensions,

-     * each successive dimension is appended to the end of the array.

-     * Example: [[1,2,3],[4,5,6]] becomes [1,2,3,4,5,6]

-     */

-    toArray(): T[];

-}

-

-interface VBArrayConstructor {

-    new <T = any>(safeArray: SafeArray<T>): VBArray<T>;

-}

-

-declare var VBArray: VBArrayConstructor;

-

-/**

- * Automation date (VT_DATE)

- */

-declare class VarDate {

-    private constructor();

-    private VarDate_typekey: VarDate;

-}

-

-interface DateConstructor {

-    new (vd: VarDate): Date;

-}

-

-interface Date {

-    getVarDate: () => VarDate;

-}

+
+
+/////////////////////////////
+/// Windows Script Host APIS
+/////////////////////////////
+
+
+interface ActiveXObject {
+    new (s: string): any;
+}
+declare var ActiveXObject: ActiveXObject;
+
+interface ITextWriter {
+    Write(s: string): void;
+    WriteLine(s: string): void;
+    Close(): void;
+}
+
+interface TextStreamBase {
+    /**
+     * The column number of the current character position in an input stream.
+     */
+    Column: number;
+
+    /**
+     * The current line number in an input stream.
+     */
+    Line: number;
+
+    /**
+     * Closes a text stream.
+     * It is not necessary to close standard streams; they close automatically when the process ends. If
+     * you close a standard stream, be aware that any other pointers to that standard stream become invalid.
+     */
+    Close(): void;
+}
+
+interface TextStreamWriter extends TextStreamBase {
+    /**
+     * Sends a string to an output stream.
+     */
+    Write(s: string): void;
+
+    /**
+     * Sends a specified number of blank lines (newline characters) to an output stream.
+     */
+    WriteBlankLines(intLines: number): void;
+
+    /**
+     * Sends a string followed by a newline character to an output stream.
+     */
+    WriteLine(s: string): void;
+}
+
+interface TextStreamReader extends TextStreamBase {
+    /**
+     * Returns a specified number of characters from an input stream, starting at the current pointer position.
+     * Does not return until the ENTER key is pressed.
+     * Can only be used on a stream in reading mode; causes an error in writing or appending mode.
+     */
+    Read(characters: number): string;
+
+    /**
+     * Returns all characters from an input stream.
+     * Can only be used on a stream in reading mode; causes an error in writing or appending mode.
+     */
+    ReadAll(): string;
+
+    /**
+     * Returns an entire line from an input stream.
+     * Although this method extracts the newline character, it does not add it to the returned string.
+     * Can only be used on a stream in reading mode; causes an error in writing or appending mode.
+     */
+    ReadLine(): string;
+
+    /**
+     * Skips a specified number of characters when reading from an input text stream.
+     * Can only be used on a stream in reading mode; causes an error in writing or appending mode.
+     * @param characters Positive number of characters to skip forward. (Backward skipping is not supported.)
+     */
+    Skip(characters: number): void;
+
+    /**
+     * Skips the next line when reading from an input text stream.
+     * Can only be used on a stream in reading mode, not writing or appending mode.
+     */
+    SkipLine(): void;
+
+    /**
+     * Indicates whether the stream pointer position is at the end of a line.
+     */
+    AtEndOfLine: boolean;
+
+    /**
+     * Indicates whether the stream pointer position is at the end of a stream.
+     */
+    AtEndOfStream: boolean;
+}
+
+declare var WScript: {
+    /**
+     * Outputs text to either a message box (under WScript.exe) or the command console window followed by
+     * a newline (under CScript.exe).
+     */
+    Echo(s: any): void;
+
+    /**
+     * Exposes the write-only error output stream for the current script.
+     * Can be accessed only while using CScript.exe.
+     */
+    StdErr: TextStreamWriter;
+
+    /**
+     * Exposes the write-only output stream for the current script.
+     * Can be accessed only while using CScript.exe.
+     */
+    StdOut: TextStreamWriter;
+    Arguments: { length: number; Item(n: number): string; };
+
+    /**
+     *  The full path of the currently running script.
+     */
+    ScriptFullName: string;
+
+    /**
+     * Forces the script to stop immediately, with an optional exit code.
+     */
+    Quit(exitCode?: number): number;
+
+    /**
+     * The Windows Script Host build version number.
+     */
+    BuildVersion: number;
+
+    /**
+     * Fully qualified path of the host executable.
+     */
+    FullName: string;
+
+    /**
+     * Gets/sets the script mode - interactive(true) or batch(false).
+     */
+    Interactive: boolean;
+
+    /**
+     * The name of the host executable (WScript.exe or CScript.exe).
+     */
+    Name: string;
+
+    /**
+     * Path of the directory containing the host executable.
+     */
+    Path: string;
+
+    /**
+     * The filename of the currently running script.
+     */
+    ScriptName: string;
+
+    /**
+     * Exposes the read-only input stream for the current script.
+     * Can be accessed only while using CScript.exe.
+     */
+    StdIn: TextStreamReader;
+
+    /**
+     * Windows Script Host version
+     */
+    Version: string;
+
+    /**
+     * Connects a COM object's event sources to functions named with a given prefix, in the form prefix_event.
+     */
+    ConnectObject(objEventSource: any, strPrefix: string): void;
+
+    /**
+     * Creates a COM object.
+     * @param strProgiID
+     * @param strPrefix Function names in the form prefix_event will be bound to this object's COM events.
+     */
+    CreateObject(strProgID: string, strPrefix?: string): any;
+
+    /**
+     * Disconnects a COM object from its event sources.
+     */
+    DisconnectObject(obj: any): void;
+
+    /**
+     * Retrieves an existing object with the specified ProgID from memory, or creates a new one from a file.
+     * @param strPathname Fully qualified path to the file containing the object persisted to disk.
+     *                       For objects in memory, pass a zero-length string.
+     * @param strProgID
+     * @param strPrefix Function names in the form prefix_event will be bound to this object's COM events.
+     */
+    GetObject(strPathname: string, strProgID?: string, strPrefix?: string): any;
+
+    /**
+     * Suspends script execution for a specified length of time, then continues execution.
+     * @param intTime Interval (in milliseconds) to suspend script execution.
+     */
+    Sleep(intTime: number): void;
+};
+
+/**
+ * WSH is an alias for WScript under Windows Script Host
+ */
+declare var WSH: typeof WScript;
+
+/**
+ * Represents an Automation SAFEARRAY
+ */
+declare class SafeArray<T = any> {
+    private constructor();
+    private SafeArray_typekey: SafeArray<T>;
+}
+
+/**
+ * Allows enumerating over a COM collection, which may not have indexed item access.
+ */
+interface Enumerator<T = any> {
+    /**
+     * Returns true if the current item is the last one in the collection, or the collection is empty,
+     * or the current item is undefined.
+     */
+    atEnd(): boolean;
+
+    /**
+     * Returns the current item in the collection
+     */
+    item(): T;
+
+    /**
+     * Resets the current item in the collection to the first item. If there are no items in the collection,
+     * the current item is set to undefined.
+     */
+    moveFirst(): void;
+
+    /**
+     * Moves the current item to the next item in the collection. If the enumerator is at the end of
+     * the collection or the collection is empty, the current item is set to undefined.
+     */
+    moveNext(): void;
+}
+
+interface EnumeratorConstructor {
+    new <T = any>(safearray: SafeArray<T>): Enumerator<T>;
+    new <T = any>(collection: { Item(index: any): T }): Enumerator<T>;
+    new <T = any>(collection: any): Enumerator<T>;
+}
+
+declare var Enumerator: EnumeratorConstructor;
+
+/**
+ * Enables reading from a COM safe array, which might have an alternate lower bound, or multiple dimensions.
+ */
+interface VBArray<T = any> {
+    /**
+     * Returns the number of dimensions (1-based).
+     */
+    dimensions(): number;
+
+    /**
+     * Takes an index for each dimension in the array, and returns the item at the corresponding location.
+     */
+    getItem(dimension1Index: number, ...dimensionNIndexes: number[]): T;
+
+    /**
+     * Returns the smallest available index for a given dimension.
+     * @param dimension 1-based dimension (defaults to 1)
+     */
+    lbound(dimension?: number): number;
+
+    /**
+     * Returns the largest available index for a given dimension.
+     * @param dimension 1-based dimension (defaults to 1)
+     */
+    ubound(dimension?: number): number;
+
+    /**
+     * Returns a Javascript array with all the elements in the VBArray. If there are multiple dimensions,
+     * each successive dimension is appended to the end of the array.
+     * Example: [[1,2,3],[4,5,6]] becomes [1,2,3,4,5,6]
+     */
+    toArray(): T[];
+}
+
+interface VBArrayConstructor {
+    new <T = any>(safeArray: SafeArray<T>): VBArray<T>;
+}
+
+declare var VBArray: VBArrayConstructor;
+
+/**
+ * Automation date (VT_DATE)
+ */
+declare class VarDate {
+    private constructor();
+    private VarDate_typekey: VarDate;
+}
+
+interface DateConstructor {
+    new (vd: VarDate): Date;
+}
+
+interface Date {
+    getVarDate: () => VarDate;
+}
diff --git a/src/cobalt/debug/remote/devtools/node_modules/typescript/lib/lib.webworker.d.ts b/src/third_party/devtools/node_modules/typescript/lib/lib.webworker.d.ts
similarity index 99%
rename from src/cobalt/debug/remote/devtools/node_modules/typescript/lib/lib.webworker.d.ts
rename to src/third_party/devtools/node_modules/typescript/lib/lib.webworker.d.ts
index 696f4ca..bdff3ef 100644
--- a/src/cobalt/debug/remote/devtools/node_modules/typescript/lib/lib.webworker.d.ts
+++ b/src/third_party/devtools/node_modules/typescript/lib/lib.webworker.d.ts
@@ -15,7 +15,7 @@
 
 
 
-/// <reference no-default-lib="true"/>

+/// <reference no-default-lib="true"/>
 
 
 /////////////////////////////
@@ -3144,28 +3144,28 @@
 };
 
 interface URLSearchParams {
-    /**

-     * Appends a specified key/value pair as a new search parameter.

+    /**
+     * Appends a specified key/value pair as a new search parameter.
      */
     append(name: string, value: string): void;
-    /**

-     * Deletes the given search parameter, and its associated value, from the list of all search parameters.

+    /**
+     * Deletes the given search parameter, and its associated value, from the list of all search parameters.
      */
     delete(name: string): void;
-    /**

-     * Returns the first value associated to the given search parameter.

+    /**
+     * Returns the first value associated to the given search parameter.
      */
     get(name: string): string | null;
-    /**

-     * Returns all the values association with a given search parameter.

+    /**
+     * Returns all the values association with a given search parameter.
      */
     getAll(name: string): string[];
-    /**

-     * Returns a Boolean indicating if such a search parameter exists.

+    /**
+     * Returns a Boolean indicating if such a search parameter exists.
      */
     has(name: string): boolean;
-    /**

-     * Sets the value associated to a given search parameter to the given value. If there were several values, delete the others.

+    /**
+     * Sets the value associated to a given search parameter to the given value. If there were several values, delete the others.
      */
     set(name: string, value: string): void;
     sort(): void;
diff --git a/src/cobalt/debug/remote/devtools/node_modules/typescript/lib/lib.webworker.importscripts.d.ts b/src/third_party/devtools/node_modules/typescript/lib/lib.webworker.importscripts.d.ts
similarity index 99%
rename from src/cobalt/debug/remote/devtools/node_modules/typescript/lib/lib.webworker.importscripts.d.ts
rename to src/third_party/devtools/node_modules/typescript/lib/lib.webworker.importscripts.d.ts
index debd769..c373ba8 100644
--- a/src/cobalt/debug/remote/devtools/node_modules/typescript/lib/lib.webworker.importscripts.d.ts
+++ b/src/third_party/devtools/node_modules/typescript/lib/lib.webworker.importscripts.d.ts
@@ -15,12 +15,12 @@
 
 
 
-/// <reference no-default-lib="true"/>

+/// <reference no-default-lib="true"/>
 
 
-

-/////////////////////////////

-/// WorkerGlobalScope APIs

-/////////////////////////////

-// These are only available in a Web Worker

-declare function importScripts(...urls: string[]): void;

+
+/////////////////////////////
+/// WorkerGlobalScope APIs
+/////////////////////////////
+// These are only available in a Web Worker
+declare function importScripts(...urls: string[]): void;
diff --git a/src/cobalt/debug/remote/devtools/node_modules/typescript/lib/pl/diagnosticMessages.generated.json b/src/third_party/devtools/node_modules/typescript/lib/pl/diagnosticMessages.generated.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/typescript/lib/pl/diagnosticMessages.generated.json
rename to src/third_party/devtools/node_modules/typescript/lib/pl/diagnosticMessages.generated.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/typescript/lib/protocol.d.ts b/src/third_party/devtools/node_modules/typescript/lib/protocol.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/typescript/lib/protocol.d.ts
rename to src/third_party/devtools/node_modules/typescript/lib/protocol.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/typescript/lib/pt-br/diagnosticMessages.generated.json b/src/third_party/devtools/node_modules/typescript/lib/pt-br/diagnosticMessages.generated.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/typescript/lib/pt-br/diagnosticMessages.generated.json
rename to src/third_party/devtools/node_modules/typescript/lib/pt-br/diagnosticMessages.generated.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/typescript/lib/ru/diagnosticMessages.generated.json b/src/third_party/devtools/node_modules/typescript/lib/ru/diagnosticMessages.generated.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/typescript/lib/ru/diagnosticMessages.generated.json
rename to src/third_party/devtools/node_modules/typescript/lib/ru/diagnosticMessages.generated.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/typescript/lib/tr/diagnosticMessages.generated.json b/src/third_party/devtools/node_modules/typescript/lib/tr/diagnosticMessages.generated.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/typescript/lib/tr/diagnosticMessages.generated.json
rename to src/third_party/devtools/node_modules/typescript/lib/tr/diagnosticMessages.generated.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/typescript/lib/tsc.js b/src/third_party/devtools/node_modules/typescript/lib/tsc.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/typescript/lib/tsc.js
rename to src/third_party/devtools/node_modules/typescript/lib/tsc.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/typescript/lib/tsserver.js b/src/third_party/devtools/node_modules/typescript/lib/tsserver.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/typescript/lib/tsserver.js
rename to src/third_party/devtools/node_modules/typescript/lib/tsserver.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/typescript/lib/tsserverlibrary.d.ts b/src/third_party/devtools/node_modules/typescript/lib/tsserverlibrary.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/typescript/lib/tsserverlibrary.d.ts
rename to src/third_party/devtools/node_modules/typescript/lib/tsserverlibrary.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/typescript/lib/tsserverlibrary.js b/src/third_party/devtools/node_modules/typescript/lib/tsserverlibrary.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/typescript/lib/tsserverlibrary.js
rename to src/third_party/devtools/node_modules/typescript/lib/tsserverlibrary.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/typescript/lib/typesMap.json b/src/third_party/devtools/node_modules/typescript/lib/typesMap.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/typescript/lib/typesMap.json
rename to src/third_party/devtools/node_modules/typescript/lib/typesMap.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/typescript/lib/typescript.d.ts b/src/third_party/devtools/node_modules/typescript/lib/typescript.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/typescript/lib/typescript.d.ts
rename to src/third_party/devtools/node_modules/typescript/lib/typescript.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/typescript/lib/typescript.js b/src/third_party/devtools/node_modules/typescript/lib/typescript.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/typescript/lib/typescript.js
rename to src/third_party/devtools/node_modules/typescript/lib/typescript.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/typescript/lib/typescriptServices.d.ts b/src/third_party/devtools/node_modules/typescript/lib/typescriptServices.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/typescript/lib/typescriptServices.d.ts
rename to src/third_party/devtools/node_modules/typescript/lib/typescriptServices.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/typescript/lib/typescriptServices.js b/src/third_party/devtools/node_modules/typescript/lib/typescriptServices.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/typescript/lib/typescriptServices.js
rename to src/third_party/devtools/node_modules/typescript/lib/typescriptServices.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/typescript/lib/typingsInstaller.js b/src/third_party/devtools/node_modules/typescript/lib/typingsInstaller.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/typescript/lib/typingsInstaller.js
rename to src/third_party/devtools/node_modules/typescript/lib/typingsInstaller.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/typescript/lib/watchGuard.js b/src/third_party/devtools/node_modules/typescript/lib/watchGuard.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/typescript/lib/watchGuard.js
rename to src/third_party/devtools/node_modules/typescript/lib/watchGuard.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/typescript/lib/zh-cn/diagnosticMessages.generated.json b/src/third_party/devtools/node_modules/typescript/lib/zh-cn/diagnosticMessages.generated.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/typescript/lib/zh-cn/diagnosticMessages.generated.json
rename to src/third_party/devtools/node_modules/typescript/lib/zh-cn/diagnosticMessages.generated.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/typescript/lib/zh-tw/diagnosticMessages.generated.json b/src/third_party/devtools/node_modules/typescript/lib/zh-tw/diagnosticMessages.generated.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/typescript/lib/zh-tw/diagnosticMessages.generated.json
rename to src/third_party/devtools/node_modules/typescript/lib/zh-tw/diagnosticMessages.generated.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/typescript/package.json b/src/third_party/devtools/node_modules/typescript/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/typescript/package.json
rename to src/third_party/devtools/node_modules/typescript/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/uglify-js/LICENSE b/src/third_party/devtools/node_modules/uglify-js/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/uglify-js/LICENSE
rename to src/third_party/devtools/node_modules/uglify-js/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/uglify-js/README.md b/src/third_party/devtools/node_modules/uglify-js/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/uglify-js/README.md
rename to src/third_party/devtools/node_modules/uglify-js/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/uglify-js/bin/uglifyjs b/src/third_party/devtools/node_modules/uglify-js/bin/uglifyjs
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/uglify-js/bin/uglifyjs
rename to src/third_party/devtools/node_modules/uglify-js/bin/uglifyjs
diff --git a/src/cobalt/debug/remote/devtools/node_modules/uglify-js/lib/ast.js b/src/third_party/devtools/node_modules/uglify-js/lib/ast.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/uglify-js/lib/ast.js
rename to src/third_party/devtools/node_modules/uglify-js/lib/ast.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/uglify-js/lib/compress.js b/src/third_party/devtools/node_modules/uglify-js/lib/compress.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/uglify-js/lib/compress.js
rename to src/third_party/devtools/node_modules/uglify-js/lib/compress.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/uglify-js/lib/minify.js b/src/third_party/devtools/node_modules/uglify-js/lib/minify.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/uglify-js/lib/minify.js
rename to src/third_party/devtools/node_modules/uglify-js/lib/minify.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/uglify-js/lib/mozilla-ast.js b/src/third_party/devtools/node_modules/uglify-js/lib/mozilla-ast.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/uglify-js/lib/mozilla-ast.js
rename to src/third_party/devtools/node_modules/uglify-js/lib/mozilla-ast.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/uglify-js/lib/output.js b/src/third_party/devtools/node_modules/uglify-js/lib/output.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/uglify-js/lib/output.js
rename to src/third_party/devtools/node_modules/uglify-js/lib/output.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/uglify-js/lib/parse.js b/src/third_party/devtools/node_modules/uglify-js/lib/parse.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/uglify-js/lib/parse.js
rename to src/third_party/devtools/node_modules/uglify-js/lib/parse.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/uglify-js/lib/propmangle.js b/src/third_party/devtools/node_modules/uglify-js/lib/propmangle.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/uglify-js/lib/propmangle.js
rename to src/third_party/devtools/node_modules/uglify-js/lib/propmangle.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/uglify-js/lib/scope.js b/src/third_party/devtools/node_modules/uglify-js/lib/scope.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/uglify-js/lib/scope.js
rename to src/third_party/devtools/node_modules/uglify-js/lib/scope.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/uglify-js/lib/sourcemap.js b/src/third_party/devtools/node_modules/uglify-js/lib/sourcemap.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/uglify-js/lib/sourcemap.js
rename to src/third_party/devtools/node_modules/uglify-js/lib/sourcemap.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/uglify-js/lib/transform.js b/src/third_party/devtools/node_modules/uglify-js/lib/transform.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/uglify-js/lib/transform.js
rename to src/third_party/devtools/node_modules/uglify-js/lib/transform.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/uglify-js/lib/utils.js b/src/third_party/devtools/node_modules/uglify-js/lib/utils.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/uglify-js/lib/utils.js
rename to src/third_party/devtools/node_modules/uglify-js/lib/utils.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/uglify-js/package.json b/src/third_party/devtools/node_modules/uglify-js/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/uglify-js/package.json
rename to src/third_party/devtools/node_modules/uglify-js/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/uglify-js/tools/domprops.json b/src/third_party/devtools/node_modules/uglify-js/tools/domprops.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/uglify-js/tools/domprops.json
rename to src/third_party/devtools/node_modules/uglify-js/tools/domprops.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/uglify-js/tools/exit.js b/src/third_party/devtools/node_modules/uglify-js/tools/exit.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/uglify-js/tools/exit.js
rename to src/third_party/devtools/node_modules/uglify-js/tools/exit.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/uglify-js/tools/exports.js b/src/third_party/devtools/node_modules/uglify-js/tools/exports.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/uglify-js/tools/exports.js
rename to src/third_party/devtools/node_modules/uglify-js/tools/exports.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/uglify-js/tools/node.js b/src/third_party/devtools/node_modules/uglify-js/tools/node.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/uglify-js/tools/node.js
rename to src/third_party/devtools/node_modules/uglify-js/tools/node.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/uglify-js/tools/props.html b/src/third_party/devtools/node_modules/uglify-js/tools/props.html
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/uglify-js/tools/props.html
rename to src/third_party/devtools/node_modules/uglify-js/tools/props.html
diff --git a/src/cobalt/debug/remote/devtools/node_modules/ultron/LICENSE b/src/third_party/devtools/node_modules/ultron/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/ultron/LICENSE
rename to src/third_party/devtools/node_modules/ultron/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/ultron/README.md b/src/third_party/devtools/node_modules/ultron/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/ultron/README.md
rename to src/third_party/devtools/node_modules/ultron/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/ultron/index.js b/src/third_party/devtools/node_modules/ultron/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/ultron/index.js
rename to src/third_party/devtools/node_modules/ultron/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/ultron/package.json b/src/third_party/devtools/node_modules/ultron/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/ultron/package.json
rename to src/third_party/devtools/node_modules/ultron/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/universalify/LICENSE b/src/third_party/devtools/node_modules/universalify/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/universalify/LICENSE
rename to src/third_party/devtools/node_modules/universalify/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/universalify/README.md b/src/third_party/devtools/node_modules/universalify/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/universalify/README.md
rename to src/third_party/devtools/node_modules/universalify/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/universalify/index.js b/src/third_party/devtools/node_modules/universalify/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/universalify/index.js
rename to src/third_party/devtools/node_modules/universalify/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/universalify/package.json b/src/third_party/devtools/node_modules/universalify/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/universalify/package.json
rename to src/third_party/devtools/node_modules/universalify/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/unpipe/HISTORY.md b/src/third_party/devtools/node_modules/unpipe/HISTORY.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/unpipe/HISTORY.md
rename to src/third_party/devtools/node_modules/unpipe/HISTORY.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/unpipe/LICENSE b/src/third_party/devtools/node_modules/unpipe/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/unpipe/LICENSE
rename to src/third_party/devtools/node_modules/unpipe/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/unpipe/README.md b/src/third_party/devtools/node_modules/unpipe/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/unpipe/README.md
rename to src/third_party/devtools/node_modules/unpipe/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/unpipe/index.js b/src/third_party/devtools/node_modules/unpipe/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/unpipe/index.js
rename to src/third_party/devtools/node_modules/unpipe/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/unpipe/package.json b/src/third_party/devtools/node_modules/unpipe/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/unpipe/package.json
rename to src/third_party/devtools/node_modules/unpipe/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/uri-js/README.md b/src/third_party/devtools/node_modules/uri-js/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/uri-js/README.md
rename to src/third_party/devtools/node_modules/uri-js/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/uri-js/bower.json b/src/third_party/devtools/node_modules/uri-js/bower.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/uri-js/bower.json
rename to src/third_party/devtools/node_modules/uri-js/bower.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/uri-js/dist/es5/uri.all.d.ts b/src/third_party/devtools/node_modules/uri-js/dist/es5/uri.all.d.ts
similarity index 99%
rename from src/cobalt/debug/remote/devtools/node_modules/uri-js/dist/es5/uri.all.d.ts
rename to src/third_party/devtools/node_modules/uri-js/dist/es5/uri.all.d.ts
index 320f534..da51e23 100644
--- a/src/cobalt/debug/remote/devtools/node_modules/uri-js/dist/es5/uri.all.d.ts
+++ b/src/third_party/devtools/node_modules/uri-js/dist/es5/uri.all.d.ts
@@ -1,59 +1,59 @@
-export interface URIComponents {

-    scheme?: string;

-    userinfo?: string;

-    host?: string;

-    port?: number | string;

-    path?: string;

-    query?: string;

-    fragment?: string;

-    reference?: string;

-    error?: string;

-}

-export interface URIOptions {

-    scheme?: string;

-    reference?: string;

-    tolerant?: boolean;

-    absolutePath?: boolean;

-    iri?: boolean;

-    unicodeSupport?: boolean;

-    domainHost?: boolean;

-}

-export interface URISchemeHandler<Components extends URIComponents = URIComponents, Options extends URIOptions = URIOptions, ParentComponents extends URIComponents = URIComponents> {

-    scheme: string;

-    parse(components: ParentComponents, options: Options): Components;

-    serialize(components: Components, options: Options): ParentComponents;

-    unicodeSupport?: boolean;

-    domainHost?: boolean;

-    absolutePath?: boolean;

-}

-export interface URIRegExps {

-    NOT_SCHEME: RegExp;

-    NOT_USERINFO: RegExp;

-    NOT_HOST: RegExp;

-    NOT_PATH: RegExp;

-    NOT_PATH_NOSCHEME: RegExp;

-    NOT_QUERY: RegExp;

-    NOT_FRAGMENT: RegExp;

-    ESCAPE: RegExp;

-    UNRESERVED: RegExp;

-    OTHER_CHARS: RegExp;

-    PCT_ENCODED: RegExp;

-    IPV4ADDRESS: RegExp;

-    IPV6ADDRESS: RegExp;

-}

-export declare const SCHEMES: {

-    [scheme: string]: URISchemeHandler;

-};

-export declare function pctEncChar(chr: string): string;

-export declare function pctDecChars(str: string): string;

-export declare function parse(uriString: string, options?: URIOptions): URIComponents;

-export declare function removeDotSegments(input: string): string;

-export declare function serialize(components: URIComponents, options?: URIOptions): string;

-export declare function resolveComponents(base: URIComponents, relative: URIComponents, options?: URIOptions, skipNormalization?: boolean): URIComponents;

-export declare function resolve(baseURI: string, relativeURI: string, options?: URIOptions): string;

-export declare function normalize(uri: string, options?: URIOptions): string;

-export declare function normalize(uri: URIComponents, options?: URIOptions): URIComponents;

-export declare function equal(uriA: string, uriB: string, options?: URIOptions): boolean;

-export declare function equal(uriA: URIComponents, uriB: URIComponents, options?: URIOptions): boolean;

-export declare function escapeComponent(str: string, options?: URIOptions): string;

-export declare function unescapeComponent(str: string, options?: URIOptions): string;

+export interface URIComponents {
+    scheme?: string;
+    userinfo?: string;
+    host?: string;
+    port?: number | string;
+    path?: string;
+    query?: string;
+    fragment?: string;
+    reference?: string;
+    error?: string;
+}
+export interface URIOptions {
+    scheme?: string;
+    reference?: string;
+    tolerant?: boolean;
+    absolutePath?: boolean;
+    iri?: boolean;
+    unicodeSupport?: boolean;
+    domainHost?: boolean;
+}
+export interface URISchemeHandler<Components extends URIComponents = URIComponents, Options extends URIOptions = URIOptions, ParentComponents extends URIComponents = URIComponents> {
+    scheme: string;
+    parse(components: ParentComponents, options: Options): Components;
+    serialize(components: Components, options: Options): ParentComponents;
+    unicodeSupport?: boolean;
+    domainHost?: boolean;
+    absolutePath?: boolean;
+}
+export interface URIRegExps {
+    NOT_SCHEME: RegExp;
+    NOT_USERINFO: RegExp;
+    NOT_HOST: RegExp;
+    NOT_PATH: RegExp;
+    NOT_PATH_NOSCHEME: RegExp;
+    NOT_QUERY: RegExp;
+    NOT_FRAGMENT: RegExp;
+    ESCAPE: RegExp;
+    UNRESERVED: RegExp;
+    OTHER_CHARS: RegExp;
+    PCT_ENCODED: RegExp;
+    IPV4ADDRESS: RegExp;
+    IPV6ADDRESS: RegExp;
+}
+export declare const SCHEMES: {
+    [scheme: string]: URISchemeHandler;
+};
+export declare function pctEncChar(chr: string): string;
+export declare function pctDecChars(str: string): string;
+export declare function parse(uriString: string, options?: URIOptions): URIComponents;
+export declare function removeDotSegments(input: string): string;
+export declare function serialize(components: URIComponents, options?: URIOptions): string;
+export declare function resolveComponents(base: URIComponents, relative: URIComponents, options?: URIOptions, skipNormalization?: boolean): URIComponents;
+export declare function resolve(baseURI: string, relativeURI: string, options?: URIOptions): string;
+export declare function normalize(uri: string, options?: URIOptions): string;
+export declare function normalize(uri: URIComponents, options?: URIOptions): URIComponents;
+export declare function equal(uriA: string, uriB: string, options?: URIOptions): boolean;
+export declare function equal(uriA: URIComponents, uriB: URIComponents, options?: URIOptions): boolean;
+export declare function escapeComponent(str: string, options?: URIOptions): string;
+export declare function unescapeComponent(str: string, options?: URIOptions): string;
diff --git a/src/cobalt/debug/remote/devtools/node_modules/uri-js/dist/es5/uri.all.js b/src/third_party/devtools/node_modules/uri-js/dist/es5/uri.all.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/uri-js/dist/es5/uri.all.js
rename to src/third_party/devtools/node_modules/uri-js/dist/es5/uri.all.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/uri-js/dist/es5/uri.all.js.map b/src/third_party/devtools/node_modules/uri-js/dist/es5/uri.all.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/uri-js/dist/es5/uri.all.js.map
rename to src/third_party/devtools/node_modules/uri-js/dist/es5/uri.all.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/uri-js/dist/es5/uri.all.d.ts b/src/third_party/devtools/node_modules/uri-js/dist/es5/uri.all.min.d.ts
similarity index 99%
copy from src/cobalt/debug/remote/devtools/node_modules/uri-js/dist/es5/uri.all.d.ts
copy to src/third_party/devtools/node_modules/uri-js/dist/es5/uri.all.min.d.ts
index 320f534..da51e23 100644
--- a/src/cobalt/debug/remote/devtools/node_modules/uri-js/dist/es5/uri.all.d.ts
+++ b/src/third_party/devtools/node_modules/uri-js/dist/es5/uri.all.min.d.ts
@@ -1,59 +1,59 @@
-export interface URIComponents {

-    scheme?: string;

-    userinfo?: string;

-    host?: string;

-    port?: number | string;

-    path?: string;

-    query?: string;

-    fragment?: string;

-    reference?: string;

-    error?: string;

-}

-export interface URIOptions {

-    scheme?: string;

-    reference?: string;

-    tolerant?: boolean;

-    absolutePath?: boolean;

-    iri?: boolean;

-    unicodeSupport?: boolean;

-    domainHost?: boolean;

-}

-export interface URISchemeHandler<Components extends URIComponents = URIComponents, Options extends URIOptions = URIOptions, ParentComponents extends URIComponents = URIComponents> {

-    scheme: string;

-    parse(components: ParentComponents, options: Options): Components;

-    serialize(components: Components, options: Options): ParentComponents;

-    unicodeSupport?: boolean;

-    domainHost?: boolean;

-    absolutePath?: boolean;

-}

-export interface URIRegExps {

-    NOT_SCHEME: RegExp;

-    NOT_USERINFO: RegExp;

-    NOT_HOST: RegExp;

-    NOT_PATH: RegExp;

-    NOT_PATH_NOSCHEME: RegExp;

-    NOT_QUERY: RegExp;

-    NOT_FRAGMENT: RegExp;

-    ESCAPE: RegExp;

-    UNRESERVED: RegExp;

-    OTHER_CHARS: RegExp;

-    PCT_ENCODED: RegExp;

-    IPV4ADDRESS: RegExp;

-    IPV6ADDRESS: RegExp;

-}

-export declare const SCHEMES: {

-    [scheme: string]: URISchemeHandler;

-};

-export declare function pctEncChar(chr: string): string;

-export declare function pctDecChars(str: string): string;

-export declare function parse(uriString: string, options?: URIOptions): URIComponents;

-export declare function removeDotSegments(input: string): string;

-export declare function serialize(components: URIComponents, options?: URIOptions): string;

-export declare function resolveComponents(base: URIComponents, relative: URIComponents, options?: URIOptions, skipNormalization?: boolean): URIComponents;

-export declare function resolve(baseURI: string, relativeURI: string, options?: URIOptions): string;

-export declare function normalize(uri: string, options?: URIOptions): string;

-export declare function normalize(uri: URIComponents, options?: URIOptions): URIComponents;

-export declare function equal(uriA: string, uriB: string, options?: URIOptions): boolean;

-export declare function equal(uriA: URIComponents, uriB: URIComponents, options?: URIOptions): boolean;

-export declare function escapeComponent(str: string, options?: URIOptions): string;

-export declare function unescapeComponent(str: string, options?: URIOptions): string;

+export interface URIComponents {
+    scheme?: string;
+    userinfo?: string;
+    host?: string;
+    port?: number | string;
+    path?: string;
+    query?: string;
+    fragment?: string;
+    reference?: string;
+    error?: string;
+}
+export interface URIOptions {
+    scheme?: string;
+    reference?: string;
+    tolerant?: boolean;
+    absolutePath?: boolean;
+    iri?: boolean;
+    unicodeSupport?: boolean;
+    domainHost?: boolean;
+}
+export interface URISchemeHandler<Components extends URIComponents = URIComponents, Options extends URIOptions = URIOptions, ParentComponents extends URIComponents = URIComponents> {
+    scheme: string;
+    parse(components: ParentComponents, options: Options): Components;
+    serialize(components: Components, options: Options): ParentComponents;
+    unicodeSupport?: boolean;
+    domainHost?: boolean;
+    absolutePath?: boolean;
+}
+export interface URIRegExps {
+    NOT_SCHEME: RegExp;
+    NOT_USERINFO: RegExp;
+    NOT_HOST: RegExp;
+    NOT_PATH: RegExp;
+    NOT_PATH_NOSCHEME: RegExp;
+    NOT_QUERY: RegExp;
+    NOT_FRAGMENT: RegExp;
+    ESCAPE: RegExp;
+    UNRESERVED: RegExp;
+    OTHER_CHARS: RegExp;
+    PCT_ENCODED: RegExp;
+    IPV4ADDRESS: RegExp;
+    IPV6ADDRESS: RegExp;
+}
+export declare const SCHEMES: {
+    [scheme: string]: URISchemeHandler;
+};
+export declare function pctEncChar(chr: string): string;
+export declare function pctDecChars(str: string): string;
+export declare function parse(uriString: string, options?: URIOptions): URIComponents;
+export declare function removeDotSegments(input: string): string;
+export declare function serialize(components: URIComponents, options?: URIOptions): string;
+export declare function resolveComponents(base: URIComponents, relative: URIComponents, options?: URIOptions, skipNormalization?: boolean): URIComponents;
+export declare function resolve(baseURI: string, relativeURI: string, options?: URIOptions): string;
+export declare function normalize(uri: string, options?: URIOptions): string;
+export declare function normalize(uri: URIComponents, options?: URIOptions): URIComponents;
+export declare function equal(uriA: string, uriB: string, options?: URIOptions): boolean;
+export declare function equal(uriA: URIComponents, uriB: URIComponents, options?: URIOptions): boolean;
+export declare function escapeComponent(str: string, options?: URIOptions): string;
+export declare function unescapeComponent(str: string, options?: URIOptions): string;
diff --git a/src/cobalt/debug/remote/devtools/node_modules/uri-js/dist/es5/uri.all.min.js b/src/third_party/devtools/node_modules/uri-js/dist/es5/uri.all.min.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/uri-js/dist/es5/uri.all.min.js
rename to src/third_party/devtools/node_modules/uri-js/dist/es5/uri.all.min.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/uri-js/dist/es5/uri.all.min.js.map b/src/third_party/devtools/node_modules/uri-js/dist/es5/uri.all.min.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/uri-js/dist/es5/uri.all.min.js.map
rename to src/third_party/devtools/node_modules/uri-js/dist/es5/uri.all.min.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/uri-js/dist/esnext/index.d.ts b/src/third_party/devtools/node_modules/uri-js/dist/esnext/index.d.ts
similarity index 99%
rename from src/cobalt/debug/remote/devtools/node_modules/uri-js/dist/esnext/index.d.ts
rename to src/third_party/devtools/node_modules/uri-js/dist/esnext/index.d.ts
index be95efb..f6be760 100644
--- a/src/cobalt/debug/remote/devtools/node_modules/uri-js/dist/esnext/index.d.ts
+++ b/src/third_party/devtools/node_modules/uri-js/dist/esnext/index.d.ts
@@ -1 +1 @@
-export * from "./uri";

+export * from "./uri";
diff --git a/src/cobalt/debug/remote/devtools/node_modules/uri-js/dist/esnext/index.js b/src/third_party/devtools/node_modules/uri-js/dist/esnext/index.js
similarity index 99%
rename from src/cobalt/debug/remote/devtools/node_modules/uri-js/dist/esnext/index.js
rename to src/third_party/devtools/node_modules/uri-js/dist/esnext/index.js
index de8868f..73dc8db 100644
--- a/src/cobalt/debug/remote/devtools/node_modules/uri-js/dist/esnext/index.js
+++ b/src/third_party/devtools/node_modules/uri-js/dist/esnext/index.js
@@ -1,13 +1,13 @@
-import { SCHEMES } from "./uri";

-import http from "./schemes/http";

-SCHEMES[http.scheme] = http;

-import https from "./schemes/https";

-SCHEMES[https.scheme] = https;

-import mailto from "./schemes/mailto";

-SCHEMES[mailto.scheme] = mailto;

-import urn from "./schemes/urn";

-SCHEMES[urn.scheme] = urn;

-import uuid from "./schemes/urn-uuid";

-SCHEMES[uuid.scheme] = uuid;

-export * from "./uri";

+import { SCHEMES } from "./uri";
+import http from "./schemes/http";
+SCHEMES[http.scheme] = http;
+import https from "./schemes/https";
+SCHEMES[https.scheme] = https;
+import mailto from "./schemes/mailto";
+SCHEMES[mailto.scheme] = mailto;
+import urn from "./schemes/urn";
+SCHEMES[urn.scheme] = urn;
+import uuid from "./schemes/urn-uuid";
+SCHEMES[uuid.scheme] = uuid;
+export * from "./uri";
 //# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/src/cobalt/debug/remote/devtools/node_modules/uri-js/dist/esnext/index.js.map b/src/third_party/devtools/node_modules/uri-js/dist/esnext/index.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/uri-js/dist/esnext/index.js.map
rename to src/third_party/devtools/node_modules/uri-js/dist/esnext/index.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/uri-js/dist/esnext/regexps-iri.d.ts b/src/third_party/devtools/node_modules/uri-js/dist/esnext/regexps-iri.d.ts
similarity index 99%
rename from src/cobalt/debug/remote/devtools/node_modules/uri-js/dist/esnext/regexps-iri.d.ts
rename to src/third_party/devtools/node_modules/uri-js/dist/esnext/regexps-iri.d.ts
index 6fc0f5d..c91cdac 100644
--- a/src/cobalt/debug/remote/devtools/node_modules/uri-js/dist/esnext/regexps-iri.d.ts
+++ b/src/third_party/devtools/node_modules/uri-js/dist/esnext/regexps-iri.d.ts
@@ -1,3 +1,3 @@
-import { URIRegExps } from "./uri";

-declare const _default: URIRegExps;

-export default _default;

+import { URIRegExps } from "./uri";
+declare const _default: URIRegExps;
+export default _default;
diff --git a/src/cobalt/debug/remote/devtools/node_modules/uri-js/dist/esnext/regexps-iri.js b/src/third_party/devtools/node_modules/uri-js/dist/esnext/regexps-iri.js
similarity index 99%
rename from src/cobalt/debug/remote/devtools/node_modules/uri-js/dist/esnext/regexps-iri.js
rename to src/third_party/devtools/node_modules/uri-js/dist/esnext/regexps-iri.js
index 86239cf..34e7de9 100644
--- a/src/cobalt/debug/remote/devtools/node_modules/uri-js/dist/esnext/regexps-iri.js
+++ b/src/third_party/devtools/node_modules/uri-js/dist/esnext/regexps-iri.js
@@ -1,3 +1,3 @@
-import { buildExps } from "./regexps-uri";

-export default buildExps(true);

+import { buildExps } from "./regexps-uri";
+export default buildExps(true);
 //# sourceMappingURL=regexps-iri.js.map
\ No newline at end of file
diff --git a/src/cobalt/debug/remote/devtools/node_modules/uri-js/dist/esnext/regexps-iri.js.map b/src/third_party/devtools/node_modules/uri-js/dist/esnext/regexps-iri.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/uri-js/dist/esnext/regexps-iri.js.map
rename to src/third_party/devtools/node_modules/uri-js/dist/esnext/regexps-iri.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/uri-js/dist/esnext/regexps-uri.d.ts b/src/third_party/devtools/node_modules/uri-js/dist/esnext/regexps-uri.d.ts
similarity index 99%
rename from src/cobalt/debug/remote/devtools/node_modules/uri-js/dist/esnext/regexps-uri.d.ts
rename to src/third_party/devtools/node_modules/uri-js/dist/esnext/regexps-uri.d.ts
index 10ec87b..6096bda 100644
--- a/src/cobalt/debug/remote/devtools/node_modules/uri-js/dist/esnext/regexps-uri.d.ts
+++ b/src/third_party/devtools/node_modules/uri-js/dist/esnext/regexps-uri.d.ts
@@ -1,4 +1,4 @@
-import { URIRegExps } from "./uri";

-export declare function buildExps(isIRI: boolean): URIRegExps;

-declare const _default: URIRegExps;

-export default _default;

+import { URIRegExps } from "./uri";
+export declare function buildExps(isIRI: boolean): URIRegExps;
+declare const _default: URIRegExps;
+export default _default;
diff --git a/src/cobalt/debug/remote/devtools/node_modules/uri-js/dist/esnext/regexps-uri.js b/src/third_party/devtools/node_modules/uri-js/dist/esnext/regexps-uri.js
similarity index 99%
rename from src/cobalt/debug/remote/devtools/node_modules/uri-js/dist/esnext/regexps-uri.js
rename to src/third_party/devtools/node_modules/uri-js/dist/esnext/regexps-uri.js
index 6e7e9a0..1cc659f 100644
--- a/src/cobalt/debug/remote/devtools/node_modules/uri-js/dist/esnext/regexps-uri.js
+++ b/src/third_party/devtools/node_modules/uri-js/dist/esnext/regexps-uri.js
@@ -1,42 +1,42 @@
-import { merge, subexp } from "./util";

-export function buildExps(isIRI) {

-    const ALPHA$$ = "[A-Za-z]", CR$ = "[\\x0D]", DIGIT$$ = "[0-9]", DQUOTE$$ = "[\\x22]", HEXDIG$$ = merge(DIGIT$$, "[A-Fa-f]"), //case-insensitive

-    LF$$ = "[\\x0A]", SP$$ = "[\\x20]", PCT_ENCODED$ = subexp(subexp("%[EFef]" + HEXDIG$$ + "%" + HEXDIG$$ + HEXDIG$$ + "%" + HEXDIG$$ + HEXDIG$$) + "|" + subexp("%[89A-Fa-f]" + HEXDIG$$ + "%" + HEXDIG$$ + HEXDIG$$) + "|" + subexp("%" + HEXDIG$$ + HEXDIG$$)), //expanded

-    GEN_DELIMS$$ = "[\\:\\/\\?\\#\\[\\]\\@]", SUB_DELIMS$$ = "[\\!\\$\\&\\'\\(\\)\\*\\+\\,\\;\\=]", RESERVED$$ = merge(GEN_DELIMS$$, SUB_DELIMS$$), UCSCHAR$$ = isIRI ? "[\\xA0-\\u200D\\u2010-\\u2029\\u202F-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]" : "[]", //subset, excludes bidi control characters

-    IPRIVATE$$ = isIRI ? "[\\uE000-\\uF8FF]" : "[]", //subset

-    UNRESERVED$$ = merge(ALPHA$$, DIGIT$$, "[\\-\\.\\_\\~]", UCSCHAR$$), SCHEME$ = subexp(ALPHA$$ + merge(ALPHA$$, DIGIT$$, "[\\+\\-\\.]") + "*"), USERINFO$ = subexp(subexp(PCT_ENCODED$ + "|" + merge(UNRESERVED$$, SUB_DELIMS$$, "[\\:]")) + "*"), DEC_OCTET$ = subexp(subexp("25[0-5]") + "|" + subexp("2[0-4]" + DIGIT$$) + "|" + subexp("1" + DIGIT$$ + DIGIT$$) + "|" + subexp("[1-9]" + DIGIT$$) + "|" + DIGIT$$), DEC_OCTET_RELAXED$ = subexp(subexp("25[0-5]") + "|" + subexp("2[0-4]" + DIGIT$$) + "|" + subexp("1" + DIGIT$$ + DIGIT$$) + "|" + subexp("0?[1-9]" + DIGIT$$) + "|0?0?" + DIGIT$$), //relaxed parsing rules

-    IPV4ADDRESS$ = subexp(DEC_OCTET_RELAXED$ + "\\." + DEC_OCTET_RELAXED$ + "\\." + DEC_OCTET_RELAXED$ + "\\." + DEC_OCTET_RELAXED$), H16$ = subexp(HEXDIG$$ + "{1,4}"), LS32$ = subexp(subexp(H16$ + "\\:" + H16$) + "|" + IPV4ADDRESS$), IPV6ADDRESS1$ = subexp(subexp(H16$ + "\\:") + "{6}" + LS32$), //                           6( h16 ":" ) ls32

-    IPV6ADDRESS2$ = subexp("\\:\\:" + subexp(H16$ + "\\:") + "{5}" + LS32$), //                      "::" 5( h16 ":" ) ls32

-    IPV6ADDRESS3$ = subexp(subexp(H16$) + "?\\:\\:" + subexp(H16$ + "\\:") + "{4}" + LS32$), //[               h16 ] "::" 4( h16 ":" ) ls32

-    IPV6ADDRESS4$ = subexp(subexp(subexp(H16$ + "\\:") + "{0,1}" + H16$) + "?\\:\\:" + subexp(H16$ + "\\:") + "{3}" + LS32$), //[ *1( h16 ":" ) h16 ] "::" 3( h16 ":" ) ls32

-    IPV6ADDRESS5$ = subexp(subexp(subexp(H16$ + "\\:") + "{0,2}" + H16$) + "?\\:\\:" + subexp(H16$ + "\\:") + "{2}" + LS32$), //[ *2( h16 ":" ) h16 ] "::" 2( h16 ":" ) ls32

-    IPV6ADDRESS6$ = subexp(subexp(subexp(H16$ + "\\:") + "{0,3}" + H16$) + "?\\:\\:" + H16$ + "\\:" + LS32$), //[ *3( h16 ":" ) h16 ] "::"    h16 ":"   ls32

-    IPV6ADDRESS7$ = subexp(subexp(subexp(H16$ + "\\:") + "{0,4}" + H16$) + "?\\:\\:" + LS32$), //[ *4( h16 ":" ) h16 ] "::"              ls32

-    IPV6ADDRESS8$ = subexp(subexp(subexp(H16$ + "\\:") + "{0,5}" + H16$) + "?\\:\\:" + H16$), //[ *5( h16 ":" ) h16 ] "::"              h16

-    IPV6ADDRESS9$ = subexp(subexp(subexp(H16$ + "\\:") + "{0,6}" + H16$) + "?\\:\\:"), //[ *6( h16 ":" ) h16 ] "::"

-    IPV6ADDRESS$ = subexp([IPV6ADDRESS1$, IPV6ADDRESS2$, IPV6ADDRESS3$, IPV6ADDRESS4$, IPV6ADDRESS5$, IPV6ADDRESS6$, IPV6ADDRESS7$, IPV6ADDRESS8$, IPV6ADDRESS9$].join("|")), ZONEID$ = subexp(subexp(UNRESERVED$$ + "|" + PCT_ENCODED$) + "+"), //RFC 6874

-    IPV6ADDRZ$ = subexp(IPV6ADDRESS$ + "\\%25" + ZONEID$), //RFC 6874

-    IPV6ADDRZ_RELAXED$ = subexp(IPV6ADDRESS$ + subexp("\\%25|\\%(?!" + HEXDIG$$ + "{2})") + ZONEID$), //RFC 6874, with relaxed parsing rules

-    IPVFUTURE$ = subexp("[vV]" + HEXDIG$$ + "+\\." + merge(UNRESERVED$$, SUB_DELIMS$$, "[\\:]") + "+"), IP_LITERAL$ = subexp("\\[" + subexp(IPV6ADDRZ_RELAXED$ + "|" + IPV6ADDRESS$ + "|" + IPVFUTURE$) + "\\]"), //RFC 6874

-    REG_NAME$ = subexp(subexp(PCT_ENCODED$ + "|" + merge(UNRESERVED$$, SUB_DELIMS$$)) + "*"), HOST$ = subexp(IP_LITERAL$ + "|" + IPV4ADDRESS$ + "(?!" + REG_NAME$ + ")" + "|" + REG_NAME$), PORT$ = subexp(DIGIT$$ + "*"), AUTHORITY$ = subexp(subexp(USERINFO$ + "@") + "?" + HOST$ + subexp("\\:" + PORT$) + "?"), PCHAR$ = subexp(PCT_ENCODED$ + "|" + merge(UNRESERVED$$, SUB_DELIMS$$, "[\\:\\@]")), SEGMENT$ = subexp(PCHAR$ + "*"), SEGMENT_NZ$ = subexp(PCHAR$ + "+"), SEGMENT_NZ_NC$ = subexp(subexp(PCT_ENCODED$ + "|" + merge(UNRESERVED$$, SUB_DELIMS$$, "[\\@]")) + "+"), PATH_ABEMPTY$ = subexp(subexp("\\/" + SEGMENT$) + "*"), PATH_ABSOLUTE$ = subexp("\\/" + subexp(SEGMENT_NZ$ + PATH_ABEMPTY$) + "?"), //simplified

-    PATH_NOSCHEME$ = subexp(SEGMENT_NZ_NC$ + PATH_ABEMPTY$), //simplified

-    PATH_ROOTLESS$ = subexp(SEGMENT_NZ$ + PATH_ABEMPTY$), //simplified

-    PATH_EMPTY$ = "(?!" + PCHAR$ + ")", PATH$ = subexp(PATH_ABEMPTY$ + "|" + PATH_ABSOLUTE$ + "|" + PATH_NOSCHEME$ + "|" + PATH_ROOTLESS$ + "|" + PATH_EMPTY$), QUERY$ = subexp(subexp(PCHAR$ + "|" + merge("[\\/\\?]", IPRIVATE$$)) + "*"), FRAGMENT$ = subexp(subexp(PCHAR$ + "|[\\/\\?]") + "*"), HIER_PART$ = subexp(subexp("\\/\\/" + AUTHORITY$ + PATH_ABEMPTY$) + "|" + PATH_ABSOLUTE$ + "|" + PATH_ROOTLESS$ + "|" + PATH_EMPTY$), URI$ = subexp(SCHEME$ + "\\:" + HIER_PART$ + subexp("\\?" + QUERY$) + "?" + subexp("\\#" + FRAGMENT$) + "?"), RELATIVE_PART$ = subexp(subexp("\\/\\/" + AUTHORITY$ + PATH_ABEMPTY$) + "|" + PATH_ABSOLUTE$ + "|" + PATH_NOSCHEME$ + "|" + PATH_EMPTY$), RELATIVE$ = subexp(RELATIVE_PART$ + subexp("\\?" + QUERY$) + "?" + subexp("\\#" + FRAGMENT$) + "?"), URI_REFERENCE$ = subexp(URI$ + "|" + RELATIVE$), ABSOLUTE_URI$ = subexp(SCHEME$ + "\\:" + HIER_PART$ + subexp("\\?" + QUERY$) + "?"), GENERIC_REF$ = "^(" + SCHEME$ + ")\\:" + subexp(subexp("\\/\\/(" + subexp("(" + USERINFO$ + ")@") + "?(" + HOST$ + ")" + subexp("\\:(" + PORT$ + ")") + "?)") + "?(" + PATH_ABEMPTY$ + "|" + PATH_ABSOLUTE$ + "|" + PATH_ROOTLESS$ + "|" + PATH_EMPTY$ + ")") + subexp("\\?(" + QUERY$ + ")") + "?" + subexp("\\#(" + FRAGMENT$ + ")") + "?$", RELATIVE_REF$ = "^(){0}" + subexp(subexp("\\/\\/(" + subexp("(" + USERINFO$ + ")@") + "?(" + HOST$ + ")" + subexp("\\:(" + PORT$ + ")") + "?)") + "?(" + PATH_ABEMPTY$ + "|" + PATH_ABSOLUTE$ + "|" + PATH_NOSCHEME$ + "|" + PATH_EMPTY$ + ")") + subexp("\\?(" + QUERY$ + ")") + "?" + subexp("\\#(" + FRAGMENT$ + ")") + "?$", ABSOLUTE_REF$ = "^(" + SCHEME$ + ")\\:" + subexp(subexp("\\/\\/(" + subexp("(" + USERINFO$ + ")@") + "?(" + HOST$ + ")" + subexp("\\:(" + PORT$ + ")") + "?)") + "?(" + PATH_ABEMPTY$ + "|" + PATH_ABSOLUTE$ + "|" + PATH_ROOTLESS$ + "|" + PATH_EMPTY$ + ")") + subexp("\\?(" + QUERY$ + ")") + "?$", SAMEDOC_REF$ = "^" + subexp("\\#(" + FRAGMENT$ + ")") + "?$", AUTHORITY_REF$ = "^" + subexp("(" + USERINFO$ + ")@") + "?(" + HOST$ + ")" + subexp("\\:(" + PORT$ + ")") + "?$";

-    return {

-        NOT_SCHEME: new RegExp(merge("[^]", ALPHA$$, DIGIT$$, "[\\+\\-\\.]"), "g"),

-        NOT_USERINFO: new RegExp(merge("[^\\%\\:]", UNRESERVED$$, SUB_DELIMS$$), "g"),

-        NOT_HOST: new RegExp(merge("[^\\%\\[\\]\\:]", UNRESERVED$$, SUB_DELIMS$$), "g"),

-        NOT_PATH: new RegExp(merge("[^\\%\\/\\:\\@]", UNRESERVED$$, SUB_DELIMS$$), "g"),

-        NOT_PATH_NOSCHEME: new RegExp(merge("[^\\%\\/\\@]", UNRESERVED$$, SUB_DELIMS$$), "g"),

-        NOT_QUERY: new RegExp(merge("[^\\%]", UNRESERVED$$, SUB_DELIMS$$, "[\\:\\@\\/\\?]", IPRIVATE$$), "g"),

-        NOT_FRAGMENT: new RegExp(merge("[^\\%]", UNRESERVED$$, SUB_DELIMS$$, "[\\:\\@\\/\\?]"), "g"),

-        ESCAPE: new RegExp(merge("[^]", UNRESERVED$$, SUB_DELIMS$$), "g"),

-        UNRESERVED: new RegExp(UNRESERVED$$, "g"),

-        OTHER_CHARS: new RegExp(merge("[^\\%]", UNRESERVED$$, RESERVED$$), "g"),

-        PCT_ENCODED: new RegExp(PCT_ENCODED$, "g"),

-        IPV4ADDRESS: new RegExp("^(" + IPV4ADDRESS$ + ")$"),

-        IPV6ADDRESS: new RegExp("^\\[?(" + IPV6ADDRESS$ + ")" + subexp(subexp("\\%25|\\%(?!" + HEXDIG$$ + "{2})") + "(" + ZONEID$ + ")") + "?\\]?$") //RFC 6874, with relaxed parsing rules

-    };

-}

-export default buildExps(false);

+import { merge, subexp } from "./util";
+export function buildExps(isIRI) {
+    const ALPHA$$ = "[A-Za-z]", CR$ = "[\\x0D]", DIGIT$$ = "[0-9]", DQUOTE$$ = "[\\x22]", HEXDIG$$ = merge(DIGIT$$, "[A-Fa-f]"), //case-insensitive
+    LF$$ = "[\\x0A]", SP$$ = "[\\x20]", PCT_ENCODED$ = subexp(subexp("%[EFef]" + HEXDIG$$ + "%" + HEXDIG$$ + HEXDIG$$ + "%" + HEXDIG$$ + HEXDIG$$) + "|" + subexp("%[89A-Fa-f]" + HEXDIG$$ + "%" + HEXDIG$$ + HEXDIG$$) + "|" + subexp("%" + HEXDIG$$ + HEXDIG$$)), //expanded
+    GEN_DELIMS$$ = "[\\:\\/\\?\\#\\[\\]\\@]", SUB_DELIMS$$ = "[\\!\\$\\&\\'\\(\\)\\*\\+\\,\\;\\=]", RESERVED$$ = merge(GEN_DELIMS$$, SUB_DELIMS$$), UCSCHAR$$ = isIRI ? "[\\xA0-\\u200D\\u2010-\\u2029\\u202F-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]" : "[]", //subset, excludes bidi control characters
+    IPRIVATE$$ = isIRI ? "[\\uE000-\\uF8FF]" : "[]", //subset
+    UNRESERVED$$ = merge(ALPHA$$, DIGIT$$, "[\\-\\.\\_\\~]", UCSCHAR$$), SCHEME$ = subexp(ALPHA$$ + merge(ALPHA$$, DIGIT$$, "[\\+\\-\\.]") + "*"), USERINFO$ = subexp(subexp(PCT_ENCODED$ + "|" + merge(UNRESERVED$$, SUB_DELIMS$$, "[\\:]")) + "*"), DEC_OCTET$ = subexp(subexp("25[0-5]") + "|" + subexp("2[0-4]" + DIGIT$$) + "|" + subexp("1" + DIGIT$$ + DIGIT$$) + "|" + subexp("[1-9]" + DIGIT$$) + "|" + DIGIT$$), DEC_OCTET_RELAXED$ = subexp(subexp("25[0-5]") + "|" + subexp("2[0-4]" + DIGIT$$) + "|" + subexp("1" + DIGIT$$ + DIGIT$$) + "|" + subexp("0?[1-9]" + DIGIT$$) + "|0?0?" + DIGIT$$), //relaxed parsing rules
+    IPV4ADDRESS$ = subexp(DEC_OCTET_RELAXED$ + "\\." + DEC_OCTET_RELAXED$ + "\\." + DEC_OCTET_RELAXED$ + "\\." + DEC_OCTET_RELAXED$), H16$ = subexp(HEXDIG$$ + "{1,4}"), LS32$ = subexp(subexp(H16$ + "\\:" + H16$) + "|" + IPV4ADDRESS$), IPV6ADDRESS1$ = subexp(subexp(H16$ + "\\:") + "{6}" + LS32$), //                           6( h16 ":" ) ls32
+    IPV6ADDRESS2$ = subexp("\\:\\:" + subexp(H16$ + "\\:") + "{5}" + LS32$), //                      "::" 5( h16 ":" ) ls32
+    IPV6ADDRESS3$ = subexp(subexp(H16$) + "?\\:\\:" + subexp(H16$ + "\\:") + "{4}" + LS32$), //[               h16 ] "::" 4( h16 ":" ) ls32
+    IPV6ADDRESS4$ = subexp(subexp(subexp(H16$ + "\\:") + "{0,1}" + H16$) + "?\\:\\:" + subexp(H16$ + "\\:") + "{3}" + LS32$), //[ *1( h16 ":" ) h16 ] "::" 3( h16 ":" ) ls32
+    IPV6ADDRESS5$ = subexp(subexp(subexp(H16$ + "\\:") + "{0,2}" + H16$) + "?\\:\\:" + subexp(H16$ + "\\:") + "{2}" + LS32$), //[ *2( h16 ":" ) h16 ] "::" 2( h16 ":" ) ls32
+    IPV6ADDRESS6$ = subexp(subexp(subexp(H16$ + "\\:") + "{0,3}" + H16$) + "?\\:\\:" + H16$ + "\\:" + LS32$), //[ *3( h16 ":" ) h16 ] "::"    h16 ":"   ls32
+    IPV6ADDRESS7$ = subexp(subexp(subexp(H16$ + "\\:") + "{0,4}" + H16$) + "?\\:\\:" + LS32$), //[ *4( h16 ":" ) h16 ] "::"              ls32
+    IPV6ADDRESS8$ = subexp(subexp(subexp(H16$ + "\\:") + "{0,5}" + H16$) + "?\\:\\:" + H16$), //[ *5( h16 ":" ) h16 ] "::"              h16
+    IPV6ADDRESS9$ = subexp(subexp(subexp(H16$ + "\\:") + "{0,6}" + H16$) + "?\\:\\:"), //[ *6( h16 ":" ) h16 ] "::"
+    IPV6ADDRESS$ = subexp([IPV6ADDRESS1$, IPV6ADDRESS2$, IPV6ADDRESS3$, IPV6ADDRESS4$, IPV6ADDRESS5$, IPV6ADDRESS6$, IPV6ADDRESS7$, IPV6ADDRESS8$, IPV6ADDRESS9$].join("|")), ZONEID$ = subexp(subexp(UNRESERVED$$ + "|" + PCT_ENCODED$) + "+"), //RFC 6874
+    IPV6ADDRZ$ = subexp(IPV6ADDRESS$ + "\\%25" + ZONEID$), //RFC 6874
+    IPV6ADDRZ_RELAXED$ = subexp(IPV6ADDRESS$ + subexp("\\%25|\\%(?!" + HEXDIG$$ + "{2})") + ZONEID$), //RFC 6874, with relaxed parsing rules
+    IPVFUTURE$ = subexp("[vV]" + HEXDIG$$ + "+\\." + merge(UNRESERVED$$, SUB_DELIMS$$, "[\\:]") + "+"), IP_LITERAL$ = subexp("\\[" + subexp(IPV6ADDRZ_RELAXED$ + "|" + IPV6ADDRESS$ + "|" + IPVFUTURE$) + "\\]"), //RFC 6874
+    REG_NAME$ = subexp(subexp(PCT_ENCODED$ + "|" + merge(UNRESERVED$$, SUB_DELIMS$$)) + "*"), HOST$ = subexp(IP_LITERAL$ + "|" + IPV4ADDRESS$ + "(?!" + REG_NAME$ + ")" + "|" + REG_NAME$), PORT$ = subexp(DIGIT$$ + "*"), AUTHORITY$ = subexp(subexp(USERINFO$ + "@") + "?" + HOST$ + subexp("\\:" + PORT$) + "?"), PCHAR$ = subexp(PCT_ENCODED$ + "|" + merge(UNRESERVED$$, SUB_DELIMS$$, "[\\:\\@]")), SEGMENT$ = subexp(PCHAR$ + "*"), SEGMENT_NZ$ = subexp(PCHAR$ + "+"), SEGMENT_NZ_NC$ = subexp(subexp(PCT_ENCODED$ + "|" + merge(UNRESERVED$$, SUB_DELIMS$$, "[\\@]")) + "+"), PATH_ABEMPTY$ = subexp(subexp("\\/" + SEGMENT$) + "*"), PATH_ABSOLUTE$ = subexp("\\/" + subexp(SEGMENT_NZ$ + PATH_ABEMPTY$) + "?"), //simplified
+    PATH_NOSCHEME$ = subexp(SEGMENT_NZ_NC$ + PATH_ABEMPTY$), //simplified
+    PATH_ROOTLESS$ = subexp(SEGMENT_NZ$ + PATH_ABEMPTY$), //simplified
+    PATH_EMPTY$ = "(?!" + PCHAR$ + ")", PATH$ = subexp(PATH_ABEMPTY$ + "|" + PATH_ABSOLUTE$ + "|" + PATH_NOSCHEME$ + "|" + PATH_ROOTLESS$ + "|" + PATH_EMPTY$), QUERY$ = subexp(subexp(PCHAR$ + "|" + merge("[\\/\\?]", IPRIVATE$$)) + "*"), FRAGMENT$ = subexp(subexp(PCHAR$ + "|[\\/\\?]") + "*"), HIER_PART$ = subexp(subexp("\\/\\/" + AUTHORITY$ + PATH_ABEMPTY$) + "|" + PATH_ABSOLUTE$ + "|" + PATH_ROOTLESS$ + "|" + PATH_EMPTY$), URI$ = subexp(SCHEME$ + "\\:" + HIER_PART$ + subexp("\\?" + QUERY$) + "?" + subexp("\\#" + FRAGMENT$) + "?"), RELATIVE_PART$ = subexp(subexp("\\/\\/" + AUTHORITY$ + PATH_ABEMPTY$) + "|" + PATH_ABSOLUTE$ + "|" + PATH_NOSCHEME$ + "|" + PATH_EMPTY$), RELATIVE$ = subexp(RELATIVE_PART$ + subexp("\\?" + QUERY$) + "?" + subexp("\\#" + FRAGMENT$) + "?"), URI_REFERENCE$ = subexp(URI$ + "|" + RELATIVE$), ABSOLUTE_URI$ = subexp(SCHEME$ + "\\:" + HIER_PART$ + subexp("\\?" + QUERY$) + "?"), GENERIC_REF$ = "^(" + SCHEME$ + ")\\:" + subexp(subexp("\\/\\/(" + subexp("(" + USERINFO$ + ")@") + "?(" + HOST$ + ")" + subexp("\\:(" + PORT$ + ")") + "?)") + "?(" + PATH_ABEMPTY$ + "|" + PATH_ABSOLUTE$ + "|" + PATH_ROOTLESS$ + "|" + PATH_EMPTY$ + ")") + subexp("\\?(" + QUERY$ + ")") + "?" + subexp("\\#(" + FRAGMENT$ + ")") + "?$", RELATIVE_REF$ = "^(){0}" + subexp(subexp("\\/\\/(" + subexp("(" + USERINFO$ + ")@") + "?(" + HOST$ + ")" + subexp("\\:(" + PORT$ + ")") + "?)") + "?(" + PATH_ABEMPTY$ + "|" + PATH_ABSOLUTE$ + "|" + PATH_NOSCHEME$ + "|" + PATH_EMPTY$ + ")") + subexp("\\?(" + QUERY$ + ")") + "?" + subexp("\\#(" + FRAGMENT$ + ")") + "?$", ABSOLUTE_REF$ = "^(" + SCHEME$ + ")\\:" + subexp(subexp("\\/\\/(" + subexp("(" + USERINFO$ + ")@") + "?(" + HOST$ + ")" + subexp("\\:(" + PORT$ + ")") + "?)") + "?(" + PATH_ABEMPTY$ + "|" + PATH_ABSOLUTE$ + "|" + PATH_ROOTLESS$ + "|" + PATH_EMPTY$ + ")") + subexp("\\?(" + QUERY$ + ")") + "?$", SAMEDOC_REF$ = "^" + subexp("\\#(" + FRAGMENT$ + ")") + "?$", AUTHORITY_REF$ = "^" + subexp("(" + USERINFO$ + ")@") + "?(" + HOST$ + ")" + subexp("\\:(" + PORT$ + ")") + "?$";
+    return {
+        NOT_SCHEME: new RegExp(merge("[^]", ALPHA$$, DIGIT$$, "[\\+\\-\\.]"), "g"),
+        NOT_USERINFO: new RegExp(merge("[^\\%\\:]", UNRESERVED$$, SUB_DELIMS$$), "g"),
+        NOT_HOST: new RegExp(merge("[^\\%\\[\\]\\:]", UNRESERVED$$, SUB_DELIMS$$), "g"),
+        NOT_PATH: new RegExp(merge("[^\\%\\/\\:\\@]", UNRESERVED$$, SUB_DELIMS$$), "g"),
+        NOT_PATH_NOSCHEME: new RegExp(merge("[^\\%\\/\\@]", UNRESERVED$$, SUB_DELIMS$$), "g"),
+        NOT_QUERY: new RegExp(merge("[^\\%]", UNRESERVED$$, SUB_DELIMS$$, "[\\:\\@\\/\\?]", IPRIVATE$$), "g"),
+        NOT_FRAGMENT: new RegExp(merge("[^\\%]", UNRESERVED$$, SUB_DELIMS$$, "[\\:\\@\\/\\?]"), "g"),
+        ESCAPE: new RegExp(merge("[^]", UNRESERVED$$, SUB_DELIMS$$), "g"),
+        UNRESERVED: new RegExp(UNRESERVED$$, "g"),
+        OTHER_CHARS: new RegExp(merge("[^\\%]", UNRESERVED$$, RESERVED$$), "g"),
+        PCT_ENCODED: new RegExp(PCT_ENCODED$, "g"),
+        IPV4ADDRESS: new RegExp("^(" + IPV4ADDRESS$ + ")$"),
+        IPV6ADDRESS: new RegExp("^\\[?(" + IPV6ADDRESS$ + ")" + subexp(subexp("\\%25|\\%(?!" + HEXDIG$$ + "{2})") + "(" + ZONEID$ + ")") + "?\\]?$") //RFC 6874, with relaxed parsing rules
+    };
+}
+export default buildExps(false);
 //# sourceMappingURL=regexps-uri.js.map
\ No newline at end of file
diff --git a/src/cobalt/debug/remote/devtools/node_modules/uri-js/dist/esnext/regexps-uri.js.map b/src/third_party/devtools/node_modules/uri-js/dist/esnext/regexps-uri.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/uri-js/dist/esnext/regexps-uri.js.map
rename to src/third_party/devtools/node_modules/uri-js/dist/esnext/regexps-uri.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/uri-js/dist/esnext/schemes/http.d.ts b/src/third_party/devtools/node_modules/uri-js/dist/esnext/schemes/http.d.ts
similarity index 99%
rename from src/cobalt/debug/remote/devtools/node_modules/uri-js/dist/esnext/schemes/http.d.ts
rename to src/third_party/devtools/node_modules/uri-js/dist/esnext/schemes/http.d.ts
index 3899956..fe5b2f3 100644
--- a/src/cobalt/debug/remote/devtools/node_modules/uri-js/dist/esnext/schemes/http.d.ts
+++ b/src/third_party/devtools/node_modules/uri-js/dist/esnext/schemes/http.d.ts
@@ -1,3 +1,3 @@
-import { URISchemeHandler } from "../uri";

-declare const handler: URISchemeHandler;

-export default handler;

+import { URISchemeHandler } from "../uri";
+declare const handler: URISchemeHandler;
+export default handler;
diff --git a/src/cobalt/debug/remote/devtools/node_modules/uri-js/dist/esnext/schemes/http.js b/src/third_party/devtools/node_modules/uri-js/dist/esnext/schemes/http.js
similarity index 99%
rename from src/cobalt/debug/remote/devtools/node_modules/uri-js/dist/esnext/schemes/http.js
rename to src/third_party/devtools/node_modules/uri-js/dist/esnext/schemes/http.js
index a280369..092e16d 100644
--- a/src/cobalt/debug/remote/devtools/node_modules/uri-js/dist/esnext/schemes/http.js
+++ b/src/third_party/devtools/node_modules/uri-js/dist/esnext/schemes/http.js
@@ -1,27 +1,27 @@
-const handler = {

-    scheme: "http",

-    domainHost: true,

-    parse: function (components, options) {

-        //report missing host

-        if (!components.host) {

-            components.error = components.error || "HTTP URIs must have a host.";

-        }

-        return components;

-    },

-    serialize: function (components, options) {

-        //normalize the default port

-        if (components.port === (String(components.scheme).toLowerCase() !== "https" ? 80 : 443) || components.port === "") {

-            components.port = undefined;

-        }

-        //normalize the empty path

-        if (!components.path) {

-            components.path = "/";

-        }

-        //NOTE: We do not parse query strings for HTTP URIs

-        //as WWW Form Url Encoded query strings are part of the HTML4+ spec,

-        //and not the HTTP spec.

-        return components;

-    }

-};

-export default handler;

+const handler = {
+    scheme: "http",
+    domainHost: true,
+    parse: function (components, options) {
+        //report missing host
+        if (!components.host) {
+            components.error = components.error || "HTTP URIs must have a host.";
+        }
+        return components;
+    },
+    serialize: function (components, options) {
+        //normalize the default port
+        if (components.port === (String(components.scheme).toLowerCase() !== "https" ? 80 : 443) || components.port === "") {
+            components.port = undefined;
+        }
+        //normalize the empty path
+        if (!components.path) {
+            components.path = "/";
+        }
+        //NOTE: We do not parse query strings for HTTP URIs
+        //as WWW Form Url Encoded query strings are part of the HTML4+ spec,
+        //and not the HTTP spec.
+        return components;
+    }
+};
+export default handler;
 //# sourceMappingURL=http.js.map
\ No newline at end of file
diff --git a/src/cobalt/debug/remote/devtools/node_modules/uri-js/dist/esnext/schemes/http.js.map b/src/third_party/devtools/node_modules/uri-js/dist/esnext/schemes/http.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/uri-js/dist/esnext/schemes/http.js.map
rename to src/third_party/devtools/node_modules/uri-js/dist/esnext/schemes/http.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/uri-js/dist/esnext/schemes/http.d.ts b/src/third_party/devtools/node_modules/uri-js/dist/esnext/schemes/https.d.ts
similarity index 99%
copy from src/cobalt/debug/remote/devtools/node_modules/uri-js/dist/esnext/schemes/http.d.ts
copy to src/third_party/devtools/node_modules/uri-js/dist/esnext/schemes/https.d.ts
index 3899956..fe5b2f3 100644
--- a/src/cobalt/debug/remote/devtools/node_modules/uri-js/dist/esnext/schemes/http.d.ts
+++ b/src/third_party/devtools/node_modules/uri-js/dist/esnext/schemes/https.d.ts
@@ -1,3 +1,3 @@
-import { URISchemeHandler } from "../uri";

-declare const handler: URISchemeHandler;

-export default handler;

+import { URISchemeHandler } from "../uri";
+declare const handler: URISchemeHandler;
+export default handler;
diff --git a/src/cobalt/debug/remote/devtools/node_modules/uri-js/dist/esnext/schemes/https.js b/src/third_party/devtools/node_modules/uri-js/dist/esnext/schemes/https.js
similarity index 99%
rename from src/cobalt/debug/remote/devtools/node_modules/uri-js/dist/esnext/schemes/https.js
rename to src/third_party/devtools/node_modules/uri-js/dist/esnext/schemes/https.js
index fc3c71a..ec4b6e7 100644
--- a/src/cobalt/debug/remote/devtools/node_modules/uri-js/dist/esnext/schemes/https.js
+++ b/src/third_party/devtools/node_modules/uri-js/dist/esnext/schemes/https.js
@@ -1,9 +1,9 @@
-import http from "./http";

-const handler = {

-    scheme: "https",

-    domainHost: http.domainHost,

-    parse: http.parse,

-    serialize: http.serialize

-};

-export default handler;

+import http from "./http";
+const handler = {
+    scheme: "https",
+    domainHost: http.domainHost,
+    parse: http.parse,
+    serialize: http.serialize
+};
+export default handler;
 //# sourceMappingURL=https.js.map
\ No newline at end of file
diff --git a/src/cobalt/debug/remote/devtools/node_modules/uri-js/dist/esnext/schemes/https.js.map b/src/third_party/devtools/node_modules/uri-js/dist/esnext/schemes/https.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/uri-js/dist/esnext/schemes/https.js.map
rename to src/third_party/devtools/node_modules/uri-js/dist/esnext/schemes/https.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/uri-js/dist/esnext/schemes/mailto.d.ts b/src/third_party/devtools/node_modules/uri-js/dist/esnext/schemes/mailto.d.ts
similarity index 99%
rename from src/cobalt/debug/remote/devtools/node_modules/uri-js/dist/esnext/schemes/mailto.d.ts
rename to src/third_party/devtools/node_modules/uri-js/dist/esnext/schemes/mailto.d.ts
index b0db4bf..e2aefc2 100644
--- a/src/cobalt/debug/remote/devtools/node_modules/uri-js/dist/esnext/schemes/mailto.d.ts
+++ b/src/third_party/devtools/node_modules/uri-js/dist/esnext/schemes/mailto.d.ts
@@ -1,12 +1,12 @@
-import { URISchemeHandler, URIComponents } from "../uri";

-export interface MailtoHeaders {

-    [hfname: string]: string;

-}

-export interface MailtoComponents extends URIComponents {

-    to: Array<string>;

-    headers?: MailtoHeaders;

-    subject?: string;

-    body?: string;

-}

-declare const handler: URISchemeHandler<MailtoComponents>;

-export default handler;

+import { URISchemeHandler, URIComponents } from "../uri";
+export interface MailtoHeaders {
+    [hfname: string]: string;
+}
+export interface MailtoComponents extends URIComponents {
+    to: Array<string>;
+    headers?: MailtoHeaders;
+    subject?: string;
+    body?: string;
+}
+declare const handler: URISchemeHandler<MailtoComponents>;
+export default handler;
diff --git a/src/cobalt/debug/remote/devtools/node_modules/uri-js/dist/esnext/schemes/mailto.js b/src/third_party/devtools/node_modules/uri-js/dist/esnext/schemes/mailto.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/uri-js/dist/esnext/schemes/mailto.js
rename to src/third_party/devtools/node_modules/uri-js/dist/esnext/schemes/mailto.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/uri-js/dist/esnext/schemes/mailto.js.map b/src/third_party/devtools/node_modules/uri-js/dist/esnext/schemes/mailto.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/uri-js/dist/esnext/schemes/mailto.js.map
rename to src/third_party/devtools/node_modules/uri-js/dist/esnext/schemes/mailto.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/uri-js/dist/esnext/schemes/urn-uuid.d.ts b/src/third_party/devtools/node_modules/uri-js/dist/esnext/schemes/urn-uuid.d.ts
similarity index 99%
rename from src/cobalt/debug/remote/devtools/node_modules/uri-js/dist/esnext/schemes/urn-uuid.d.ts
rename to src/third_party/devtools/node_modules/uri-js/dist/esnext/schemes/urn-uuid.d.ts
index 261ddce..e75f2e7 100644
--- a/src/cobalt/debug/remote/devtools/node_modules/uri-js/dist/esnext/schemes/urn-uuid.d.ts
+++ b/src/third_party/devtools/node_modules/uri-js/dist/esnext/schemes/urn-uuid.d.ts
@@ -1,7 +1,7 @@
-import { URISchemeHandler, URIOptions } from "../uri";

-import { URNComponents } from "./urn";

-export interface UUIDComponents extends URNComponents {

-    uuid?: string;

-}

-declare const handler: URISchemeHandler<UUIDComponents, URIOptions, URNComponents>;

-export default handler;

+import { URISchemeHandler, URIOptions } from "../uri";
+import { URNComponents } from "./urn";
+export interface UUIDComponents extends URNComponents {
+    uuid?: string;
+}
+declare const handler: URISchemeHandler<UUIDComponents, URIOptions, URNComponents>;
+export default handler;
diff --git a/src/cobalt/debug/remote/devtools/node_modules/uri-js/dist/esnext/schemes/urn-uuid.js b/src/third_party/devtools/node_modules/uri-js/dist/esnext/schemes/urn-uuid.js
similarity index 99%
rename from src/cobalt/debug/remote/devtools/node_modules/uri-js/dist/esnext/schemes/urn-uuid.js
rename to src/third_party/devtools/node_modules/uri-js/dist/esnext/schemes/urn-uuid.js
index 044c8a8..d1fce49 100644
--- a/src/cobalt/debug/remote/devtools/node_modules/uri-js/dist/esnext/schemes/urn-uuid.js
+++ b/src/third_party/devtools/node_modules/uri-js/dist/esnext/schemes/urn-uuid.js
@@ -1,23 +1,23 @@
-const UUID = /^[0-9A-Fa-f]{8}(?:\-[0-9A-Fa-f]{4}){3}\-[0-9A-Fa-f]{12}$/;

-const UUID_PARSE = /^[0-9A-Fa-f\-]{36}/;

-//RFC 4122

-const handler = {

-    scheme: "urn:uuid",

-    parse: function (urnComponents, options) {

-        const uuidComponents = urnComponents;

-        uuidComponents.uuid = uuidComponents.nss;

-        uuidComponents.nss = undefined;

-        if (!options.tolerant && (!uuidComponents.uuid || !uuidComponents.uuid.match(UUID))) {

-            uuidComponents.error = uuidComponents.error || "UUID is not valid.";

-        }

-        return uuidComponents;

-    },

-    serialize: function (uuidComponents, options) {

-        const urnComponents = uuidComponents;

-        //normalize UUID

-        urnComponents.nss = (uuidComponents.uuid || "").toLowerCase();

-        return urnComponents;

-    },

-};

-export default handler;

+const UUID = /^[0-9A-Fa-f]{8}(?:\-[0-9A-Fa-f]{4}){3}\-[0-9A-Fa-f]{12}$/;
+const UUID_PARSE = /^[0-9A-Fa-f\-]{36}/;
+//RFC 4122
+const handler = {
+    scheme: "urn:uuid",
+    parse: function (urnComponents, options) {
+        const uuidComponents = urnComponents;
+        uuidComponents.uuid = uuidComponents.nss;
+        uuidComponents.nss = undefined;
+        if (!options.tolerant && (!uuidComponents.uuid || !uuidComponents.uuid.match(UUID))) {
+            uuidComponents.error = uuidComponents.error || "UUID is not valid.";
+        }
+        return uuidComponents;
+    },
+    serialize: function (uuidComponents, options) {
+        const urnComponents = uuidComponents;
+        //normalize UUID
+        urnComponents.nss = (uuidComponents.uuid || "").toLowerCase();
+        return urnComponents;
+    },
+};
+export default handler;
 //# sourceMappingURL=urn-uuid.js.map
\ No newline at end of file
diff --git a/src/cobalt/debug/remote/devtools/node_modules/uri-js/dist/esnext/schemes/urn-uuid.js.map b/src/third_party/devtools/node_modules/uri-js/dist/esnext/schemes/urn-uuid.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/uri-js/dist/esnext/schemes/urn-uuid.js.map
rename to src/third_party/devtools/node_modules/uri-js/dist/esnext/schemes/urn-uuid.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/uri-js/dist/esnext/schemes/urn.d.ts b/src/third_party/devtools/node_modules/uri-js/dist/esnext/schemes/urn.d.ts
similarity index 99%
rename from src/cobalt/debug/remote/devtools/node_modules/uri-js/dist/esnext/schemes/urn.d.ts
rename to src/third_party/devtools/node_modules/uri-js/dist/esnext/schemes/urn.d.ts
index 4948105..7e0c2fb 100644
--- a/src/cobalt/debug/remote/devtools/node_modules/uri-js/dist/esnext/schemes/urn.d.ts
+++ b/src/third_party/devtools/node_modules/uri-js/dist/esnext/schemes/urn.d.ts
@@ -1,10 +1,10 @@
-import { URISchemeHandler, URIComponents, URIOptions } from "../uri";

-export interface URNComponents extends URIComponents {

-    nid?: string;

-    nss?: string;

-}

-export interface URNOptions extends URIOptions {

-    nid?: string;

-}

-declare const handler: URISchemeHandler<URNComponents, URNOptions>;

-export default handler;

+import { URISchemeHandler, URIComponents, URIOptions } from "../uri";
+export interface URNComponents extends URIComponents {
+    nid?: string;
+    nss?: string;
+}
+export interface URNOptions extends URIOptions {
+    nid?: string;
+}
+declare const handler: URISchemeHandler<URNComponents, URNOptions>;
+export default handler;
diff --git a/src/cobalt/debug/remote/devtools/node_modules/uri-js/dist/esnext/schemes/urn.js b/src/third_party/devtools/node_modules/uri-js/dist/esnext/schemes/urn.js
similarity index 99%
rename from src/cobalt/debug/remote/devtools/node_modules/uri-js/dist/esnext/schemes/urn.js
rename to src/third_party/devtools/node_modules/uri-js/dist/esnext/schemes/urn.js
index b53161c..5d3f10a 100644
--- a/src/cobalt/debug/remote/devtools/node_modules/uri-js/dist/esnext/schemes/urn.js
+++ b/src/third_party/devtools/node_modules/uri-js/dist/esnext/schemes/urn.js
@@ -1,49 +1,49 @@
-import { SCHEMES } from "../uri";

-const NID$ = "(?:[0-9A-Za-z][0-9A-Za-z\\-]{1,31})";

-const PCT_ENCODED$ = "(?:\\%[0-9A-Fa-f]{2})";

-const TRANS$$ = "[0-9A-Za-z\\(\\)\\+\\,\\-\\.\\:\\=\\@\\;\\$\\_\\!\\*\\'\\/\\?\\#]";

-const NSS$ = "(?:(?:" + PCT_ENCODED$ + "|" + TRANS$$ + ")+)";

-const URN_SCHEME = new RegExp("^urn\\:(" + NID$ + ")$");

-const URN_PATH = new RegExp("^(" + NID$ + ")\\:(" + NSS$ + ")$");

-const URN_PARSE = /^([^\:]+)\:(.*)/;

-const URN_EXCLUDED = /[\x00-\x20\\\"\&\<\>\[\]\^\`\{\|\}\~\x7F-\xFF]/g;

-//RFC 2141

-const handler = {

-    scheme: "urn",

-    parse: function (components, options) {

-        const matches = components.path && components.path.match(URN_PARSE);

-        let urnComponents = components;

-        if (matches) {

-            const scheme = options.scheme || urnComponents.scheme || "urn";

-            const nid = matches[1].toLowerCase();

-            const nss = matches[2];

-            const urnScheme = `${scheme}:${options.nid || nid}`;

-            const schemeHandler = SCHEMES[urnScheme];

-            urnComponents.nid = nid;

-            urnComponents.nss = nss;

-            urnComponents.path = undefined;

-            if (schemeHandler) {

-                urnComponents = schemeHandler.parse(urnComponents, options);

-            }

-        }

-        else {

-            urnComponents.error = urnComponents.error || "URN can not be parsed.";

-        }

-        return urnComponents;

-    },

-    serialize: function (urnComponents, options) {

-        const scheme = options.scheme || urnComponents.scheme || "urn";

-        const nid = urnComponents.nid;

-        const urnScheme = `${scheme}:${options.nid || nid}`;

-        const schemeHandler = SCHEMES[urnScheme];

-        if (schemeHandler) {

-            urnComponents = schemeHandler.serialize(urnComponents, options);

-        }

-        const uriComponents = urnComponents;

-        const nss = urnComponents.nss;

-        uriComponents.path = `${nid || options.nid}:${nss}`;

-        return uriComponents;

-    },

-};

-export default handler;

+import { SCHEMES } from "../uri";
+const NID$ = "(?:[0-9A-Za-z][0-9A-Za-z\\-]{1,31})";
+const PCT_ENCODED$ = "(?:\\%[0-9A-Fa-f]{2})";
+const TRANS$$ = "[0-9A-Za-z\\(\\)\\+\\,\\-\\.\\:\\=\\@\\;\\$\\_\\!\\*\\'\\/\\?\\#]";
+const NSS$ = "(?:(?:" + PCT_ENCODED$ + "|" + TRANS$$ + ")+)";
+const URN_SCHEME = new RegExp("^urn\\:(" + NID$ + ")$");
+const URN_PATH = new RegExp("^(" + NID$ + ")\\:(" + NSS$ + ")$");
+const URN_PARSE = /^([^\:]+)\:(.*)/;
+const URN_EXCLUDED = /[\x00-\x20\\\"\&\<\>\[\]\^\`\{\|\}\~\x7F-\xFF]/g;
+//RFC 2141
+const handler = {
+    scheme: "urn",
+    parse: function (components, options) {
+        const matches = components.path && components.path.match(URN_PARSE);
+        let urnComponents = components;
+        if (matches) {
+            const scheme = options.scheme || urnComponents.scheme || "urn";
+            const nid = matches[1].toLowerCase();
+            const nss = matches[2];
+            const urnScheme = `${scheme}:${options.nid || nid}`;
+            const schemeHandler = SCHEMES[urnScheme];
+            urnComponents.nid = nid;
+            urnComponents.nss = nss;
+            urnComponents.path = undefined;
+            if (schemeHandler) {
+                urnComponents = schemeHandler.parse(urnComponents, options);
+            }
+        }
+        else {
+            urnComponents.error = urnComponents.error || "URN can not be parsed.";
+        }
+        return urnComponents;
+    },
+    serialize: function (urnComponents, options) {
+        const scheme = options.scheme || urnComponents.scheme || "urn";
+        const nid = urnComponents.nid;
+        const urnScheme = `${scheme}:${options.nid || nid}`;
+        const schemeHandler = SCHEMES[urnScheme];
+        if (schemeHandler) {
+            urnComponents = schemeHandler.serialize(urnComponents, options);
+        }
+        const uriComponents = urnComponents;
+        const nss = urnComponents.nss;
+        uriComponents.path = `${nid || options.nid}:${nss}`;
+        return uriComponents;
+    },
+};
+export default handler;
 //# sourceMappingURL=urn.js.map
\ No newline at end of file
diff --git a/src/cobalt/debug/remote/devtools/node_modules/uri-js/dist/esnext/schemes/urn.js.map b/src/third_party/devtools/node_modules/uri-js/dist/esnext/schemes/urn.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/uri-js/dist/esnext/schemes/urn.js.map
rename to src/third_party/devtools/node_modules/uri-js/dist/esnext/schemes/urn.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/uri-js/dist/es5/uri.all.d.ts b/src/third_party/devtools/node_modules/uri-js/dist/esnext/uri.d.ts
similarity index 99%
copy from src/cobalt/debug/remote/devtools/node_modules/uri-js/dist/es5/uri.all.d.ts
copy to src/third_party/devtools/node_modules/uri-js/dist/esnext/uri.d.ts
index 320f534..da51e23 100644
--- a/src/cobalt/debug/remote/devtools/node_modules/uri-js/dist/es5/uri.all.d.ts
+++ b/src/third_party/devtools/node_modules/uri-js/dist/esnext/uri.d.ts
@@ -1,59 +1,59 @@
-export interface URIComponents {

-    scheme?: string;

-    userinfo?: string;

-    host?: string;

-    port?: number | string;

-    path?: string;

-    query?: string;

-    fragment?: string;

-    reference?: string;

-    error?: string;

-}

-export interface URIOptions {

-    scheme?: string;

-    reference?: string;

-    tolerant?: boolean;

-    absolutePath?: boolean;

-    iri?: boolean;

-    unicodeSupport?: boolean;

-    domainHost?: boolean;

-}

-export interface URISchemeHandler<Components extends URIComponents = URIComponents, Options extends URIOptions = URIOptions, ParentComponents extends URIComponents = URIComponents> {

-    scheme: string;

-    parse(components: ParentComponents, options: Options): Components;

-    serialize(components: Components, options: Options): ParentComponents;

-    unicodeSupport?: boolean;

-    domainHost?: boolean;

-    absolutePath?: boolean;

-}

-export interface URIRegExps {

-    NOT_SCHEME: RegExp;

-    NOT_USERINFO: RegExp;

-    NOT_HOST: RegExp;

-    NOT_PATH: RegExp;

-    NOT_PATH_NOSCHEME: RegExp;

-    NOT_QUERY: RegExp;

-    NOT_FRAGMENT: RegExp;

-    ESCAPE: RegExp;

-    UNRESERVED: RegExp;

-    OTHER_CHARS: RegExp;

-    PCT_ENCODED: RegExp;

-    IPV4ADDRESS: RegExp;

-    IPV6ADDRESS: RegExp;

-}

-export declare const SCHEMES: {

-    [scheme: string]: URISchemeHandler;

-};

-export declare function pctEncChar(chr: string): string;

-export declare function pctDecChars(str: string): string;

-export declare function parse(uriString: string, options?: URIOptions): URIComponents;

-export declare function removeDotSegments(input: string): string;

-export declare function serialize(components: URIComponents, options?: URIOptions): string;

-export declare function resolveComponents(base: URIComponents, relative: URIComponents, options?: URIOptions, skipNormalization?: boolean): URIComponents;

-export declare function resolve(baseURI: string, relativeURI: string, options?: URIOptions): string;

-export declare function normalize(uri: string, options?: URIOptions): string;

-export declare function normalize(uri: URIComponents, options?: URIOptions): URIComponents;

-export declare function equal(uriA: string, uriB: string, options?: URIOptions): boolean;

-export declare function equal(uriA: URIComponents, uriB: URIComponents, options?: URIOptions): boolean;

-export declare function escapeComponent(str: string, options?: URIOptions): string;

-export declare function unescapeComponent(str: string, options?: URIOptions): string;

+export interface URIComponents {
+    scheme?: string;
+    userinfo?: string;
+    host?: string;
+    port?: number | string;
+    path?: string;
+    query?: string;
+    fragment?: string;
+    reference?: string;
+    error?: string;
+}
+export interface URIOptions {
+    scheme?: string;
+    reference?: string;
+    tolerant?: boolean;
+    absolutePath?: boolean;
+    iri?: boolean;
+    unicodeSupport?: boolean;
+    domainHost?: boolean;
+}
+export interface URISchemeHandler<Components extends URIComponents = URIComponents, Options extends URIOptions = URIOptions, ParentComponents extends URIComponents = URIComponents> {
+    scheme: string;
+    parse(components: ParentComponents, options: Options): Components;
+    serialize(components: Components, options: Options): ParentComponents;
+    unicodeSupport?: boolean;
+    domainHost?: boolean;
+    absolutePath?: boolean;
+}
+export interface URIRegExps {
+    NOT_SCHEME: RegExp;
+    NOT_USERINFO: RegExp;
+    NOT_HOST: RegExp;
+    NOT_PATH: RegExp;
+    NOT_PATH_NOSCHEME: RegExp;
+    NOT_QUERY: RegExp;
+    NOT_FRAGMENT: RegExp;
+    ESCAPE: RegExp;
+    UNRESERVED: RegExp;
+    OTHER_CHARS: RegExp;
+    PCT_ENCODED: RegExp;
+    IPV4ADDRESS: RegExp;
+    IPV6ADDRESS: RegExp;
+}
+export declare const SCHEMES: {
+    [scheme: string]: URISchemeHandler;
+};
+export declare function pctEncChar(chr: string): string;
+export declare function pctDecChars(str: string): string;
+export declare function parse(uriString: string, options?: URIOptions): URIComponents;
+export declare function removeDotSegments(input: string): string;
+export declare function serialize(components: URIComponents, options?: URIOptions): string;
+export declare function resolveComponents(base: URIComponents, relative: URIComponents, options?: URIOptions, skipNormalization?: boolean): URIComponents;
+export declare function resolve(baseURI: string, relativeURI: string, options?: URIOptions): string;
+export declare function normalize(uri: string, options?: URIOptions): string;
+export declare function normalize(uri: URIComponents, options?: URIOptions): URIComponents;
+export declare function equal(uriA: string, uriB: string, options?: URIOptions): boolean;
+export declare function equal(uriA: URIComponents, uriB: URIComponents, options?: URIOptions): boolean;
+export declare function escapeComponent(str: string, options?: URIOptions): string;
+export declare function unescapeComponent(str: string, options?: URIOptions): string;
diff --git a/src/cobalt/debug/remote/devtools/node_modules/uri-js/dist/esnext/uri.js b/src/third_party/devtools/node_modules/uri-js/dist/esnext/uri.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/uri-js/dist/esnext/uri.js
rename to src/third_party/devtools/node_modules/uri-js/dist/esnext/uri.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/uri-js/dist/esnext/uri.js.map b/src/third_party/devtools/node_modules/uri-js/dist/esnext/uri.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/uri-js/dist/esnext/uri.js.map
rename to src/third_party/devtools/node_modules/uri-js/dist/esnext/uri.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/uri-js/dist/esnext/util.d.ts b/src/third_party/devtools/node_modules/uri-js/dist/esnext/util.d.ts
similarity index 99%
rename from src/cobalt/debug/remote/devtools/node_modules/uri-js/dist/esnext/util.d.ts
rename to src/third_party/devtools/node_modules/uri-js/dist/esnext/util.d.ts
index 8b484cd..7c12857 100644
--- a/src/cobalt/debug/remote/devtools/node_modules/uri-js/dist/esnext/util.d.ts
+++ b/src/third_party/devtools/node_modules/uri-js/dist/esnext/util.d.ts
@@ -1,6 +1,6 @@
-export declare function merge(...sets: Array<string>): string;

-export declare function subexp(str: string): string;

-export declare function typeOf(o: any): string;

-export declare function toUpperCase(str: string): string;

-export declare function toArray(obj: any): Array<any>;

-export declare function assign(target: object, source: any): any;

+export declare function merge(...sets: Array<string>): string;
+export declare function subexp(str: string): string;
+export declare function typeOf(o: any): string;
+export declare function toUpperCase(str: string): string;
+export declare function toArray(obj: any): Array<any>;
+export declare function assign(target: object, source: any): any;
diff --git a/src/cobalt/debug/remote/devtools/node_modules/uri-js/dist/esnext/util.js b/src/third_party/devtools/node_modules/uri-js/dist/esnext/util.js
similarity index 99%
rename from src/cobalt/debug/remote/devtools/node_modules/uri-js/dist/esnext/util.js
rename to src/third_party/devtools/node_modules/uri-js/dist/esnext/util.js
index 45af46f..072711e 100644
--- a/src/cobalt/debug/remote/devtools/node_modules/uri-js/dist/esnext/util.js
+++ b/src/third_party/devtools/node_modules/uri-js/dist/esnext/util.js
@@ -1,36 +1,36 @@
-export function merge(...sets) {

-    if (sets.length > 1) {

-        sets[0] = sets[0].slice(0, -1);

-        const xl = sets.length - 1;

-        for (let x = 1; x < xl; ++x) {

-            sets[x] = sets[x].slice(1, -1);

-        }

-        sets[xl] = sets[xl].slice(1);

-        return sets.join('');

-    }

-    else {

-        return sets[0];

-    }

-}

-export function subexp(str) {

-    return "(?:" + str + ")";

-}

-export function typeOf(o) {

-    return o === undefined ? "undefined" : (o === null ? "null" : Object.prototype.toString.call(o).split(" ").pop().split("]").shift().toLowerCase());

-}

-export function toUpperCase(str) {

-    return str.toUpperCase();

-}

-export function toArray(obj) {

-    return obj !== undefined && obj !== null ? (obj instanceof Array ? obj : (typeof obj.length !== "number" || obj.split || obj.setInterval || obj.call ? [obj] : Array.prototype.slice.call(obj))) : [];

-}

-export function assign(target, source) {

-    const obj = target;

-    if (source) {

-        for (const key in source) {

-            obj[key] = source[key];

-        }

-    }

-    return obj;

-}

+export function merge(...sets) {
+    if (sets.length > 1) {
+        sets[0] = sets[0].slice(0, -1);
+        const xl = sets.length - 1;
+        for (let x = 1; x < xl; ++x) {
+            sets[x] = sets[x].slice(1, -1);
+        }
+        sets[xl] = sets[xl].slice(1);
+        return sets.join('');
+    }
+    else {
+        return sets[0];
+    }
+}
+export function subexp(str) {
+    return "(?:" + str + ")";
+}
+export function typeOf(o) {
+    return o === undefined ? "undefined" : (o === null ? "null" : Object.prototype.toString.call(o).split(" ").pop().split("]").shift().toLowerCase());
+}
+export function toUpperCase(str) {
+    return str.toUpperCase();
+}
+export function toArray(obj) {
+    return obj !== undefined && obj !== null ? (obj instanceof Array ? obj : (typeof obj.length !== "number" || obj.split || obj.setInterval || obj.call ? [obj] : Array.prototype.slice.call(obj))) : [];
+}
+export function assign(target, source) {
+    const obj = target;
+    if (source) {
+        for (const key in source) {
+            obj[key] = source[key];
+        }
+    }
+    return obj;
+}
 //# sourceMappingURL=util.js.map
\ No newline at end of file
diff --git a/src/cobalt/debug/remote/devtools/node_modules/uri-js/dist/esnext/util.js.map b/src/third_party/devtools/node_modules/uri-js/dist/esnext/util.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/uri-js/dist/esnext/util.js.map
rename to src/third_party/devtools/node_modules/uri-js/dist/esnext/util.js.map
diff --git a/src/cobalt/debug/remote/devtools/node_modules/uri-js/package.json b/src/third_party/devtools/node_modules/uri-js/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/uri-js/package.json
rename to src/third_party/devtools/node_modules/uri-js/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/uri-js/rollup.config.js b/src/third_party/devtools/node_modules/uri-js/rollup.config.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/uri-js/rollup.config.js
rename to src/third_party/devtools/node_modules/uri-js/rollup.config.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/uri-js/src/index.ts b/src/third_party/devtools/node_modules/uri-js/src/index.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/uri-js/src/index.ts
rename to src/third_party/devtools/node_modules/uri-js/src/index.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/uri-js/src/punycode.d.ts b/src/third_party/devtools/node_modules/uri-js/src/punycode.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/uri-js/src/punycode.d.ts
rename to src/third_party/devtools/node_modules/uri-js/src/punycode.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/uri-js/src/regexps-iri.ts b/src/third_party/devtools/node_modules/uri-js/src/regexps-iri.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/uri-js/src/regexps-iri.ts
rename to src/third_party/devtools/node_modules/uri-js/src/regexps-iri.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/uri-js/src/regexps-uri.ts b/src/third_party/devtools/node_modules/uri-js/src/regexps-uri.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/uri-js/src/regexps-uri.ts
rename to src/third_party/devtools/node_modules/uri-js/src/regexps-uri.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/uri-js/src/schemes/http.ts b/src/third_party/devtools/node_modules/uri-js/src/schemes/http.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/uri-js/src/schemes/http.ts
rename to src/third_party/devtools/node_modules/uri-js/src/schemes/http.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/uri-js/src/schemes/https.ts b/src/third_party/devtools/node_modules/uri-js/src/schemes/https.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/uri-js/src/schemes/https.ts
rename to src/third_party/devtools/node_modules/uri-js/src/schemes/https.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/uri-js/src/schemes/mailto.ts b/src/third_party/devtools/node_modules/uri-js/src/schemes/mailto.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/uri-js/src/schemes/mailto.ts
rename to src/third_party/devtools/node_modules/uri-js/src/schemes/mailto.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/uri-js/src/schemes/urn-uuid.ts b/src/third_party/devtools/node_modules/uri-js/src/schemes/urn-uuid.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/uri-js/src/schemes/urn-uuid.ts
rename to src/third_party/devtools/node_modules/uri-js/src/schemes/urn-uuid.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/uri-js/src/schemes/urn.ts b/src/third_party/devtools/node_modules/uri-js/src/schemes/urn.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/uri-js/src/schemes/urn.ts
rename to src/third_party/devtools/node_modules/uri-js/src/schemes/urn.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/uri-js/src/uri.ts b/src/third_party/devtools/node_modules/uri-js/src/uri.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/uri-js/src/uri.ts
rename to src/third_party/devtools/node_modules/uri-js/src/uri.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/uri-js/src/util.ts b/src/third_party/devtools/node_modules/uri-js/src/util.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/uri-js/src/util.ts
rename to src/third_party/devtools/node_modules/uri-js/src/util.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/uri-js/tests/qunit.css b/src/third_party/devtools/node_modules/uri-js/tests/qunit.css
similarity index 99%
rename from src/cobalt/debug/remote/devtools/node_modules/uri-js/tests/qunit.css
rename to src/third_party/devtools/node_modules/uri-js/tests/qunit.css
index a2e183d..861c40d 100644
--- a/src/cobalt/debug/remote/devtools/node_modules/uri-js/tests/qunit.css
+++ b/src/third_party/devtools/node_modules/uri-js/tests/qunit.css
@@ -1,118 +1,118 @@
-ol#qunit-tests {

-	font-family:"Helvetica Neue Light", "HelveticaNeue-Light", "Helvetica Neue", Calibri, Helvetica, Arial;

-	margin:0;

-	padding:0;

-	list-style-position:inside;

-

-	font-size: smaller;

-}

-ol#qunit-tests li{

-	padding:0.4em 0.5em 0.4em 2.5em;

-	border-bottom:1px solid #fff;

-	font-size:small;

-	list-style-position:inside;

-}

-ol#qunit-tests li ol{

-	box-shadow: inset 0px 2px 13px #999;

-	-moz-box-shadow: inset 0px 2px 13px #999;

-	-webkit-box-shadow: inset 0px 2px 13px #999;

-	margin-top:0.5em;

-	margin-left:0;

-	padding:0.5em;

-	background-color:#fff;

-	border-radius:15px;

-	-moz-border-radius: 15px;

-	-webkit-border-radius: 15px;

-}

-ol#qunit-tests li li{

-	border-bottom:none;

-	margin:0.5em;

-	background-color:#fff;

-	list-style-position: inside;

-	padding:0.4em 0.5em 0.4em 0.5em;

-}

-

-ol#qunit-tests li li.pass{

-	border-left:26px solid #C6E746;

-	background-color:#fff;

-	color:#5E740B;

-	}

-ol#qunit-tests li li.fail{

-	border-left:26px solid #EE5757;

-	background-color:#fff;

-	color:#710909;

-}

-ol#qunit-tests li.pass{

-	background-color:#D2E0E6;

-	color:#528CE0;

-}

-ol#qunit-tests li.fail{

-	background-color:#EE5757;

-	color:#000;

-}

-ol#qunit-tests li strong {

-	cursor:pointer;

-}

-h1#qunit-header{

-	background-color:#0d3349;

-	margin:0;

-	padding:0.5em 0 0.5em 1em;

-	color:#fff;

-	font-family:"Helvetica Neue Light", "HelveticaNeue-Light", "Helvetica Neue", Calibri, Helvetica, Arial;

-	border-top-right-radius:15px;

-	border-top-left-radius:15px;

-	-moz-border-radius-topright:15px;

-	-moz-border-radius-topleft:15px;

-	-webkit-border-top-right-radius:15px;

-	-webkit-border-top-left-radius:15px;

-	text-shadow: rgba(0, 0, 0, 0.5) 4px 4px 1px;

-}

-h2#qunit-banner{

-	font-family:"Helvetica Neue Light", "HelveticaNeue-Light", "Helvetica Neue", Calibri, Helvetica, Arial;

-	height:5px;

-	margin:0;

-	padding:0;

-}

-h2#qunit-banner.qunit-pass{

-	background-color:#C6E746;

-}

-h2#qunit-banner.qunit-fail, #qunit-testrunner-toolbar {

-	background-color:#EE5757;

-}

-#qunit-testrunner-toolbar {

-	font-family:"Helvetica Neue Light", "HelveticaNeue-Light", "Helvetica Neue", Calibri, Helvetica, Arial;

-	padding:0;

-	/*width:80%;*/

-	padding:0em 0 0.5em 2em;

-	font-size: small;

-}

-h2#qunit-userAgent {

-	font-family:"Helvetica Neue Light", "HelveticaNeue-Light", "Helvetica Neue", Calibri, Helvetica, Arial;

-	background-color:#2b81af;

-	margin:0;

-	padding:0;

-	color:#fff;

-	font-size: small;

-	padding:0.5em 0 0.5em 2.5em;

-	text-shadow: rgba(0, 0, 0, 0.5) 2px 2px 1px;

-}

-p#qunit-testresult{

-	font-family:"Helvetica Neue Light", "HelveticaNeue-Light", "Helvetica Neue", Calibri, Helvetica, Arial;

-	margin:0;

-	font-size: small;

-	color:#2b81af;

-	border-bottom-right-radius:15px;

-	border-bottom-left-radius:15px;

-	-moz-border-radius-bottomright:15px;

-	-moz-border-radius-bottomleft:15px;

-	-webkit-border-bottom-right-radius:15px;

-	-webkit-border-bottom-left-radius:15px;

-	background-color:#D2E0E6;

-	padding:0.5em 0.5em 0.5em 2.5em;

-}

-strong b.fail{

-	color:#710909;

-	}

-strong b.pass{

-	color:#5E740B;

+ol#qunit-tests {
+	font-family:"Helvetica Neue Light", "HelveticaNeue-Light", "Helvetica Neue", Calibri, Helvetica, Arial;
+	margin:0;
+	padding:0;
+	list-style-position:inside;
+
+	font-size: smaller;
+}
+ol#qunit-tests li{
+	padding:0.4em 0.5em 0.4em 2.5em;
+	border-bottom:1px solid #fff;
+	font-size:small;
+	list-style-position:inside;
+}
+ol#qunit-tests li ol{
+	box-shadow: inset 0px 2px 13px #999;
+	-moz-box-shadow: inset 0px 2px 13px #999;
+	-webkit-box-shadow: inset 0px 2px 13px #999;
+	margin-top:0.5em;
+	margin-left:0;
+	padding:0.5em;
+	background-color:#fff;
+	border-radius:15px;
+	-moz-border-radius: 15px;
+	-webkit-border-radius: 15px;
+}
+ol#qunit-tests li li{
+	border-bottom:none;
+	margin:0.5em;
+	background-color:#fff;
+	list-style-position: inside;
+	padding:0.4em 0.5em 0.4em 0.5em;
+}
+
+ol#qunit-tests li li.pass{
+	border-left:26px solid #C6E746;
+	background-color:#fff;
+	color:#5E740B;
+	}
+ol#qunit-tests li li.fail{
+	border-left:26px solid #EE5757;
+	background-color:#fff;
+	color:#710909;
+}
+ol#qunit-tests li.pass{
+	background-color:#D2E0E6;
+	color:#528CE0;
+}
+ol#qunit-tests li.fail{
+	background-color:#EE5757;
+	color:#000;
+}
+ol#qunit-tests li strong {
+	cursor:pointer;
+}
+h1#qunit-header{
+	background-color:#0d3349;
+	margin:0;
+	padding:0.5em 0 0.5em 1em;
+	color:#fff;
+	font-family:"Helvetica Neue Light", "HelveticaNeue-Light", "Helvetica Neue", Calibri, Helvetica, Arial;
+	border-top-right-radius:15px;
+	border-top-left-radius:15px;
+	-moz-border-radius-topright:15px;
+	-moz-border-radius-topleft:15px;
+	-webkit-border-top-right-radius:15px;
+	-webkit-border-top-left-radius:15px;
+	text-shadow: rgba(0, 0, 0, 0.5) 4px 4px 1px;
+}
+h2#qunit-banner{
+	font-family:"Helvetica Neue Light", "HelveticaNeue-Light", "Helvetica Neue", Calibri, Helvetica, Arial;
+	height:5px;
+	margin:0;
+	padding:0;
+}
+h2#qunit-banner.qunit-pass{
+	background-color:#C6E746;
+}
+h2#qunit-banner.qunit-fail, #qunit-testrunner-toolbar {
+	background-color:#EE5757;
+}
+#qunit-testrunner-toolbar {
+	font-family:"Helvetica Neue Light", "HelveticaNeue-Light", "Helvetica Neue", Calibri, Helvetica, Arial;
+	padding:0;
+	/*width:80%;*/
+	padding:0em 0 0.5em 2em;
+	font-size: small;
+}
+h2#qunit-userAgent {
+	font-family:"Helvetica Neue Light", "HelveticaNeue-Light", "Helvetica Neue", Calibri, Helvetica, Arial;
+	background-color:#2b81af;
+	margin:0;
+	padding:0;
+	color:#fff;
+	font-size: small;
+	padding:0.5em 0 0.5em 2.5em;
+	text-shadow: rgba(0, 0, 0, 0.5) 2px 2px 1px;
+}
+p#qunit-testresult{
+	font-family:"Helvetica Neue Light", "HelveticaNeue-Light", "Helvetica Neue", Calibri, Helvetica, Arial;
+	margin:0;
+	font-size: small;
+	color:#2b81af;
+	border-bottom-right-radius:15px;
+	border-bottom-left-radius:15px;
+	-moz-border-radius-bottomright:15px;
+	-moz-border-radius-bottomleft:15px;
+	-webkit-border-bottom-right-radius:15px;
+	-webkit-border-bottom-left-radius:15px;
+	background-color:#D2E0E6;
+	padding:0.5em 0.5em 0.5em 2.5em;
+}
+strong b.fail{
+	color:#710909;
+	}
+strong b.pass{
+	color:#5E740B;
 	}
\ No newline at end of file
diff --git a/src/cobalt/debug/remote/devtools/node_modules/uri-js/tests/qunit.js b/src/third_party/devtools/node_modules/uri-js/tests/qunit.js
similarity index 99%
rename from src/cobalt/debug/remote/devtools/node_modules/uri-js/tests/qunit.js
rename to src/third_party/devtools/node_modules/uri-js/tests/qunit.js
index e449fdf..8bef026 100644
--- a/src/cobalt/debug/remote/devtools/node_modules/uri-js/tests/qunit.js
+++ b/src/third_party/devtools/node_modules/uri-js/tests/qunit.js
@@ -1,1042 +1,1042 @@
-/*

- * QUnit - A JavaScript Unit Testing Framework

- * 

- * http://docs.jquery.com/QUnit

- *

- * Copyright (c) 2009 John Resig, Jörn Zaefferer

- * Dual licensed under the MIT (MIT-LICENSE.txt)

- * and GPL (GPL-LICENSE.txt) licenses.

- */

-

-(function(window) {

-

-var QUnit = {

-

-	// Initialize the configuration options

-	init: function() {

-		config = {

-			stats: { all: 0, bad: 0 },

-			moduleStats: { all: 0, bad: 0 },

-			started: +new Date,

-			blocking: false,

-			autorun: false,

-			assertions: [],

-			filters: [],

-			queue: []

-		};

-

-		var tests = id("qunit-tests"),

-			banner = id("qunit-banner"),

-			result = id("qunit-testresult");

-

-		if ( tests ) {

-			tests.innerHTML = "";

-		}

-

-		if ( banner ) {

-			banner.className = "";

-		}

-

-		if ( result ) {

-			result.parentNode.removeChild( result );

-		}

-	},

-	

-	// call on start of module test to prepend name to all tests

-	module: function(name, testEnvironment) {

-		config.currentModule = name;

-

-		synchronize(function() {

-			if ( config.currentModule ) {

-				QUnit.moduleDone( config.currentModule, config.moduleStats.bad, config.moduleStats.all );

-			}

-

-			config.currentModule = name;

-			config.moduleTestEnvironment = testEnvironment;

-			config.moduleStats = { all: 0, bad: 0 };

-

-			QUnit.moduleStart( name, testEnvironment );

-		});

-	},

-

-	asyncTest: function(testName, expected, callback) {

-		if ( arguments.length === 2 ) {

-			callback = expected;

-			expected = 0;

-		}

-

-		QUnit.test(testName, expected, callback, true);

-	},

-	

-	test: function(testName, expected, callback, async) {

-		var name = testName, testEnvironment, testEnvironmentArg;

-

-		if ( arguments.length === 2 ) {

-			callback = expected;

-			expected = null;

-		}

-		// is 2nd argument a testEnvironment?

-		if ( expected && typeof expected === 'object') {

-			testEnvironmentArg =  expected;

-			expected = null;

-		}

-

-		if ( config.currentModule ) {

-			name = config.currentModule + " module: " + name;

-		}

-

-		if ( !validTest(name) ) {

-			return;

-		}

-

-		synchronize(function() {

-			QUnit.testStart( testName );

-

-			testEnvironment = extend({

-				setup: function() {},

-				teardown: function() {}

-			}, config.moduleTestEnvironment);

-			if (testEnvironmentArg) {

-				extend(testEnvironment,testEnvironmentArg);

-			}

-

-			// allow utility functions to access the current test environment

-			QUnit.current_testEnvironment = testEnvironment;

-			

-			config.assertions = [];

-			config.expected = expected;

-

-			try {

-				if ( !config.pollution ) {

-					saveGlobal();

-				}

-

-				testEnvironment.setup.call(testEnvironment);

-			} catch(e) {

-				QUnit.ok( false, "Setup failed on " + name + ": " + e.message );

-			}

-

-			if ( async ) {

-				QUnit.stop();

-			}

-

-			try {

-				callback.call(testEnvironment);

-			} catch(e) {

-				fail("Test " + name + " died, exception and test follows", e, callback);

-				QUnit.ok( false, "Died on test #" + (config.assertions.length + 1) + ": " + e.message );

-				// else next test will carry the responsibility

-				saveGlobal();

-

-				// Restart the tests if they're blocking

-				if ( config.blocking ) {

-					start();

-				}

-			}

-		});

-

-		synchronize(function() {

-			try {

-				checkPollution();

-				testEnvironment.teardown.call(testEnvironment);

-			} catch(e) {

-				QUnit.ok( false, "Teardown failed on " + name + ": " + e.message );

-			}

-

-			try {

-				QUnit.reset();

-			} catch(e) {

-				fail("reset() failed, following Test " + name + ", exception and reset fn follows", e, reset);

-			}

-

-			if ( config.expected && config.expected != config.assertions.length ) {

-				QUnit.ok( false, "Expected " + config.expected + " assertions, but " + config.assertions.length + " were run" );

-			}

-

-			var good = 0, bad = 0,

-				tests = id("qunit-tests");

-

-			config.stats.all += config.assertions.length;

-			config.moduleStats.all += config.assertions.length;

-

-			if ( tests ) {

-				var ol  = document.createElement("ol");

-				ol.style.display = "none";

-

-				for ( var i = 0; i < config.assertions.length; i++ ) {

-					var assertion = config.assertions[i];

-

-					var li = document.createElement("li");

-					li.className = assertion.result ? "pass" : "fail";

-					li.appendChild(document.createTextNode(assertion.message || "(no message)"));

-					ol.appendChild( li );

-

-					if ( assertion.result ) {

-						good++;

-					} else {

-						bad++;

-						config.stats.bad++;

-						config.moduleStats.bad++;

-					}

-				}

-

-				var b = document.createElement("strong");

-				b.innerHTML = name + " <b style='color:black;'>(<b class='fail'>" + bad + "</b>, <b class='pass'>" + good + "</b>, " + config.assertions.length + ")</b>";

-				

-				addEvent(b, "click", function() {

-					var next = b.nextSibling, display = next.style.display;

-					next.style.display = display === "none" ? "block" : "none";

-				});

-				

-				addEvent(b, "dblclick", function(e) {

-					var target = e && e.target ? e.target : window.event.srcElement;

-					if ( target.nodeName.toLowerCase() === "strong" ) {

-						var text = "", node = target.firstChild;

-

-						while ( node.nodeType === 3 ) {

-							text += node.nodeValue;

-							node = node.nextSibling;

-						}

-

-						text = text.replace(/(^\s*|\s*$)/g, "");

-

-						if ( window.location ) {

-							window.location.href = window.location.href.match(/^(.+?)(\?.*)?$/)[1] + "?" + encodeURIComponent(text);

-						}

-					}

-				});

-

-				var li = document.createElement("li");

-				li.className = bad ? "fail" : "pass";

-				li.appendChild( b );

-				li.appendChild( ol );

-				tests.appendChild( li );

-

-				if ( bad ) {

-					var toolbar = id("qunit-testrunner-toolbar");

-					if ( toolbar ) {

-						toolbar.style.display = "block";

-						id("qunit-filter-pass").disabled = null;

-						id("qunit-filter-missing").disabled = null;

-					}

-				}

-

-			} else {

-				for ( var i = 0; i < config.assertions.length; i++ ) {

-					if ( !config.assertions[i].result ) {

-						bad++;

-						config.stats.bad++;

-						config.moduleStats.bad++;

-					}

-				}

-			}

-

-			QUnit.testDone( testName, bad, config.assertions.length );

-

-			if ( !window.setTimeout && !config.queue.length ) {

-				done();

-			}

-		});

-

-		if ( window.setTimeout && !config.doneTimer ) {

-			config.doneTimer = window.setTimeout(function(){

-				if ( !config.queue.length ) {

-					done();

-				} else {

-					synchronize( done );

-				}

-			}, 13);

-		}

-	},

-	

-	/**

-	 * Specify the number of expected assertions to gurantee that failed test (no assertions are run at all) don't slip through.

-	 */

-	expect: function(asserts) {

-		config.expected = asserts;

-	},

-

-	/**

-	 * Asserts true.

-	 * @example ok( "asdfasdf".length > 5, "There must be at least 5 chars" );

-	 */

-	ok: function(a, msg) {

-		QUnit.log(a, msg);

-

-		config.assertions.push({

-			result: !!a,

-			message: msg

-		});

-	},

-

-	/**

-	 * Checks that the first two arguments are equal, with an optional message.

-	 * Prints out both actual and expected values.

-	 *

-	 * Prefered to ok( actual == expected, message )

-	 *

-	 * @example equal( format("Received {0} bytes.", 2), "Received 2 bytes." );

-	 *

-	 * @param Object actual

-	 * @param Object expected

-	 * @param String message (optional)

-	 */

-	equal: function(actual, expected, message) {

-		push(expected == actual, actual, expected, message);

-	},

-

-	notEqual: function(actual, expected, message) {

-		push(expected != actual, actual, expected, message);

-	},

-	

-	deepEqual: function(a, b, message) {

-		push(QUnit.equiv(a, b), a, b, message);

-	},

-

-	notDeepEqual: function(a, b, message) {

-		push(!QUnit.equiv(a, b), a, b, message);

-	},

-

-	strictEqual: function(actual, expected, message) {

-		push(expected === actual, actual, expected, message);

-	},

-

-	notStrictEqual: function(actual, expected, message) {

-		push(expected !== actual, actual, expected, message);

-	},

-	

-	start: function() {

-		// A slight delay, to avoid any current callbacks

-		if ( window.setTimeout ) {

-			window.setTimeout(function() {

-				if ( config.timeout ) {

-					clearTimeout(config.timeout);

-				}

-

-				config.blocking = false;

-				process();

-			}, 13);

-		} else {

-			config.blocking = false;

-			process();

-		}

-	},

-	

-	stop: function(timeout) {

-		config.blocking = true;

-

-		if ( timeout && window.setTimeout ) {

-			config.timeout = window.setTimeout(function() {

-				QUnit.ok( false, "Test timed out" );

-				QUnit.start();

-			}, timeout);

-		}

-	},

-	

-	/**

-	 * Resets the test setup. Useful for tests that modify the DOM.

-	 */

-	reset: function() {

-		if ( window.jQuery ) {

-			jQuery("#main").html( config.fixture );

-			jQuery.event.global = {};

-			jQuery.ajaxSettings = extend({}, config.ajaxSettings);

-		}

-	},

-	

-	/**

-	 * Trigger an event on an element.

-	 *

-	 * @example triggerEvent( document.body, "click" );

-	 *

-	 * @param DOMElement elem

-	 * @param String type

-	 */

-	triggerEvent: function( elem, type, event ) {

-		if ( document.createEvent ) {

-			event = document.createEvent("MouseEvents");

-			event.initMouseEvent(type, true, true, elem.ownerDocument.defaultView,

-				0, 0, 0, 0, 0, false, false, false, false, 0, null);

-			elem.dispatchEvent( event );

-

-		} else if ( elem.fireEvent ) {

-			elem.fireEvent("on"+type);

-		}

-	},

-	

-	// Safe object type checking

-	is: function( type, obj ) {

-		return Object.prototype.toString.call( obj ) === "[object "+ type +"]";

-	},

-	

-	// Logging callbacks

-	done: function(failures, total) {},

-	log: function(result, message) {},

-	testStart: function(name) {},

-	testDone: function(name, failures, total) {},

-	moduleStart: function(name, testEnvironment) {},

-	moduleDone: function(name, failures, total) {}

-};

-

-// Backwards compatibility, deprecated

-QUnit.equals = QUnit.equal;

-QUnit.same = QUnit.deepEqual;

-

-// Maintain internal state

-var config = {

-	// The queue of tests to run

-	queue: [],

-

-	// block until document ready

-	blocking: true

-};

-

-// Load paramaters

-(function() {

-	var location = window.location || { search: "", protocol: "file:" },

-		GETParams = location.search.slice(1).split('&');

-

-	for ( var i = 0; i < GETParams.length; i++ ) {

-		GETParams[i] = decodeURIComponent( GETParams[i] );

-		if ( GETParams[i] === "noglobals" ) {

-			GETParams.splice( i, 1 );

-			i--;

-			config.noglobals = true;

-		} else if ( GETParams[i].search('=') > -1 ) {

-			GETParams.splice( i, 1 );

-			i--;

-		}

-	}

-	

-	// restrict modules/tests by get parameters

-	config.filters = GETParams;

-	

-	// Figure out if we're running the tests from a server or not

-	QUnit.isLocal = !!(location.protocol === 'file:');

-})();

-

-// Expose the API as global variables, unless an 'exports'

-// object exists, in that case we assume we're in CommonJS

-if ( typeof exports === "undefined" || typeof require === "undefined" ) {

-	extend(window, QUnit);

-	window.QUnit = QUnit;

-} else {

-	extend(exports, QUnit);

-	exports.QUnit = QUnit;

-}

-

-if ( typeof document === "undefined" || document.readyState === "complete" ) {

-	config.autorun = true;

-}

-

-addEvent(window, "load", function() {

-	// Initialize the config, saving the execution queue

-	var oldconfig = extend({}, config);

-	QUnit.init();

-	extend(config, oldconfig);

-

-	config.blocking = false;

-

-	var userAgent = id("qunit-userAgent");

-	if ( userAgent ) {

-		userAgent.innerHTML = navigator.userAgent;

-	}

-	

-	var toolbar = id("qunit-testrunner-toolbar");

-	if ( toolbar ) {

-		toolbar.style.display = "none";

-		

-		var filter = document.createElement("input");

-		filter.type = "checkbox";

-		filter.id = "qunit-filter-pass";

-		filter.disabled = true;

-		addEvent( filter, "click", function() {

-			var li = document.getElementsByTagName("li");

-			for ( var i = 0; i < li.length; i++ ) {

-				if ( li[i].className.indexOf("pass") > -1 ) {

-					li[i].style.display = filter.checked ? "none" : "";

-				}

-			}

-		});

-		toolbar.appendChild( filter );

-

-		var label = document.createElement("label");

-		label.setAttribute("for", "qunit-filter-pass");

-		label.innerHTML = "Hide passed tests";

-		toolbar.appendChild( label );

-

-		var missing = document.createElement("input");

-		missing.type = "checkbox";

-		missing.id = "qunit-filter-missing";

-		missing.disabled = true;

-		addEvent( missing, "click", function() {

-			var li = document.getElementsByTagName("li");

-			for ( var i = 0; i < li.length; i++ ) {

-				if ( li[i].className.indexOf("fail") > -1 && li[i].innerHTML.indexOf('missing test - untested code is broken code') > - 1 ) {

-					li[i].parentNode.parentNode.style.display = missing.checked ? "none" : "block";

-				}

-			}

-		});

-		toolbar.appendChild( missing );

-

-		label = document.createElement("label");

-		label.setAttribute("for", "qunit-filter-missing");

-		label.innerHTML = "Hide missing tests (untested code is broken code)";

-		toolbar.appendChild( label );

-	}

-

-	var main = id('main');

-	if ( main ) {

-		config.fixture = main.innerHTML;

-	}

-

-	if ( window.jQuery ) {

-		config.ajaxSettings = window.jQuery.ajaxSettings;

-	}

-

-	QUnit.start();

-});

-

-function done() {

-	if ( config.doneTimer && window.clearTimeout ) {

-		window.clearTimeout( config.doneTimer );

-		config.doneTimer = null;

-	}

-

-	if ( config.queue.length ) {

-		config.doneTimer = window.setTimeout(function(){

-			if ( !config.queue.length ) {

-				done();

-			} else {

-				synchronize( done );

-			}

-		}, 13);

-

-		return;

-	}

-

-	config.autorun = true;

-

-	// Log the last module results

-	if ( config.currentModule ) {

-		QUnit.moduleDone( config.currentModule, config.moduleStats.bad, config.moduleStats.all );

-	}

-

-	var banner = id("qunit-banner"),

-		tests = id("qunit-tests"),

-		html = ['Tests completed in ',

-		+new Date - config.started, ' milliseconds.<br/>',

-		'<span class="passed">', config.stats.all - config.stats.bad, '</span> tests of <span class="total">', config.stats.all, '</span> passed, <span class="failed">', config.stats.bad,'</span> failed.'].join('');

-

-	if ( banner ) {

-		banner.className = (config.stats.bad ? "qunit-fail" : "qunit-pass");

-	}

-

-	if ( tests ) {	

-		var result = id("qunit-testresult");

-

-		if ( !result ) {

-			result = document.createElement("p");

-			result.id = "qunit-testresult";

-			result.className = "result";

-			tests.parentNode.insertBefore( result, tests.nextSibling );

-		}

-

-		result.innerHTML = html;

-	}

-

-	QUnit.done( config.stats.bad, config.stats.all );

-}

-

-function validTest( name ) {

-	var i = config.filters.length,

-		run = false;

-

-	if ( !i ) {

-		return true;

-	}

-	

-	while ( i-- ) {

-		var filter = config.filters[i],

-			not = filter.charAt(0) == '!';

-

-		if ( not ) {

-			filter = filter.slice(1);

-		}

-

-		if ( name.indexOf(filter) !== -1 ) {

-			return !not;

-		}

-

-		if ( not ) {

-			run = true;

-		}

-	}

-

-	return run;

-}

-

-function push(result, actual, expected, message) {

-	message = message || (result ? "okay" : "failed");

-	QUnit.ok( result, result ? message + ": " + expected : message + ", expected: " + QUnit.jsDump.parse(expected) + " result: " + QUnit.jsDump.parse(actual) );

-}

-

-function synchronize( callback ) {

-	config.queue.push( callback );

-

-	if ( config.autorun && !config.blocking ) {

-		process();

-	}

-}

-

-function process() {

-	while ( config.queue.length && !config.blocking ) {

-		config.queue.shift()();

-	}

-}

-

-function saveGlobal() {

-	config.pollution = [];

-	

-	if ( config.noglobals ) {

-		for ( var key in window ) {

-			config.pollution.push( key );

-		}

-	}

-}

-

-function checkPollution( name ) {

-	var old = config.pollution;

-	saveGlobal();

-	

-	var newGlobals = diff( old, config.pollution );

-	if ( newGlobals.length > 0 ) {

-		ok( false, "Introduced global variable(s): " + newGlobals.join(", ") );

-		config.expected++;

-	}

-

-	var deletedGlobals = diff( config.pollution, old );

-	if ( deletedGlobals.length > 0 ) {

-		ok( false, "Deleted global variable(s): " + deletedGlobals.join(", ") );

-		config.expected++;

-	}

-}

-

-// returns a new Array with the elements that are in a but not in b

-function diff( a, b ) {

-	var result = a.slice();

-	for ( var i = 0; i < result.length; i++ ) {

-		for ( var j = 0; j < b.length; j++ ) {

-			if ( result[i] === b[j] ) {

-				result.splice(i, 1);

-				i--;

-				break;

-			}

-		}

-	}

-	return result;

-}

-

-function fail(message, exception, callback) {

-	if ( typeof console !== "undefined" && console.error && console.warn ) {

-		console.error(message);

-		console.error(exception);

-		console.warn(callback.toString());

-

-	} else if ( window.opera && opera.postError ) {

-		opera.postError(message, exception, callback.toString);

-	}

-}

-

-function extend(a, b) {

-	for ( var prop in b ) {

-		a[prop] = b[prop];

-	}

-

-	return a;

-}

-

-function addEvent(elem, type, fn) {

-	if ( elem.addEventListener ) {

-		elem.addEventListener( type, fn, false );

-	} else if ( elem.attachEvent ) {

-		elem.attachEvent( "on" + type, fn );

-	} else {

-		fn();

-	}

-}

-

-function id(name) {

-	return !!(typeof document !== "undefined" && document && document.getElementById) &&

-		document.getElementById( name );

-}

-

-// Test for equality any JavaScript type.

-// Discussions and reference: http://philrathe.com/articles/equiv

-// Test suites: http://philrathe.com/tests/equiv

-// Author: Philippe Rathé <prathe@gmail.com>

-QUnit.equiv = function () {

-

-    var innerEquiv; // the real equiv function

-    var callers = []; // stack to decide between skip/abort functions

-

-

-    // Determine what is o.

-    function hoozit(o) {

-        if (QUnit.is("String", o)) {

-            return "string";

-            

-        } else if (QUnit.is("Boolean", o)) {

-            return "boolean";

-

-        } else if (QUnit.is("Number", o)) {

-

-            if (isNaN(o)) {

-                return "nan";

-            } else {

-                return "number";

-            }

-

-        } else if (typeof o === "undefined") {

-            return "undefined";

-

-        // consider: typeof null === object

-        } else if (o === null) {

-            return "null";

-

-        // consider: typeof [] === object

-        } else if (QUnit.is( "Array", o)) {

-            return "array";

-        

-        // consider: typeof new Date() === object

-        } else if (QUnit.is( "Date", o)) {

-            return "date";

-

-        // consider: /./ instanceof Object;

-        //           /./ instanceof RegExp;

-        //          typeof /./ === "function"; // => false in IE and Opera,

-        //                                          true in FF and Safari

-        } else if (QUnit.is( "RegExp", o)) {

-            return "regexp";

-

-        } else if (typeof o === "object") {

-            return "object";

-

-        } else if (QUnit.is( "Function", o)) {

-            return "function";

-        } else {

-            return undefined;

-        }

-    }

-

-    // Call the o related callback with the given arguments.

-    function bindCallbacks(o, callbacks, args) {

-        var prop = hoozit(o);

-        if (prop) {

-            if (hoozit(callbacks[prop]) === "function") {

-                return callbacks[prop].apply(callbacks, args);

-            } else {

-                return callbacks[prop]; // or undefined

-            }

-        }

-    }

-    

-    var callbacks = function () {

-

-        // for string, boolean, number and null

-        function useStrictEquality(b, a) {

-            if (b instanceof a.constructor || a instanceof b.constructor) {

-                // to catch short annotaion VS 'new' annotation of a declaration

-                // e.g. var i = 1;

-                //      var j = new Number(1);

-                return a == b;

-            } else {

-                return a === b;

-            }

-        }

-

-        return {

-            "string": useStrictEquality,

-            "boolean": useStrictEquality,

-            "number": useStrictEquality,

-            "null": useStrictEquality,

-            "undefined": useStrictEquality,

-

-            "nan": function (b) {

-                return isNaN(b);

-            },

-

-            "date": function (b, a) {

-                return hoozit(b) === "date" && a.valueOf() === b.valueOf();

-            },

-

-            "regexp": function (b, a) {

-                return hoozit(b) === "regexp" &&

-                    a.source === b.source && // the regex itself

-                    a.global === b.global && // and its modifers (gmi) ...

-                    a.ignoreCase === b.ignoreCase &&

-                    a.multiline === b.multiline;

-            },

-

-            // - skip when the property is a method of an instance (OOP)

-            // - abort otherwise,

-            //   initial === would have catch identical references anyway

-            "function": function () {

-                var caller = callers[callers.length - 1];

-                return caller !== Object &&

-                        typeof caller !== "undefined";

-            },

-

-            "array": function (b, a) {

-                var i;

-                var len;

-

-                // b could be an object literal here

-                if ( ! (hoozit(b) === "array")) {

-                    return false;

-                }

-

-                len = a.length;

-                if (len !== b.length) { // safe and faster

-                    return false;

-                }

-                for (i = 0; i < len; i++) {

-                    if ( ! innerEquiv(a[i], b[i])) {

-                        return false;

-                    }

-                }

-                return true;

-            },

-

-            "object": function (b, a) {

-                var i;

-                var eq = true; // unless we can proove it

-                var aProperties = [], bProperties = []; // collection of strings

-

-                // comparing constructors is more strict than using instanceof

-                if ( a.constructor !== b.constructor) {

-                    return false;

-                }

-

-                // stack constructor before traversing properties

-                callers.push(a.constructor);

-

-                for (i in a) { // be strict: don't ensures hasOwnProperty and go deep

-

-                    aProperties.push(i); // collect a's properties

-

-                    if ( ! innerEquiv(a[i], b[i])) {

-                        eq = false;

-                    }

-                }

-

-                callers.pop(); // unstack, we are done

-

-                for (i in b) {

-                    bProperties.push(i); // collect b's properties

-                }

-

-                // Ensures identical properties name

-                return eq && innerEquiv(aProperties.sort(), bProperties.sort());

-            }

-        };

-    }();

-

-    innerEquiv = function () { // can take multiple arguments

-        var args = Array.prototype.slice.apply(arguments);

-        if (args.length < 2) {

-            return true; // end transition

-        }

-

-        return (function (a, b) {

-            if (a === b) {

-                return true; // catch the most you can

-            } else if (a === null || b === null || typeof a === "undefined" || typeof b === "undefined" || hoozit(a) !== hoozit(b)) {

-                return false; // don't lose time with error prone cases

-            } else {

-                return bindCallbacks(a, callbacks, [b, a]);

-            }

-

-        // apply transition with (1..n) arguments

-        })(args[0], args[1]) && arguments.callee.apply(this, args.splice(1, args.length -1));

-    };

-

-    return innerEquiv;

-

-}();

-

-/**

- * jsDump

- * Copyright (c) 2008 Ariel Flesler - aflesler(at)gmail(dot)com | http://flesler.blogspot.com

- * Licensed under BSD (http://www.opensource.org/licenses/bsd-license.php)

- * Date: 5/15/2008

- * @projectDescription Advanced and extensible data dumping for Javascript.

- * @version 1.0.0

- * @author Ariel Flesler

- * @link {http://flesler.blogspot.com/2008/05/jsdump-pretty-dump-of-any-javascript.html}

- */

-QUnit.jsDump = (function() {

-	function quote( str ) {

-		return '"' + str.toString().replace(/"/g, '\\"') + '"';

-	};

-	function literal( o ) {

-		return o + '';	

-	};

-	function join( pre, arr, post ) {

-		var s = jsDump.separator(),

-			base = jsDump.indent(),

-			inner = jsDump.indent(1);

-		if ( arr.join )

-			arr = arr.join( ',' + s + inner );

-		if ( !arr )

-			return pre + post;

-		return [ pre, inner + arr, base + post ].join(s);

-	};

-	function array( arr ) {

-		var i = arr.length,	ret = Array(i);					

-		this.up();

-		while ( i-- )

-			ret[i] = this.parse( arr[i] );				

-		this.down();

-		return join( '[', ret, ']' );

-	};

-	

-	var reName = /^function (\w+)/;

-	

-	var jsDump = {

-		parse:function( obj, type ) { //type is used mostly internally, you can fix a (custom)type in advance

-			var	parser = this.parsers[ type || this.typeOf(obj) ];

-			type = typeof parser;			

-			

-			return type == 'function' ? parser.call( this, obj ) :

-				   type == 'string' ? parser :

-				   this.parsers.error;

-		},

-		typeOf:function( obj ) {

-			var type;

-			if ( obj === null ) {

-				type = "null";

-			} else if (typeof obj === "undefined") {

-				type = "undefined";

-			} else if (QUnit.is("RegExp", obj)) {

-				type = "regexp";

-			} else if (QUnit.is("Date", obj)) {

-				type = "date";

-			} else if (QUnit.is("Function", obj)) {

-				type = "function";

-			} else if (QUnit.is("Array", obj)) {

-				type = "array";

-			} else if (QUnit.is("Window", obj) || QUnit.is("global", obj)) {

-				type = "window";

-			} else if (QUnit.is("HTMLDocument", obj)) {

-				type = "document";

-			} else if (QUnit.is("HTMLCollection", obj) || QUnit.is("NodeList", obj)) {

-				type = "nodelist";

-			} else if (/^\[object HTML/.test(Object.prototype.toString.call( obj ))) {

-				type = "node";

-			} else {

-				type = typeof obj;

-			}

-			return type;

-		},

-		separator:function() {

-			return this.multiline ?	this.HTML ? '<br />' : '\n' : this.HTML ? '&nbsp;' : ' ';

-		},

-		indent:function( extra ) {// extra can be a number, shortcut for increasing-calling-decreasing

-			if ( !this.multiline )

-				return '';

-			var chr = this.indentChar;

-			if ( this.HTML )

-				chr = chr.replace(/\t/g,'   ').replace(/ /g,'&nbsp;');

-			return Array( this._depth_ + (extra||0) ).join(chr);

-		},

-		up:function( a ) {

-			this._depth_ += a || 1;

-		},

-		down:function( a ) {

-			this._depth_ -= a || 1;

-		},

-		setParser:function( name, parser ) {

-			this.parsers[name] = parser;

-		},

-		// The next 3 are exposed so you can use them

-		quote:quote, 

-		literal:literal,

-		join:join,

-		//

-		_depth_: 1,

-		// This is the list of parsers, to modify them, use jsDump.setParser

-		parsers:{

-			window: '[Window]',

-			document: '[Document]',

-			error:'[ERROR]', //when no parser is found, shouldn't happen

-			unknown: '[Unknown]',

-			'null':'null',

-			undefined:'undefined',

-			'function':function( fn ) {

-				var ret = 'function',

-					name = 'name' in fn ? fn.name : (reName.exec(fn)||[])[1];//functions never have name in IE

-				if ( name )

-					ret += ' ' + name;

-				ret += '(';

-				

-				ret = [ ret, this.parse( fn, 'functionArgs' ), '){'].join('');

-				return join( ret, this.parse(fn,'functionCode'), '}' );

-			},

-			array: array,

-			nodelist: array,

-			arguments: array,

-			object:function( map ) {

-				var ret = [ ];

-				this.up();

-				for ( var key in map )

-					ret.push( this.parse(key,'key') + ': ' + this.parse(map[key]) );

-				this.down();

-				return join( '{', ret, '}' );

-			},

-			node:function( node ) {

-				var open = this.HTML ? '&lt;' : '<',

-					close = this.HTML ? '&gt;' : '>';

-					

-				var tag = node.nodeName.toLowerCase(),

-					ret = open + tag;

-					

-				for ( var a in this.DOMAttrs ) {

-					var val = node[this.DOMAttrs[a]];

-					if ( val )

-						ret += ' ' + a + '=' + this.parse( val, 'attribute' );

-				}

-				return ret + close + open + '/' + tag + close;

-			},

-			functionArgs:function( fn ) {//function calls it internally, it's the arguments part of the function

-				var l = fn.length;

-				if ( !l ) return '';				

-				

-				var args = Array(l);

-				while ( l-- )

-					args[l] = String.fromCharCode(97+l);//97 is 'a'

-				return ' ' + args.join(', ') + ' ';

-			},

-			key:quote, //object calls it internally, the key part of an item in a map

-			functionCode:'[code]', //function calls it internally, it's the content of the function

-			attribute:quote, //node calls it internally, it's an html attribute value

-			string:quote,

-			date:quote,

-			regexp:literal, //regex

-			number:literal,

-			'boolean':literal

-		},

-		DOMAttrs:{//attributes to dump from nodes, name=>realName

-			id:'id',

-			name:'name',

-			'class':'className'

-		},

-		HTML:true,//if true, entities are escaped ( <, >, \t, space and \n )

-		indentChar:'   ',//indentation unit

-		multiline:true //if true, items in a collection, are separated by a \n, else just a space.

-	};

-

-	return jsDump;

-})();

-

-})(this);

+/*
+ * QUnit - A JavaScript Unit Testing Framework
+ * 
+ * http://docs.jquery.com/QUnit
+ *
+ * Copyright (c) 2009 John Resig, Jörn Zaefferer
+ * Dual licensed under the MIT (MIT-LICENSE.txt)
+ * and GPL (GPL-LICENSE.txt) licenses.
+ */
+
+(function(window) {
+
+var QUnit = {
+
+	// Initialize the configuration options
+	init: function() {
+		config = {
+			stats: { all: 0, bad: 0 },
+			moduleStats: { all: 0, bad: 0 },
+			started: +new Date,
+			blocking: false,
+			autorun: false,
+			assertions: [],
+			filters: [],
+			queue: []
+		};
+
+		var tests = id("qunit-tests"),
+			banner = id("qunit-banner"),
+			result = id("qunit-testresult");
+
+		if ( tests ) {
+			tests.innerHTML = "";
+		}
+
+		if ( banner ) {
+			banner.className = "";
+		}
+
+		if ( result ) {
+			result.parentNode.removeChild( result );
+		}
+	},
+	
+	// call on start of module test to prepend name to all tests
+	module: function(name, testEnvironment) {
+		config.currentModule = name;
+
+		synchronize(function() {
+			if ( config.currentModule ) {
+				QUnit.moduleDone( config.currentModule, config.moduleStats.bad, config.moduleStats.all );
+			}
+
+			config.currentModule = name;
+			config.moduleTestEnvironment = testEnvironment;
+			config.moduleStats = { all: 0, bad: 0 };
+
+			QUnit.moduleStart( name, testEnvironment );
+		});
+	},
+
+	asyncTest: function(testName, expected, callback) {
+		if ( arguments.length === 2 ) {
+			callback = expected;
+			expected = 0;
+		}
+
+		QUnit.test(testName, expected, callback, true);
+	},
+	
+	test: function(testName, expected, callback, async) {
+		var name = testName, testEnvironment, testEnvironmentArg;
+
+		if ( arguments.length === 2 ) {
+			callback = expected;
+			expected = null;
+		}
+		// is 2nd argument a testEnvironment?
+		if ( expected && typeof expected === 'object') {
+			testEnvironmentArg =  expected;
+			expected = null;
+		}
+
+		if ( config.currentModule ) {
+			name = config.currentModule + " module: " + name;
+		}
+
+		if ( !validTest(name) ) {
+			return;
+		}
+
+		synchronize(function() {
+			QUnit.testStart( testName );
+
+			testEnvironment = extend({
+				setup: function() {},
+				teardown: function() {}
+			}, config.moduleTestEnvironment);
+			if (testEnvironmentArg) {
+				extend(testEnvironment,testEnvironmentArg);
+			}
+
+			// allow utility functions to access the current test environment
+			QUnit.current_testEnvironment = testEnvironment;
+			
+			config.assertions = [];
+			config.expected = expected;
+
+			try {
+				if ( !config.pollution ) {
+					saveGlobal();
+				}
+
+				testEnvironment.setup.call(testEnvironment);
+			} catch(e) {
+				QUnit.ok( false, "Setup failed on " + name + ": " + e.message );
+			}
+
+			if ( async ) {
+				QUnit.stop();
+			}
+
+			try {
+				callback.call(testEnvironment);
+			} catch(e) {
+				fail("Test " + name + " died, exception and test follows", e, callback);
+				QUnit.ok( false, "Died on test #" + (config.assertions.length + 1) + ": " + e.message );
+				// else next test will carry the responsibility
+				saveGlobal();
+
+				// Restart the tests if they're blocking
+				if ( config.blocking ) {
+					start();
+				}
+			}
+		});
+
+		synchronize(function() {
+			try {
+				checkPollution();
+				testEnvironment.teardown.call(testEnvironment);
+			} catch(e) {
+				QUnit.ok( false, "Teardown failed on " + name + ": " + e.message );
+			}
+
+			try {
+				QUnit.reset();
+			} catch(e) {
+				fail("reset() failed, following Test " + name + ", exception and reset fn follows", e, reset);
+			}
+
+			if ( config.expected && config.expected != config.assertions.length ) {
+				QUnit.ok( false, "Expected " + config.expected + " assertions, but " + config.assertions.length + " were run" );
+			}
+
+			var good = 0, bad = 0,
+				tests = id("qunit-tests");
+
+			config.stats.all += config.assertions.length;
+			config.moduleStats.all += config.assertions.length;
+
+			if ( tests ) {
+				var ol  = document.createElement("ol");
+				ol.style.display = "none";
+
+				for ( var i = 0; i < config.assertions.length; i++ ) {
+					var assertion = config.assertions[i];
+
+					var li = document.createElement("li");
+					li.className = assertion.result ? "pass" : "fail";
+					li.appendChild(document.createTextNode(assertion.message || "(no message)"));
+					ol.appendChild( li );
+
+					if ( assertion.result ) {
+						good++;
+					} else {
+						bad++;
+						config.stats.bad++;
+						config.moduleStats.bad++;
+					}
+				}
+
+				var b = document.createElement("strong");
+				b.innerHTML = name + " <b style='color:black;'>(<b class='fail'>" + bad + "</b>, <b class='pass'>" + good + "</b>, " + config.assertions.length + ")</b>";
+				
+				addEvent(b, "click", function() {
+					var next = b.nextSibling, display = next.style.display;
+					next.style.display = display === "none" ? "block" : "none";
+				});
+				
+				addEvent(b, "dblclick", function(e) {
+					var target = e && e.target ? e.target : window.event.srcElement;
+					if ( target.nodeName.toLowerCase() === "strong" ) {
+						var text = "", node = target.firstChild;
+
+						while ( node.nodeType === 3 ) {
+							text += node.nodeValue;
+							node = node.nextSibling;
+						}
+
+						text = text.replace(/(^\s*|\s*$)/g, "");
+
+						if ( window.location ) {
+							window.location.href = window.location.href.match(/^(.+?)(\?.*)?$/)[1] + "?" + encodeURIComponent(text);
+						}
+					}
+				});
+
+				var li = document.createElement("li");
+				li.className = bad ? "fail" : "pass";
+				li.appendChild( b );
+				li.appendChild( ol );
+				tests.appendChild( li );
+
+				if ( bad ) {
+					var toolbar = id("qunit-testrunner-toolbar");
+					if ( toolbar ) {
+						toolbar.style.display = "block";
+						id("qunit-filter-pass").disabled = null;
+						id("qunit-filter-missing").disabled = null;
+					}
+				}
+
+			} else {
+				for ( var i = 0; i < config.assertions.length; i++ ) {
+					if ( !config.assertions[i].result ) {
+						bad++;
+						config.stats.bad++;
+						config.moduleStats.bad++;
+					}
+				}
+			}
+
+			QUnit.testDone( testName, bad, config.assertions.length );
+
+			if ( !window.setTimeout && !config.queue.length ) {
+				done();
+			}
+		});
+
+		if ( window.setTimeout && !config.doneTimer ) {
+			config.doneTimer = window.setTimeout(function(){
+				if ( !config.queue.length ) {
+					done();
+				} else {
+					synchronize( done );
+				}
+			}, 13);
+		}
+	},
+	
+	/**
+	 * Specify the number of expected assertions to gurantee that failed test (no assertions are run at all) don't slip through.
+	 */
+	expect: function(asserts) {
+		config.expected = asserts;
+	},
+
+	/**
+	 * Asserts true.
+	 * @example ok( "asdfasdf".length > 5, "There must be at least 5 chars" );
+	 */
+	ok: function(a, msg) {
+		QUnit.log(a, msg);
+
+		config.assertions.push({
+			result: !!a,
+			message: msg
+		});
+	},
+
+	/**
+	 * Checks that the first two arguments are equal, with an optional message.
+	 * Prints out both actual and expected values.
+	 *
+	 * Prefered to ok( actual == expected, message )
+	 *
+	 * @example equal( format("Received {0} bytes.", 2), "Received 2 bytes." );
+	 *
+	 * @param Object actual
+	 * @param Object expected
+	 * @param String message (optional)
+	 */
+	equal: function(actual, expected, message) {
+		push(expected == actual, actual, expected, message);
+	},
+
+	notEqual: function(actual, expected, message) {
+		push(expected != actual, actual, expected, message);
+	},
+	
+	deepEqual: function(a, b, message) {
+		push(QUnit.equiv(a, b), a, b, message);
+	},
+
+	notDeepEqual: function(a, b, message) {
+		push(!QUnit.equiv(a, b), a, b, message);
+	},
+
+	strictEqual: function(actual, expected, message) {
+		push(expected === actual, actual, expected, message);
+	},
+
+	notStrictEqual: function(actual, expected, message) {
+		push(expected !== actual, actual, expected, message);
+	},
+	
+	start: function() {
+		// A slight delay, to avoid any current callbacks
+		if ( window.setTimeout ) {
+			window.setTimeout(function() {
+				if ( config.timeout ) {
+					clearTimeout(config.timeout);
+				}
+
+				config.blocking = false;
+				process();
+			}, 13);
+		} else {
+			config.blocking = false;
+			process();
+		}
+	},
+	
+	stop: function(timeout) {
+		config.blocking = true;
+
+		if ( timeout && window.setTimeout ) {
+			config.timeout = window.setTimeout(function() {
+				QUnit.ok( false, "Test timed out" );
+				QUnit.start();
+			}, timeout);
+		}
+	},
+	
+	/**
+	 * Resets the test setup. Useful for tests that modify the DOM.
+	 */
+	reset: function() {
+		if ( window.jQuery ) {
+			jQuery("#main").html( config.fixture );
+			jQuery.event.global = {};
+			jQuery.ajaxSettings = extend({}, config.ajaxSettings);
+		}
+	},
+	
+	/**
+	 * Trigger an event on an element.
+	 *
+	 * @example triggerEvent( document.body, "click" );
+	 *
+	 * @param DOMElement elem
+	 * @param String type
+	 */
+	triggerEvent: function( elem, type, event ) {
+		if ( document.createEvent ) {
+			event = document.createEvent("MouseEvents");
+			event.initMouseEvent(type, true, true, elem.ownerDocument.defaultView,
+				0, 0, 0, 0, 0, false, false, false, false, 0, null);
+			elem.dispatchEvent( event );
+
+		} else if ( elem.fireEvent ) {
+			elem.fireEvent("on"+type);
+		}
+	},
+	
+	// Safe object type checking
+	is: function( type, obj ) {
+		return Object.prototype.toString.call( obj ) === "[object "+ type +"]";
+	},
+	
+	// Logging callbacks
+	done: function(failures, total) {},
+	log: function(result, message) {},
+	testStart: function(name) {},
+	testDone: function(name, failures, total) {},
+	moduleStart: function(name, testEnvironment) {},
+	moduleDone: function(name, failures, total) {}
+};
+
+// Backwards compatibility, deprecated
+QUnit.equals = QUnit.equal;
+QUnit.same = QUnit.deepEqual;
+
+// Maintain internal state
+var config = {
+	// The queue of tests to run
+	queue: [],
+
+	// block until document ready
+	blocking: true
+};
+
+// Load paramaters
+(function() {
+	var location = window.location || { search: "", protocol: "file:" },
+		GETParams = location.search.slice(1).split('&');
+
+	for ( var i = 0; i < GETParams.length; i++ ) {
+		GETParams[i] = decodeURIComponent( GETParams[i] );
+		if ( GETParams[i] === "noglobals" ) {
+			GETParams.splice( i, 1 );
+			i--;
+			config.noglobals = true;
+		} else if ( GETParams[i].search('=') > -1 ) {
+			GETParams.splice( i, 1 );
+			i--;
+		}
+	}
+	
+	// restrict modules/tests by get parameters
+	config.filters = GETParams;
+	
+	// Figure out if we're running the tests from a server or not
+	QUnit.isLocal = !!(location.protocol === 'file:');
+})();
+
+// Expose the API as global variables, unless an 'exports'
+// object exists, in that case we assume we're in CommonJS
+if ( typeof exports === "undefined" || typeof require === "undefined" ) {
+	extend(window, QUnit);
+	window.QUnit = QUnit;
+} else {
+	extend(exports, QUnit);
+	exports.QUnit = QUnit;
+}
+
+if ( typeof document === "undefined" || document.readyState === "complete" ) {
+	config.autorun = true;
+}
+
+addEvent(window, "load", function() {
+	// Initialize the config, saving the execution queue
+	var oldconfig = extend({}, config);
+	QUnit.init();
+	extend(config, oldconfig);
+
+	config.blocking = false;
+
+	var userAgent = id("qunit-userAgent");
+	if ( userAgent ) {
+		userAgent.innerHTML = navigator.userAgent;
+	}
+	
+	var toolbar = id("qunit-testrunner-toolbar");
+	if ( toolbar ) {
+		toolbar.style.display = "none";
+		
+		var filter = document.createElement("input");
+		filter.type = "checkbox";
+		filter.id = "qunit-filter-pass";
+		filter.disabled = true;
+		addEvent( filter, "click", function() {
+			var li = document.getElementsByTagName("li");
+			for ( var i = 0; i < li.length; i++ ) {
+				if ( li[i].className.indexOf("pass") > -1 ) {
+					li[i].style.display = filter.checked ? "none" : "";
+				}
+			}
+		});
+		toolbar.appendChild( filter );
+
+		var label = document.createElement("label");
+		label.setAttribute("for", "qunit-filter-pass");
+		label.innerHTML = "Hide passed tests";
+		toolbar.appendChild( label );
+
+		var missing = document.createElement("input");
+		missing.type = "checkbox";
+		missing.id = "qunit-filter-missing";
+		missing.disabled = true;
+		addEvent( missing, "click", function() {
+			var li = document.getElementsByTagName("li");
+			for ( var i = 0; i < li.length; i++ ) {
+				if ( li[i].className.indexOf("fail") > -1 && li[i].innerHTML.indexOf('missing test - untested code is broken code') > - 1 ) {
+					li[i].parentNode.parentNode.style.display = missing.checked ? "none" : "block";
+				}
+			}
+		});
+		toolbar.appendChild( missing );
+
+		label = document.createElement("label");
+		label.setAttribute("for", "qunit-filter-missing");
+		label.innerHTML = "Hide missing tests (untested code is broken code)";
+		toolbar.appendChild( label );
+	}
+
+	var main = id('main');
+	if ( main ) {
+		config.fixture = main.innerHTML;
+	}
+
+	if ( window.jQuery ) {
+		config.ajaxSettings = window.jQuery.ajaxSettings;
+	}
+
+	QUnit.start();
+});
+
+function done() {
+	if ( config.doneTimer && window.clearTimeout ) {
+		window.clearTimeout( config.doneTimer );
+		config.doneTimer = null;
+	}
+
+	if ( config.queue.length ) {
+		config.doneTimer = window.setTimeout(function(){
+			if ( !config.queue.length ) {
+				done();
+			} else {
+				synchronize( done );
+			}
+		}, 13);
+
+		return;
+	}
+
+	config.autorun = true;
+
+	// Log the last module results
+	if ( config.currentModule ) {
+		QUnit.moduleDone( config.currentModule, config.moduleStats.bad, config.moduleStats.all );
+	}
+
+	var banner = id("qunit-banner"),
+		tests = id("qunit-tests"),
+		html = ['Tests completed in ',
+		+new Date - config.started, ' milliseconds.<br/>',
+		'<span class="passed">', config.stats.all - config.stats.bad, '</span> tests of <span class="total">', config.stats.all, '</span> passed, <span class="failed">', config.stats.bad,'</span> failed.'].join('');
+
+	if ( banner ) {
+		banner.className = (config.stats.bad ? "qunit-fail" : "qunit-pass");
+	}
+
+	if ( tests ) {	
+		var result = id("qunit-testresult");
+
+		if ( !result ) {
+			result = document.createElement("p");
+			result.id = "qunit-testresult";
+			result.className = "result";
+			tests.parentNode.insertBefore( result, tests.nextSibling );
+		}
+
+		result.innerHTML = html;
+	}
+
+	QUnit.done( config.stats.bad, config.stats.all );
+}
+
+function validTest( name ) {
+	var i = config.filters.length,
+		run = false;
+
+	if ( !i ) {
+		return true;
+	}
+	
+	while ( i-- ) {
+		var filter = config.filters[i],
+			not = filter.charAt(0) == '!';
+
+		if ( not ) {
+			filter = filter.slice(1);
+		}
+
+		if ( name.indexOf(filter) !== -1 ) {
+			return !not;
+		}
+
+		if ( not ) {
+			run = true;
+		}
+	}
+
+	return run;
+}
+
+function push(result, actual, expected, message) {
+	message = message || (result ? "okay" : "failed");
+	QUnit.ok( result, result ? message + ": " + expected : message + ", expected: " + QUnit.jsDump.parse(expected) + " result: " + QUnit.jsDump.parse(actual) );
+}
+
+function synchronize( callback ) {
+	config.queue.push( callback );
+
+	if ( config.autorun && !config.blocking ) {
+		process();
+	}
+}
+
+function process() {
+	while ( config.queue.length && !config.blocking ) {
+		config.queue.shift()();
+	}
+}
+
+function saveGlobal() {
+	config.pollution = [];
+	
+	if ( config.noglobals ) {
+		for ( var key in window ) {
+			config.pollution.push( key );
+		}
+	}
+}
+
+function checkPollution( name ) {
+	var old = config.pollution;
+	saveGlobal();
+	
+	var newGlobals = diff( old, config.pollution );
+	if ( newGlobals.length > 0 ) {
+		ok( false, "Introduced global variable(s): " + newGlobals.join(", ") );
+		config.expected++;
+	}
+
+	var deletedGlobals = diff( config.pollution, old );
+	if ( deletedGlobals.length > 0 ) {
+		ok( false, "Deleted global variable(s): " + deletedGlobals.join(", ") );
+		config.expected++;
+	}
+}
+
+// returns a new Array with the elements that are in a but not in b
+function diff( a, b ) {
+	var result = a.slice();
+	for ( var i = 0; i < result.length; i++ ) {
+		for ( var j = 0; j < b.length; j++ ) {
+			if ( result[i] === b[j] ) {
+				result.splice(i, 1);
+				i--;
+				break;
+			}
+		}
+	}
+	return result;
+}
+
+function fail(message, exception, callback) {
+	if ( typeof console !== "undefined" && console.error && console.warn ) {
+		console.error(message);
+		console.error(exception);
+		console.warn(callback.toString());
+
+	} else if ( window.opera && opera.postError ) {
+		opera.postError(message, exception, callback.toString);
+	}
+}
+
+function extend(a, b) {
+	for ( var prop in b ) {
+		a[prop] = b[prop];
+	}
+
+	return a;
+}
+
+function addEvent(elem, type, fn) {
+	if ( elem.addEventListener ) {
+		elem.addEventListener( type, fn, false );
+	} else if ( elem.attachEvent ) {
+		elem.attachEvent( "on" + type, fn );
+	} else {
+		fn();
+	}
+}
+
+function id(name) {
+	return !!(typeof document !== "undefined" && document && document.getElementById) &&
+		document.getElementById( name );
+}
+
+// Test for equality any JavaScript type.
+// Discussions and reference: http://philrathe.com/articles/equiv
+// Test suites: http://philrathe.com/tests/equiv
+// Author: Philippe Rathé <prathe@gmail.com>
+QUnit.equiv = function () {
+
+    var innerEquiv; // the real equiv function
+    var callers = []; // stack to decide between skip/abort functions
+
+
+    // Determine what is o.
+    function hoozit(o) {
+        if (QUnit.is("String", o)) {
+            return "string";
+            
+        } else if (QUnit.is("Boolean", o)) {
+            return "boolean";
+
+        } else if (QUnit.is("Number", o)) {
+
+            if (isNaN(o)) {
+                return "nan";
+            } else {
+                return "number";
+            }
+
+        } else if (typeof o === "undefined") {
+            return "undefined";
+
+        // consider: typeof null === object
+        } else if (o === null) {
+            return "null";
+
+        // consider: typeof [] === object
+        } else if (QUnit.is( "Array", o)) {
+            return "array";
+        
+        // consider: typeof new Date() === object
+        } else if (QUnit.is( "Date", o)) {
+            return "date";
+
+        // consider: /./ instanceof Object;
+        //           /./ instanceof RegExp;
+        //          typeof /./ === "function"; // => false in IE and Opera,
+        //                                          true in FF and Safari
+        } else if (QUnit.is( "RegExp", o)) {
+            return "regexp";
+
+        } else if (typeof o === "object") {
+            return "object";
+
+        } else if (QUnit.is( "Function", o)) {
+            return "function";
+        } else {
+            return undefined;
+        }
+    }
+
+    // Call the o related callback with the given arguments.
+    function bindCallbacks(o, callbacks, args) {
+        var prop = hoozit(o);
+        if (prop) {
+            if (hoozit(callbacks[prop]) === "function") {
+                return callbacks[prop].apply(callbacks, args);
+            } else {
+                return callbacks[prop]; // or undefined
+            }
+        }
+    }
+    
+    var callbacks = function () {
+
+        // for string, boolean, number and null
+        function useStrictEquality(b, a) {
+            if (b instanceof a.constructor || a instanceof b.constructor) {
+                // to catch short annotaion VS 'new' annotation of a declaration
+                // e.g. var i = 1;
+                //      var j = new Number(1);
+                return a == b;
+            } else {
+                return a === b;
+            }
+        }
+
+        return {
+            "string": useStrictEquality,
+            "boolean": useStrictEquality,
+            "number": useStrictEquality,
+            "null": useStrictEquality,
+            "undefined": useStrictEquality,
+
+            "nan": function (b) {
+                return isNaN(b);
+            },
+
+            "date": function (b, a) {
+                return hoozit(b) === "date" && a.valueOf() === b.valueOf();
+            },
+
+            "regexp": function (b, a) {
+                return hoozit(b) === "regexp" &&
+                    a.source === b.source && // the regex itself
+                    a.global === b.global && // and its modifers (gmi) ...
+                    a.ignoreCase === b.ignoreCase &&
+                    a.multiline === b.multiline;
+            },
+
+            // - skip when the property is a method of an instance (OOP)
+            // - abort otherwise,
+            //   initial === would have catch identical references anyway
+            "function": function () {
+                var caller = callers[callers.length - 1];
+                return caller !== Object &&
+                        typeof caller !== "undefined";
+            },
+
+            "array": function (b, a) {
+                var i;
+                var len;
+
+                // b could be an object literal here
+                if ( ! (hoozit(b) === "array")) {
+                    return false;
+                }
+
+                len = a.length;
+                if (len !== b.length) { // safe and faster
+                    return false;
+                }
+                for (i = 0; i < len; i++) {
+                    if ( ! innerEquiv(a[i], b[i])) {
+                        return false;
+                    }
+                }
+                return true;
+            },
+
+            "object": function (b, a) {
+                var i;
+                var eq = true; // unless we can proove it
+                var aProperties = [], bProperties = []; // collection of strings
+
+                // comparing constructors is more strict than using instanceof
+                if ( a.constructor !== b.constructor) {
+                    return false;
+                }
+
+                // stack constructor before traversing properties
+                callers.push(a.constructor);
+
+                for (i in a) { // be strict: don't ensures hasOwnProperty and go deep
+
+                    aProperties.push(i); // collect a's properties
+
+                    if ( ! innerEquiv(a[i], b[i])) {
+                        eq = false;
+                    }
+                }
+
+                callers.pop(); // unstack, we are done
+
+                for (i in b) {
+                    bProperties.push(i); // collect b's properties
+                }
+
+                // Ensures identical properties name
+                return eq && innerEquiv(aProperties.sort(), bProperties.sort());
+            }
+        };
+    }();
+
+    innerEquiv = function () { // can take multiple arguments
+        var args = Array.prototype.slice.apply(arguments);
+        if (args.length < 2) {
+            return true; // end transition
+        }
+
+        return (function (a, b) {
+            if (a === b) {
+                return true; // catch the most you can
+            } else if (a === null || b === null || typeof a === "undefined" || typeof b === "undefined" || hoozit(a) !== hoozit(b)) {
+                return false; // don't lose time with error prone cases
+            } else {
+                return bindCallbacks(a, callbacks, [b, a]);
+            }
+
+        // apply transition with (1..n) arguments
+        })(args[0], args[1]) && arguments.callee.apply(this, args.splice(1, args.length -1));
+    };
+
+    return innerEquiv;
+
+}();
+
+/**
+ * jsDump
+ * Copyright (c) 2008 Ariel Flesler - aflesler(at)gmail(dot)com | http://flesler.blogspot.com
+ * Licensed under BSD (http://www.opensource.org/licenses/bsd-license.php)
+ * Date: 5/15/2008
+ * @projectDescription Advanced and extensible data dumping for Javascript.
+ * @version 1.0.0
+ * @author Ariel Flesler
+ * @link {http://flesler.blogspot.com/2008/05/jsdump-pretty-dump-of-any-javascript.html}
+ */
+QUnit.jsDump = (function() {
+	function quote( str ) {
+		return '"' + str.toString().replace(/"/g, '\\"') + '"';
+	};
+	function literal( o ) {
+		return o + '';	
+	};
+	function join( pre, arr, post ) {
+		var s = jsDump.separator(),
+			base = jsDump.indent(),
+			inner = jsDump.indent(1);
+		if ( arr.join )
+			arr = arr.join( ',' + s + inner );
+		if ( !arr )
+			return pre + post;
+		return [ pre, inner + arr, base + post ].join(s);
+	};
+	function array( arr ) {
+		var i = arr.length,	ret = Array(i);					
+		this.up();
+		while ( i-- )
+			ret[i] = this.parse( arr[i] );				
+		this.down();
+		return join( '[', ret, ']' );
+	};
+	
+	var reName = /^function (\w+)/;
+	
+	var jsDump = {
+		parse:function( obj, type ) { //type is used mostly internally, you can fix a (custom)type in advance
+			var	parser = this.parsers[ type || this.typeOf(obj) ];
+			type = typeof parser;			
+			
+			return type == 'function' ? parser.call( this, obj ) :
+				   type == 'string' ? parser :
+				   this.parsers.error;
+		},
+		typeOf:function( obj ) {
+			var type;
+			if ( obj === null ) {
+				type = "null";
+			} else if (typeof obj === "undefined") {
+				type = "undefined";
+			} else if (QUnit.is("RegExp", obj)) {
+				type = "regexp";
+			} else if (QUnit.is("Date", obj)) {
+				type = "date";
+			} else if (QUnit.is("Function", obj)) {
+				type = "function";
+			} else if (QUnit.is("Array", obj)) {
+				type = "array";
+			} else if (QUnit.is("Window", obj) || QUnit.is("global", obj)) {
+				type = "window";
+			} else if (QUnit.is("HTMLDocument", obj)) {
+				type = "document";
+			} else if (QUnit.is("HTMLCollection", obj) || QUnit.is("NodeList", obj)) {
+				type = "nodelist";
+			} else if (/^\[object HTML/.test(Object.prototype.toString.call( obj ))) {
+				type = "node";
+			} else {
+				type = typeof obj;
+			}
+			return type;
+		},
+		separator:function() {
+			return this.multiline ?	this.HTML ? '<br />' : '\n' : this.HTML ? '&nbsp;' : ' ';
+		},
+		indent:function( extra ) {// extra can be a number, shortcut for increasing-calling-decreasing
+			if ( !this.multiline )
+				return '';
+			var chr = this.indentChar;
+			if ( this.HTML )
+				chr = chr.replace(/\t/g,'   ').replace(/ /g,'&nbsp;');
+			return Array( this._depth_ + (extra||0) ).join(chr);
+		},
+		up:function( a ) {
+			this._depth_ += a || 1;
+		},
+		down:function( a ) {
+			this._depth_ -= a || 1;
+		},
+		setParser:function( name, parser ) {
+			this.parsers[name] = parser;
+		},
+		// The next 3 are exposed so you can use them
+		quote:quote, 
+		literal:literal,
+		join:join,
+		//
+		_depth_: 1,
+		// This is the list of parsers, to modify them, use jsDump.setParser
+		parsers:{
+			window: '[Window]',
+			document: '[Document]',
+			error:'[ERROR]', //when no parser is found, shouldn't happen
+			unknown: '[Unknown]',
+			'null':'null',
+			undefined:'undefined',
+			'function':function( fn ) {
+				var ret = 'function',
+					name = 'name' in fn ? fn.name : (reName.exec(fn)||[])[1];//functions never have name in IE
+				if ( name )
+					ret += ' ' + name;
+				ret += '(';
+				
+				ret = [ ret, this.parse( fn, 'functionArgs' ), '){'].join('');
+				return join( ret, this.parse(fn,'functionCode'), '}' );
+			},
+			array: array,
+			nodelist: array,
+			arguments: array,
+			object:function( map ) {
+				var ret = [ ];
+				this.up();
+				for ( var key in map )
+					ret.push( this.parse(key,'key') + ': ' + this.parse(map[key]) );
+				this.down();
+				return join( '{', ret, '}' );
+			},
+			node:function( node ) {
+				var open = this.HTML ? '&lt;' : '<',
+					close = this.HTML ? '&gt;' : '>';
+					
+				var tag = node.nodeName.toLowerCase(),
+					ret = open + tag;
+					
+				for ( var a in this.DOMAttrs ) {
+					var val = node[this.DOMAttrs[a]];
+					if ( val )
+						ret += ' ' + a + '=' + this.parse( val, 'attribute' );
+				}
+				return ret + close + open + '/' + tag + close;
+			},
+			functionArgs:function( fn ) {//function calls it internally, it's the arguments part of the function
+				var l = fn.length;
+				if ( !l ) return '';				
+				
+				var args = Array(l);
+				while ( l-- )
+					args[l] = String.fromCharCode(97+l);//97 is 'a'
+				return ' ' + args.join(', ') + ' ';
+			},
+			key:quote, //object calls it internally, the key part of an item in a map
+			functionCode:'[code]', //function calls it internally, it's the content of the function
+			attribute:quote, //node calls it internally, it's an html attribute value
+			string:quote,
+			date:quote,
+			regexp:literal, //regex
+			number:literal,
+			'boolean':literal
+		},
+		DOMAttrs:{//attributes to dump from nodes, name=>realName
+			id:'id',
+			name:'name',
+			'class':'className'
+		},
+		HTML:true,//if true, entities are escaped ( <, >, \t, space and \n )
+		indentChar:'   ',//indentation unit
+		multiline:true //if true, items in a collection, are separated by a \n, else just a space.
+	};
+
+	return jsDump;
+})();
+
+})(this);
diff --git a/src/cobalt/debug/remote/devtools/node_modules/uri-js/tests/test-es5-min.html b/src/third_party/devtools/node_modules/uri-js/tests/test-es5-min.html
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/uri-js/tests/test-es5-min.html
rename to src/third_party/devtools/node_modules/uri-js/tests/test-es5-min.html
diff --git a/src/cobalt/debug/remote/devtools/node_modules/uri-js/tests/test-es5.html b/src/third_party/devtools/node_modules/uri-js/tests/test-es5.html
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/uri-js/tests/test-es5.html
rename to src/third_party/devtools/node_modules/uri-js/tests/test-es5.html
diff --git a/src/cobalt/debug/remote/devtools/node_modules/uri-js/tests/tests.js b/src/third_party/devtools/node_modules/uri-js/tests/tests.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/uri-js/tests/tests.js
rename to src/third_party/devtools/node_modules/uri-js/tests/tests.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/uri-js/tsconfig.json b/src/third_party/devtools/node_modules/uri-js/tsconfig.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/uri-js/tsconfig.json
rename to src/third_party/devtools/node_modules/uri-js/tsconfig.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/uri-js/yarn.lock b/src/third_party/devtools/node_modules/uri-js/yarn.lock
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/uri-js/yarn.lock
rename to src/third_party/devtools/node_modules/uri-js/yarn.lock
diff --git a/src/cobalt/debug/remote/devtools/node_modules/url/.npmignore b/src/third_party/devtools/node_modules/url/.npmignore
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/url/.npmignore
rename to src/third_party/devtools/node_modules/url/.npmignore
diff --git a/src/cobalt/debug/remote/devtools/node_modules/url/.travis.yml b/src/third_party/devtools/node_modules/url/.travis.yml
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/url/.travis.yml
rename to src/third_party/devtools/node_modules/url/.travis.yml
diff --git a/src/cobalt/debug/remote/devtools/node_modules/url/.zuul.yml b/src/third_party/devtools/node_modules/url/.zuul.yml
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/url/.zuul.yml
rename to src/third_party/devtools/node_modules/url/.zuul.yml
diff --git a/src/cobalt/debug/remote/devtools/node_modules/url/LICENSE b/src/third_party/devtools/node_modules/url/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/url/LICENSE
rename to src/third_party/devtools/node_modules/url/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/url/README.md b/src/third_party/devtools/node_modules/url/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/url/README.md
rename to src/third_party/devtools/node_modules/url/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/url/node_modules/punycode/LICENSE-MIT.txt b/src/third_party/devtools/node_modules/url/node_modules/punycode/LICENSE-MIT.txt
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/url/node_modules/punycode/LICENSE-MIT.txt
rename to src/third_party/devtools/node_modules/url/node_modules/punycode/LICENSE-MIT.txt
diff --git a/src/cobalt/debug/remote/devtools/node_modules/url/node_modules/punycode/README.md b/src/third_party/devtools/node_modules/url/node_modules/punycode/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/url/node_modules/punycode/README.md
rename to src/third_party/devtools/node_modules/url/node_modules/punycode/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/url/node_modules/punycode/package.json b/src/third_party/devtools/node_modules/url/node_modules/punycode/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/url/node_modules/punycode/package.json
rename to src/third_party/devtools/node_modules/url/node_modules/punycode/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/url/node_modules/punycode/punycode.js b/src/third_party/devtools/node_modules/url/node_modules/punycode/punycode.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/url/node_modules/punycode/punycode.js
rename to src/third_party/devtools/node_modules/url/node_modules/punycode/punycode.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/url/package.json b/src/third_party/devtools/node_modules/url/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/url/package.json
rename to src/third_party/devtools/node_modules/url/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/url/test.js b/src/third_party/devtools/node_modules/url/test.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/url/test.js
rename to src/third_party/devtools/node_modules/url/test.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/url/url.js b/src/third_party/devtools/node_modules/url/url.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/url/url.js
rename to src/third_party/devtools/node_modules/url/url.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/url/util.js b/src/third_party/devtools/node_modules/url/util.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/url/util.js
rename to src/third_party/devtools/node_modules/url/util.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/useragent/.travis.yml b/src/third_party/devtools/node_modules/useragent/.travis.yml
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/useragent/.travis.yml
rename to src/third_party/devtools/node_modules/useragent/.travis.yml
diff --git a/src/cobalt/debug/remote/devtools/node_modules/useragent/CHANGELOG.md b/src/third_party/devtools/node_modules/useragent/CHANGELOG.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/useragent/CHANGELOG.md
rename to src/third_party/devtools/node_modules/useragent/CHANGELOG.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/useragent/CREDITS b/src/third_party/devtools/node_modules/useragent/CREDITS
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/useragent/CREDITS
rename to src/third_party/devtools/node_modules/useragent/CREDITS
diff --git a/src/cobalt/debug/remote/devtools/node_modules/useragent/LICENSE b/src/third_party/devtools/node_modules/useragent/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/useragent/LICENSE
rename to src/third_party/devtools/node_modules/useragent/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/useragent/README.md b/src/third_party/devtools/node_modules/useragent/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/useragent/README.md
rename to src/third_party/devtools/node_modules/useragent/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/useragent/bin/testfiles.js b/src/third_party/devtools/node_modules/useragent/bin/testfiles.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/useragent/bin/testfiles.js
rename to src/third_party/devtools/node_modules/useragent/bin/testfiles.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/useragent/bin/update.js b/src/third_party/devtools/node_modules/useragent/bin/update.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/useragent/bin/update.js
rename to src/third_party/devtools/node_modules/useragent/bin/update.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/useragent/features/index.js b/src/third_party/devtools/node_modules/useragent/features/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/useragent/features/index.js
rename to src/third_party/devtools/node_modules/useragent/features/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/useragent/index.js b/src/third_party/devtools/node_modules/useragent/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/useragent/index.js
rename to src/third_party/devtools/node_modules/useragent/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/useragent/lib/donotedit b/src/third_party/devtools/node_modules/useragent/lib/donotedit
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/useragent/lib/donotedit
rename to src/third_party/devtools/node_modules/useragent/lib/donotedit
diff --git a/src/cobalt/debug/remote/devtools/node_modules/useragent/lib/regexps.js b/src/third_party/devtools/node_modules/useragent/lib/regexps.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/useragent/lib/regexps.js
rename to src/third_party/devtools/node_modules/useragent/lib/regexps.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/useragent/lib/update.js b/src/third_party/devtools/node_modules/useragent/lib/update.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/useragent/lib/update.js
rename to src/third_party/devtools/node_modules/useragent/lib/update.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/useragent/package.json b/src/third_party/devtools/node_modules/useragent/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/useragent/package.json
rename to src/third_party/devtools/node_modules/useragent/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/useragent/static/user_agent.after.yaml b/src/third_party/devtools/node_modules/useragent/static/user_agent.after.yaml
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/useragent/static/user_agent.after.yaml
rename to src/third_party/devtools/node_modules/useragent/static/user_agent.after.yaml
diff --git a/src/cobalt/debug/remote/devtools/node_modules/useragent/static/user_agent.before.yaml b/src/third_party/devtools/node_modules/useragent/static/user_agent.before.yaml
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/useragent/static/user_agent.before.yaml
rename to src/third_party/devtools/node_modules/useragent/static/user_agent.before.yaml
diff --git a/src/cobalt/debug/remote/devtools/node_modules/util-deprecate/History.md b/src/third_party/devtools/node_modules/util-deprecate/History.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/util-deprecate/History.md
rename to src/third_party/devtools/node_modules/util-deprecate/History.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/util-deprecate/LICENSE b/src/third_party/devtools/node_modules/util-deprecate/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/util-deprecate/LICENSE
rename to src/third_party/devtools/node_modules/util-deprecate/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/util-deprecate/README.md b/src/third_party/devtools/node_modules/util-deprecate/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/util-deprecate/README.md
rename to src/third_party/devtools/node_modules/util-deprecate/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/util-deprecate/browser.js b/src/third_party/devtools/node_modules/util-deprecate/browser.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/util-deprecate/browser.js
rename to src/third_party/devtools/node_modules/util-deprecate/browser.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/util-deprecate/node.js b/src/third_party/devtools/node_modules/util-deprecate/node.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/util-deprecate/node.js
rename to src/third_party/devtools/node_modules/util-deprecate/node.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/util-deprecate/package.json b/src/third_party/devtools/node_modules/util-deprecate/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/util-deprecate/package.json
rename to src/third_party/devtools/node_modules/util-deprecate/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/util-extend/LICENSE b/src/third_party/devtools/node_modules/util-extend/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/util-extend/LICENSE
rename to src/third_party/devtools/node_modules/util-extend/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/util-extend/README.md b/src/third_party/devtools/node_modules/util-extend/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/util-extend/README.md
rename to src/third_party/devtools/node_modules/util-extend/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/util-extend/extend.js b/src/third_party/devtools/node_modules/util-extend/extend.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/util-extend/extend.js
rename to src/third_party/devtools/node_modules/util-extend/extend.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/util-extend/package.json b/src/third_party/devtools/node_modules/util-extend/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/util-extend/package.json
rename to src/third_party/devtools/node_modules/util-extend/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/util-extend/test.js b/src/third_party/devtools/node_modules/util-extend/test.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/util-extend/test.js
rename to src/third_party/devtools/node_modules/util-extend/test.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/util/CHANGELOG.md b/src/third_party/devtools/node_modules/util/CHANGELOG.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/util/CHANGELOG.md
rename to src/third_party/devtools/node_modules/util/CHANGELOG.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/util/LICENSE b/src/third_party/devtools/node_modules/util/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/util/LICENSE
rename to src/third_party/devtools/node_modules/util/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/util/README.md b/src/third_party/devtools/node_modules/util/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/util/README.md
rename to src/third_party/devtools/node_modules/util/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/util/package.json b/src/third_party/devtools/node_modules/util/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/util/package.json
rename to src/third_party/devtools/node_modules/util/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/util/support/isBuffer.js b/src/third_party/devtools/node_modules/util/support/isBuffer.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/util/support/isBuffer.js
rename to src/third_party/devtools/node_modules/util/support/isBuffer.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/util/support/isBufferBrowser.js b/src/third_party/devtools/node_modules/util/support/isBufferBrowser.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/util/support/isBufferBrowser.js
rename to src/third_party/devtools/node_modules/util/support/isBufferBrowser.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/util/support/types.js b/src/third_party/devtools/node_modules/util/support/types.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/util/support/types.js
rename to src/third_party/devtools/node_modules/util/support/types.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/util/util.js b/src/third_party/devtools/node_modules/util/util.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/util/util.js
rename to src/third_party/devtools/node_modules/util/util.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/utils-merge/.npmignore b/src/third_party/devtools/node_modules/utils-merge/.npmignore
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/utils-merge/.npmignore
rename to src/third_party/devtools/node_modules/utils-merge/.npmignore
diff --git a/src/cobalt/debug/remote/devtools/node_modules/utils-merge/LICENSE b/src/third_party/devtools/node_modules/utils-merge/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/utils-merge/LICENSE
rename to src/third_party/devtools/node_modules/utils-merge/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/utils-merge/README.md b/src/third_party/devtools/node_modules/utils-merge/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/utils-merge/README.md
rename to src/third_party/devtools/node_modules/utils-merge/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/utils-merge/index.js b/src/third_party/devtools/node_modules/utils-merge/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/utils-merge/index.js
rename to src/third_party/devtools/node_modules/utils-merge/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/utils-merge/package.json b/src/third_party/devtools/node_modules/utils-merge/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/utils-merge/package.json
rename to src/third_party/devtools/node_modules/utils-merge/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/validate-npm-package-license/LICENSE b/src/third_party/devtools/node_modules/validate-npm-package-license/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/validate-npm-package-license/LICENSE
rename to src/third_party/devtools/node_modules/validate-npm-package-license/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/validate-npm-package-license/README.md b/src/third_party/devtools/node_modules/validate-npm-package-license/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/validate-npm-package-license/README.md
rename to src/third_party/devtools/node_modules/validate-npm-package-license/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/validate-npm-package-license/index.js b/src/third_party/devtools/node_modules/validate-npm-package-license/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/validate-npm-package-license/index.js
rename to src/third_party/devtools/node_modules/validate-npm-package-license/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/validate-npm-package-license/package.json b/src/third_party/devtools/node_modules/validate-npm-package-license/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/validate-npm-package-license/package.json
rename to src/third_party/devtools/node_modules/validate-npm-package-license/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/vm-browserify/.travis.yml b/src/third_party/devtools/node_modules/vm-browserify/.travis.yml
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/vm-browserify/.travis.yml
rename to src/third_party/devtools/node_modules/vm-browserify/.travis.yml
diff --git a/src/cobalt/debug/remote/devtools/node_modules/vm-browserify/CHANGELOG.md b/src/third_party/devtools/node_modules/vm-browserify/CHANGELOG.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/vm-browserify/CHANGELOG.md
rename to src/third_party/devtools/node_modules/vm-browserify/CHANGELOG.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/vm-browserify/LICENSE b/src/third_party/devtools/node_modules/vm-browserify/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/vm-browserify/LICENSE
rename to src/third_party/devtools/node_modules/vm-browserify/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/vm-browserify/example/run/bundle.js b/src/third_party/devtools/node_modules/vm-browserify/example/run/bundle.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/vm-browserify/example/run/bundle.js
rename to src/third_party/devtools/node_modules/vm-browserify/example/run/bundle.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/vm-browserify/example/run/entry.js b/src/third_party/devtools/node_modules/vm-browserify/example/run/entry.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/vm-browserify/example/run/entry.js
rename to src/third_party/devtools/node_modules/vm-browserify/example/run/entry.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/vm-browserify/example/run/index.html b/src/third_party/devtools/node_modules/vm-browserify/example/run/index.html
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/vm-browserify/example/run/index.html
rename to src/third_party/devtools/node_modules/vm-browserify/example/run/index.html
diff --git a/src/cobalt/debug/remote/devtools/node_modules/vm-browserify/example/run/server.js b/src/third_party/devtools/node_modules/vm-browserify/example/run/server.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/vm-browserify/example/run/server.js
rename to src/third_party/devtools/node_modules/vm-browserify/example/run/server.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/vm-browserify/index.js b/src/third_party/devtools/node_modules/vm-browserify/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/vm-browserify/index.js
rename to src/third_party/devtools/node_modules/vm-browserify/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/vm-browserify/package.json b/src/third_party/devtools/node_modules/vm-browserify/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/vm-browserify/package.json
rename to src/third_party/devtools/node_modules/vm-browserify/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/vm-browserify/readme.markdown b/src/third_party/devtools/node_modules/vm-browserify/readme.markdown
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/vm-browserify/readme.markdown
rename to src/third_party/devtools/node_modules/vm-browserify/readme.markdown
diff --git a/src/cobalt/debug/remote/devtools/node_modules/vm-browserify/test/vm.js b/src/third_party/devtools/node_modules/vm-browserify/test/vm.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/vm-browserify/test/vm.js
rename to src/third_party/devtools/node_modules/vm-browserify/test/vm.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/void-elements/.npmignore b/src/third_party/devtools/node_modules/void-elements/.npmignore
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/void-elements/.npmignore
rename to src/third_party/devtools/node_modules/void-elements/.npmignore
diff --git a/src/cobalt/debug/remote/devtools/node_modules/void-elements/.travis.yml b/src/third_party/devtools/node_modules/void-elements/.travis.yml
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/void-elements/.travis.yml
rename to src/third_party/devtools/node_modules/void-elements/.travis.yml
diff --git a/src/cobalt/debug/remote/devtools/node_modules/void-elements/LICENSE b/src/third_party/devtools/node_modules/void-elements/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/void-elements/LICENSE
rename to src/third_party/devtools/node_modules/void-elements/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/void-elements/README.md b/src/third_party/devtools/node_modules/void-elements/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/void-elements/README.md
rename to src/third_party/devtools/node_modules/void-elements/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/void-elements/index.js b/src/third_party/devtools/node_modules/void-elements/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/void-elements/index.js
rename to src/third_party/devtools/node_modules/void-elements/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/void-elements/package.json b/src/third_party/devtools/node_modules/void-elements/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/void-elements/package.json
rename to src/third_party/devtools/node_modules/void-elements/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/void-elements/pre-publish.js b/src/third_party/devtools/node_modules/void-elements/pre-publish.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/void-elements/pre-publish.js
rename to src/third_party/devtools/node_modules/void-elements/pre-publish.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/void-elements/test/index.js b/src/third_party/devtools/node_modules/void-elements/test/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/void-elements/test/index.js
rename to src/third_party/devtools/node_modules/void-elements/test/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/wcwidth/.npmignore b/src/third_party/devtools/node_modules/wcwidth/.npmignore
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/wcwidth/.npmignore
rename to src/third_party/devtools/node_modules/wcwidth/.npmignore
diff --git a/src/cobalt/debug/remote/devtools/node_modules/wcwidth/LICENSE b/src/third_party/devtools/node_modules/wcwidth/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/wcwidth/LICENSE
rename to src/third_party/devtools/node_modules/wcwidth/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/wcwidth/Readme.md b/src/third_party/devtools/node_modules/wcwidth/Readme.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/wcwidth/Readme.md
rename to src/third_party/devtools/node_modules/wcwidth/Readme.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/wcwidth/combining.js b/src/third_party/devtools/node_modules/wcwidth/combining.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/wcwidth/combining.js
rename to src/third_party/devtools/node_modules/wcwidth/combining.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/wcwidth/docs/index.md b/src/third_party/devtools/node_modules/wcwidth/docs/index.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/wcwidth/docs/index.md
rename to src/third_party/devtools/node_modules/wcwidth/docs/index.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/wcwidth/index.js b/src/third_party/devtools/node_modules/wcwidth/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/wcwidth/index.js
rename to src/third_party/devtools/node_modules/wcwidth/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/wcwidth/package.json b/src/third_party/devtools/node_modules/wcwidth/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/wcwidth/package.json
rename to src/third_party/devtools/node_modules/wcwidth/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/wcwidth/test/index.js b/src/third_party/devtools/node_modules/wcwidth/test/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/wcwidth/test/index.js
rename to src/third_party/devtools/node_modules/wcwidth/test/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/which-module/CHANGELOG.md b/src/third_party/devtools/node_modules/which-module/CHANGELOG.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/which-module/CHANGELOG.md
rename to src/third_party/devtools/node_modules/which-module/CHANGELOG.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/which-module/LICENSE b/src/third_party/devtools/node_modules/which-module/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/which-module/LICENSE
rename to src/third_party/devtools/node_modules/which-module/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/which-module/README.md b/src/third_party/devtools/node_modules/which-module/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/which-module/README.md
rename to src/third_party/devtools/node_modules/which-module/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/which-module/index.js b/src/third_party/devtools/node_modules/which-module/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/which-module/index.js
rename to src/third_party/devtools/node_modules/which-module/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/which-module/package.json b/src/third_party/devtools/node_modules/which-module/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/which-module/package.json
rename to src/third_party/devtools/node_modules/which-module/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/which/CHANGELOG.md b/src/third_party/devtools/node_modules/which/CHANGELOG.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/which/CHANGELOG.md
rename to src/third_party/devtools/node_modules/which/CHANGELOG.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/which/LICENSE b/src/third_party/devtools/node_modules/which/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/which/LICENSE
rename to src/third_party/devtools/node_modules/which/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/which/README.md b/src/third_party/devtools/node_modules/which/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/which/README.md
rename to src/third_party/devtools/node_modules/which/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/which/bin/which b/src/third_party/devtools/node_modules/which/bin/which
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/which/bin/which
rename to src/third_party/devtools/node_modules/which/bin/which
diff --git a/src/cobalt/debug/remote/devtools/node_modules/which/package.json b/src/third_party/devtools/node_modules/which/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/which/package.json
rename to src/third_party/devtools/node_modules/which/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/which/which.js b/src/third_party/devtools/node_modules/which/which.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/which/which.js
rename to src/third_party/devtools/node_modules/which/which.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/wide-align/LICENSE b/src/third_party/devtools/node_modules/wide-align/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/wide-align/LICENSE
rename to src/third_party/devtools/node_modules/wide-align/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/wide-align/README.md b/src/third_party/devtools/node_modules/wide-align/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/wide-align/README.md
rename to src/third_party/devtools/node_modules/wide-align/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/wide-align/align.js b/src/third_party/devtools/node_modules/wide-align/align.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/wide-align/align.js
rename to src/third_party/devtools/node_modules/wide-align/align.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/wide-align/package.json b/src/third_party/devtools/node_modules/wide-align/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/wide-align/package.json
rename to src/third_party/devtools/node_modules/wide-align/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/wordwrap/LICENSE b/src/third_party/devtools/node_modules/wordwrap/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/wordwrap/LICENSE
rename to src/third_party/devtools/node_modules/wordwrap/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/wordwrap/README.markdown b/src/third_party/devtools/node_modules/wordwrap/README.markdown
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/wordwrap/README.markdown
rename to src/third_party/devtools/node_modules/wordwrap/README.markdown
diff --git a/src/cobalt/debug/remote/devtools/node_modules/wordwrap/example/center.js b/src/third_party/devtools/node_modules/wordwrap/example/center.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/wordwrap/example/center.js
rename to src/third_party/devtools/node_modules/wordwrap/example/center.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/wordwrap/example/meat.js b/src/third_party/devtools/node_modules/wordwrap/example/meat.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/wordwrap/example/meat.js
rename to src/third_party/devtools/node_modules/wordwrap/example/meat.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/wordwrap/index.js b/src/third_party/devtools/node_modules/wordwrap/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/wordwrap/index.js
rename to src/third_party/devtools/node_modules/wordwrap/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/wordwrap/package.json b/src/third_party/devtools/node_modules/wordwrap/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/wordwrap/package.json
rename to src/third_party/devtools/node_modules/wordwrap/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/wordwrap/test/break.js b/src/third_party/devtools/node_modules/wordwrap/test/break.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/wordwrap/test/break.js
rename to src/third_party/devtools/node_modules/wordwrap/test/break.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/wordwrap/test/idleness.txt b/src/third_party/devtools/node_modules/wordwrap/test/idleness.txt
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/wordwrap/test/idleness.txt
rename to src/third_party/devtools/node_modules/wordwrap/test/idleness.txt
diff --git a/src/cobalt/debug/remote/devtools/node_modules/wordwrap/test/wrap.js b/src/third_party/devtools/node_modules/wordwrap/test/wrap.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/wordwrap/test/wrap.js
rename to src/third_party/devtools/node_modules/wordwrap/test/wrap.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/wrap-ansi/index.js b/src/third_party/devtools/node_modules/wrap-ansi/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/wrap-ansi/index.js
rename to src/third_party/devtools/node_modules/wrap-ansi/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/wrap-ansi/license b/src/third_party/devtools/node_modules/wrap-ansi/license
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/wrap-ansi/license
rename to src/third_party/devtools/node_modules/wrap-ansi/license
diff --git a/src/cobalt/debug/remote/devtools/node_modules/wrap-ansi/node_modules/ansi-regex/index.js b/src/third_party/devtools/node_modules/wrap-ansi/node_modules/ansi-regex/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/wrap-ansi/node_modules/ansi-regex/index.js
rename to src/third_party/devtools/node_modules/wrap-ansi/node_modules/ansi-regex/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/wrap-ansi/node_modules/ansi-regex/license b/src/third_party/devtools/node_modules/wrap-ansi/node_modules/ansi-regex/license
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/wrap-ansi/node_modules/ansi-regex/license
rename to src/third_party/devtools/node_modules/wrap-ansi/node_modules/ansi-regex/license
diff --git a/src/cobalt/debug/remote/devtools/node_modules/wrap-ansi/node_modules/ansi-regex/package.json b/src/third_party/devtools/node_modules/wrap-ansi/node_modules/ansi-regex/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/wrap-ansi/node_modules/ansi-regex/package.json
rename to src/third_party/devtools/node_modules/wrap-ansi/node_modules/ansi-regex/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/wrap-ansi/node_modules/ansi-regex/readme.md b/src/third_party/devtools/node_modules/wrap-ansi/node_modules/ansi-regex/readme.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/wrap-ansi/node_modules/ansi-regex/readme.md
rename to src/third_party/devtools/node_modules/wrap-ansi/node_modules/ansi-regex/readme.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/wrap-ansi/node_modules/is-fullwidth-code-point/index.js b/src/third_party/devtools/node_modules/wrap-ansi/node_modules/is-fullwidth-code-point/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/wrap-ansi/node_modules/is-fullwidth-code-point/index.js
rename to src/third_party/devtools/node_modules/wrap-ansi/node_modules/is-fullwidth-code-point/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/wrap-ansi/node_modules/is-fullwidth-code-point/license b/src/third_party/devtools/node_modules/wrap-ansi/node_modules/is-fullwidth-code-point/license
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/wrap-ansi/node_modules/is-fullwidth-code-point/license
rename to src/third_party/devtools/node_modules/wrap-ansi/node_modules/is-fullwidth-code-point/license
diff --git a/src/cobalt/debug/remote/devtools/node_modules/wrap-ansi/node_modules/is-fullwidth-code-point/package.json b/src/third_party/devtools/node_modules/wrap-ansi/node_modules/is-fullwidth-code-point/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/wrap-ansi/node_modules/is-fullwidth-code-point/package.json
rename to src/third_party/devtools/node_modules/wrap-ansi/node_modules/is-fullwidth-code-point/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/wrap-ansi/node_modules/is-fullwidth-code-point/readme.md b/src/third_party/devtools/node_modules/wrap-ansi/node_modules/is-fullwidth-code-point/readme.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/wrap-ansi/node_modules/is-fullwidth-code-point/readme.md
rename to src/third_party/devtools/node_modules/wrap-ansi/node_modules/is-fullwidth-code-point/readme.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/wrap-ansi/node_modules/string-width/index.js b/src/third_party/devtools/node_modules/wrap-ansi/node_modules/string-width/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/wrap-ansi/node_modules/string-width/index.js
rename to src/third_party/devtools/node_modules/wrap-ansi/node_modules/string-width/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/wrap-ansi/node_modules/string-width/license b/src/third_party/devtools/node_modules/wrap-ansi/node_modules/string-width/license
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/wrap-ansi/node_modules/string-width/license
rename to src/third_party/devtools/node_modules/wrap-ansi/node_modules/string-width/license
diff --git a/src/cobalt/debug/remote/devtools/node_modules/wrap-ansi/node_modules/string-width/package.json b/src/third_party/devtools/node_modules/wrap-ansi/node_modules/string-width/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/wrap-ansi/node_modules/string-width/package.json
rename to src/third_party/devtools/node_modules/wrap-ansi/node_modules/string-width/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/wrap-ansi/node_modules/string-width/readme.md b/src/third_party/devtools/node_modules/wrap-ansi/node_modules/string-width/readme.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/wrap-ansi/node_modules/string-width/readme.md
rename to src/third_party/devtools/node_modules/wrap-ansi/node_modules/string-width/readme.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/wrap-ansi/node_modules/strip-ansi/index.js b/src/third_party/devtools/node_modules/wrap-ansi/node_modules/strip-ansi/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/wrap-ansi/node_modules/strip-ansi/index.js
rename to src/third_party/devtools/node_modules/wrap-ansi/node_modules/strip-ansi/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/wrap-ansi/node_modules/strip-ansi/license b/src/third_party/devtools/node_modules/wrap-ansi/node_modules/strip-ansi/license
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/wrap-ansi/node_modules/strip-ansi/license
rename to src/third_party/devtools/node_modules/wrap-ansi/node_modules/strip-ansi/license
diff --git a/src/cobalt/debug/remote/devtools/node_modules/wrap-ansi/node_modules/strip-ansi/package.json b/src/third_party/devtools/node_modules/wrap-ansi/node_modules/strip-ansi/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/wrap-ansi/node_modules/strip-ansi/package.json
rename to src/third_party/devtools/node_modules/wrap-ansi/node_modules/strip-ansi/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/wrap-ansi/node_modules/strip-ansi/readme.md b/src/third_party/devtools/node_modules/wrap-ansi/node_modules/strip-ansi/readme.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/wrap-ansi/node_modules/strip-ansi/readme.md
rename to src/third_party/devtools/node_modules/wrap-ansi/node_modules/strip-ansi/readme.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/wrap-ansi/package.json b/src/third_party/devtools/node_modules/wrap-ansi/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/wrap-ansi/package.json
rename to src/third_party/devtools/node_modules/wrap-ansi/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/wrap-ansi/readme.md b/src/third_party/devtools/node_modules/wrap-ansi/readme.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/wrap-ansi/readme.md
rename to src/third_party/devtools/node_modules/wrap-ansi/readme.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/wrappy/LICENSE b/src/third_party/devtools/node_modules/wrappy/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/wrappy/LICENSE
rename to src/third_party/devtools/node_modules/wrappy/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/wrappy/README.md b/src/third_party/devtools/node_modules/wrappy/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/wrappy/README.md
rename to src/third_party/devtools/node_modules/wrappy/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/wrappy/package.json b/src/third_party/devtools/node_modules/wrappy/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/wrappy/package.json
rename to src/third_party/devtools/node_modules/wrappy/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/wrappy/wrappy.js b/src/third_party/devtools/node_modules/wrappy/wrappy.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/wrappy/wrappy.js
rename to src/third_party/devtools/node_modules/wrappy/wrappy.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/write/LICENSE b/src/third_party/devtools/node_modules/write/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/write/LICENSE
rename to src/third_party/devtools/node_modules/write/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/write/README.md b/src/third_party/devtools/node_modules/write/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/write/README.md
rename to src/third_party/devtools/node_modules/write/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/write/index.js b/src/third_party/devtools/node_modules/write/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/write/index.js
rename to src/third_party/devtools/node_modules/write/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/write/package.json b/src/third_party/devtools/node_modules/write/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/write/package.json
rename to src/third_party/devtools/node_modules/write/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/ws/LICENSE b/src/third_party/devtools/node_modules/ws/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/ws/LICENSE
rename to src/third_party/devtools/node_modules/ws/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/ws/README.md b/src/third_party/devtools/node_modules/ws/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/ws/README.md
rename to src/third_party/devtools/node_modules/ws/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/ws/index.js b/src/third_party/devtools/node_modules/ws/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/ws/index.js
rename to src/third_party/devtools/node_modules/ws/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/ws/lib/BufferUtil.js b/src/third_party/devtools/node_modules/ws/lib/BufferUtil.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/ws/lib/BufferUtil.js
rename to src/third_party/devtools/node_modules/ws/lib/BufferUtil.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/ws/lib/Constants.js b/src/third_party/devtools/node_modules/ws/lib/Constants.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/ws/lib/Constants.js
rename to src/third_party/devtools/node_modules/ws/lib/Constants.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/ws/lib/ErrorCodes.js b/src/third_party/devtools/node_modules/ws/lib/ErrorCodes.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/ws/lib/ErrorCodes.js
rename to src/third_party/devtools/node_modules/ws/lib/ErrorCodes.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/ws/lib/EventTarget.js b/src/third_party/devtools/node_modules/ws/lib/EventTarget.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/ws/lib/EventTarget.js
rename to src/third_party/devtools/node_modules/ws/lib/EventTarget.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/ws/lib/Extensions.js b/src/third_party/devtools/node_modules/ws/lib/Extensions.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/ws/lib/Extensions.js
rename to src/third_party/devtools/node_modules/ws/lib/Extensions.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/ws/lib/PerMessageDeflate.js b/src/third_party/devtools/node_modules/ws/lib/PerMessageDeflate.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/ws/lib/PerMessageDeflate.js
rename to src/third_party/devtools/node_modules/ws/lib/PerMessageDeflate.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/ws/lib/Receiver.js b/src/third_party/devtools/node_modules/ws/lib/Receiver.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/ws/lib/Receiver.js
rename to src/third_party/devtools/node_modules/ws/lib/Receiver.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/ws/lib/Sender.js b/src/third_party/devtools/node_modules/ws/lib/Sender.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/ws/lib/Sender.js
rename to src/third_party/devtools/node_modules/ws/lib/Sender.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/ws/lib/Validation.js b/src/third_party/devtools/node_modules/ws/lib/Validation.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/ws/lib/Validation.js
rename to src/third_party/devtools/node_modules/ws/lib/Validation.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/ws/lib/WebSocket.js b/src/third_party/devtools/node_modules/ws/lib/WebSocket.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/ws/lib/WebSocket.js
rename to src/third_party/devtools/node_modules/ws/lib/WebSocket.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/ws/lib/WebSocketServer.js b/src/third_party/devtools/node_modules/ws/lib/WebSocketServer.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/ws/lib/WebSocketServer.js
rename to src/third_party/devtools/node_modules/ws/lib/WebSocketServer.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/ws/node_modules/safe-buffer/LICENSE b/src/third_party/devtools/node_modules/ws/node_modules/safe-buffer/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/ws/node_modules/safe-buffer/LICENSE
rename to src/third_party/devtools/node_modules/ws/node_modules/safe-buffer/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/ws/node_modules/safe-buffer/README.md b/src/third_party/devtools/node_modules/ws/node_modules/safe-buffer/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/ws/node_modules/safe-buffer/README.md
rename to src/third_party/devtools/node_modules/ws/node_modules/safe-buffer/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/ws/node_modules/safe-buffer/index.d.ts b/src/third_party/devtools/node_modules/ws/node_modules/safe-buffer/index.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/ws/node_modules/safe-buffer/index.d.ts
rename to src/third_party/devtools/node_modules/ws/node_modules/safe-buffer/index.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/ws/node_modules/safe-buffer/index.js b/src/third_party/devtools/node_modules/ws/node_modules/safe-buffer/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/ws/node_modules/safe-buffer/index.js
rename to src/third_party/devtools/node_modules/ws/node_modules/safe-buffer/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/ws/node_modules/safe-buffer/package.json b/src/third_party/devtools/node_modules/ws/node_modules/safe-buffer/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/ws/node_modules/safe-buffer/package.json
rename to src/third_party/devtools/node_modules/ws/node_modules/safe-buffer/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/ws/package.json b/src/third_party/devtools/node_modules/ws/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/ws/package.json
rename to src/third_party/devtools/node_modules/ws/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/xmlhttprequest-ssl/LICENSE b/src/third_party/devtools/node_modules/xmlhttprequest-ssl/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/xmlhttprequest-ssl/LICENSE
rename to src/third_party/devtools/node_modules/xmlhttprequest-ssl/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/xmlhttprequest-ssl/README.md b/src/third_party/devtools/node_modules/xmlhttprequest-ssl/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/xmlhttprequest-ssl/README.md
rename to src/third_party/devtools/node_modules/xmlhttprequest-ssl/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/xmlhttprequest-ssl/autotest.watchr b/src/third_party/devtools/node_modules/xmlhttprequest-ssl/autotest.watchr
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/xmlhttprequest-ssl/autotest.watchr
rename to src/third_party/devtools/node_modules/xmlhttprequest-ssl/autotest.watchr
diff --git a/src/cobalt/debug/remote/devtools/node_modules/xmlhttprequest-ssl/example/demo.js b/src/third_party/devtools/node_modules/xmlhttprequest-ssl/example/demo.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/xmlhttprequest-ssl/example/demo.js
rename to src/third_party/devtools/node_modules/xmlhttprequest-ssl/example/demo.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/xmlhttprequest-ssl/lib/XMLHttpRequest.js b/src/third_party/devtools/node_modules/xmlhttprequest-ssl/lib/XMLHttpRequest.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/xmlhttprequest-ssl/lib/XMLHttpRequest.js
rename to src/third_party/devtools/node_modules/xmlhttprequest-ssl/lib/XMLHttpRequest.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/xmlhttprequest-ssl/package.json b/src/third_party/devtools/node_modules/xmlhttprequest-ssl/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/xmlhttprequest-ssl/package.json
rename to src/third_party/devtools/node_modules/xmlhttprequest-ssl/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/xmlhttprequest-ssl/tests/test-constants.js b/src/third_party/devtools/node_modules/xmlhttprequest-ssl/tests/test-constants.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/xmlhttprequest-ssl/tests/test-constants.js
rename to src/third_party/devtools/node_modules/xmlhttprequest-ssl/tests/test-constants.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/xmlhttprequest-ssl/tests/test-events.js b/src/third_party/devtools/node_modules/xmlhttprequest-ssl/tests/test-events.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/xmlhttprequest-ssl/tests/test-events.js
rename to src/third_party/devtools/node_modules/xmlhttprequest-ssl/tests/test-events.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/xmlhttprequest-ssl/tests/test-exceptions.js b/src/third_party/devtools/node_modules/xmlhttprequest-ssl/tests/test-exceptions.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/xmlhttprequest-ssl/tests/test-exceptions.js
rename to src/third_party/devtools/node_modules/xmlhttprequest-ssl/tests/test-exceptions.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/xmlhttprequest-ssl/tests/test-headers.js b/src/third_party/devtools/node_modules/xmlhttprequest-ssl/tests/test-headers.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/xmlhttprequest-ssl/tests/test-headers.js
rename to src/third_party/devtools/node_modules/xmlhttprequest-ssl/tests/test-headers.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/xmlhttprequest-ssl/tests/test-redirect-302.js b/src/third_party/devtools/node_modules/xmlhttprequest-ssl/tests/test-redirect-302.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/xmlhttprequest-ssl/tests/test-redirect-302.js
rename to src/third_party/devtools/node_modules/xmlhttprequest-ssl/tests/test-redirect-302.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/xmlhttprequest-ssl/tests/test-redirect-303.js b/src/third_party/devtools/node_modules/xmlhttprequest-ssl/tests/test-redirect-303.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/xmlhttprequest-ssl/tests/test-redirect-303.js
rename to src/third_party/devtools/node_modules/xmlhttprequest-ssl/tests/test-redirect-303.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/xmlhttprequest-ssl/tests/test-redirect-307.js b/src/third_party/devtools/node_modules/xmlhttprequest-ssl/tests/test-redirect-307.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/xmlhttprequest-ssl/tests/test-redirect-307.js
rename to src/third_party/devtools/node_modules/xmlhttprequest-ssl/tests/test-redirect-307.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/xmlhttprequest-ssl/tests/test-request-methods.js b/src/third_party/devtools/node_modules/xmlhttprequest-ssl/tests/test-request-methods.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/xmlhttprequest-ssl/tests/test-request-methods.js
rename to src/third_party/devtools/node_modules/xmlhttprequest-ssl/tests/test-request-methods.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/xmlhttprequest-ssl/tests/test-request-protocols.js b/src/third_party/devtools/node_modules/xmlhttprequest-ssl/tests/test-request-protocols.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/xmlhttprequest-ssl/tests/test-request-protocols.js
rename to src/third_party/devtools/node_modules/xmlhttprequest-ssl/tests/test-request-protocols.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/xmlhttprequest-ssl/tests/testdata.txt b/src/third_party/devtools/node_modules/xmlhttprequest-ssl/tests/testdata.txt
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/xmlhttprequest-ssl/tests/testdata.txt
rename to src/third_party/devtools/node_modules/xmlhttprequest-ssl/tests/testdata.txt
diff --git a/src/cobalt/debug/remote/devtools/node_modules/xtend/.jshintrc b/src/third_party/devtools/node_modules/xtend/.jshintrc
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/xtend/.jshintrc
rename to src/third_party/devtools/node_modules/xtend/.jshintrc
diff --git a/src/cobalt/debug/remote/devtools/node_modules/xtend/LICENSE b/src/third_party/devtools/node_modules/xtend/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/xtend/LICENSE
rename to src/third_party/devtools/node_modules/xtend/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/xtend/README.md b/src/third_party/devtools/node_modules/xtend/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/xtend/README.md
rename to src/third_party/devtools/node_modules/xtend/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/xtend/immutable.js b/src/third_party/devtools/node_modules/xtend/immutable.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/xtend/immutable.js
rename to src/third_party/devtools/node_modules/xtend/immutable.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/xtend/mutable.js b/src/third_party/devtools/node_modules/xtend/mutable.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/xtend/mutable.js
rename to src/third_party/devtools/node_modules/xtend/mutable.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/xtend/package.json b/src/third_party/devtools/node_modules/xtend/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/xtend/package.json
rename to src/third_party/devtools/node_modules/xtend/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/xtend/test.js b/src/third_party/devtools/node_modules/xtend/test.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/xtend/test.js
rename to src/third_party/devtools/node_modules/xtend/test.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/y18n/CHANGELOG.md b/src/third_party/devtools/node_modules/y18n/CHANGELOG.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/y18n/CHANGELOG.md
rename to src/third_party/devtools/node_modules/y18n/CHANGELOG.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/y18n/LICENSE b/src/third_party/devtools/node_modules/y18n/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/y18n/LICENSE
rename to src/third_party/devtools/node_modules/y18n/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/y18n/README.md b/src/third_party/devtools/node_modules/y18n/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/y18n/README.md
rename to src/third_party/devtools/node_modules/y18n/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/y18n/index.js b/src/third_party/devtools/node_modules/y18n/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/y18n/index.js
rename to src/third_party/devtools/node_modules/y18n/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/y18n/package.json b/src/third_party/devtools/node_modules/y18n/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/y18n/package.json
rename to src/third_party/devtools/node_modules/y18n/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yallist/LICENSE b/src/third_party/devtools/node_modules/yallist/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yallist/LICENSE
rename to src/third_party/devtools/node_modules/yallist/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yallist/README.md b/src/third_party/devtools/node_modules/yallist/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yallist/README.md
rename to src/third_party/devtools/node_modules/yallist/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yallist/iterator.js b/src/third_party/devtools/node_modules/yallist/iterator.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yallist/iterator.js
rename to src/third_party/devtools/node_modules/yallist/iterator.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yallist/package.json b/src/third_party/devtools/node_modules/yallist/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yallist/package.json
rename to src/third_party/devtools/node_modules/yallist/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yallist/yallist.js b/src/third_party/devtools/node_modules/yallist/yallist.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yallist/yallist.js
rename to src/third_party/devtools/node_modules/yallist/yallist.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs-parser/CHANGELOG.md b/src/third_party/devtools/node_modules/yargs-parser/CHANGELOG.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs-parser/CHANGELOG.md
rename to src/third_party/devtools/node_modules/yargs-parser/CHANGELOG.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs-parser/LICENSE.txt b/src/third_party/devtools/node_modules/yargs-parser/LICENSE.txt
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs-parser/LICENSE.txt
rename to src/third_party/devtools/node_modules/yargs-parser/LICENSE.txt
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs-parser/README.md b/src/third_party/devtools/node_modules/yargs-parser/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs-parser/README.md
rename to src/third_party/devtools/node_modules/yargs-parser/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs-parser/index.js b/src/third_party/devtools/node_modules/yargs-parser/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs-parser/index.js
rename to src/third_party/devtools/node_modules/yargs-parser/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs-parser/lib/tokenize-arg-string.js b/src/third_party/devtools/node_modules/yargs-parser/lib/tokenize-arg-string.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs-parser/lib/tokenize-arg-string.js
rename to src/third_party/devtools/node_modules/yargs-parser/lib/tokenize-arg-string.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs-parser/node_modules/camelcase/index.d.ts b/src/third_party/devtools/node_modules/yargs-parser/node_modules/camelcase/index.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs-parser/node_modules/camelcase/index.d.ts
rename to src/third_party/devtools/node_modules/yargs-parser/node_modules/camelcase/index.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs-parser/node_modules/camelcase/index.js b/src/third_party/devtools/node_modules/yargs-parser/node_modules/camelcase/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs-parser/node_modules/camelcase/index.js
rename to src/third_party/devtools/node_modules/yargs-parser/node_modules/camelcase/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs-parser/node_modules/camelcase/license b/src/third_party/devtools/node_modules/yargs-parser/node_modules/camelcase/license
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs-parser/node_modules/camelcase/license
rename to src/third_party/devtools/node_modules/yargs-parser/node_modules/camelcase/license
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs-parser/node_modules/camelcase/package.json b/src/third_party/devtools/node_modules/yargs-parser/node_modules/camelcase/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs-parser/node_modules/camelcase/package.json
rename to src/third_party/devtools/node_modules/yargs-parser/node_modules/camelcase/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs-parser/node_modules/camelcase/readme.md b/src/third_party/devtools/node_modules/yargs-parser/node_modules/camelcase/readme.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs-parser/node_modules/camelcase/readme.md
rename to src/third_party/devtools/node_modules/yargs-parser/node_modules/camelcase/readme.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs-parser/package.json b/src/third_party/devtools/node_modules/yargs-parser/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs-parser/package.json
rename to src/third_party/devtools/node_modules/yargs-parser/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs-unparser/CHANGELOG.md b/src/third_party/devtools/node_modules/yargs-unparser/CHANGELOG.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs-unparser/CHANGELOG.md
rename to src/third_party/devtools/node_modules/yargs-unparser/CHANGELOG.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs-unparser/LICENSE b/src/third_party/devtools/node_modules/yargs-unparser/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs-unparser/LICENSE
rename to src/third_party/devtools/node_modules/yargs-unparser/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs-unparser/README.md b/src/third_party/devtools/node_modules/yargs-unparser/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs-unparser/README.md
rename to src/third_party/devtools/node_modules/yargs-unparser/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs-unparser/index.js b/src/third_party/devtools/node_modules/yargs-unparser/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs-unparser/index.js
rename to src/third_party/devtools/node_modules/yargs-unparser/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs-unparser/node_modules/camelcase/index.d.ts b/src/third_party/devtools/node_modules/yargs-unparser/node_modules/camelcase/index.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs-unparser/node_modules/camelcase/index.d.ts
rename to src/third_party/devtools/node_modules/yargs-unparser/node_modules/camelcase/index.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs-unparser/node_modules/camelcase/index.js b/src/third_party/devtools/node_modules/yargs-unparser/node_modules/camelcase/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs-unparser/node_modules/camelcase/index.js
rename to src/third_party/devtools/node_modules/yargs-unparser/node_modules/camelcase/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs-unparser/node_modules/camelcase/license b/src/third_party/devtools/node_modules/yargs-unparser/node_modules/camelcase/license
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs-unparser/node_modules/camelcase/license
rename to src/third_party/devtools/node_modules/yargs-unparser/node_modules/camelcase/license
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs-unparser/node_modules/camelcase/package.json b/src/third_party/devtools/node_modules/yargs-unparser/node_modules/camelcase/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs-unparser/node_modules/camelcase/package.json
rename to src/third_party/devtools/node_modules/yargs-unparser/node_modules/camelcase/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs-unparser/node_modules/camelcase/readme.md b/src/third_party/devtools/node_modules/yargs-unparser/node_modules/camelcase/readme.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs-unparser/node_modules/camelcase/readme.md
rename to src/third_party/devtools/node_modules/yargs-unparser/node_modules/camelcase/readme.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs-unparser/node_modules/find-up/index.js b/src/third_party/devtools/node_modules/yargs-unparser/node_modules/find-up/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs-unparser/node_modules/find-up/index.js
rename to src/third_party/devtools/node_modules/yargs-unparser/node_modules/find-up/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs-unparser/node_modules/find-up/license b/src/third_party/devtools/node_modules/yargs-unparser/node_modules/find-up/license
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs-unparser/node_modules/find-up/license
rename to src/third_party/devtools/node_modules/yargs-unparser/node_modules/find-up/license
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs-unparser/node_modules/find-up/package.json b/src/third_party/devtools/node_modules/yargs-unparser/node_modules/find-up/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs-unparser/node_modules/find-up/package.json
rename to src/third_party/devtools/node_modules/yargs-unparser/node_modules/find-up/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs-unparser/node_modules/find-up/readme.md b/src/third_party/devtools/node_modules/yargs-unparser/node_modules/find-up/readme.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs-unparser/node_modules/find-up/readme.md
rename to src/third_party/devtools/node_modules/yargs-unparser/node_modules/find-up/readme.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs-unparser/node_modules/get-caller-file/LICENSE.md b/src/third_party/devtools/node_modules/yargs-unparser/node_modules/get-caller-file/LICENSE.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs-unparser/node_modules/get-caller-file/LICENSE.md
rename to src/third_party/devtools/node_modules/yargs-unparser/node_modules/get-caller-file/LICENSE.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs-unparser/node_modules/get-caller-file/README.md b/src/third_party/devtools/node_modules/yargs-unparser/node_modules/get-caller-file/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs-unparser/node_modules/get-caller-file/README.md
rename to src/third_party/devtools/node_modules/yargs-unparser/node_modules/get-caller-file/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs-unparser/node_modules/get-caller-file/index.js b/src/third_party/devtools/node_modules/yargs-unparser/node_modules/get-caller-file/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs-unparser/node_modules/get-caller-file/index.js
rename to src/third_party/devtools/node_modules/yargs-unparser/node_modules/get-caller-file/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs-unparser/node_modules/get-caller-file/package.json b/src/third_party/devtools/node_modules/yargs-unparser/node_modules/get-caller-file/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs-unparser/node_modules/get-caller-file/package.json
rename to src/third_party/devtools/node_modules/yargs-unparser/node_modules/get-caller-file/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs-unparser/node_modules/require-main-filename/.npmignore b/src/third_party/devtools/node_modules/yargs-unparser/node_modules/require-main-filename/.npmignore
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs-unparser/node_modules/require-main-filename/.npmignore
rename to src/third_party/devtools/node_modules/yargs-unparser/node_modules/require-main-filename/.npmignore
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs-unparser/node_modules/require-main-filename/.travis.yml b/src/third_party/devtools/node_modules/yargs-unparser/node_modules/require-main-filename/.travis.yml
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs-unparser/node_modules/require-main-filename/.travis.yml
rename to src/third_party/devtools/node_modules/yargs-unparser/node_modules/require-main-filename/.travis.yml
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs-unparser/node_modules/require-main-filename/LICENSE.txt b/src/third_party/devtools/node_modules/yargs-unparser/node_modules/require-main-filename/LICENSE.txt
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs-unparser/node_modules/require-main-filename/LICENSE.txt
rename to src/third_party/devtools/node_modules/yargs-unparser/node_modules/require-main-filename/LICENSE.txt
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs-unparser/node_modules/require-main-filename/README.md b/src/third_party/devtools/node_modules/yargs-unparser/node_modules/require-main-filename/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs-unparser/node_modules/require-main-filename/README.md
rename to src/third_party/devtools/node_modules/yargs-unparser/node_modules/require-main-filename/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs-unparser/node_modules/require-main-filename/index.js b/src/third_party/devtools/node_modules/yargs-unparser/node_modules/require-main-filename/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs-unparser/node_modules/require-main-filename/index.js
rename to src/third_party/devtools/node_modules/yargs-unparser/node_modules/require-main-filename/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs-unparser/node_modules/require-main-filename/package.json b/src/third_party/devtools/node_modules/yargs-unparser/node_modules/require-main-filename/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs-unparser/node_modules/require-main-filename/package.json
rename to src/third_party/devtools/node_modules/yargs-unparser/node_modules/require-main-filename/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs-unparser/node_modules/require-main-filename/test.js b/src/third_party/devtools/node_modules/yargs-unparser/node_modules/require-main-filename/test.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs-unparser/node_modules/require-main-filename/test.js
rename to src/third_party/devtools/node_modules/yargs-unparser/node_modules/require-main-filename/test.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs-unparser/node_modules/yargs-parser/CHANGELOG.md b/src/third_party/devtools/node_modules/yargs-unparser/node_modules/yargs-parser/CHANGELOG.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs-unparser/node_modules/yargs-parser/CHANGELOG.md
rename to src/third_party/devtools/node_modules/yargs-unparser/node_modules/yargs-parser/CHANGELOG.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs-unparser/node_modules/yargs-parser/LICENSE.txt b/src/third_party/devtools/node_modules/yargs-unparser/node_modules/yargs-parser/LICENSE.txt
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs-unparser/node_modules/yargs-parser/LICENSE.txt
rename to src/third_party/devtools/node_modules/yargs-unparser/node_modules/yargs-parser/LICENSE.txt
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs-unparser/node_modules/yargs-parser/README.md b/src/third_party/devtools/node_modules/yargs-unparser/node_modules/yargs-parser/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs-unparser/node_modules/yargs-parser/README.md
rename to src/third_party/devtools/node_modules/yargs-unparser/node_modules/yargs-parser/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs-unparser/node_modules/yargs-parser/index.js b/src/third_party/devtools/node_modules/yargs-unparser/node_modules/yargs-parser/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs-unparser/node_modules/yargs-parser/index.js
rename to src/third_party/devtools/node_modules/yargs-unparser/node_modules/yargs-parser/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs-unparser/node_modules/yargs-parser/lib/tokenize-arg-string.js b/src/third_party/devtools/node_modules/yargs-unparser/node_modules/yargs-parser/lib/tokenize-arg-string.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs-unparser/node_modules/yargs-parser/lib/tokenize-arg-string.js
rename to src/third_party/devtools/node_modules/yargs-unparser/node_modules/yargs-parser/lib/tokenize-arg-string.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs-unparser/node_modules/yargs-parser/package.json b/src/third_party/devtools/node_modules/yargs-unparser/node_modules/yargs-parser/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs-unparser/node_modules/yargs-parser/package.json
rename to src/third_party/devtools/node_modules/yargs-unparser/node_modules/yargs-parser/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs-unparser/node_modules/yargs/CHANGELOG.md b/src/third_party/devtools/node_modules/yargs-unparser/node_modules/yargs/CHANGELOG.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs-unparser/node_modules/yargs/CHANGELOG.md
rename to src/third_party/devtools/node_modules/yargs-unparser/node_modules/yargs/CHANGELOG.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs-unparser/node_modules/yargs/LICENSE b/src/third_party/devtools/node_modules/yargs-unparser/node_modules/yargs/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs-unparser/node_modules/yargs/LICENSE
rename to src/third_party/devtools/node_modules/yargs-unparser/node_modules/yargs/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs-unparser/node_modules/yargs/README.md b/src/third_party/devtools/node_modules/yargs-unparser/node_modules/yargs/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs-unparser/node_modules/yargs/README.md
rename to src/third_party/devtools/node_modules/yargs-unparser/node_modules/yargs/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs-unparser/node_modules/yargs/completion.sh.hbs b/src/third_party/devtools/node_modules/yargs-unparser/node_modules/yargs/completion.sh.hbs
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs-unparser/node_modules/yargs/completion.sh.hbs
rename to src/third_party/devtools/node_modules/yargs-unparser/node_modules/yargs/completion.sh.hbs
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs-unparser/node_modules/yargs/index.js b/src/third_party/devtools/node_modules/yargs-unparser/node_modules/yargs/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs-unparser/node_modules/yargs/index.js
rename to src/third_party/devtools/node_modules/yargs-unparser/node_modules/yargs/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs-unparser/node_modules/yargs/lib/apply-extends.js b/src/third_party/devtools/node_modules/yargs-unparser/node_modules/yargs/lib/apply-extends.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs-unparser/node_modules/yargs/lib/apply-extends.js
rename to src/third_party/devtools/node_modules/yargs-unparser/node_modules/yargs/lib/apply-extends.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs-unparser/node_modules/yargs/lib/argsert.js b/src/third_party/devtools/node_modules/yargs-unparser/node_modules/yargs/lib/argsert.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs-unparser/node_modules/yargs/lib/argsert.js
rename to src/third_party/devtools/node_modules/yargs-unparser/node_modules/yargs/lib/argsert.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs-unparser/node_modules/yargs/lib/command.js b/src/third_party/devtools/node_modules/yargs-unparser/node_modules/yargs/lib/command.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs-unparser/node_modules/yargs/lib/command.js
rename to src/third_party/devtools/node_modules/yargs-unparser/node_modules/yargs/lib/command.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs-unparser/node_modules/yargs/lib/completion.js b/src/third_party/devtools/node_modules/yargs-unparser/node_modules/yargs/lib/completion.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs-unparser/node_modules/yargs/lib/completion.js
rename to src/third_party/devtools/node_modules/yargs-unparser/node_modules/yargs/lib/completion.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs-unparser/node_modules/yargs/lib/levenshtein.js b/src/third_party/devtools/node_modules/yargs-unparser/node_modules/yargs/lib/levenshtein.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs-unparser/node_modules/yargs/lib/levenshtein.js
rename to src/third_party/devtools/node_modules/yargs-unparser/node_modules/yargs/lib/levenshtein.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs-unparser/node_modules/yargs/lib/middleware.js b/src/third_party/devtools/node_modules/yargs-unparser/node_modules/yargs/lib/middleware.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs-unparser/node_modules/yargs/lib/middleware.js
rename to src/third_party/devtools/node_modules/yargs-unparser/node_modules/yargs/lib/middleware.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs-unparser/node_modules/yargs/lib/obj-filter.js b/src/third_party/devtools/node_modules/yargs-unparser/node_modules/yargs/lib/obj-filter.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs-unparser/node_modules/yargs/lib/obj-filter.js
rename to src/third_party/devtools/node_modules/yargs-unparser/node_modules/yargs/lib/obj-filter.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs-unparser/node_modules/yargs/lib/usage.js b/src/third_party/devtools/node_modules/yargs-unparser/node_modules/yargs/lib/usage.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs-unparser/node_modules/yargs/lib/usage.js
rename to src/third_party/devtools/node_modules/yargs-unparser/node_modules/yargs/lib/usage.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs-unparser/node_modules/yargs/lib/validation.js b/src/third_party/devtools/node_modules/yargs-unparser/node_modules/yargs/lib/validation.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs-unparser/node_modules/yargs/lib/validation.js
rename to src/third_party/devtools/node_modules/yargs-unparser/node_modules/yargs/lib/validation.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs-unparser/node_modules/yargs/lib/yerror.js b/src/third_party/devtools/node_modules/yargs-unparser/node_modules/yargs/lib/yerror.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs-unparser/node_modules/yargs/lib/yerror.js
rename to src/third_party/devtools/node_modules/yargs-unparser/node_modules/yargs/lib/yerror.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs-unparser/node_modules/yargs/locales/be.json b/src/third_party/devtools/node_modules/yargs-unparser/node_modules/yargs/locales/be.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs-unparser/node_modules/yargs/locales/be.json
rename to src/third_party/devtools/node_modules/yargs-unparser/node_modules/yargs/locales/be.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs-unparser/node_modules/yargs/locales/de.json b/src/third_party/devtools/node_modules/yargs-unparser/node_modules/yargs/locales/de.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs-unparser/node_modules/yargs/locales/de.json
rename to src/third_party/devtools/node_modules/yargs-unparser/node_modules/yargs/locales/de.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs-unparser/node_modules/yargs/locales/en.json b/src/third_party/devtools/node_modules/yargs-unparser/node_modules/yargs/locales/en.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs-unparser/node_modules/yargs/locales/en.json
rename to src/third_party/devtools/node_modules/yargs-unparser/node_modules/yargs/locales/en.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs-unparser/node_modules/yargs/locales/es.json b/src/third_party/devtools/node_modules/yargs-unparser/node_modules/yargs/locales/es.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs-unparser/node_modules/yargs/locales/es.json
rename to src/third_party/devtools/node_modules/yargs-unparser/node_modules/yargs/locales/es.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs-unparser/node_modules/yargs/locales/fr.json b/src/third_party/devtools/node_modules/yargs-unparser/node_modules/yargs/locales/fr.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs-unparser/node_modules/yargs/locales/fr.json
rename to src/third_party/devtools/node_modules/yargs-unparser/node_modules/yargs/locales/fr.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs-unparser/node_modules/yargs/locales/hi.json b/src/third_party/devtools/node_modules/yargs-unparser/node_modules/yargs/locales/hi.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs-unparser/node_modules/yargs/locales/hi.json
rename to src/third_party/devtools/node_modules/yargs-unparser/node_modules/yargs/locales/hi.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs-unparser/node_modules/yargs/locales/hu.json b/src/third_party/devtools/node_modules/yargs-unparser/node_modules/yargs/locales/hu.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs-unparser/node_modules/yargs/locales/hu.json
rename to src/third_party/devtools/node_modules/yargs-unparser/node_modules/yargs/locales/hu.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs-unparser/node_modules/yargs/locales/id.json b/src/third_party/devtools/node_modules/yargs-unparser/node_modules/yargs/locales/id.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs-unparser/node_modules/yargs/locales/id.json
rename to src/third_party/devtools/node_modules/yargs-unparser/node_modules/yargs/locales/id.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs-unparser/node_modules/yargs/locales/it.json b/src/third_party/devtools/node_modules/yargs-unparser/node_modules/yargs/locales/it.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs-unparser/node_modules/yargs/locales/it.json
rename to src/third_party/devtools/node_modules/yargs-unparser/node_modules/yargs/locales/it.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs-unparser/node_modules/yargs/locales/ja.json b/src/third_party/devtools/node_modules/yargs-unparser/node_modules/yargs/locales/ja.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs-unparser/node_modules/yargs/locales/ja.json
rename to src/third_party/devtools/node_modules/yargs-unparser/node_modules/yargs/locales/ja.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs-unparser/node_modules/yargs/locales/ko.json b/src/third_party/devtools/node_modules/yargs-unparser/node_modules/yargs/locales/ko.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs-unparser/node_modules/yargs/locales/ko.json
rename to src/third_party/devtools/node_modules/yargs-unparser/node_modules/yargs/locales/ko.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs-unparser/node_modules/yargs/locales/nb.json b/src/third_party/devtools/node_modules/yargs-unparser/node_modules/yargs/locales/nb.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs-unparser/node_modules/yargs/locales/nb.json
rename to src/third_party/devtools/node_modules/yargs-unparser/node_modules/yargs/locales/nb.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs-unparser/node_modules/yargs/locales/nl.json b/src/third_party/devtools/node_modules/yargs-unparser/node_modules/yargs/locales/nl.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs-unparser/node_modules/yargs/locales/nl.json
rename to src/third_party/devtools/node_modules/yargs-unparser/node_modules/yargs/locales/nl.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs-unparser/node_modules/yargs/locales/nn.json b/src/third_party/devtools/node_modules/yargs-unparser/node_modules/yargs/locales/nn.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs-unparser/node_modules/yargs/locales/nn.json
rename to src/third_party/devtools/node_modules/yargs-unparser/node_modules/yargs/locales/nn.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs-unparser/node_modules/yargs/locales/pirate.json b/src/third_party/devtools/node_modules/yargs-unparser/node_modules/yargs/locales/pirate.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs-unparser/node_modules/yargs/locales/pirate.json
rename to src/third_party/devtools/node_modules/yargs-unparser/node_modules/yargs/locales/pirate.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs-unparser/node_modules/yargs/locales/pl.json b/src/third_party/devtools/node_modules/yargs-unparser/node_modules/yargs/locales/pl.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs-unparser/node_modules/yargs/locales/pl.json
rename to src/third_party/devtools/node_modules/yargs-unparser/node_modules/yargs/locales/pl.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs-unparser/node_modules/yargs/locales/pt.json b/src/third_party/devtools/node_modules/yargs-unparser/node_modules/yargs/locales/pt.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs-unparser/node_modules/yargs/locales/pt.json
rename to src/third_party/devtools/node_modules/yargs-unparser/node_modules/yargs/locales/pt.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs-unparser/node_modules/yargs/locales/pt_BR.json b/src/third_party/devtools/node_modules/yargs-unparser/node_modules/yargs/locales/pt_BR.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs-unparser/node_modules/yargs/locales/pt_BR.json
rename to src/third_party/devtools/node_modules/yargs-unparser/node_modules/yargs/locales/pt_BR.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs-unparser/node_modules/yargs/locales/ru.json b/src/third_party/devtools/node_modules/yargs-unparser/node_modules/yargs/locales/ru.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs-unparser/node_modules/yargs/locales/ru.json
rename to src/third_party/devtools/node_modules/yargs-unparser/node_modules/yargs/locales/ru.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs-unparser/node_modules/yargs/locales/th.json b/src/third_party/devtools/node_modules/yargs-unparser/node_modules/yargs/locales/th.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs-unparser/node_modules/yargs/locales/th.json
rename to src/third_party/devtools/node_modules/yargs-unparser/node_modules/yargs/locales/th.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs-unparser/node_modules/yargs/locales/tr.json b/src/third_party/devtools/node_modules/yargs-unparser/node_modules/yargs/locales/tr.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs-unparser/node_modules/yargs/locales/tr.json
rename to src/third_party/devtools/node_modules/yargs-unparser/node_modules/yargs/locales/tr.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs-unparser/node_modules/yargs/locales/zh_CN.json b/src/third_party/devtools/node_modules/yargs-unparser/node_modules/yargs/locales/zh_CN.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs-unparser/node_modules/yargs/locales/zh_CN.json
rename to src/third_party/devtools/node_modules/yargs-unparser/node_modules/yargs/locales/zh_CN.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs-unparser/node_modules/yargs/locales/zh_TW.json b/src/third_party/devtools/node_modules/yargs-unparser/node_modules/yargs/locales/zh_TW.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs-unparser/node_modules/yargs/locales/zh_TW.json
rename to src/third_party/devtools/node_modules/yargs-unparser/node_modules/yargs/locales/zh_TW.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs-unparser/node_modules/yargs/package.json b/src/third_party/devtools/node_modules/yargs-unparser/node_modules/yargs/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs-unparser/node_modules/yargs/package.json
rename to src/third_party/devtools/node_modules/yargs-unparser/node_modules/yargs/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs-unparser/node_modules/yargs/yargs.js b/src/third_party/devtools/node_modules/yargs-unparser/node_modules/yargs/yargs.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs-unparser/node_modules/yargs/yargs.js
rename to src/third_party/devtools/node_modules/yargs-unparser/node_modules/yargs/yargs.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs-unparser/package.json b/src/third_party/devtools/node_modules/yargs-unparser/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs-unparser/package.json
rename to src/third_party/devtools/node_modules/yargs-unparser/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs/CHANGELOG.md b/src/third_party/devtools/node_modules/yargs/CHANGELOG.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs/CHANGELOG.md
rename to src/third_party/devtools/node_modules/yargs/CHANGELOG.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs/LICENSE b/src/third_party/devtools/node_modules/yargs/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs/LICENSE
rename to src/third_party/devtools/node_modules/yargs/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs/README.md b/src/third_party/devtools/node_modules/yargs/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs/README.md
rename to src/third_party/devtools/node_modules/yargs/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs/index.js b/src/third_party/devtools/node_modules/yargs/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs/index.js
rename to src/third_party/devtools/node_modules/yargs/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs/lib/apply-extends.js b/src/third_party/devtools/node_modules/yargs/lib/apply-extends.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs/lib/apply-extends.js
rename to src/third_party/devtools/node_modules/yargs/lib/apply-extends.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs/lib/argsert.js b/src/third_party/devtools/node_modules/yargs/lib/argsert.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs/lib/argsert.js
rename to src/third_party/devtools/node_modules/yargs/lib/argsert.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs/lib/command.js b/src/third_party/devtools/node_modules/yargs/lib/command.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs/lib/command.js
rename to src/third_party/devtools/node_modules/yargs/lib/command.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs/lib/completion-templates.js b/src/third_party/devtools/node_modules/yargs/lib/completion-templates.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs/lib/completion-templates.js
rename to src/third_party/devtools/node_modules/yargs/lib/completion-templates.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs/lib/completion.js b/src/third_party/devtools/node_modules/yargs/lib/completion.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs/lib/completion.js
rename to src/third_party/devtools/node_modules/yargs/lib/completion.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs/lib/is-promise.js b/src/third_party/devtools/node_modules/yargs/lib/is-promise.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs/lib/is-promise.js
rename to src/third_party/devtools/node_modules/yargs/lib/is-promise.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs/lib/levenshtein.js b/src/third_party/devtools/node_modules/yargs/lib/levenshtein.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs/lib/levenshtein.js
rename to src/third_party/devtools/node_modules/yargs/lib/levenshtein.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs/lib/middleware.js b/src/third_party/devtools/node_modules/yargs/lib/middleware.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs/lib/middleware.js
rename to src/third_party/devtools/node_modules/yargs/lib/middleware.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs/lib/obj-filter.js b/src/third_party/devtools/node_modules/yargs/lib/obj-filter.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs/lib/obj-filter.js
rename to src/third_party/devtools/node_modules/yargs/lib/obj-filter.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs/lib/usage.js b/src/third_party/devtools/node_modules/yargs/lib/usage.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs/lib/usage.js
rename to src/third_party/devtools/node_modules/yargs/lib/usage.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs/lib/validation.js b/src/third_party/devtools/node_modules/yargs/lib/validation.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs/lib/validation.js
rename to src/third_party/devtools/node_modules/yargs/lib/validation.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs/lib/yerror.js b/src/third_party/devtools/node_modules/yargs/lib/yerror.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs/lib/yerror.js
rename to src/third_party/devtools/node_modules/yargs/lib/yerror.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs/locales/be.json b/src/third_party/devtools/node_modules/yargs/locales/be.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs/locales/be.json
rename to src/third_party/devtools/node_modules/yargs/locales/be.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs/locales/de.json b/src/third_party/devtools/node_modules/yargs/locales/de.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs/locales/de.json
rename to src/third_party/devtools/node_modules/yargs/locales/de.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs/locales/en.json b/src/third_party/devtools/node_modules/yargs/locales/en.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs/locales/en.json
rename to src/third_party/devtools/node_modules/yargs/locales/en.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs/locales/es.json b/src/third_party/devtools/node_modules/yargs/locales/es.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs/locales/es.json
rename to src/third_party/devtools/node_modules/yargs/locales/es.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs/locales/fr.json b/src/third_party/devtools/node_modules/yargs/locales/fr.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs/locales/fr.json
rename to src/third_party/devtools/node_modules/yargs/locales/fr.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs/locales/hi.json b/src/third_party/devtools/node_modules/yargs/locales/hi.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs/locales/hi.json
rename to src/third_party/devtools/node_modules/yargs/locales/hi.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs/locales/hu.json b/src/third_party/devtools/node_modules/yargs/locales/hu.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs/locales/hu.json
rename to src/third_party/devtools/node_modules/yargs/locales/hu.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs/locales/id.json b/src/third_party/devtools/node_modules/yargs/locales/id.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs/locales/id.json
rename to src/third_party/devtools/node_modules/yargs/locales/id.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs/locales/it.json b/src/third_party/devtools/node_modules/yargs/locales/it.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs/locales/it.json
rename to src/third_party/devtools/node_modules/yargs/locales/it.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs/locales/ja.json b/src/third_party/devtools/node_modules/yargs/locales/ja.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs/locales/ja.json
rename to src/third_party/devtools/node_modules/yargs/locales/ja.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs/locales/ko.json b/src/third_party/devtools/node_modules/yargs/locales/ko.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs/locales/ko.json
rename to src/third_party/devtools/node_modules/yargs/locales/ko.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs/locales/nb.json b/src/third_party/devtools/node_modules/yargs/locales/nb.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs/locales/nb.json
rename to src/third_party/devtools/node_modules/yargs/locales/nb.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs/locales/nl.json b/src/third_party/devtools/node_modules/yargs/locales/nl.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs/locales/nl.json
rename to src/third_party/devtools/node_modules/yargs/locales/nl.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs/locales/nn.json b/src/third_party/devtools/node_modules/yargs/locales/nn.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs/locales/nn.json
rename to src/third_party/devtools/node_modules/yargs/locales/nn.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs/locales/pirate.json b/src/third_party/devtools/node_modules/yargs/locales/pirate.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs/locales/pirate.json
rename to src/third_party/devtools/node_modules/yargs/locales/pirate.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs/locales/pl.json b/src/third_party/devtools/node_modules/yargs/locales/pl.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs/locales/pl.json
rename to src/third_party/devtools/node_modules/yargs/locales/pl.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs/locales/pt.json b/src/third_party/devtools/node_modules/yargs/locales/pt.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs/locales/pt.json
rename to src/third_party/devtools/node_modules/yargs/locales/pt.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs/locales/pt_BR.json b/src/third_party/devtools/node_modules/yargs/locales/pt_BR.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs/locales/pt_BR.json
rename to src/third_party/devtools/node_modules/yargs/locales/pt_BR.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs/locales/ru.json b/src/third_party/devtools/node_modules/yargs/locales/ru.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs/locales/ru.json
rename to src/third_party/devtools/node_modules/yargs/locales/ru.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs/locales/th.json b/src/third_party/devtools/node_modules/yargs/locales/th.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs/locales/th.json
rename to src/third_party/devtools/node_modules/yargs/locales/th.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs/locales/tr.json b/src/third_party/devtools/node_modules/yargs/locales/tr.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs/locales/tr.json
rename to src/third_party/devtools/node_modules/yargs/locales/tr.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs/locales/zh_CN.json b/src/third_party/devtools/node_modules/yargs/locales/zh_CN.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs/locales/zh_CN.json
rename to src/third_party/devtools/node_modules/yargs/locales/zh_CN.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs/locales/zh_TW.json b/src/third_party/devtools/node_modules/yargs/locales/zh_TW.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs/locales/zh_TW.json
rename to src/third_party/devtools/node_modules/yargs/locales/zh_TW.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs/node_modules/ansi-regex/index.d.ts b/src/third_party/devtools/node_modules/yargs/node_modules/ansi-regex/index.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs/node_modules/ansi-regex/index.d.ts
rename to src/third_party/devtools/node_modules/yargs/node_modules/ansi-regex/index.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs/node_modules/ansi-regex/index.js b/src/third_party/devtools/node_modules/yargs/node_modules/ansi-regex/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs/node_modules/ansi-regex/index.js
rename to src/third_party/devtools/node_modules/yargs/node_modules/ansi-regex/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs/node_modules/ansi-regex/license b/src/third_party/devtools/node_modules/yargs/node_modules/ansi-regex/license
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs/node_modules/ansi-regex/license
rename to src/third_party/devtools/node_modules/yargs/node_modules/ansi-regex/license
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs/node_modules/ansi-regex/package.json b/src/third_party/devtools/node_modules/yargs/node_modules/ansi-regex/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs/node_modules/ansi-regex/package.json
rename to src/third_party/devtools/node_modules/yargs/node_modules/ansi-regex/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs/node_modules/ansi-regex/readme.md b/src/third_party/devtools/node_modules/yargs/node_modules/ansi-regex/readme.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs/node_modules/ansi-regex/readme.md
rename to src/third_party/devtools/node_modules/yargs/node_modules/ansi-regex/readme.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs/node_modules/ansi-styles/index.d.ts b/src/third_party/devtools/node_modules/yargs/node_modules/ansi-styles/index.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs/node_modules/ansi-styles/index.d.ts
rename to src/third_party/devtools/node_modules/yargs/node_modules/ansi-styles/index.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs/node_modules/ansi-styles/index.js b/src/third_party/devtools/node_modules/yargs/node_modules/ansi-styles/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs/node_modules/ansi-styles/index.js
rename to src/third_party/devtools/node_modules/yargs/node_modules/ansi-styles/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs/node_modules/ansi-styles/license b/src/third_party/devtools/node_modules/yargs/node_modules/ansi-styles/license
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs/node_modules/ansi-styles/license
rename to src/third_party/devtools/node_modules/yargs/node_modules/ansi-styles/license
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs/node_modules/ansi-styles/package.json b/src/third_party/devtools/node_modules/yargs/node_modules/ansi-styles/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs/node_modules/ansi-styles/package.json
rename to src/third_party/devtools/node_modules/yargs/node_modules/ansi-styles/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs/node_modules/ansi-styles/readme.md b/src/third_party/devtools/node_modules/yargs/node_modules/ansi-styles/readme.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs/node_modules/ansi-styles/readme.md
rename to src/third_party/devtools/node_modules/yargs/node_modules/ansi-styles/readme.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs/node_modules/camelcase/index.d.ts b/src/third_party/devtools/node_modules/yargs/node_modules/camelcase/index.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs/node_modules/camelcase/index.d.ts
rename to src/third_party/devtools/node_modules/yargs/node_modules/camelcase/index.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs/node_modules/camelcase/index.js b/src/third_party/devtools/node_modules/yargs/node_modules/camelcase/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs/node_modules/camelcase/index.js
rename to src/third_party/devtools/node_modules/yargs/node_modules/camelcase/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs/node_modules/camelcase/license b/src/third_party/devtools/node_modules/yargs/node_modules/camelcase/license
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs/node_modules/camelcase/license
rename to src/third_party/devtools/node_modules/yargs/node_modules/camelcase/license
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs/node_modules/camelcase/package.json b/src/third_party/devtools/node_modules/yargs/node_modules/camelcase/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs/node_modules/camelcase/package.json
rename to src/third_party/devtools/node_modules/yargs/node_modules/camelcase/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs/node_modules/camelcase/readme.md b/src/third_party/devtools/node_modules/yargs/node_modules/camelcase/readme.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs/node_modules/camelcase/readme.md
rename to src/third_party/devtools/node_modules/yargs/node_modules/camelcase/readme.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs/node_modules/cliui/CHANGELOG.md b/src/third_party/devtools/node_modules/yargs/node_modules/cliui/CHANGELOG.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs/node_modules/cliui/CHANGELOG.md
rename to src/third_party/devtools/node_modules/yargs/node_modules/cliui/CHANGELOG.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs/node_modules/cliui/LICENSE.txt b/src/third_party/devtools/node_modules/yargs/node_modules/cliui/LICENSE.txt
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs/node_modules/cliui/LICENSE.txt
rename to src/third_party/devtools/node_modules/yargs/node_modules/cliui/LICENSE.txt
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs/node_modules/cliui/README.md b/src/third_party/devtools/node_modules/yargs/node_modules/cliui/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs/node_modules/cliui/README.md
rename to src/third_party/devtools/node_modules/yargs/node_modules/cliui/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs/node_modules/cliui/index.js b/src/third_party/devtools/node_modules/yargs/node_modules/cliui/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs/node_modules/cliui/index.js
rename to src/third_party/devtools/node_modules/yargs/node_modules/cliui/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs/node_modules/cliui/package.json b/src/third_party/devtools/node_modules/yargs/node_modules/cliui/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs/node_modules/cliui/package.json
rename to src/third_party/devtools/node_modules/yargs/node_modules/cliui/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs/node_modules/color-convert/CHANGELOG.md b/src/third_party/devtools/node_modules/yargs/node_modules/color-convert/CHANGELOG.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs/node_modules/color-convert/CHANGELOG.md
rename to src/third_party/devtools/node_modules/yargs/node_modules/color-convert/CHANGELOG.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs/node_modules/color-convert/LICENSE b/src/third_party/devtools/node_modules/yargs/node_modules/color-convert/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs/node_modules/color-convert/LICENSE
rename to src/third_party/devtools/node_modules/yargs/node_modules/color-convert/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs/node_modules/color-convert/README.md b/src/third_party/devtools/node_modules/yargs/node_modules/color-convert/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs/node_modules/color-convert/README.md
rename to src/third_party/devtools/node_modules/yargs/node_modules/color-convert/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs/node_modules/color-convert/conversions.js b/src/third_party/devtools/node_modules/yargs/node_modules/color-convert/conversions.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs/node_modules/color-convert/conversions.js
rename to src/third_party/devtools/node_modules/yargs/node_modules/color-convert/conversions.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs/node_modules/color-convert/index.js b/src/third_party/devtools/node_modules/yargs/node_modules/color-convert/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs/node_modules/color-convert/index.js
rename to src/third_party/devtools/node_modules/yargs/node_modules/color-convert/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs/node_modules/color-convert/package.json b/src/third_party/devtools/node_modules/yargs/node_modules/color-convert/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs/node_modules/color-convert/package.json
rename to src/third_party/devtools/node_modules/yargs/node_modules/color-convert/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs/node_modules/color-convert/route.js b/src/third_party/devtools/node_modules/yargs/node_modules/color-convert/route.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs/node_modules/color-convert/route.js
rename to src/third_party/devtools/node_modules/yargs/node_modules/color-convert/route.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs/node_modules/color-name/LICENSE b/src/third_party/devtools/node_modules/yargs/node_modules/color-name/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs/node_modules/color-name/LICENSE
rename to src/third_party/devtools/node_modules/yargs/node_modules/color-name/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs/node_modules/color-name/README.md b/src/third_party/devtools/node_modules/yargs/node_modules/color-name/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs/node_modules/color-name/README.md
rename to src/third_party/devtools/node_modules/yargs/node_modules/color-name/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs/node_modules/color-name/index.js b/src/third_party/devtools/node_modules/yargs/node_modules/color-name/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs/node_modules/color-name/index.js
rename to src/third_party/devtools/node_modules/yargs/node_modules/color-name/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs/node_modules/color-name/package.json b/src/third_party/devtools/node_modules/yargs/node_modules/color-name/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs/node_modules/color-name/package.json
rename to src/third_party/devtools/node_modules/yargs/node_modules/color-name/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs/node_modules/emoji-regex/LICENSE-MIT.txt b/src/third_party/devtools/node_modules/yargs/node_modules/emoji-regex/LICENSE-MIT.txt
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs/node_modules/emoji-regex/LICENSE-MIT.txt
rename to src/third_party/devtools/node_modules/yargs/node_modules/emoji-regex/LICENSE-MIT.txt
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs/node_modules/emoji-regex/README.md b/src/third_party/devtools/node_modules/yargs/node_modules/emoji-regex/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs/node_modules/emoji-regex/README.md
rename to src/third_party/devtools/node_modules/yargs/node_modules/emoji-regex/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs/node_modules/emoji-regex/es2015/index.js b/src/third_party/devtools/node_modules/yargs/node_modules/emoji-regex/es2015/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs/node_modules/emoji-regex/es2015/index.js
rename to src/third_party/devtools/node_modules/yargs/node_modules/emoji-regex/es2015/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs/node_modules/emoji-regex/es2015/text.js b/src/third_party/devtools/node_modules/yargs/node_modules/emoji-regex/es2015/text.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs/node_modules/emoji-regex/es2015/text.js
rename to src/third_party/devtools/node_modules/yargs/node_modules/emoji-regex/es2015/text.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs/node_modules/emoji-regex/index.d.ts b/src/third_party/devtools/node_modules/yargs/node_modules/emoji-regex/index.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs/node_modules/emoji-regex/index.d.ts
rename to src/third_party/devtools/node_modules/yargs/node_modules/emoji-regex/index.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs/node_modules/emoji-regex/index.js b/src/third_party/devtools/node_modules/yargs/node_modules/emoji-regex/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs/node_modules/emoji-regex/index.js
rename to src/third_party/devtools/node_modules/yargs/node_modules/emoji-regex/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs/node_modules/emoji-regex/package.json b/src/third_party/devtools/node_modules/yargs/node_modules/emoji-regex/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs/node_modules/emoji-regex/package.json
rename to src/third_party/devtools/node_modules/yargs/node_modules/emoji-regex/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs/node_modules/emoji-regex/text.js b/src/third_party/devtools/node_modules/yargs/node_modules/emoji-regex/text.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs/node_modules/emoji-regex/text.js
rename to src/third_party/devtools/node_modules/yargs/node_modules/emoji-regex/text.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs/node_modules/find-up/index.d.ts b/src/third_party/devtools/node_modules/yargs/node_modules/find-up/index.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs/node_modules/find-up/index.d.ts
rename to src/third_party/devtools/node_modules/yargs/node_modules/find-up/index.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs/node_modules/find-up/index.js b/src/third_party/devtools/node_modules/yargs/node_modules/find-up/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs/node_modules/find-up/index.js
rename to src/third_party/devtools/node_modules/yargs/node_modules/find-up/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs/node_modules/find-up/license b/src/third_party/devtools/node_modules/yargs/node_modules/find-up/license
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs/node_modules/find-up/license
rename to src/third_party/devtools/node_modules/yargs/node_modules/find-up/license
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs/node_modules/find-up/package.json b/src/third_party/devtools/node_modules/yargs/node_modules/find-up/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs/node_modules/find-up/package.json
rename to src/third_party/devtools/node_modules/yargs/node_modules/find-up/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs/node_modules/find-up/readme.md b/src/third_party/devtools/node_modules/yargs/node_modules/find-up/readme.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs/node_modules/find-up/readme.md
rename to src/third_party/devtools/node_modules/yargs/node_modules/find-up/readme.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs/node_modules/is-fullwidth-code-point/index.d.ts b/src/third_party/devtools/node_modules/yargs/node_modules/is-fullwidth-code-point/index.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs/node_modules/is-fullwidth-code-point/index.d.ts
rename to src/third_party/devtools/node_modules/yargs/node_modules/is-fullwidth-code-point/index.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs/node_modules/is-fullwidth-code-point/index.js b/src/third_party/devtools/node_modules/yargs/node_modules/is-fullwidth-code-point/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs/node_modules/is-fullwidth-code-point/index.js
rename to src/third_party/devtools/node_modules/yargs/node_modules/is-fullwidth-code-point/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs/node_modules/is-fullwidth-code-point/license b/src/third_party/devtools/node_modules/yargs/node_modules/is-fullwidth-code-point/license
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs/node_modules/is-fullwidth-code-point/license
rename to src/third_party/devtools/node_modules/yargs/node_modules/is-fullwidth-code-point/license
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs/node_modules/is-fullwidth-code-point/package.json b/src/third_party/devtools/node_modules/yargs/node_modules/is-fullwidth-code-point/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs/node_modules/is-fullwidth-code-point/package.json
rename to src/third_party/devtools/node_modules/yargs/node_modules/is-fullwidth-code-point/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs/node_modules/is-fullwidth-code-point/readme.md b/src/third_party/devtools/node_modules/yargs/node_modules/is-fullwidth-code-point/readme.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs/node_modules/is-fullwidth-code-point/readme.md
rename to src/third_party/devtools/node_modules/yargs/node_modules/is-fullwidth-code-point/readme.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs/node_modules/locate-path/index.d.ts b/src/third_party/devtools/node_modules/yargs/node_modules/locate-path/index.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs/node_modules/locate-path/index.d.ts
rename to src/third_party/devtools/node_modules/yargs/node_modules/locate-path/index.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs/node_modules/locate-path/index.js b/src/third_party/devtools/node_modules/yargs/node_modules/locate-path/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs/node_modules/locate-path/index.js
rename to src/third_party/devtools/node_modules/yargs/node_modules/locate-path/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs/node_modules/locate-path/license b/src/third_party/devtools/node_modules/yargs/node_modules/locate-path/license
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs/node_modules/locate-path/license
rename to src/third_party/devtools/node_modules/yargs/node_modules/locate-path/license
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs/node_modules/locate-path/package.json b/src/third_party/devtools/node_modules/yargs/node_modules/locate-path/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs/node_modules/locate-path/package.json
rename to src/third_party/devtools/node_modules/yargs/node_modules/locate-path/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs/node_modules/locate-path/readme.md b/src/third_party/devtools/node_modules/yargs/node_modules/locate-path/readme.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs/node_modules/locate-path/readme.md
rename to src/third_party/devtools/node_modules/yargs/node_modules/locate-path/readme.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs/node_modules/p-locate/index.d.ts b/src/third_party/devtools/node_modules/yargs/node_modules/p-locate/index.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs/node_modules/p-locate/index.d.ts
rename to src/third_party/devtools/node_modules/yargs/node_modules/p-locate/index.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs/node_modules/p-locate/index.js b/src/third_party/devtools/node_modules/yargs/node_modules/p-locate/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs/node_modules/p-locate/index.js
rename to src/third_party/devtools/node_modules/yargs/node_modules/p-locate/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs/node_modules/p-locate/license b/src/third_party/devtools/node_modules/yargs/node_modules/p-locate/license
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs/node_modules/p-locate/license
rename to src/third_party/devtools/node_modules/yargs/node_modules/p-locate/license
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs/node_modules/p-locate/package.json b/src/third_party/devtools/node_modules/yargs/node_modules/p-locate/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs/node_modules/p-locate/package.json
rename to src/third_party/devtools/node_modules/yargs/node_modules/p-locate/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs/node_modules/p-locate/readme.md b/src/third_party/devtools/node_modules/yargs/node_modules/p-locate/readme.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs/node_modules/p-locate/readme.md
rename to src/third_party/devtools/node_modules/yargs/node_modules/p-locate/readme.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs/node_modules/path-exists/index.d.ts b/src/third_party/devtools/node_modules/yargs/node_modules/path-exists/index.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs/node_modules/path-exists/index.d.ts
rename to src/third_party/devtools/node_modules/yargs/node_modules/path-exists/index.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs/node_modules/path-exists/index.js b/src/third_party/devtools/node_modules/yargs/node_modules/path-exists/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs/node_modules/path-exists/index.js
rename to src/third_party/devtools/node_modules/yargs/node_modules/path-exists/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs/node_modules/path-exists/license b/src/third_party/devtools/node_modules/yargs/node_modules/path-exists/license
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs/node_modules/path-exists/license
rename to src/third_party/devtools/node_modules/yargs/node_modules/path-exists/license
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs/node_modules/path-exists/package.json b/src/third_party/devtools/node_modules/yargs/node_modules/path-exists/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs/node_modules/path-exists/package.json
rename to src/third_party/devtools/node_modules/yargs/node_modules/path-exists/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs/node_modules/path-exists/readme.md b/src/third_party/devtools/node_modules/yargs/node_modules/path-exists/readme.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs/node_modules/path-exists/readme.md
rename to src/third_party/devtools/node_modules/yargs/node_modules/path-exists/readme.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs/node_modules/string-width/index.d.ts b/src/third_party/devtools/node_modules/yargs/node_modules/string-width/index.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs/node_modules/string-width/index.d.ts
rename to src/third_party/devtools/node_modules/yargs/node_modules/string-width/index.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs/node_modules/string-width/index.js b/src/third_party/devtools/node_modules/yargs/node_modules/string-width/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs/node_modules/string-width/index.js
rename to src/third_party/devtools/node_modules/yargs/node_modules/string-width/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs/node_modules/string-width/license b/src/third_party/devtools/node_modules/yargs/node_modules/string-width/license
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs/node_modules/string-width/license
rename to src/third_party/devtools/node_modules/yargs/node_modules/string-width/license
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs/node_modules/string-width/package.json b/src/third_party/devtools/node_modules/yargs/node_modules/string-width/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs/node_modules/string-width/package.json
rename to src/third_party/devtools/node_modules/yargs/node_modules/string-width/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs/node_modules/string-width/readme.md b/src/third_party/devtools/node_modules/yargs/node_modules/string-width/readme.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs/node_modules/string-width/readme.md
rename to src/third_party/devtools/node_modules/yargs/node_modules/string-width/readme.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs/node_modules/strip-ansi/index.d.ts b/src/third_party/devtools/node_modules/yargs/node_modules/strip-ansi/index.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs/node_modules/strip-ansi/index.d.ts
rename to src/third_party/devtools/node_modules/yargs/node_modules/strip-ansi/index.d.ts
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs/node_modules/strip-ansi/index.js b/src/third_party/devtools/node_modules/yargs/node_modules/strip-ansi/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs/node_modules/strip-ansi/index.js
rename to src/third_party/devtools/node_modules/yargs/node_modules/strip-ansi/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs/node_modules/strip-ansi/license b/src/third_party/devtools/node_modules/yargs/node_modules/strip-ansi/license
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs/node_modules/strip-ansi/license
rename to src/third_party/devtools/node_modules/yargs/node_modules/strip-ansi/license
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs/node_modules/strip-ansi/package.json b/src/third_party/devtools/node_modules/yargs/node_modules/strip-ansi/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs/node_modules/strip-ansi/package.json
rename to src/third_party/devtools/node_modules/yargs/node_modules/strip-ansi/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs/node_modules/strip-ansi/readme.md b/src/third_party/devtools/node_modules/yargs/node_modules/strip-ansi/readme.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs/node_modules/strip-ansi/readme.md
rename to src/third_party/devtools/node_modules/yargs/node_modules/strip-ansi/readme.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs/node_modules/wrap-ansi/index.js b/src/third_party/devtools/node_modules/yargs/node_modules/wrap-ansi/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs/node_modules/wrap-ansi/index.js
rename to src/third_party/devtools/node_modules/yargs/node_modules/wrap-ansi/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs/node_modules/wrap-ansi/license b/src/third_party/devtools/node_modules/yargs/node_modules/wrap-ansi/license
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs/node_modules/wrap-ansi/license
rename to src/third_party/devtools/node_modules/yargs/node_modules/wrap-ansi/license
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs/node_modules/wrap-ansi/package.json b/src/third_party/devtools/node_modules/yargs/node_modules/wrap-ansi/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs/node_modules/wrap-ansi/package.json
rename to src/third_party/devtools/node_modules/yargs/node_modules/wrap-ansi/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs/node_modules/wrap-ansi/readme.md b/src/third_party/devtools/node_modules/yargs/node_modules/wrap-ansi/readme.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs/node_modules/wrap-ansi/readme.md
rename to src/third_party/devtools/node_modules/yargs/node_modules/wrap-ansi/readme.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs/node_modules/yargs-parser/CHANGELOG.md b/src/third_party/devtools/node_modules/yargs/node_modules/yargs-parser/CHANGELOG.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs/node_modules/yargs-parser/CHANGELOG.md
rename to src/third_party/devtools/node_modules/yargs/node_modules/yargs-parser/CHANGELOG.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs/node_modules/yargs-parser/LICENSE.txt b/src/third_party/devtools/node_modules/yargs/node_modules/yargs-parser/LICENSE.txt
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs/node_modules/yargs-parser/LICENSE.txt
rename to src/third_party/devtools/node_modules/yargs/node_modules/yargs-parser/LICENSE.txt
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs/node_modules/yargs-parser/README.md b/src/third_party/devtools/node_modules/yargs/node_modules/yargs-parser/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs/node_modules/yargs-parser/README.md
rename to src/third_party/devtools/node_modules/yargs/node_modules/yargs-parser/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs/node_modules/yargs-parser/index.js b/src/third_party/devtools/node_modules/yargs/node_modules/yargs-parser/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs/node_modules/yargs-parser/index.js
rename to src/third_party/devtools/node_modules/yargs/node_modules/yargs-parser/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs/node_modules/yargs-parser/lib/tokenize-arg-string.js b/src/third_party/devtools/node_modules/yargs/node_modules/yargs-parser/lib/tokenize-arg-string.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs/node_modules/yargs-parser/lib/tokenize-arg-string.js
rename to src/third_party/devtools/node_modules/yargs/node_modules/yargs-parser/lib/tokenize-arg-string.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs/node_modules/yargs-parser/package.json b/src/third_party/devtools/node_modules/yargs/node_modules/yargs-parser/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs/node_modules/yargs-parser/package.json
rename to src/third_party/devtools/node_modules/yargs/node_modules/yargs-parser/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs/package.json b/src/third_party/devtools/node_modules/yargs/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs/package.json
rename to src/third_party/devtools/node_modules/yargs/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yargs/yargs.js b/src/third_party/devtools/node_modules/yargs/yargs.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yargs/yargs.js
rename to src/third_party/devtools/node_modules/yargs/yargs.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yauzl/.npmignore b/src/third_party/devtools/node_modules/yauzl/.npmignore
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yauzl/.npmignore
rename to src/third_party/devtools/node_modules/yauzl/.npmignore
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yauzl/.travis.yml b/src/third_party/devtools/node_modules/yauzl/.travis.yml
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yauzl/.travis.yml
rename to src/third_party/devtools/node_modules/yauzl/.travis.yml
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yauzl/LICENSE b/src/third_party/devtools/node_modules/yauzl/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yauzl/LICENSE
rename to src/third_party/devtools/node_modules/yauzl/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yauzl/README.md b/src/third_party/devtools/node_modules/yauzl/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yauzl/README.md
rename to src/third_party/devtools/node_modules/yauzl/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yauzl/index.js b/src/third_party/devtools/node_modules/yauzl/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yauzl/index.js
rename to src/third_party/devtools/node_modules/yauzl/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yauzl/package.json b/src/third_party/devtools/node_modules/yauzl/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yauzl/package.json
rename to src/third_party/devtools/node_modules/yauzl/package.json
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yeast/LICENSE b/src/third_party/devtools/node_modules/yeast/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yeast/LICENSE
rename to src/third_party/devtools/node_modules/yeast/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yeast/README.md b/src/third_party/devtools/node_modules/yeast/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yeast/README.md
rename to src/third_party/devtools/node_modules/yeast/README.md
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yeast/index.js b/src/third_party/devtools/node_modules/yeast/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yeast/index.js
rename to src/third_party/devtools/node_modules/yeast/index.js
diff --git a/src/cobalt/debug/remote/devtools/node_modules/yeast/package.json b/src/third_party/devtools/node_modules/yeast/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/node_modules/yeast/package.json
rename to src/third_party/devtools/node_modules/yeast/package.json
diff --git a/src/cobalt/debug/remote/devtools/package-lock.json b/src/third_party/devtools/package-lock.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/package-lock.json
rename to src/third_party/devtools/package-lock.json
diff --git a/src/cobalt/debug/remote/devtools/package.json b/src/third_party/devtools/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/package.json
rename to src/third_party/devtools/package.json
diff --git a/src/cobalt/debug/remote/devtools/protocol.json b/src/third_party/devtools/protocol.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/protocol.json
rename to src/third_party/devtools/protocol.json
diff --git a/src/cobalt/debug/remote/devtools/scripts/README.md b/src/third_party/devtools/scripts/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/scripts/README.md
rename to src/third_party/devtools/scripts/README.md
diff --git a/src/cobalt/debug/remote/devtools/scripts/__init__.py b/src/third_party/devtools/scripts/__init__.py
similarity index 100%
rename from src/cobalt/debug/remote/devtools/scripts/__init__.py
rename to src/third_party/devtools/scripts/__init__.py
diff --git a/src/cobalt/debug/remote/devtools/scripts/assert_empty_deps.py b/src/third_party/devtools/scripts/assert_empty_deps.py
similarity index 100%
rename from src/cobalt/debug/remote/devtools/scripts/assert_empty_deps.py
rename to src/third_party/devtools/scripts/assert_empty_deps.py
diff --git a/src/cobalt/debug/remote/devtools/scripts/build/__init__.py b/src/third_party/devtools/scripts/build/__init__.py
similarity index 100%
rename from src/cobalt/debug/remote/devtools/scripts/build/__init__.py
rename to src/third_party/devtools/scripts/build/__init__.py
diff --git a/src/cobalt/debug/remote/devtools/scripts/build/build_debug_applications.py b/src/third_party/devtools/scripts/build/build_debug_applications.py
similarity index 100%
rename from src/cobalt/debug/remote/devtools/scripts/build/build_debug_applications.py
rename to src/third_party/devtools/scripts/build/build_debug_applications.py
diff --git a/src/cobalt/debug/remote/devtools/scripts/build/build_release_applications.py b/src/third_party/devtools/scripts/build/build_release_applications.py
similarity index 100%
rename from src/cobalt/debug/remote/devtools/scripts/build/build_release_applications.py
rename to src/third_party/devtools/scripts/build/build_release_applications.py
diff --git a/src/cobalt/debug/remote/devtools/scripts/build/code_generator_frontend.py b/src/third_party/devtools/scripts/build/code_generator_frontend.py
similarity index 100%
rename from src/cobalt/debug/remote/devtools/scripts/build/code_generator_frontend.py
rename to src/third_party/devtools/scripts/build/code_generator_frontend.py
diff --git a/src/cobalt/debug/remote/devtools/scripts/build/copy_devtools_modules.py b/src/third_party/devtools/scripts/build/copy_devtools_modules.py
similarity index 100%
rename from src/cobalt/debug/remote/devtools/scripts/build/copy_devtools_modules.py
rename to src/third_party/devtools/scripts/build/copy_devtools_modules.py
diff --git a/src/cobalt/debug/remote/devtools/scripts/build/dependency_preprocessor.py b/src/third_party/devtools/scripts/build/dependency_preprocessor.py
similarity index 100%
rename from src/cobalt/debug/remote/devtools/scripts/build/dependency_preprocessor.py
rename to src/third_party/devtools/scripts/build/dependency_preprocessor.py
diff --git a/src/cobalt/debug/remote/devtools/scripts/build/devtools_file_hashes.py b/src/third_party/devtools/scripts/build/devtools_file_hashes.py
similarity index 100%
rename from src/cobalt/debug/remote/devtools/scripts/build/devtools_file_hashes.py
rename to src/third_party/devtools/scripts/build/devtools_file_hashes.py
diff --git a/src/cobalt/debug/remote/devtools/scripts/build/generate_aria.py b/src/third_party/devtools/scripts/build/generate_aria.py
similarity index 100%
rename from src/cobalt/debug/remote/devtools/scripts/build/generate_aria.py
rename to src/third_party/devtools/scripts/build/generate_aria.py
diff --git a/src/cobalt/debug/remote/devtools/scripts/build/generate_devtools_extension_api.py b/src/third_party/devtools/scripts/build/generate_devtools_extension_api.py
similarity index 100%
rename from src/cobalt/debug/remote/devtools/scripts/build/generate_devtools_extension_api.py
rename to src/third_party/devtools/scripts/build/generate_devtools_extension_api.py
diff --git a/src/cobalt/debug/remote/devtools/scripts/build/generate_devtools_grd.py b/src/third_party/devtools/scripts/build/generate_devtools_grd.py
similarity index 100%
rename from src/cobalt/debug/remote/devtools/scripts/build/generate_devtools_grd.py
rename to src/third_party/devtools/scripts/build/generate_devtools_grd.py
diff --git a/src/cobalt/debug/remote/devtools/scripts/build/generate_devtools_ui_strings.js b/src/third_party/devtools/scripts/build/generate_devtools_ui_strings.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/scripts/build/generate_devtools_ui_strings.js
rename to src/third_party/devtools/scripts/build/generate_devtools_ui_strings.js
diff --git a/src/cobalt/debug/remote/devtools/scripts/build/generate_devtools_ui_strings.py b/src/third_party/devtools/scripts/build/generate_devtools_ui_strings.py
similarity index 100%
rename from src/cobalt/debug/remote/devtools/scripts/build/generate_devtools_ui_strings.py
rename to src/third_party/devtools/scripts/build/generate_devtools_ui_strings.py
diff --git a/src/cobalt/debug/remote/devtools/scripts/build/generate_protocol_externs.py b/src/third_party/devtools/scripts/build/generate_protocol_externs.py
similarity index 100%
rename from src/cobalt/debug/remote/devtools/scripts/build/generate_protocol_externs.py
rename to src/third_party/devtools/scripts/build/generate_protocol_externs.py
diff --git a/src/cobalt/debug/remote/devtools/scripts/build/generate_supported_css.py b/src/third_party/devtools/scripts/build/generate_supported_css.py
similarity index 100%
rename from src/cobalt/debug/remote/devtools/scripts/build/generate_supported_css.py
rename to src/third_party/devtools/scripts/build/generate_supported_css.py
diff --git a/src/cobalt/debug/remote/devtools/scripts/build/modular_build.py b/src/third_party/devtools/scripts/build/modular_build.py
similarity index 100%
rename from src/cobalt/debug/remote/devtools/scripts/build/modular_build.py
rename to src/third_party/devtools/scripts/build/modular_build.py
diff --git a/src/cobalt/debug/remote/devtools/scripts/build/rjsmin.py b/src/third_party/devtools/scripts/build/rjsmin.py
similarity index 100%
rename from src/cobalt/debug/remote/devtools/scripts/build/rjsmin.py
rename to src/third_party/devtools/scripts/build/rjsmin.py
diff --git a/src/cobalt/debug/remote/devtools/scripts/build/special_case_namespaces.json b/src/third_party/devtools/scripts/build/special_case_namespaces.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/scripts/build/special_case_namespaces.json
rename to src/third_party/devtools/scripts/build/special_case_namespaces.json
diff --git a/src/cobalt/debug/remote/devtools/scripts/build/special_case_namespaces.py b/src/third_party/devtools/scripts/build/special_case_namespaces.py
similarity index 100%
rename from src/cobalt/debug/remote/devtools/scripts/build/special_case_namespaces.py
rename to src/third_party/devtools/scripts/build/special_case_namespaces.py
diff --git a/src/cobalt/debug/remote/devtools/scripts/check_gn.js b/src/third_party/devtools/scripts/check_gn.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/scripts/check_gn.js
rename to src/third_party/devtools/scripts/check_gn.js
diff --git a/src/cobalt/debug/remote/devtools/scripts/closure/COPYING b/src/third_party/devtools/scripts/closure/COPYING
similarity index 100%
rename from src/cobalt/debug/remote/devtools/scripts/closure/COPYING
rename to src/third_party/devtools/scripts/closure/COPYING
diff --git a/src/cobalt/debug/remote/devtools/scripts/closure/README.md b/src/third_party/devtools/scripts/closure/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/scripts/closure/README.md
rename to src/third_party/devtools/scripts/closure/README.md
diff --git a/src/cobalt/debug/remote/devtools/scripts/closure/closure_runner/build_compiler_runner_jar.py b/src/third_party/devtools/scripts/closure/closure_runner/build_compiler_runner_jar.py
similarity index 100%
rename from src/cobalt/debug/remote/devtools/scripts/closure/closure_runner/build_compiler_runner_jar.py
rename to src/third_party/devtools/scripts/closure/closure_runner/build_compiler_runner_jar.py
diff --git a/src/cobalt/debug/remote/devtools/scripts/closure/closure_runner/closure_runner.jar b/src/third_party/devtools/scripts/closure/closure_runner/closure_runner.jar
similarity index 100%
rename from src/cobalt/debug/remote/devtools/scripts/closure/closure_runner/closure_runner.jar
rename to src/third_party/devtools/scripts/closure/closure_runner/closure_runner.jar
Binary files differ
diff --git a/src/cobalt/debug/remote/devtools/scripts/closure/closure_runner/src/org/chromium/devtools/compiler/DevToolsCodingConvention.java b/src/third_party/devtools/scripts/closure/closure_runner/src/org/chromium/devtools/compiler/DevToolsCodingConvention.java
similarity index 100%
rename from src/cobalt/debug/remote/devtools/scripts/closure/closure_runner/src/org/chromium/devtools/compiler/DevToolsCodingConvention.java
rename to src/third_party/devtools/scripts/closure/closure_runner/src/org/chromium/devtools/compiler/DevToolsCodingConvention.java
diff --git a/src/cobalt/debug/remote/devtools/scripts/closure/closure_runner/src/org/chromium/devtools/compiler/Runner.java b/src/third_party/devtools/scripts/closure/closure_runner/src/org/chromium/devtools/compiler/Runner.java
similarity index 100%
rename from src/cobalt/debug/remote/devtools/scripts/closure/closure_runner/src/org/chromium/devtools/compiler/Runner.java
rename to src/third_party/devtools/scripts/closure/closure_runner/src/org/chromium/devtools/compiler/Runner.java
diff --git a/src/cobalt/debug/remote/devtools/scripts/closure/compiler.jar b/src/third_party/devtools/scripts/closure/compiler.jar
similarity index 100%
rename from src/cobalt/debug/remote/devtools/scripts/closure/compiler.jar
rename to src/third_party/devtools/scripts/closure/compiler.jar
Binary files differ
diff --git a/src/cobalt/debug/remote/devtools/scripts/deps/download_chromium.py b/src/third_party/devtools/scripts/deps/download_chromium.py
similarity index 100%
rename from src/cobalt/debug/remote/devtools/scripts/deps/download_chromium.py
rename to src/third_party/devtools/scripts/deps/download_chromium.py
diff --git a/src/cobalt/debug/remote/devtools/scripts/deps/manage_node_deps.py b/src/third_party/devtools/scripts/deps/manage_node_deps.py
similarity index 100%
rename from src/cobalt/debug/remote/devtools/scripts/deps/manage_node_deps.py
rename to src/third_party/devtools/scripts/deps/manage_node_deps.py
diff --git a/src/cobalt/debug/remote/devtools/scripts/deps/roll_codemirror.py b/src/third_party/devtools/scripts/deps/roll_codemirror.py
similarity index 100%
rename from src/cobalt/debug/remote/devtools/scripts/deps/roll_codemirror.py
rename to src/third_party/devtools/scripts/deps/roll_codemirror.py
diff --git a/src/cobalt/debug/remote/devtools/scripts/deps/roll_deps.py b/src/third_party/devtools/scripts/deps/roll_deps.py
similarity index 100%
rename from src/cobalt/debug/remote/devtools/scripts/deps/roll_deps.py
rename to src/third_party/devtools/scripts/deps/roll_deps.py
diff --git a/src/cobalt/debug/remote/devtools/scripts/deps/roll_to_chromium.py b/src/third_party/devtools/scripts/deps/roll_to_chromium.py
similarity index 100%
rename from src/cobalt/debug/remote/devtools/scripts/deps/roll_to_chromium.py
rename to src/third_party/devtools/scripts/deps/roll_to_chromium.py
diff --git a/src/cobalt/debug/remote/devtools/scripts/devtools_paths.py b/src/third_party/devtools/scripts/devtools_paths.py
similarity index 100%
rename from src/cobalt/debug/remote/devtools/scripts/devtools_paths.py
rename to src/third_party/devtools/scripts/devtools_paths.py
diff --git a/src/cobalt/debug/remote/devtools/scripts/devtools_run/devtools_run_cli b/src/third_party/devtools/scripts/devtools_run/devtools_run_cli
similarity index 100%
rename from src/cobalt/debug/remote/devtools/scripts/devtools_run/devtools_run_cli
rename to src/third_party/devtools/scripts/devtools_run/devtools_run_cli
diff --git a/src/cobalt/debug/remote/devtools/scripts/devtools_run/package.json b/src/third_party/devtools/scripts/devtools_run/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/scripts/devtools_run/package.json
rename to src/third_party/devtools/scripts/devtools_run/package.json
diff --git a/src/cobalt/debug/remote/devtools/scripts/generate_jsconfig.js b/src/third_party/devtools/scripts/generate_jsconfig.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/scripts/generate_jsconfig.js
rename to src/third_party/devtools/scripts/generate_jsconfig.js
diff --git a/src/cobalt/debug/remote/devtools/scripts/hosted_mode/launch_chrome.js b/src/third_party/devtools/scripts/hosted_mode/launch_chrome.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/scripts/hosted_mode/launch_chrome.js
rename to src/third_party/devtools/scripts/hosted_mode/launch_chrome.js
diff --git a/src/cobalt/debug/remote/devtools/scripts/hosted_mode/server.js b/src/third_party/devtools/scripts/hosted_mode/server.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/scripts/hosted_mode/server.js
rename to src/third_party/devtools/scripts/hosted_mode/server.js
diff --git a/src/cobalt/debug/remote/devtools/scripts/hosted_mode/start_chrome_and_server.js b/src/third_party/devtools/scripts/hosted_mode/start_chrome_and_server.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/scripts/hosted_mode/start_chrome_and_server.js
rename to src/third_party/devtools/scripts/hosted_mode/start_chrome_and_server.js
diff --git a/src/cobalt/debug/remote/devtools/scripts/javascript_natives/index.js b/src/third_party/devtools/scripts/javascript_natives/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/scripts/javascript_natives/index.js
rename to src/third_party/devtools/scripts/javascript_natives/index.js
diff --git a/src/cobalt/debug/remote/devtools/scripts/javascript_natives/package.json b/src/third_party/devtools/scripts/javascript_natives/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/scripts/javascript_natives/package.json
rename to src/third_party/devtools/scripts/javascript_natives/package.json
diff --git a/src/cobalt/debug/remote/devtools/scripts/jsdoc_validator/build_jsdoc_validator_jar.py b/src/third_party/devtools/scripts/jsdoc_validator/build_jsdoc_validator_jar.py
similarity index 100%
rename from src/cobalt/debug/remote/devtools/scripts/jsdoc_validator/build_jsdoc_validator_jar.py
rename to src/third_party/devtools/scripts/jsdoc_validator/build_jsdoc_validator_jar.py
diff --git a/src/cobalt/debug/remote/devtools/scripts/jsdoc_validator/hashes b/src/third_party/devtools/scripts/jsdoc_validator/hashes
similarity index 100%
rename from src/cobalt/debug/remote/devtools/scripts/jsdoc_validator/hashes
rename to src/third_party/devtools/scripts/jsdoc_validator/hashes
diff --git a/src/cobalt/debug/remote/devtools/scripts/jsdoc_validator/jsdoc_validator.jar b/src/third_party/devtools/scripts/jsdoc_validator/jsdoc_validator.jar
similarity index 100%
rename from src/cobalt/debug/remote/devtools/scripts/jsdoc_validator/jsdoc_validator.jar
rename to src/third_party/devtools/scripts/jsdoc_validator/jsdoc_validator.jar
Binary files differ
diff --git a/src/cobalt/debug/remote/devtools/scripts/jsdoc_validator/run_tests.py b/src/third_party/devtools/scripts/jsdoc_validator/run_tests.py
similarity index 100%
rename from src/cobalt/debug/remote/devtools/scripts/jsdoc_validator/run_tests.py
rename to src/third_party/devtools/scripts/jsdoc_validator/run_tests.py
diff --git a/src/cobalt/debug/remote/devtools/scripts/jsdoc_validator/src/org/chromium/devtools/jsdoc/DoDidNodeVisitor.java b/src/third_party/devtools/scripts/jsdoc_validator/src/org/chromium/devtools/jsdoc/DoDidNodeVisitor.java
similarity index 100%
rename from src/cobalt/debug/remote/devtools/scripts/jsdoc_validator/src/org/chromium/devtools/jsdoc/DoDidNodeVisitor.java
rename to src/third_party/devtools/scripts/jsdoc_validator/src/org/chromium/devtools/jsdoc/DoDidNodeVisitor.java
diff --git a/src/cobalt/debug/remote/devtools/scripts/jsdoc_validator/src/org/chromium/devtools/jsdoc/DoDidVisitorAdapter.java b/src/third_party/devtools/scripts/jsdoc_validator/src/org/chromium/devtools/jsdoc/DoDidVisitorAdapter.java
similarity index 100%
rename from src/cobalt/debug/remote/devtools/scripts/jsdoc_validator/src/org/chromium/devtools/jsdoc/DoDidVisitorAdapter.java
rename to src/third_party/devtools/scripts/jsdoc_validator/src/org/chromium/devtools/jsdoc/DoDidVisitorAdapter.java
diff --git a/src/cobalt/debug/remote/devtools/scripts/jsdoc_validator/src/org/chromium/devtools/jsdoc/FileCheckerCallable.java b/src/third_party/devtools/scripts/jsdoc_validator/src/org/chromium/devtools/jsdoc/FileCheckerCallable.java
similarity index 100%
rename from src/cobalt/debug/remote/devtools/scripts/jsdoc_validator/src/org/chromium/devtools/jsdoc/FileCheckerCallable.java
rename to src/third_party/devtools/scripts/jsdoc_validator/src/org/chromium/devtools/jsdoc/FileCheckerCallable.java
diff --git a/src/cobalt/debug/remote/devtools/scripts/jsdoc_validator/src/org/chromium/devtools/jsdoc/JsDocValidator.java b/src/third_party/devtools/scripts/jsdoc_validator/src/org/chromium/devtools/jsdoc/JsDocValidator.java
similarity index 100%
rename from src/cobalt/debug/remote/devtools/scripts/jsdoc_validator/src/org/chromium/devtools/jsdoc/JsDocValidator.java
rename to src/third_party/devtools/scripts/jsdoc_validator/src/org/chromium/devtools/jsdoc/JsDocValidator.java
diff --git a/src/cobalt/debug/remote/devtools/scripts/jsdoc_validator/src/org/chromium/devtools/jsdoc/ValidationCheck.java b/src/third_party/devtools/scripts/jsdoc_validator/src/org/chromium/devtools/jsdoc/ValidationCheck.java
similarity index 100%
rename from src/cobalt/debug/remote/devtools/scripts/jsdoc_validator/src/org/chromium/devtools/jsdoc/ValidationCheck.java
rename to src/third_party/devtools/scripts/jsdoc_validator/src/org/chromium/devtools/jsdoc/ValidationCheck.java
diff --git a/src/cobalt/debug/remote/devtools/scripts/jsdoc_validator/src/org/chromium/devtools/jsdoc/ValidatorContext.java b/src/third_party/devtools/scripts/jsdoc_validator/src/org/chromium/devtools/jsdoc/ValidatorContext.java
similarity index 100%
rename from src/cobalt/debug/remote/devtools/scripts/jsdoc_validator/src/org/chromium/devtools/jsdoc/ValidatorContext.java
rename to src/third_party/devtools/scripts/jsdoc_validator/src/org/chromium/devtools/jsdoc/ValidatorContext.java
diff --git a/src/cobalt/debug/remote/devtools/scripts/jsdoc_validator/src/org/chromium/devtools/jsdoc/checks/AstUtil.java b/src/third_party/devtools/scripts/jsdoc_validator/src/org/chromium/devtools/jsdoc/checks/AstUtil.java
similarity index 100%
rename from src/cobalt/debug/remote/devtools/scripts/jsdoc_validator/src/org/chromium/devtools/jsdoc/checks/AstUtil.java
rename to src/third_party/devtools/scripts/jsdoc_validator/src/org/chromium/devtools/jsdoc/checks/AstUtil.java
diff --git a/src/cobalt/debug/remote/devtools/scripts/jsdoc_validator/src/org/chromium/devtools/jsdoc/checks/ContextTrackingChecker.java b/src/third_party/devtools/scripts/jsdoc_validator/src/org/chromium/devtools/jsdoc/checks/ContextTrackingChecker.java
similarity index 100%
rename from src/cobalt/debug/remote/devtools/scripts/jsdoc_validator/src/org/chromium/devtools/jsdoc/checks/ContextTrackingChecker.java
rename to src/third_party/devtools/scripts/jsdoc_validator/src/org/chromium/devtools/jsdoc/checks/ContextTrackingChecker.java
diff --git a/src/cobalt/debug/remote/devtools/scripts/jsdoc_validator/src/org/chromium/devtools/jsdoc/checks/ContextTrackingState.java b/src/third_party/devtools/scripts/jsdoc_validator/src/org/chromium/devtools/jsdoc/checks/ContextTrackingState.java
similarity index 100%
rename from src/cobalt/debug/remote/devtools/scripts/jsdoc_validator/src/org/chromium/devtools/jsdoc/checks/ContextTrackingState.java
rename to src/third_party/devtools/scripts/jsdoc_validator/src/org/chromium/devtools/jsdoc/checks/ContextTrackingState.java
diff --git a/src/cobalt/debug/remote/devtools/scripts/jsdoc_validator/src/org/chromium/devtools/jsdoc/checks/ContextTrackingValidationCheck.java b/src/third_party/devtools/scripts/jsdoc_validator/src/org/chromium/devtools/jsdoc/checks/ContextTrackingValidationCheck.java
similarity index 100%
rename from src/cobalt/debug/remote/devtools/scripts/jsdoc_validator/src/org/chromium/devtools/jsdoc/checks/ContextTrackingValidationCheck.java
rename to src/third_party/devtools/scripts/jsdoc_validator/src/org/chromium/devtools/jsdoc/checks/ContextTrackingValidationCheck.java
diff --git a/src/cobalt/debug/remote/devtools/scripts/jsdoc_validator/src/org/chromium/devtools/jsdoc/checks/DisallowedGlobalPropertiesChecker.java b/src/third_party/devtools/scripts/jsdoc_validator/src/org/chromium/devtools/jsdoc/checks/DisallowedGlobalPropertiesChecker.java
similarity index 100%
rename from src/cobalt/debug/remote/devtools/scripts/jsdoc_validator/src/org/chromium/devtools/jsdoc/checks/DisallowedGlobalPropertiesChecker.java
rename to src/third_party/devtools/scripts/jsdoc_validator/src/org/chromium/devtools/jsdoc/checks/DisallowedGlobalPropertiesChecker.java
diff --git a/src/cobalt/debug/remote/devtools/scripts/jsdoc_validator/src/org/chromium/devtools/jsdoc/checks/FunctionReceiverChecker.java b/src/third_party/devtools/scripts/jsdoc_validator/src/org/chromium/devtools/jsdoc/checks/FunctionReceiverChecker.java
similarity index 100%
rename from src/cobalt/debug/remote/devtools/scripts/jsdoc_validator/src/org/chromium/devtools/jsdoc/checks/FunctionReceiverChecker.java
rename to src/third_party/devtools/scripts/jsdoc_validator/src/org/chromium/devtools/jsdoc/checks/FunctionReceiverChecker.java
diff --git a/src/cobalt/debug/remote/devtools/scripts/jsdoc_validator/src/org/chromium/devtools/jsdoc/checks/FunctionRecord.java b/src/third_party/devtools/scripts/jsdoc_validator/src/org/chromium/devtools/jsdoc/checks/FunctionRecord.java
similarity index 100%
rename from src/cobalt/debug/remote/devtools/scripts/jsdoc_validator/src/org/chromium/devtools/jsdoc/checks/FunctionRecord.java
rename to src/third_party/devtools/scripts/jsdoc_validator/src/org/chromium/devtools/jsdoc/checks/FunctionRecord.java
diff --git a/src/cobalt/debug/remote/devtools/scripts/jsdoc_validator/src/org/chromium/devtools/jsdoc/checks/MethodAnnotationChecker.java b/src/third_party/devtools/scripts/jsdoc_validator/src/org/chromium/devtools/jsdoc/checks/MethodAnnotationChecker.java
similarity index 100%
rename from src/cobalt/debug/remote/devtools/scripts/jsdoc_validator/src/org/chromium/devtools/jsdoc/checks/MethodAnnotationChecker.java
rename to src/third_party/devtools/scripts/jsdoc_validator/src/org/chromium/devtools/jsdoc/checks/MethodAnnotationChecker.java
diff --git a/src/cobalt/debug/remote/devtools/scripts/jsdoc_validator/src/org/chromium/devtools/jsdoc/checks/ProtoFollowsExtendsChecker.java b/src/third_party/devtools/scripts/jsdoc_validator/src/org/chromium/devtools/jsdoc/checks/ProtoFollowsExtendsChecker.java
similarity index 100%
rename from src/cobalt/debug/remote/devtools/scripts/jsdoc_validator/src/org/chromium/devtools/jsdoc/checks/ProtoFollowsExtendsChecker.java
rename to src/third_party/devtools/scripts/jsdoc_validator/src/org/chromium/devtools/jsdoc/checks/ProtoFollowsExtendsChecker.java
diff --git a/src/cobalt/debug/remote/devtools/scripts/jsdoc_validator/src/org/chromium/devtools/jsdoc/checks/TypeRecord.java b/src/third_party/devtools/scripts/jsdoc_validator/src/org/chromium/devtools/jsdoc/checks/TypeRecord.java
similarity index 100%
rename from src/cobalt/debug/remote/devtools/scripts/jsdoc_validator/src/org/chromium/devtools/jsdoc/checks/TypeRecord.java
rename to src/third_party/devtools/scripts/jsdoc_validator/src/org/chromium/devtools/jsdoc/checks/TypeRecord.java
diff --git a/src/cobalt/debug/remote/devtools/scripts/jsdoc_validator/tests/document.js b/src/third_party/devtools/scripts/jsdoc_validator/tests/document.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/scripts/jsdoc_validator/tests/document.js
rename to src/third_party/devtools/scripts/jsdoc_validator/tests/document.js
diff --git a/src/cobalt/debug/remote/devtools/scripts/jsdoc_validator/tests/function.js b/src/third_party/devtools/scripts/jsdoc_validator/tests/function.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/scripts/jsdoc_validator/tests/function.js
rename to src/third_party/devtools/scripts/jsdoc_validator/tests/function.js
diff --git a/src/cobalt/debug/remote/devtools/scripts/jsdoc_validator/tests/golden.dat b/src/third_party/devtools/scripts/jsdoc_validator/tests/golden.dat
similarity index 100%
rename from src/cobalt/debug/remote/devtools/scripts/jsdoc_validator/tests/golden.dat
rename to src/third_party/devtools/scripts/jsdoc_validator/tests/golden.dat
diff --git a/src/cobalt/debug/remote/devtools/scripts/jsdoc_validator/tests/proto.js b/src/third_party/devtools/scripts/jsdoc_validator/tests/proto.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/scripts/jsdoc_validator/tests/proto.js
rename to src/third_party/devtools/scripts/jsdoc_validator/tests/proto.js
diff --git a/src/cobalt/debug/remote/devtools/scripts/jsdoc_validator/tests/this.js b/src/third_party/devtools/scripts/jsdoc_validator/tests/this.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/scripts/jsdoc_validator/tests/this.js
rename to src/third_party/devtools/scripts/jsdoc_validator/tests/this.js
diff --git a/src/cobalt/debug/remote/devtools/scripts/json_validator/module.schema.json b/src/third_party/devtools/scripts/json_validator/module.schema.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/scripts/json_validator/module.schema.json
rename to src/third_party/devtools/scripts/json_validator/module.schema.json
diff --git a/src/cobalt/debug/remote/devtools/scripts/json_validator/validate_module_json.js b/src/third_party/devtools/scripts/json_validator/validate_module_json.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/scripts/json_validator/validate_module_json.js
rename to src/third_party/devtools/scripts/json_validator/validate_module_json.js
diff --git a/src/cobalt/debug/remote/devtools/scripts/localization/check_localizability.js b/src/third_party/devtools/scripts/localization/check_localizability.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/scripts/localization/check_localizability.js
rename to src/third_party/devtools/scripts/localization/check_localizability.js
diff --git a/src/cobalt/debug/remote/devtools/scripts/localization/check_localizable_resources.js b/src/third_party/devtools/scripts/localization/check_localizable_resources.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/scripts/localization/check_localizable_resources.js
rename to src/third_party/devtools/scripts/localization/check_localizable_resources.js
diff --git a/src/cobalt/debug/remote/devtools/scripts/localization/utils/check_localized_strings.js b/src/third_party/devtools/scripts/localization/utils/check_localized_strings.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/scripts/localization/utils/check_localized_strings.js
rename to src/third_party/devtools/scripts/localization/utils/check_localized_strings.js
diff --git a/src/cobalt/debug/remote/devtools/scripts/localization/utils/localization_utils.js b/src/third_party/devtools/scripts/localization/utils/localization_utils.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/scripts/localization/utils/localization_utils.js
rename to src/third_party/devtools/scripts/localization/utils/localization_utils.js
diff --git a/src/cobalt/debug/remote/devtools/scripts/localization/utils/md5.js b/src/third_party/devtools/scripts/localization/utils/md5.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/scripts/localization/utils/md5.js
rename to src/third_party/devtools/scripts/localization/utils/md5.js
diff --git a/src/cobalt/debug/remote/devtools/scripts/migration/get-mappings.ts b/src/third_party/devtools/scripts/migration/get-mappings.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/scripts/migration/get-mappings.ts
rename to src/third_party/devtools/scripts/migration/get-mappings.ts
diff --git a/src/cobalt/debug/remote/devtools/scripts/migration/move-side-effects-to-legacy.sh b/src/third_party/devtools/scripts/migration/move-side-effects-to-legacy.sh
similarity index 100%
rename from src/cobalt/debug/remote/devtools/scripts/migration/move-side-effects-to-legacy.sh
rename to src/third_party/devtools/scripts/migration/move-side-effects-to-legacy.sh
diff --git a/src/cobalt/debug/remote/devtools/scripts/migration/move-side-effects-to-legacy.ts b/src/third_party/devtools/scripts/migration/move-side-effects-to-legacy.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/scripts/migration/move-side-effects-to-legacy.ts
rename to src/third_party/devtools/scripts/migration/move-side-effects-to-legacy.ts
diff --git a/src/cobalt/debug/remote/devtools/scripts/migration/package-lock.json b/src/third_party/devtools/scripts/migration/package-lock.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/scripts/migration/package-lock.json
rename to src/third_party/devtools/scripts/migration/package-lock.json
diff --git a/src/cobalt/debug/remote/devtools/scripts/migration/package.json b/src/third_party/devtools/scripts/migration/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/scripts/migration/package.json
rename to src/third_party/devtools/scripts/migration/package.json
diff --git a/src/cobalt/debug/remote/devtools/scripts/migration/refactor-folder-to-es-modules.sh b/src/third_party/devtools/scripts/migration/refactor-folder-to-es-modules.sh
similarity index 100%
rename from src/cobalt/debug/remote/devtools/scripts/migration/refactor-folder-to-es-modules.sh
rename to src/third_party/devtools/scripts/migration/refactor-folder-to-es-modules.sh
diff --git a/src/cobalt/debug/remote/devtools/scripts/migration/refactor-to-es-module.ts b/src/third_party/devtools/scripts/migration/refactor-to-es-module.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/scripts/migration/refactor-to-es-module.ts
rename to src/third_party/devtools/scripts/migration/refactor-to-es-module.ts
diff --git a/src/cobalt/debug/remote/devtools/scripts/migration/remove-unused-global-exports.ts b/src/third_party/devtools/scripts/migration/remove-unused-global-exports.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/scripts/migration/remove-unused-global-exports.ts
rename to src/third_party/devtools/scripts/migration/remove-unused-global-exports.ts
diff --git a/src/cobalt/debug/remote/devtools/scripts/migration/remove-unused-globals.sh b/src/third_party/devtools/scripts/migration/remove-unused-globals.sh
similarity index 100%
rename from src/cobalt/debug/remote/devtools/scripts/migration/remove-unused-globals.sh
rename to src/third_party/devtools/scripts/migration/remove-unused-globals.sh
diff --git a/src/cobalt/debug/remote/devtools/scripts/migration/replace-internal-references.ts b/src/third_party/devtools/scripts/migration/replace-internal-references.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/scripts/migration/replace-internal-references.ts
rename to src/third_party/devtools/scripts/migration/replace-internal-references.ts
diff --git a/src/cobalt/debug/remote/devtools/scripts/migration/tsconfig.json b/src/third_party/devtools/scripts/migration/tsconfig.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/scripts/migration/tsconfig.json
rename to src/third_party/devtools/scripts/migration/tsconfig.json
diff --git a/src/cobalt/debug/remote/devtools/scripts/npm_test.js b/src/third_party/devtools/scripts/npm_test.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/scripts/npm_test.js
rename to src/third_party/devtools/scripts/npm_test.js
diff --git a/src/cobalt/debug/remote/devtools/scripts/optimize_svg_images.py b/src/third_party/devtools/scripts/optimize_svg_images.py
similarity index 100%
rename from src/cobalt/debug/remote/devtools/scripts/optimize_svg_images.py
rename to src/third_party/devtools/scripts/optimize_svg_images.py
diff --git a/src/cobalt/debug/remote/devtools/scripts/run_old_devtools/README.md b/src/third_party/devtools/scripts/run_old_devtools/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/scripts/run_old_devtools/README.md
rename to src/third_party/devtools/scripts/run_old_devtools/README.md
diff --git a/src/cobalt/debug/remote/devtools/scripts/run_old_devtools/index.js b/src/third_party/devtools/scripts/run_old_devtools/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/scripts/run_old_devtools/index.js
rename to src/third_party/devtools/scripts/run_old_devtools/index.js
diff --git a/src/cobalt/debug/remote/devtools/scripts/run_old_devtools/package.json b/src/third_party/devtools/scripts/run_old_devtools/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/scripts/run_old_devtools/package.json
rename to src/third_party/devtools/scripts/run_old_devtools/package.json
diff --git a/src/cobalt/debug/remote/devtools/scripts/test/__init__.py b/src/third_party/devtools/scripts/test/__init__.py
similarity index 100%
rename from src/cobalt/debug/remote/devtools/scripts/test/__init__.py
rename to src/third_party/devtools/scripts/test/__init__.py
diff --git a/src/cobalt/debug/remote/devtools/scripts/test/run_boot_perf_check.py b/src/third_party/devtools/scripts/test/run_boot_perf_check.py
similarity index 100%
rename from src/cobalt/debug/remote/devtools/scripts/test/run_boot_perf_check.py
rename to src/third_party/devtools/scripts/test/run_boot_perf_check.py
diff --git a/src/cobalt/debug/remote/devtools/scripts/test/run_lint_check.py b/src/third_party/devtools/scripts/test/run_lint_check.py
similarity index 100%
rename from src/cobalt/debug/remote/devtools/scripts/test/run_lint_check.py
rename to src/third_party/devtools/scripts/test/run_lint_check.py
diff --git a/src/cobalt/debug/remote/devtools/scripts/test/run_localization_check.py b/src/third_party/devtools/scripts/test/run_localization_check.py
similarity index 100%
rename from src/cobalt/debug/remote/devtools/scripts/test/run_localization_check.py
rename to src/third_party/devtools/scripts/test/run_localization_check.py
diff --git a/src/cobalt/debug/remote/devtools/scripts/test/run_type_check.py b/src/third_party/devtools/scripts/test/run_type_check.py
similarity index 100%
rename from src/cobalt/debug/remote/devtools/scripts/test/run_type_check.py
rename to src/third_party/devtools/scripts/test/run_type_check.py
diff --git a/src/cobalt/debug/remote/devtools/scripts/test/run_unittests.py b/src/third_party/devtools/scripts/test/run_unittests.py
similarity index 100%
rename from src/cobalt/debug/remote/devtools/scripts/test/run_unittests.py
rename to src/third_party/devtools/scripts/test/run_unittests.py
diff --git a/src/cobalt/debug/remote/devtools/scripts/unused_css/index.js b/src/third_party/devtools/scripts/unused_css/index.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/scripts/unused_css/index.js
rename to src/third_party/devtools/scripts/unused_css/index.js
diff --git a/src/cobalt/debug/remote/devtools/scripts/unused_css/package.json b/src/third_party/devtools/scripts/unused_css/package.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/scripts/unused_css/package.json
rename to src/third_party/devtools/scripts/unused_css/package.json
diff --git a/src/cobalt/debug/remote/devtools/scripts/unzip.py b/src/third_party/devtools/scripts/unzip.py
similarity index 100%
rename from src/cobalt/debug/remote/devtools/scripts/unzip.py
rename to src/third_party/devtools/scripts/unzip.py
diff --git a/src/cobalt/debug/remote/devtools/scripts/utils.js b/src/third_party/devtools/scripts/utils.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/scripts/utils.js
rename to src/third_party/devtools/scripts/utils.js
diff --git a/src/cobalt/debug/remote/devtools/scripts/utils.py b/src/third_party/devtools/scripts/utils.py
similarity index 100%
rename from src/cobalt/debug/remote/devtools/scripts/utils.py
rename to src/third_party/devtools/scripts/utils.py
diff --git a/src/cobalt/debug/remote/devtools/scripts/visualize_deps/jquery_svg.html b/src/third_party/devtools/scripts/visualize_deps/jquery_svg.html
similarity index 100%
rename from src/cobalt/debug/remote/devtools/scripts/visualize_deps/jquery_svg.html
rename to src/third_party/devtools/scripts/visualize_deps/jquery_svg.html
diff --git a/src/cobalt/debug/remote/devtools/scripts/visualize_deps/run_visualize.js b/src/third_party/devtools/scripts/visualize_deps/run_visualize.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/scripts/visualize_deps/run_visualize.js
rename to src/third_party/devtools/scripts/visualize_deps/run_visualize.js
diff --git a/src/cobalt/debug/remote/devtools/scripts/whitespaces.txt b/src/third_party/devtools/scripts/whitespaces.txt
similarity index 100%
rename from src/cobalt/debug/remote/devtools/scripts/whitespaces.txt
rename to src/third_party/devtools/scripts/whitespaces.txt
diff --git a/src/cobalt/debug/remote/devtools/test/perf/README.md b/src/third_party/devtools/test/perf/README.md
similarity index 100%
rename from src/cobalt/debug/remote/devtools/test/perf/README.md
rename to src/third_party/devtools/test/perf/README.md
diff --git a/src/cobalt/debug/remote/devtools/test/perf/bootperf-utils.js b/src/third_party/devtools/test/perf/bootperf-utils.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/test/perf/bootperf-utils.js
rename to src/third_party/devtools/test/perf/bootperf-utils.js
diff --git a/src/cobalt/debug/remote/devtools/test/perf/bootperf.js b/src/third_party/devtools/test/perf/bootperf.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/test/perf/bootperf.js
rename to src/third_party/devtools/test/perf/bootperf.js
diff --git a/src/cobalt/debug/remote/devtools/test/unittests/front_end/bindings/TempFile.ts b/src/third_party/devtools/test/unittests/front_end/bindings/TempFile.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/test/unittests/front_end/bindings/TempFile.ts
rename to src/third_party/devtools/test/unittests/front_end/bindings/TempFile.ts
diff --git a/src/cobalt/debug/remote/devtools/test/unittests/front_end/common/Color.ts b/src/third_party/devtools/test/unittests/front_end/common/Color.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/test/unittests/front_end/common/Color.ts
rename to src/third_party/devtools/test/unittests/front_end/common/Color.ts
diff --git a/src/cobalt/debug/remote/devtools/test/unittests/front_end/common/Console.ts b/src/third_party/devtools/test/unittests/front_end/common/Console.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/test/unittests/front_end/common/Console.ts
rename to src/third_party/devtools/test/unittests/front_end/common/Console.ts
diff --git a/src/cobalt/debug/remote/devtools/test/unittests/front_end/common/Object.ts b/src/third_party/devtools/test/unittests/front_end/common/Object.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/test/unittests/front_end/common/Object.ts
rename to src/third_party/devtools/test/unittests/front_end/common/Object.ts
diff --git a/src/cobalt/debug/remote/devtools/test/unittests/front_end/common/ParsedURL.ts b/src/third_party/devtools/test/unittests/front_end/common/ParsedURL.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/test/unittests/front_end/common/ParsedURL.ts
rename to src/third_party/devtools/test/unittests/front_end/common/ParsedURL.ts
diff --git a/src/cobalt/debug/remote/devtools/test/unittests/front_end/common/Progress.ts b/src/third_party/devtools/test/unittests/front_end/common/Progress.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/test/unittests/front_end/common/Progress.ts
rename to src/third_party/devtools/test/unittests/front_end/common/Progress.ts
diff --git a/src/cobalt/debug/remote/devtools/test/unittests/front_end/common/ResourceType.ts b/src/third_party/devtools/test/unittests/front_end/common/ResourceType.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/test/unittests/front_end/common/ResourceType.ts
rename to src/third_party/devtools/test/unittests/front_end/common/ResourceType.ts
diff --git a/src/cobalt/debug/remote/devtools/test/unittests/front_end/common/SegmentedRange.ts b/src/third_party/devtools/test/unittests/front_end/common/SegmentedRange.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/test/unittests/front_end/common/SegmentedRange.ts
rename to src/third_party/devtools/test/unittests/front_end/common/SegmentedRange.ts
diff --git a/src/cobalt/debug/remote/devtools/test/unittests/front_end/common/TextDictionary.ts b/src/third_party/devtools/test/unittests/front_end/common/TextDictionary.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/test/unittests/front_end/common/TextDictionary.ts
rename to src/third_party/devtools/test/unittests/front_end/common/TextDictionary.ts
diff --git a/src/cobalt/debug/remote/devtools/test/unittests/front_end/common/Trie.ts b/src/third_party/devtools/test/unittests/front_end/common/Trie.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/test/unittests/front_end/common/Trie.ts
rename to src/third_party/devtools/test/unittests/front_end/common/Trie.ts
diff --git a/src/cobalt/debug/remote/devtools/test/unittests/front_end/platform/dom-extension.ts b/src/third_party/devtools/test/unittests/front_end/platform/dom-extension.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/test/unittests/front_end/platform/dom-extension.ts
rename to src/third_party/devtools/test/unittests/front_end/platform/dom-extension.ts
diff --git a/src/cobalt/debug/remote/devtools/test/unittests/front_end/platform/utilities.ts b/src/third_party/devtools/test/unittests/front_end/platform/utilities.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/test/unittests/front_end/platform/utilities.ts
rename to src/third_party/devtools/test/unittests/front_end/platform/utilities.ts
diff --git a/src/cobalt/debug/remote/devtools/test/unittests/front_end/ui/Fragment.ts b/src/third_party/devtools/test/unittests/front_end/ui/Fragment.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/test/unittests/front_end/ui/Fragment.ts
rename to src/third_party/devtools/test/unittests/front_end/ui/Fragment.ts
diff --git a/src/cobalt/debug/remote/devtools/test/unittests/front_end/ui/Geometry.ts b/src/third_party/devtools/test/unittests/front_end/ui/Geometry.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/test/unittests/front_end/ui/Geometry.ts
rename to src/third_party/devtools/test/unittests/front_end/ui/Geometry.ts
diff --git a/src/cobalt/debug/remote/devtools/test/unittests/front_end/workspace/WorkspaceImpl.ts b/src/third_party/devtools/test/unittests/front_end/workspace/WorkspaceImpl.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/test/unittests/front_end/workspace/WorkspaceImpl.ts
rename to src/third_party/devtools/test/unittests/front_end/workspace/WorkspaceImpl.ts
diff --git a/src/cobalt/debug/remote/devtools/test/webtests/README b/src/third_party/devtools/test/webtests/README
similarity index 100%
rename from src/cobalt/debug/remote/devtools/test/webtests/README
rename to src/third_party/devtools/test/webtests/README
diff --git a/src/cobalt/debug/remote/devtools/test/webtests/TestExpectations b/src/third_party/devtools/test/webtests/TestExpectations
similarity index 100%
rename from src/cobalt/debug/remote/devtools/test/webtests/TestExpectations
rename to src/third_party/devtools/test/webtests/TestExpectations
diff --git a/src/cobalt/debug/remote/devtools/test/webtests/VirtualTestSuites b/src/third_party/devtools/test/webtests/VirtualTestSuites
similarity index 100%
rename from src/cobalt/debug/remote/devtools/test/webtests/VirtualTestSuites
rename to src/third_party/devtools/test/webtests/VirtualTestSuites
diff --git a/src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/.htaccess b/src/third_party/devtools/test/webtests/http/tests/devtools/.htaccess
similarity index 100%
rename from src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/.htaccess
rename to src/third_party/devtools/test/webtests/http/tests/devtools/.htaccess
diff --git a/src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/a11y-axe-core/application-panel/app-manifest-view-a11y-test-expected.txt b/src/third_party/devtools/test/webtests/http/tests/devtools/a11y-axe-core/application-panel/app-manifest-view-a11y-test-expected.txt
similarity index 100%
rename from src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/a11y-axe-core/application-panel/app-manifest-view-a11y-test-expected.txt
rename to src/third_party/devtools/test/webtests/http/tests/devtools/a11y-axe-core/application-panel/app-manifest-view-a11y-test-expected.txt
diff --git a/src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/a11y-axe-core/application-panel/app-manifest-view-a11y-test.js b/src/third_party/devtools/test/webtests/http/tests/devtools/a11y-axe-core/application-panel/app-manifest-view-a11y-test.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/a11y-axe-core/application-panel/app-manifest-view-a11y-test.js
rename to src/third_party/devtools/test/webtests/http/tests/devtools/a11y-axe-core/application-panel/app-manifest-view-a11y-test.js
diff --git a/src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/a11y-axe-core/application-panel/clear-storage-a11y-test-expected.txt b/src/third_party/devtools/test/webtests/http/tests/devtools/a11y-axe-core/application-panel/clear-storage-a11y-test-expected.txt
similarity index 100%
rename from src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/a11y-axe-core/application-panel/clear-storage-a11y-test-expected.txt
rename to src/third_party/devtools/test/webtests/http/tests/devtools/a11y-axe-core/application-panel/clear-storage-a11y-test-expected.txt
diff --git a/src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/a11y-axe-core/application-panel/clear-storage-a11y-test.js b/src/third_party/devtools/test/webtests/http/tests/devtools/a11y-axe-core/application-panel/clear-storage-a11y-test.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/a11y-axe-core/application-panel/clear-storage-a11y-test.js
rename to src/third_party/devtools/test/webtests/http/tests/devtools/a11y-axe-core/application-panel/clear-storage-a11y-test.js
diff --git a/src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/a11y-axe-core/application-panel/service-worker-view-a11y-test-expected.txt b/src/third_party/devtools/test/webtests/http/tests/devtools/a11y-axe-core/application-panel/service-worker-view-a11y-test-expected.txt
similarity index 100%
rename from src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/a11y-axe-core/application-panel/service-worker-view-a11y-test-expected.txt
rename to src/third_party/devtools/test/webtests/http/tests/devtools/a11y-axe-core/application-panel/service-worker-view-a11y-test-expected.txt
diff --git a/src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/a11y-axe-core/application-panel/service-worker-view-a11y-test.js b/src/third_party/devtools/test/webtests/http/tests/devtools/a11y-axe-core/application-panel/service-worker-view-a11y-test.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/a11y-axe-core/application-panel/service-worker-view-a11y-test.js
rename to src/third_party/devtools/test/webtests/http/tests/devtools/a11y-axe-core/application-panel/service-worker-view-a11y-test.js
diff --git a/src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/a11y-axe-core/audits-start-view-a11y-test-expected.txt b/src/third_party/devtools/test/webtests/http/tests/devtools/a11y-axe-core/audits-start-view-a11y-test-expected.txt
similarity index 100%
rename from src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/a11y-axe-core/audits-start-view-a11y-test-expected.txt
rename to src/third_party/devtools/test/webtests/http/tests/devtools/a11y-axe-core/audits-start-view-a11y-test-expected.txt
diff --git a/src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/a11y-axe-core/audits-start-view-a11y-test.js b/src/third_party/devtools/test/webtests/http/tests/devtools/a11y-axe-core/audits-start-view-a11y-test.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/a11y-axe-core/audits-start-view-a11y-test.js
rename to src/third_party/devtools/test/webtests/http/tests/devtools/a11y-axe-core/audits-start-view-a11y-test.js
diff --git a/src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/a11y-axe-core/basic-a11y-test-expected.txt b/src/third_party/devtools/test/webtests/http/tests/devtools/a11y-axe-core/basic-a11y-test-expected.txt
similarity index 100%
rename from src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/a11y-axe-core/basic-a11y-test-expected.txt
rename to src/third_party/devtools/test/webtests/http/tests/devtools/a11y-axe-core/basic-a11y-test-expected.txt
diff --git a/src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/a11y-axe-core/basic-a11y-test.js b/src/third_party/devtools/test/webtests/http/tests/devtools/a11y-axe-core/basic-a11y-test.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/a11y-axe-core/basic-a11y-test.js
rename to src/third_party/devtools/test/webtests/http/tests/devtools/a11y-axe-core/basic-a11y-test.js
diff --git a/src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/a11y-axe-core/changes/changes-a11y-test-expected.txt b/src/third_party/devtools/test/webtests/http/tests/devtools/a11y-axe-core/changes/changes-a11y-test-expected.txt
similarity index 100%
rename from src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/a11y-axe-core/changes/changes-a11y-test-expected.txt
rename to src/third_party/devtools/test/webtests/http/tests/devtools/a11y-axe-core/changes/changes-a11y-test-expected.txt
diff --git a/src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/a11y-axe-core/changes/changes-a11y-test.js b/src/third_party/devtools/test/webtests/http/tests/devtools/a11y-axe-core/changes/changes-a11y-test.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/a11y-axe-core/changes/changes-a11y-test.js
rename to src/third_party/devtools/test/webtests/http/tests/devtools/a11y-axe-core/changes/changes-a11y-test.js
diff --git a/src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/a11y-axe-core/console-a11y-test-expected.txt b/src/third_party/devtools/test/webtests/http/tests/devtools/a11y-axe-core/console-a11y-test-expected.txt
similarity index 100%
rename from src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/a11y-axe-core/console-a11y-test-expected.txt
rename to src/third_party/devtools/test/webtests/http/tests/devtools/a11y-axe-core/console-a11y-test-expected.txt
diff --git a/src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/a11y-axe-core/console-a11y-test.js b/src/third_party/devtools/test/webtests/http/tests/devtools/a11y-axe-core/console-a11y-test.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/a11y-axe-core/console-a11y-test.js
rename to src/third_party/devtools/test/webtests/http/tests/devtools/a11y-axe-core/console-a11y-test.js
diff --git a/src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/a11y-axe-core/elements/dom-breakpoints-a11y-test-expected.txt b/src/third_party/devtools/test/webtests/http/tests/devtools/a11y-axe-core/elements/dom-breakpoints-a11y-test-expected.txt
similarity index 100%
rename from src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/a11y-axe-core/elements/dom-breakpoints-a11y-test-expected.txt
rename to src/third_party/devtools/test/webtests/http/tests/devtools/a11y-axe-core/elements/dom-breakpoints-a11y-test-expected.txt
diff --git a/src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/a11y-axe-core/elements/dom-breakpoints-a11y-test.js b/src/third_party/devtools/test/webtests/http/tests/devtools/a11y-axe-core/elements/dom-breakpoints-a11y-test.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/a11y-axe-core/elements/dom-breakpoints-a11y-test.js
rename to src/third_party/devtools/test/webtests/http/tests/devtools/a11y-axe-core/elements/dom-breakpoints-a11y-test.js
diff --git a/src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/a11y-axe-core/elements/event-listeners-a11y-test-expected.txt b/src/third_party/devtools/test/webtests/http/tests/devtools/a11y-axe-core/elements/event-listeners-a11y-test-expected.txt
similarity index 100%
rename from src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/a11y-axe-core/elements/event-listeners-a11y-test-expected.txt
rename to src/third_party/devtools/test/webtests/http/tests/devtools/a11y-axe-core/elements/event-listeners-a11y-test-expected.txt
diff --git a/src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/a11y-axe-core/elements/event-listeners-a11y-test.js b/src/third_party/devtools/test/webtests/http/tests/devtools/a11y-axe-core/elements/event-listeners-a11y-test.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/a11y-axe-core/elements/event-listeners-a11y-test.js
rename to src/third_party/devtools/test/webtests/http/tests/devtools/a11y-axe-core/elements/event-listeners-a11y-test.js
diff --git a/src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/a11y-axe-core/elements/main-tool-test-expected.txt b/src/third_party/devtools/test/webtests/http/tests/devtools/a11y-axe-core/elements/main-tool-test-expected.txt
similarity index 100%
rename from src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/a11y-axe-core/elements/main-tool-test-expected.txt
rename to src/third_party/devtools/test/webtests/http/tests/devtools/a11y-axe-core/elements/main-tool-test-expected.txt
diff --git a/src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/a11y-axe-core/elements/main-tool-test.js b/src/third_party/devtools/test/webtests/http/tests/devtools/a11y-axe-core/elements/main-tool-test.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/a11y-axe-core/elements/main-tool-test.js
rename to src/third_party/devtools/test/webtests/http/tests/devtools/a11y-axe-core/elements/main-tool-test.js
diff --git a/src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/a11y-axe-core/memory/heap-profiler-a11y-test-expected.txt b/src/third_party/devtools/test/webtests/http/tests/devtools/a11y-axe-core/memory/heap-profiler-a11y-test-expected.txt
similarity index 100%
rename from src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/a11y-axe-core/memory/heap-profiler-a11y-test-expected.txt
rename to src/third_party/devtools/test/webtests/http/tests/devtools/a11y-axe-core/memory/heap-profiler-a11y-test-expected.txt
diff --git a/src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/a11y-axe-core/memory/heap-profiler-a11y-test.js b/src/third_party/devtools/test/webtests/http/tests/devtools/a11y-axe-core/memory/heap-profiler-a11y-test.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/a11y-axe-core/memory/heap-profiler-a11y-test.js
rename to src/third_party/devtools/test/webtests/http/tests/devtools/a11y-axe-core/memory/heap-profiler-a11y-test.js
diff --git a/src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/a11y-axe-core/network/network-condition-a11y-test-expected.txt b/src/third_party/devtools/test/webtests/http/tests/devtools/a11y-axe-core/network/network-condition-a11y-test-expected.txt
similarity index 100%
rename from src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/a11y-axe-core/network/network-condition-a11y-test-expected.txt
rename to src/third_party/devtools/test/webtests/http/tests/devtools/a11y-axe-core/network/network-condition-a11y-test-expected.txt
diff --git a/src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/a11y-axe-core/network/network-condition-a11y-test.js b/src/third_party/devtools/test/webtests/http/tests/devtools/a11y-axe-core/network/network-condition-a11y-test.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/a11y-axe-core/network/network-condition-a11y-test.js
rename to src/third_party/devtools/test/webtests/http/tests/devtools/a11y-axe-core/network/network-condition-a11y-test.js
diff --git a/src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/a11y-axe-core/performance/landing-page-a11y-test-expected.txt b/src/third_party/devtools/test/webtests/http/tests/devtools/a11y-axe-core/performance/landing-page-a11y-test-expected.txt
similarity index 100%
rename from src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/a11y-axe-core/performance/landing-page-a11y-test-expected.txt
rename to src/third_party/devtools/test/webtests/http/tests/devtools/a11y-axe-core/performance/landing-page-a11y-test-expected.txt
diff --git a/src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/a11y-axe-core/performance/landing-page-a11y-test.js b/src/third_party/devtools/test/webtests/http/tests/devtools/a11y-axe-core/performance/landing-page-a11y-test.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/a11y-axe-core/performance/landing-page-a11y-test.js
rename to src/third_party/devtools/test/webtests/http/tests/devtools/a11y-axe-core/performance/landing-page-a11y-test.js
diff --git a/src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/a11y-axe-core/performance/performance-pane-a11y-test-expected.txt b/src/third_party/devtools/test/webtests/http/tests/devtools/a11y-axe-core/performance/performance-pane-a11y-test-expected.txt
similarity index 100%
rename from src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/a11y-axe-core/performance/performance-pane-a11y-test-expected.txt
rename to src/third_party/devtools/test/webtests/http/tests/devtools/a11y-axe-core/performance/performance-pane-a11y-test-expected.txt
diff --git a/src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/a11y-axe-core/performance/performance-pane-a11y-test.js b/src/third_party/devtools/test/webtests/http/tests/devtools/a11y-axe-core/performance/performance-pane-a11y-test.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/a11y-axe-core/performance/performance-pane-a11y-test.js
rename to src/third_party/devtools/test/webtests/http/tests/devtools/a11y-axe-core/performance/performance-pane-a11y-test.js
diff --git a/src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/a11y-axe-core/performance/performance_event_log_a11y_test-expected.txt b/src/third_party/devtools/test/webtests/http/tests/devtools/a11y-axe-core/performance/performance_event_log_a11y_test-expected.txt
similarity index 100%
rename from src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/a11y-axe-core/performance/performance_event_log_a11y_test-expected.txt
rename to src/third_party/devtools/test/webtests/http/tests/devtools/a11y-axe-core/performance/performance_event_log_a11y_test-expected.txt
diff --git a/src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/a11y-axe-core/performance/performance_event_log_a11y_test.js b/src/third_party/devtools/test/webtests/http/tests/devtools/a11y-axe-core/performance/performance_event_log_a11y_test.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/a11y-axe-core/performance/performance_event_log_a11y_test.js
rename to src/third_party/devtools/test/webtests/http/tests/devtools/a11y-axe-core/performance/performance_event_log_a11y_test.js
diff --git a/src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/a11y-axe-core/quick-open-a11y-test-expected.txt b/src/third_party/devtools/test/webtests/http/tests/devtools/a11y-axe-core/quick-open-a11y-test-expected.txt
similarity index 100%
rename from src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/a11y-axe-core/quick-open-a11y-test-expected.txt
rename to src/third_party/devtools/test/webtests/http/tests/devtools/a11y-axe-core/quick-open-a11y-test-expected.txt
diff --git a/src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/a11y-axe-core/quick-open-a11y-test.js b/src/third_party/devtools/test/webtests/http/tests/devtools/a11y-axe-core/quick-open-a11y-test.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/a11y-axe-core/quick-open-a11y-test.js
rename to src/third_party/devtools/test/webtests/http/tests/devtools/a11y-axe-core/quick-open-a11y-test.js
diff --git a/src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/a11y-axe-core/rendering/basic-rendering-a11y-test-expected.txt b/src/third_party/devtools/test/webtests/http/tests/devtools/a11y-axe-core/rendering/basic-rendering-a11y-test-expected.txt
similarity index 100%
rename from src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/a11y-axe-core/rendering/basic-rendering-a11y-test-expected.txt
rename to src/third_party/devtools/test/webtests/http/tests/devtools/a11y-axe-core/rendering/basic-rendering-a11y-test-expected.txt
diff --git a/src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/a11y-axe-core/rendering/basic-rendering-a11y-test.js b/src/third_party/devtools/test/webtests/http/tests/devtools/a11y-axe-core/rendering/basic-rendering-a11y-test.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/a11y-axe-core/rendering/basic-rendering-a11y-test.js
rename to src/third_party/devtools/test/webtests/http/tests/devtools/a11y-axe-core/rendering/basic-rendering-a11y-test.js
diff --git a/src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/a11y-axe-core/security/security-origin-a11y-test-expected.txt b/src/third_party/devtools/test/webtests/http/tests/devtools/a11y-axe-core/security/security-origin-a11y-test-expected.txt
similarity index 100%
rename from src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/a11y-axe-core/security/security-origin-a11y-test-expected.txt
rename to src/third_party/devtools/test/webtests/http/tests/devtools/a11y-axe-core/security/security-origin-a11y-test-expected.txt
diff --git a/src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/a11y-axe-core/security/security-origin-a11y-test.js b/src/third_party/devtools/test/webtests/http/tests/devtools/a11y-axe-core/security/security-origin-a11y-test.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/a11y-axe-core/security/security-origin-a11y-test.js
rename to src/third_party/devtools/test/webtests/http/tests/devtools/a11y-axe-core/security/security-origin-a11y-test.js
diff --git a/src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/a11y-axe-core/security/security-overview-a11y-test-expected.txt b/src/third_party/devtools/test/webtests/http/tests/devtools/a11y-axe-core/security/security-overview-a11y-test-expected.txt
similarity index 100%
rename from src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/a11y-axe-core/security/security-overview-a11y-test-expected.txt
rename to src/third_party/devtools/test/webtests/http/tests/devtools/a11y-axe-core/security/security-overview-a11y-test-expected.txt
diff --git a/src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/a11y-axe-core/security/security-overview-a11y-test.js b/src/third_party/devtools/test/webtests/http/tests/devtools/a11y-axe-core/security/security-overview-a11y-test.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/a11y-axe-core/security/security-overview-a11y-test.js
rename to src/third_party/devtools/test/webtests/http/tests/devtools/a11y-axe-core/security/security-overview-a11y-test.js
diff --git a/src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/a11y-axe-core/settings/blackbox-a11y-test-expected.txt b/src/third_party/devtools/test/webtests/http/tests/devtools/a11y-axe-core/settings/blackbox-a11y-test-expected.txt
similarity index 100%
rename from src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/a11y-axe-core/settings/blackbox-a11y-test-expected.txt
rename to src/third_party/devtools/test/webtests/http/tests/devtools/a11y-axe-core/settings/blackbox-a11y-test-expected.txt
diff --git a/src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/a11y-axe-core/settings/blackbox-a11y-test.js b/src/third_party/devtools/test/webtests/http/tests/devtools/a11y-axe-core/settings/blackbox-a11y-test.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/a11y-axe-core/settings/blackbox-a11y-test.js
rename to src/third_party/devtools/test/webtests/http/tests/devtools/a11y-axe-core/settings/blackbox-a11y-test.js
diff --git a/src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/a11y-axe-core/settings/emulated-device-a11y-test-expected.txt b/src/third_party/devtools/test/webtests/http/tests/devtools/a11y-axe-core/settings/emulated-device-a11y-test-expected.txt
similarity index 100%
rename from src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/a11y-axe-core/settings/emulated-device-a11y-test-expected.txt
rename to src/third_party/devtools/test/webtests/http/tests/devtools/a11y-axe-core/settings/emulated-device-a11y-test-expected.txt
diff --git a/src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/a11y-axe-core/settings/emulated-device-a11y-test.js b/src/third_party/devtools/test/webtests/http/tests/devtools/a11y-axe-core/settings/emulated-device-a11y-test.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/a11y-axe-core/settings/emulated-device-a11y-test.js
rename to src/third_party/devtools/test/webtests/http/tests/devtools/a11y-axe-core/settings/emulated-device-a11y-test.js
diff --git a/src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/a11y-axe-core/settings/geolocations-a11y-test-expected.txt b/src/third_party/devtools/test/webtests/http/tests/devtools/a11y-axe-core/settings/geolocations-a11y-test-expected.txt
similarity index 100%
rename from src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/a11y-axe-core/settings/geolocations-a11y-test-expected.txt
rename to src/third_party/devtools/test/webtests/http/tests/devtools/a11y-axe-core/settings/geolocations-a11y-test-expected.txt
diff --git a/src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/a11y-axe-core/settings/geolocations-a11y-test.js b/src/third_party/devtools/test/webtests/http/tests/devtools/a11y-axe-core/settings/geolocations-a11y-test.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/a11y-axe-core/settings/geolocations-a11y-test.js
rename to src/third_party/devtools/test/webtests/http/tests/devtools/a11y-axe-core/settings/geolocations-a11y-test.js
diff --git a/src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/a11y-axe-core/settings/menu-a11y-test-expected.txt b/src/third_party/devtools/test/webtests/http/tests/devtools/a11y-axe-core/settings/menu-a11y-test-expected.txt
similarity index 100%
rename from src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/a11y-axe-core/settings/menu-a11y-test-expected.txt
rename to src/third_party/devtools/test/webtests/http/tests/devtools/a11y-axe-core/settings/menu-a11y-test-expected.txt
diff --git a/src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/a11y-axe-core/settings/menu-a11y-test.js b/src/third_party/devtools/test/webtests/http/tests/devtools/a11y-axe-core/settings/menu-a11y-test.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/a11y-axe-core/settings/menu-a11y-test.js
rename to src/third_party/devtools/test/webtests/http/tests/devtools/a11y-axe-core/settings/menu-a11y-test.js
diff --git a/src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/a11y-axe-core/settings/shortcuts-a11y-test-expected.txt b/src/third_party/devtools/test/webtests/http/tests/devtools/a11y-axe-core/settings/shortcuts-a11y-test-expected.txt
similarity index 100%
rename from src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/a11y-axe-core/settings/shortcuts-a11y-test-expected.txt
rename to src/third_party/devtools/test/webtests/http/tests/devtools/a11y-axe-core/settings/shortcuts-a11y-test-expected.txt
diff --git a/src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/a11y-axe-core/settings/shortcuts-a11y-test.js b/src/third_party/devtools/test/webtests/http/tests/devtools/a11y-axe-core/settings/shortcuts-a11y-test.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/a11y-axe-core/settings/shortcuts-a11y-test.js
rename to src/third_party/devtools/test/webtests/http/tests/devtools/a11y-axe-core/settings/shortcuts-a11y-test.js
diff --git a/src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/a11y-axe-core/settings/workspace-a11y-test-expected.txt b/src/third_party/devtools/test/webtests/http/tests/devtools/a11y-axe-core/settings/workspace-a11y-test-expected.txt
similarity index 100%
rename from src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/a11y-axe-core/settings/workspace-a11y-test-expected.txt
rename to src/third_party/devtools/test/webtests/http/tests/devtools/a11y-axe-core/settings/workspace-a11y-test-expected.txt
diff --git a/src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/a11y-axe-core/settings/workspace-a11y-test.js b/src/third_party/devtools/test/webtests/http/tests/devtools/a11y-axe-core/settings/workspace-a11y-test.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/a11y-axe-core/settings/workspace-a11y-test.js
rename to src/third_party/devtools/test/webtests/http/tests/devtools/a11y-axe-core/settings/workspace-a11y-test.js
diff --git a/src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/a11y-axe-core/sources/call-stack-a11y-test-expected.txt b/src/third_party/devtools/test/webtests/http/tests/devtools/a11y-axe-core/sources/call-stack-a11y-test-expected.txt
similarity index 100%
rename from src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/a11y-axe-core/sources/call-stack-a11y-test-expected.txt
rename to src/third_party/devtools/test/webtests/http/tests/devtools/a11y-axe-core/sources/call-stack-a11y-test-expected.txt
diff --git a/src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/a11y-axe-core/sources/call-stack-a11y-test.js b/src/third_party/devtools/test/webtests/http/tests/devtools/a11y-axe-core/sources/call-stack-a11y-test.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/a11y-axe-core/sources/call-stack-a11y-test.js
rename to src/third_party/devtools/test/webtests/http/tests/devtools/a11y-axe-core/sources/call-stack-a11y-test.js
diff --git a/src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/a11y-axe-core/sources/dom-breakpoints-pane-a11y-test-expected.txt b/src/third_party/devtools/test/webtests/http/tests/devtools/a11y-axe-core/sources/dom-breakpoints-pane-a11y-test-expected.txt
similarity index 100%
rename from src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/a11y-axe-core/sources/dom-breakpoints-pane-a11y-test-expected.txt
rename to src/third_party/devtools/test/webtests/http/tests/devtools/a11y-axe-core/sources/dom-breakpoints-pane-a11y-test-expected.txt
diff --git a/src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/a11y-axe-core/sources/dom-breakpoints-pane-a11y-test.js b/src/third_party/devtools/test/webtests/http/tests/devtools/a11y-axe-core/sources/dom-breakpoints-pane-a11y-test.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/a11y-axe-core/sources/dom-breakpoints-pane-a11y-test.js
rename to src/third_party/devtools/test/webtests/http/tests/devtools/a11y-axe-core/sources/dom-breakpoints-pane-a11y-test.js
diff --git a/src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/a11y-axe-core/sources/global-listeners-sidebar-a11y-test-expected.txt b/src/third_party/devtools/test/webtests/http/tests/devtools/a11y-axe-core/sources/global-listeners-sidebar-a11y-test-expected.txt
similarity index 100%
rename from src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/a11y-axe-core/sources/global-listeners-sidebar-a11y-test-expected.txt
rename to src/third_party/devtools/test/webtests/http/tests/devtools/a11y-axe-core/sources/global-listeners-sidebar-a11y-test-expected.txt
diff --git a/src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/a11y-axe-core/sources/global-listeners-sidebar-a11y-test.js b/src/third_party/devtools/test/webtests/http/tests/devtools/a11y-axe-core/sources/global-listeners-sidebar-a11y-test.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/a11y-axe-core/sources/global-listeners-sidebar-a11y-test.js
rename to src/third_party/devtools/test/webtests/http/tests/devtools/a11y-axe-core/sources/global-listeners-sidebar-a11y-test.js
diff --git a/src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/a11y-axe-core/sources/javascript-breakpoints-a11y-test-expected.txt b/src/third_party/devtools/test/webtests/http/tests/devtools/a11y-axe-core/sources/javascript-breakpoints-a11y-test-expected.txt
similarity index 100%
rename from src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/a11y-axe-core/sources/javascript-breakpoints-a11y-test-expected.txt
rename to src/third_party/devtools/test/webtests/http/tests/devtools/a11y-axe-core/sources/javascript-breakpoints-a11y-test-expected.txt
diff --git a/src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/a11y-axe-core/sources/javascript-breakpoints-a11y-test.js b/src/third_party/devtools/test/webtests/http/tests/devtools/a11y-axe-core/sources/javascript-breakpoints-a11y-test.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/a11y-axe-core/sources/javascript-breakpoints-a11y-test.js
rename to src/third_party/devtools/test/webtests/http/tests/devtools/a11y-axe-core/sources/javascript-breakpoints-a11y-test.js
diff --git a/src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/a11y-axe-core/sources/source-navigator-contentscripts-a11y-test-expected.txt b/src/third_party/devtools/test/webtests/http/tests/devtools/a11y-axe-core/sources/source-navigator-contentscripts-a11y-test-expected.txt
similarity index 100%
rename from src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/a11y-axe-core/sources/source-navigator-contentscripts-a11y-test-expected.txt
rename to src/third_party/devtools/test/webtests/http/tests/devtools/a11y-axe-core/sources/source-navigator-contentscripts-a11y-test-expected.txt
diff --git a/src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/a11y-axe-core/sources/source-navigator-contentscripts-a11y-test.js b/src/third_party/devtools/test/webtests/http/tests/devtools/a11y-axe-core/sources/source-navigator-contentscripts-a11y-test.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/a11y-axe-core/sources/source-navigator-contentscripts-a11y-test.js
rename to src/third_party/devtools/test/webtests/http/tests/devtools/a11y-axe-core/sources/source-navigator-contentscripts-a11y-test.js
diff --git a/src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/a11y-axe-core/sources/source-navigator-filesystem-a11y-test-expected.txt b/src/third_party/devtools/test/webtests/http/tests/devtools/a11y-axe-core/sources/source-navigator-filesystem-a11y-test-expected.txt
similarity index 100%
rename from src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/a11y-axe-core/sources/source-navigator-filesystem-a11y-test-expected.txt
rename to src/third_party/devtools/test/webtests/http/tests/devtools/a11y-axe-core/sources/source-navigator-filesystem-a11y-test-expected.txt
diff --git a/src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/a11y-axe-core/sources/source-navigator-filesystem-a11y-test.js b/src/third_party/devtools/test/webtests/http/tests/devtools/a11y-axe-core/sources/source-navigator-filesystem-a11y-test.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/a11y-axe-core/sources/source-navigator-filesystem-a11y-test.js
rename to src/third_party/devtools/test/webtests/http/tests/devtools/a11y-axe-core/sources/source-navigator-filesystem-a11y-test.js
diff --git a/src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/a11y-axe-core/sources/source-navigator-network-a11y-test-expected.txt b/src/third_party/devtools/test/webtests/http/tests/devtools/a11y-axe-core/sources/source-navigator-network-a11y-test-expected.txt
similarity index 100%
rename from src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/a11y-axe-core/sources/source-navigator-network-a11y-test-expected.txt
rename to src/third_party/devtools/test/webtests/http/tests/devtools/a11y-axe-core/sources/source-navigator-network-a11y-test-expected.txt
diff --git a/src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/a11y-axe-core/sources/source-navigator-network-a11y-test.js b/src/third_party/devtools/test/webtests/http/tests/devtools/a11y-axe-core/sources/source-navigator-network-a11y-test.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/a11y-axe-core/sources/source-navigator-network-a11y-test.js
rename to src/third_party/devtools/test/webtests/http/tests/devtools/a11y-axe-core/sources/source-navigator-network-a11y-test.js
diff --git a/src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/a11y-axe-core/sources/source-navigator-overrides-a11y-test-expected.txt b/src/third_party/devtools/test/webtests/http/tests/devtools/a11y-axe-core/sources/source-navigator-overrides-a11y-test-expected.txt
similarity index 100%
rename from src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/a11y-axe-core/sources/source-navigator-overrides-a11y-test-expected.txt
rename to src/third_party/devtools/test/webtests/http/tests/devtools/a11y-axe-core/sources/source-navigator-overrides-a11y-test-expected.txt
diff --git a/src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/a11y-axe-core/sources/source-navigator-overrides-a11y-test.js b/src/third_party/devtools/test/webtests/http/tests/devtools/a11y-axe-core/sources/source-navigator-overrides-a11y-test.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/a11y-axe-core/sources/source-navigator-overrides-a11y-test.js
rename to src/third_party/devtools/test/webtests/http/tests/devtools/a11y-axe-core/sources/source-navigator-overrides-a11y-test.js
diff --git a/src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/a11y-axe-core/sources/source-navigator-snippets-a11y-test-expected.txt b/src/third_party/devtools/test/webtests/http/tests/devtools/a11y-axe-core/sources/source-navigator-snippets-a11y-test-expected.txt
similarity index 100%
rename from src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/a11y-axe-core/sources/source-navigator-snippets-a11y-test-expected.txt
rename to src/third_party/devtools/test/webtests/http/tests/devtools/a11y-axe-core/sources/source-navigator-snippets-a11y-test-expected.txt
diff --git a/src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/a11y-axe-core/sources/source-navigator-snippets-a11y-test.js b/src/third_party/devtools/test/webtests/http/tests/devtools/a11y-axe-core/sources/source-navigator-snippets-a11y-test.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/a11y-axe-core/sources/source-navigator-snippets-a11y-test.js
rename to src/third_party/devtools/test/webtests/http/tests/devtools/a11y-axe-core/sources/source-navigator-snippets-a11y-test.js
diff --git a/src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/a11y-axe-core/sources/sources-editor-pane-a11y-test-expected.txt b/src/third_party/devtools/test/webtests/http/tests/devtools/a11y-axe-core/sources/sources-editor-pane-a11y-test-expected.txt
similarity index 100%
rename from src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/a11y-axe-core/sources/sources-editor-pane-a11y-test-expected.txt
rename to src/third_party/devtools/test/webtests/http/tests/devtools/a11y-axe-core/sources/sources-editor-pane-a11y-test-expected.txt
diff --git a/src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/a11y-axe-core/sources/sources-editor-pane-a11y-test.js b/src/third_party/devtools/test/webtests/http/tests/devtools/a11y-axe-core/sources/sources-editor-pane-a11y-test.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/a11y-axe-core/sources/sources-editor-pane-a11y-test.js
rename to src/third_party/devtools/test/webtests/http/tests/devtools/a11y-axe-core/sources/sources-editor-pane-a11y-test.js
diff --git a/src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/a11y-axe-core/sources/watch-expression-a11y-test-expected.txt b/src/third_party/devtools/test/webtests/http/tests/devtools/a11y-axe-core/sources/watch-expression-a11y-test-expected.txt
similarity index 100%
rename from src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/a11y-axe-core/sources/watch-expression-a11y-test-expected.txt
rename to src/third_party/devtools/test/webtests/http/tests/devtools/a11y-axe-core/sources/watch-expression-a11y-test-expected.txt
diff --git a/src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/a11y-axe-core/sources/watch-expression-a11y-test.js b/src/third_party/devtools/test/webtests/http/tests/devtools/a11y-axe-core/sources/watch-expression-a11y-test.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/a11y-axe-core/sources/watch-expression-a11y-test.js
rename to src/third_party/devtools/test/webtests/http/tests/devtools/a11y-axe-core/sources/watch-expression-a11y-test.js
diff --git a/src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/a11y-axe-core/sources/xhr-breakpoints-sidebar-a11y-test-expected.txt b/src/third_party/devtools/test/webtests/http/tests/devtools/a11y-axe-core/sources/xhr-breakpoints-sidebar-a11y-test-expected.txt
similarity index 100%
rename from src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/a11y-axe-core/sources/xhr-breakpoints-sidebar-a11y-test-expected.txt
rename to src/third_party/devtools/test/webtests/http/tests/devtools/a11y-axe-core/sources/xhr-breakpoints-sidebar-a11y-test-expected.txt
diff --git a/src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/a11y-axe-core/sources/xhr-breakpoints-sidebar-a11y-test.js b/src/third_party/devtools/test/webtests/http/tests/devtools/a11y-axe-core/sources/xhr-breakpoints-sidebar-a11y-test.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/a11y-axe-core/sources/xhr-breakpoints-sidebar-a11y-test.js
rename to src/third_party/devtools/test/webtests/http/tests/devtools/a11y-axe-core/sources/xhr-breakpoints-sidebar-a11y-test.js
diff --git a/src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/a11y-axe-core/web-audio-a11y-test-expected.txt b/src/third_party/devtools/test/webtests/http/tests/devtools/a11y-axe-core/web-audio-a11y-test-expected.txt
similarity index 100%
rename from src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/a11y-axe-core/web-audio-a11y-test-expected.txt
rename to src/third_party/devtools/test/webtests/http/tests/devtools/a11y-axe-core/web-audio-a11y-test-expected.txt
diff --git a/src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/a11y-axe-core/web-audio-a11y-test.js b/src/third_party/devtools/test/webtests/http/tests/devtools/a11y-axe-core/web-audio-a11y-test.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/a11y-axe-core/web-audio-a11y-test.js
rename to src/third_party/devtools/test/webtests/http/tests/devtools/a11y-axe-core/web-audio-a11y-test.js
diff --git a/src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/audits/audits-emulate-run-expected.txt b/src/third_party/devtools/test/webtests/http/tests/devtools/audits/audits-emulate-run-expected.txt
similarity index 100%
rename from src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/audits/audits-emulate-run-expected.txt
rename to src/third_party/devtools/test/webtests/http/tests/devtools/audits/audits-emulate-run-expected.txt
diff --git a/src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/audits/audits-emulate-run.js b/src/third_party/devtools/test/webtests/http/tests/devtools/audits/audits-emulate-run.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/audits/audits-emulate-run.js
rename to src/third_party/devtools/test/webtests/http/tests/devtools/audits/audits-emulate-run.js
diff --git a/src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/audits/audits-flags-run-expected.txt b/src/third_party/devtools/test/webtests/http/tests/devtools/audits/audits-flags-run-expected.txt
similarity index 100%
rename from src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/audits/audits-flags-run-expected.txt
rename to src/third_party/devtools/test/webtests/http/tests/devtools/audits/audits-flags-run-expected.txt
diff --git a/src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/audits/audits-flags-run.js b/src/third_party/devtools/test/webtests/http/tests/devtools/audits/audits-flags-run.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/audits/audits-flags-run.js
rename to src/third_party/devtools/test/webtests/http/tests/devtools/audits/audits-flags-run.js
diff --git a/src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/audits/audits-limited-run-expected.txt b/src/third_party/devtools/test/webtests/http/tests/devtools/audits/audits-limited-run-expected.txt
similarity index 100%
rename from src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/audits/audits-limited-run-expected.txt
rename to src/third_party/devtools/test/webtests/http/tests/devtools/audits/audits-limited-run-expected.txt
diff --git a/src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/audits/audits-limited-run.js b/src/third_party/devtools/test/webtests/http/tests/devtools/audits/audits-limited-run.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/audits/audits-limited-run.js
rename to src/third_party/devtools/test/webtests/http/tests/devtools/audits/audits-limited-run.js
diff --git a/src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/audits/audits-prevent-run-expected.txt b/src/third_party/devtools/test/webtests/http/tests/devtools/audits/audits-prevent-run-expected.txt
similarity index 100%
rename from src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/audits/audits-prevent-run-expected.txt
rename to src/third_party/devtools/test/webtests/http/tests/devtools/audits/audits-prevent-run-expected.txt
diff --git a/src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/audits/audits-prevent-run.js b/src/third_party/devtools/test/webtests/http/tests/devtools/audits/audits-prevent-run.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/audits/audits-prevent-run.js
rename to src/third_party/devtools/test/webtests/http/tests/devtools/audits/audits-prevent-run.js
diff --git a/src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/audits/audits-successful-run-expected.txt b/src/third_party/devtools/test/webtests/http/tests/devtools/audits/audits-successful-run-expected.txt
similarity index 100%
rename from src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/audits/audits-successful-run-expected.txt
rename to src/third_party/devtools/test/webtests/http/tests/devtools/audits/audits-successful-run-expected.txt
diff --git a/src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/audits/audits-successful-run.js b/src/third_party/devtools/test/webtests/http/tests/devtools/audits/audits-successful-run.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/audits/audits-successful-run.js
rename to src/third_party/devtools/test/webtests/http/tests/devtools/audits/audits-successful-run.js
diff --git a/src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/audits/audits-view-trace-run-expected.txt b/src/third_party/devtools/test/webtests/http/tests/devtools/audits/audits-view-trace-run-expected.txt
similarity index 100%
rename from src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/audits/audits-view-trace-run-expected.txt
rename to src/third_party/devtools/test/webtests/http/tests/devtools/audits/audits-view-trace-run-expected.txt
diff --git a/src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/audits/audits-view-trace-run.js b/src/third_party/devtools/test/webtests/http/tests/devtools/audits/audits-view-trace-run.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/audits/audits-view-trace-run.js
rename to src/third_party/devtools/test/webtests/http/tests/devtools/audits/audits-view-trace-run.js
diff --git a/src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/audits/resources/audits-basic.html b/src/third_party/devtools/test/webtests/http/tests/devtools/audits/resources/audits-basic.html
similarity index 100%
rename from src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/audits/resources/audits-basic.html
rename to src/third_party/devtools/test/webtests/http/tests/devtools/audits/resources/audits-basic.html
diff --git a/src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/audits/resources/audits-emulate-pass.html b/src/third_party/devtools/test/webtests/http/tests/devtools/audits/resources/audits-emulate-pass.html
similarity index 100%
rename from src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/audits/resources/audits-emulate-pass.html
rename to src/third_party/devtools/test/webtests/http/tests/devtools/audits/resources/audits-emulate-pass.html
diff --git a/src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/console/console-eval-uses-repl-mode-expected.txt b/src/third_party/devtools/test/webtests/http/tests/devtools/console/console-eval-uses-repl-mode-expected.txt
similarity index 100%
rename from src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/console/console-eval-uses-repl-mode-expected.txt
rename to src/third_party/devtools/test/webtests/http/tests/devtools/console/console-eval-uses-repl-mode-expected.txt
diff --git a/src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/console/console-eval-uses-repl-mode.js b/src/third_party/devtools/test/webtests/http/tests/devtools/console/console-eval-uses-repl-mode.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/console/console-eval-uses-repl-mode.js
rename to src/third_party/devtools/test/webtests/http/tests/devtools/console/console-eval-uses-repl-mode.js
diff --git a/src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/sources/debugger-breakpoints/resources/a.html b/src/third_party/devtools/test/webtests/http/tests/devtools/sources/debugger-breakpoints/resources/a.html
similarity index 100%
rename from src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/sources/debugger-breakpoints/resources/a.html
rename to src/third_party/devtools/test/webtests/http/tests/devtools/sources/debugger-breakpoints/resources/a.html
diff --git a/src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/sources/debugger-breakpoints/resources/a.js b/src/third_party/devtools/test/webtests/http/tests/devtools/sources/debugger-breakpoints/resources/a.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/sources/debugger-breakpoints/resources/a.js
rename to src/third_party/devtools/test/webtests/http/tests/devtools/sources/debugger-breakpoints/resources/a.js
diff --git a/src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/sources/debugger-breakpoints/resources/b.html b/src/third_party/devtools/test/webtests/http/tests/devtools/sources/debugger-breakpoints/resources/b.html
similarity index 100%
rename from src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/sources/debugger-breakpoints/resources/b.html
rename to src/third_party/devtools/test/webtests/http/tests/devtools/sources/debugger-breakpoints/resources/b.html
diff --git a/src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/sources/debugger-breakpoints/resources/breakpoint-manager-listeners-count.html b/src/third_party/devtools/test/webtests/http/tests/devtools/sources/debugger-breakpoints/resources/breakpoint-manager-listeners-count.html
similarity index 100%
rename from src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/sources/debugger-breakpoints/resources/breakpoint-manager-listeners-count.html
rename to src/third_party/devtools/test/webtests/http/tests/devtools/sources/debugger-breakpoints/resources/breakpoint-manager-listeners-count.html
diff --git a/src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/sources/debugger-breakpoints/resources/breakpoint.dart b/src/third_party/devtools/test/webtests/http/tests/devtools/sources/debugger-breakpoints/resources/breakpoint.dart
similarity index 100%
rename from src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/sources/debugger-breakpoints/resources/breakpoint.dart
rename to src/third_party/devtools/test/webtests/http/tests/devtools/sources/debugger-breakpoints/resources/breakpoint.dart
diff --git a/src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/sources/debugger-breakpoints/resources/breakpoint.js b/src/third_party/devtools/test/webtests/http/tests/devtools/sources/debugger-breakpoints/resources/breakpoint.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/sources/debugger-breakpoints/resources/breakpoint.js
rename to src/third_party/devtools/test/webtests/http/tests/devtools/sources/debugger-breakpoints/resources/breakpoint.js
diff --git a/src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/sources/debugger-breakpoints/resources/breakpoint.js.map b/src/third_party/devtools/test/webtests/http/tests/devtools/sources/debugger-breakpoints/resources/breakpoint.js.map
similarity index 100%
rename from src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/sources/debugger-breakpoints/resources/breakpoint.js.map
rename to src/third_party/devtools/test/webtests/http/tests/devtools/sources/debugger-breakpoints/resources/breakpoint.js.map
diff --git a/src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/sources/debugger-breakpoints/resources/debugger-disable-add-breakpoint.html b/src/third_party/devtools/test/webtests/http/tests/devtools/sources/debugger-breakpoints/resources/debugger-disable-add-breakpoint.html
similarity index 100%
rename from src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/sources/debugger-breakpoints/resources/debugger-disable-add-breakpoint.html
rename to src/third_party/devtools/test/webtests/http/tests/devtools/sources/debugger-breakpoints/resources/debugger-disable-add-breakpoint.html
diff --git a/src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/sources/debugger-breakpoints/resources/debugger-reload-breakpoints-with-source-maps.html b/src/third_party/devtools/test/webtests/http/tests/devtools/sources/debugger-breakpoints/resources/debugger-reload-breakpoints-with-source-maps.html
similarity index 100%
rename from src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/sources/debugger-breakpoints/resources/debugger-reload-breakpoints-with-source-maps.html
rename to src/third_party/devtools/test/webtests/http/tests/devtools/sources/debugger-breakpoints/resources/debugger-reload-breakpoints-with-source-maps.html
diff --git a/src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/sources/debugger-breakpoints/resources/dom-breakpoints.html b/src/third_party/devtools/test/webtests/http/tests/devtools/sources/debugger-breakpoints/resources/dom-breakpoints.html
similarity index 100%
rename from src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/sources/debugger-breakpoints/resources/dom-breakpoints.html
rename to src/third_party/devtools/test/webtests/http/tests/devtools/sources/debugger-breakpoints/resources/dom-breakpoints.html
diff --git a/src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/sources/debugger-breakpoints/resources/dynamic-scripts-breakpoints.html b/src/third_party/devtools/test/webtests/http/tests/devtools/sources/debugger-breakpoints/resources/dynamic-scripts-breakpoints.html
similarity index 100%
rename from src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/sources/debugger-breakpoints/resources/dynamic-scripts-breakpoints.html
rename to src/third_party/devtools/test/webtests/http/tests/devtools/sources/debugger-breakpoints/resources/dynamic-scripts-breakpoints.html
diff --git a/src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/sources/debugger-breakpoints/resources/frame-with-script.html b/src/third_party/devtools/test/webtests/http/tests/devtools/sources/debugger-breakpoints/resources/frame-with-script.html
similarity index 100%
rename from src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/sources/debugger-breakpoints/resources/frame-with-script.html
rename to src/third_party/devtools/test/webtests/http/tests/devtools/sources/debugger-breakpoints/resources/frame-with-script.html
diff --git a/src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/sources/debugger-breakpoints/resources/set-breakpoint.html b/src/third_party/devtools/test/webtests/http/tests/devtools/sources/debugger-breakpoints/resources/set-breakpoint.html
similarity index 100%
rename from src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/sources/debugger-breakpoints/resources/set-breakpoint.html
rename to src/third_party/devtools/test/webtests/http/tests/devtools/sources/debugger-breakpoints/resources/set-breakpoint.html
diff --git a/src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/sources/debugger-breakpoints/resources/worker-with-sourcemap.js b/src/third_party/devtools/test/webtests/http/tests/devtools/sources/debugger-breakpoints/resources/worker-with-sourcemap.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/sources/debugger-breakpoints/resources/worker-with-sourcemap.js
rename to src/third_party/devtools/test/webtests/http/tests/devtools/sources/debugger-breakpoints/resources/worker-with-sourcemap.js
diff --git a/src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/sources/debugger-breakpoints/resources/worker.js b/src/third_party/devtools/test/webtests/http/tests/devtools/sources/debugger-breakpoints/resources/worker.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/sources/debugger-breakpoints/resources/worker.js
rename to src/third_party/devtools/test/webtests/http/tests/devtools/sources/debugger-breakpoints/resources/worker.js
diff --git a/src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/sources/snippet-eval-uses-repl-mode-expected.txt b/src/third_party/devtools/test/webtests/http/tests/devtools/sources/snippet-eval-uses-repl-mode-expected.txt
similarity index 100%
rename from src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/sources/snippet-eval-uses-repl-mode-expected.txt
rename to src/third_party/devtools/test/webtests/http/tests/devtools/sources/snippet-eval-uses-repl-mode-expected.txt
diff --git a/src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/sources/snippet-eval-uses-repl-mode.js b/src/third_party/devtools/test/webtests/http/tests/devtools/sources/snippet-eval-uses-repl-mode.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/test/webtests/http/tests/devtools/sources/snippet-eval-uses-repl-mode.js
rename to src/third_party/devtools/test/webtests/http/tests/devtools/sources/snippet-eval-uses-repl-mode.js
diff --git a/src/cobalt/debug/remote/devtools/third_party/axe-core/LICENSE b/src/third_party/devtools/third_party/axe-core/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/third_party/axe-core/LICENSE
rename to src/third_party/devtools/third_party/axe-core/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/third_party/axe-core/README.chromium b/src/third_party/devtools/third_party/axe-core/README.chromium
similarity index 100%
rename from src/cobalt/debug/remote/devtools/third_party/axe-core/README.chromium
rename to src/third_party/devtools/third_party/axe-core/README.chromium
diff --git a/src/cobalt/debug/remote/devtools/third_party/axe-core/axe.d.ts b/src/third_party/devtools/third_party/axe-core/axe.d.ts
similarity index 100%
rename from src/cobalt/debug/remote/devtools/third_party/axe-core/axe.d.ts
rename to src/third_party/devtools/third_party/axe-core/axe.d.ts
diff --git a/src/cobalt/debug/remote/devtools/third_party/axe-core/axe.js b/src/third_party/devtools/third_party/axe-core/axe.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/third_party/axe-core/axe.js
rename to src/third_party/devtools/third_party/axe-core/axe.js
diff --git a/src/cobalt/debug/remote/devtools/third_party/axe-core/axe.min.js b/src/third_party/devtools/third_party/axe-core/axe.min.js
similarity index 100%
rename from src/cobalt/debug/remote/devtools/third_party/axe-core/axe.min.js
rename to src/third_party/devtools/third_party/axe-core/axe.min.js
diff --git a/src/cobalt/debug/remote/devtools/third_party/blink/public/devtools_protocol/BUILD.gn b/src/third_party/devtools/third_party/blink/public/devtools_protocol/BUILD.gn
similarity index 100%
rename from src/cobalt/debug/remote/devtools/third_party/blink/public/devtools_protocol/BUILD.gn
rename to src/third_party/devtools/third_party/blink/public/devtools_protocol/BUILD.gn
diff --git a/src/cobalt/debug/remote/devtools/third_party/blink/public/devtools_protocol/browser_protocol.pdl b/src/third_party/devtools/third_party/blink/public/devtools_protocol/browser_protocol.pdl
similarity index 100%
rename from src/cobalt/debug/remote/devtools/third_party/blink/public/devtools_protocol/browser_protocol.pdl
rename to src/third_party/devtools/third_party/blink/public/devtools_protocol/browser_protocol.pdl
diff --git a/src/cobalt/debug/remote/devtools/third_party/blink/public/public_features.gni b/src/third_party/devtools/third_party/blink/public/public_features.gni
similarity index 100%
rename from src/cobalt/debug/remote/devtools/third_party/blink/public/public_features.gni
rename to src/third_party/devtools/third_party/blink/public/public_features.gni
diff --git a/src/cobalt/debug/remote/devtools/third_party/blink/renderer/core/css/css_properties.json5 b/src/third_party/devtools/third_party/blink/renderer/core/css/css_properties.json5
similarity index 100%
rename from src/cobalt/debug/remote/devtools/third_party/blink/renderer/core/css/css_properties.json5
rename to src/third_party/devtools/third_party/blink/renderer/core/css/css_properties.json5
diff --git a/src/cobalt/debug/remote/devtools/third_party/blink/renderer/core/html/aria_properties.json5 b/src/third_party/devtools/third_party/blink/renderer/core/html/aria_properties.json5
similarity index 100%
rename from src/cobalt/debug/remote/devtools/third_party/blink/renderer/core/html/aria_properties.json5
rename to src/third_party/devtools/third_party/blink/renderer/core/html/aria_properties.json5
diff --git a/src/cobalt/debug/remote/devtools/third_party/node/linux/node-linux-x64.tar.gz.sha1 b/src/third_party/devtools/third_party/node/linux/node-linux-x64.tar.gz.sha1
similarity index 100%
rename from src/cobalt/debug/remote/devtools/third_party/node/linux/node-linux-x64.tar.gz.sha1
rename to src/third_party/devtools/third_party/node/linux/node-linux-x64.tar.gz.sha1
diff --git a/src/cobalt/debug/remote/devtools/third_party/node/mac/node-darwin-x64.tar.gz.sha1 b/src/third_party/devtools/third_party/node/mac/node-darwin-x64.tar.gz.sha1
similarity index 100%
rename from src/cobalt/debug/remote/devtools/third_party/node/mac/node-darwin-x64.tar.gz.sha1
rename to src/third_party/devtools/third_party/node/mac/node-darwin-x64.tar.gz.sha1
diff --git a/src/cobalt/debug/remote/devtools/third_party/node/node.py b/src/third_party/devtools/third_party/node/node.py
similarity index 100%
rename from src/cobalt/debug/remote/devtools/third_party/node/node.py
rename to src/third_party/devtools/third_party/node/node.py
diff --git a/src/cobalt/debug/remote/devtools/third_party/node/node_modules.py b/src/third_party/devtools/third_party/node/node_modules.py
similarity index 100%
rename from src/cobalt/debug/remote/devtools/third_party/node/node_modules.py
rename to src/third_party/devtools/third_party/node/node_modules.py
diff --git a/src/cobalt/debug/remote/devtools/third_party/node/node_modules.tar.gz.sha1 b/src/third_party/devtools/third_party/node/node_modules.tar.gz.sha1
similarity index 100%
rename from src/cobalt/debug/remote/devtools/third_party/node/node_modules.tar.gz.sha1
rename to src/third_party/devtools/third_party/node/node_modules.tar.gz.sha1
diff --git a/src/cobalt/debug/remote/devtools/third_party/node/win/node.exe.sha1 b/src/third_party/devtools/third_party/node/win/node.exe.sha1
similarity index 100%
rename from src/cobalt/debug/remote/devtools/third_party/node/win/node.exe.sha1
rename to src/third_party/devtools/third_party/node/win/node.exe.sha1
diff --git a/src/cobalt/debug/remote/devtools/third_party/pyjson5/README.chromium b/src/third_party/devtools/third_party/pyjson5/README.chromium
similarity index 100%
rename from src/cobalt/debug/remote/devtools/third_party/pyjson5/README.chromium
rename to src/third_party/devtools/third_party/pyjson5/README.chromium
diff --git a/src/cobalt/debug/remote/devtools/third_party/pyjson5/src/LICENSE b/src/third_party/devtools/third_party/pyjson5/src/LICENSE
similarity index 100%
rename from src/cobalt/debug/remote/devtools/third_party/pyjson5/src/LICENSE
rename to src/third_party/devtools/third_party/pyjson5/src/LICENSE
diff --git a/src/cobalt/debug/remote/devtools/third_party/pyjson5/src/README.rst b/src/third_party/devtools/third_party/pyjson5/src/README.rst
similarity index 100%
rename from src/cobalt/debug/remote/devtools/third_party/pyjson5/src/README.rst
rename to src/third_party/devtools/third_party/pyjson5/src/README.rst
diff --git a/src/cobalt/debug/remote/devtools/third_party/pyjson5/src/benchmarks/chromium.linux.json b/src/third_party/devtools/third_party/pyjson5/src/benchmarks/chromium.linux.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/third_party/pyjson5/src/benchmarks/chromium.linux.json
rename to src/third_party/devtools/third_party/pyjson5/src/benchmarks/chromium.linux.json
diff --git a/src/cobalt/debug/remote/devtools/third_party/pyjson5/src/benchmarks/chromium.perf.json b/src/third_party/devtools/third_party/pyjson5/src/benchmarks/chromium.perf.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/third_party/pyjson5/src/benchmarks/chromium.perf.json
rename to src/third_party/devtools/third_party/pyjson5/src/benchmarks/chromium.perf.json
diff --git a/src/cobalt/debug/remote/devtools/third_party/pyjson5/src/benchmarks/ios-simulator.json b/src/third_party/devtools/third_party/pyjson5/src/benchmarks/ios-simulator.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/third_party/pyjson5/src/benchmarks/ios-simulator.json
rename to src/third_party/devtools/third_party/pyjson5/src/benchmarks/ios-simulator.json
diff --git a/src/cobalt/debug/remote/devtools/third_party/pyjson5/src/benchmarks/mb_config.json b/src/third_party/devtools/third_party/pyjson5/src/benchmarks/mb_config.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/third_party/pyjson5/src/benchmarks/mb_config.json
rename to src/third_party/devtools/third_party/pyjson5/src/benchmarks/mb_config.json
diff --git a/src/cobalt/debug/remote/devtools/third_party/pyjson5/src/benchmarks/run.py b/src/third_party/devtools/third_party/pyjson5/src/benchmarks/run.py
similarity index 100%
rename from src/cobalt/debug/remote/devtools/third_party/pyjson5/src/benchmarks/run.py
rename to src/third_party/devtools/third_party/pyjson5/src/benchmarks/run.py
diff --git a/src/cobalt/debug/remote/devtools/third_party/pyjson5/src/json5/__init__.py b/src/third_party/devtools/third_party/pyjson5/src/json5/__init__.py
similarity index 100%
rename from src/cobalt/debug/remote/devtools/third_party/pyjson5/src/json5/__init__.py
rename to src/third_party/devtools/third_party/pyjson5/src/json5/__init__.py
diff --git a/src/cobalt/debug/remote/devtools/third_party/pyjson5/src/json5/__main__.py b/src/third_party/devtools/third_party/pyjson5/src/json5/__main__.py
similarity index 100%
rename from src/cobalt/debug/remote/devtools/third_party/pyjson5/src/json5/__main__.py
rename to src/third_party/devtools/third_party/pyjson5/src/json5/__main__.py
diff --git a/src/cobalt/debug/remote/devtools/third_party/pyjson5/src/json5/arg_parser.py b/src/third_party/devtools/third_party/pyjson5/src/json5/arg_parser.py
similarity index 100%
rename from src/cobalt/debug/remote/devtools/third_party/pyjson5/src/json5/arg_parser.py
rename to src/third_party/devtools/third_party/pyjson5/src/json5/arg_parser.py
diff --git a/src/cobalt/debug/remote/devtools/third_party/pyjson5/src/json5/fakes/__init__.py b/src/third_party/devtools/third_party/pyjson5/src/json5/fakes/__init__.py
similarity index 100%
rename from src/cobalt/debug/remote/devtools/third_party/pyjson5/src/json5/fakes/__init__.py
rename to src/third_party/devtools/third_party/pyjson5/src/json5/fakes/__init__.py
diff --git a/src/cobalt/debug/remote/devtools/third_party/pyjson5/src/json5/fakes/host_fake.py b/src/third_party/devtools/third_party/pyjson5/src/json5/fakes/host_fake.py
similarity index 100%
rename from src/cobalt/debug/remote/devtools/third_party/pyjson5/src/json5/fakes/host_fake.py
rename to src/third_party/devtools/third_party/pyjson5/src/json5/fakes/host_fake.py
diff --git a/src/cobalt/debug/remote/devtools/third_party/pyjson5/src/json5/host.py b/src/third_party/devtools/third_party/pyjson5/src/json5/host.py
similarity index 100%
rename from src/cobalt/debug/remote/devtools/third_party/pyjson5/src/json5/host.py
rename to src/third_party/devtools/third_party/pyjson5/src/json5/host.py
diff --git a/src/cobalt/debug/remote/devtools/third_party/pyjson5/src/json5/json5.g b/src/third_party/devtools/third_party/pyjson5/src/json5/json5.g
similarity index 100%
rename from src/cobalt/debug/remote/devtools/third_party/pyjson5/src/json5/json5.g
rename to src/third_party/devtools/third_party/pyjson5/src/json5/json5.g
diff --git a/src/cobalt/debug/remote/devtools/third_party/pyjson5/src/json5/lib.py b/src/third_party/devtools/third_party/pyjson5/src/json5/lib.py
similarity index 100%
rename from src/cobalt/debug/remote/devtools/third_party/pyjson5/src/json5/lib.py
rename to src/third_party/devtools/third_party/pyjson5/src/json5/lib.py
diff --git a/src/cobalt/debug/remote/devtools/third_party/pyjson5/src/json5/parser.py b/src/third_party/devtools/third_party/pyjson5/src/json5/parser.py
similarity index 100%
rename from src/cobalt/debug/remote/devtools/third_party/pyjson5/src/json5/parser.py
rename to src/third_party/devtools/third_party/pyjson5/src/json5/parser.py
diff --git a/src/cobalt/debug/remote/devtools/third_party/pyjson5/src/json5/tests/__init__.py b/src/third_party/devtools/third_party/pyjson5/src/json5/tests/__init__.py
similarity index 100%
rename from src/cobalt/debug/remote/devtools/third_party/pyjson5/src/json5/tests/__init__.py
rename to src/third_party/devtools/third_party/pyjson5/src/json5/tests/__init__.py
diff --git a/src/cobalt/debug/remote/devtools/third_party/pyjson5/src/json5/tests/coverage_test.py b/src/third_party/devtools/third_party/pyjson5/src/json5/tests/coverage_test.py
similarity index 100%
rename from src/cobalt/debug/remote/devtools/third_party/pyjson5/src/json5/tests/coverage_test.py
rename to src/third_party/devtools/third_party/pyjson5/src/json5/tests/coverage_test.py
diff --git a/src/cobalt/debug/remote/devtools/third_party/pyjson5/src/json5/tests/json5_test.py b/src/third_party/devtools/third_party/pyjson5/src/json5/tests/json5_test.py
similarity index 100%
rename from src/cobalt/debug/remote/devtools/third_party/pyjson5/src/json5/tests/json5_test.py
rename to src/third_party/devtools/third_party/pyjson5/src/json5/tests/json5_test.py
diff --git a/src/cobalt/debug/remote/devtools/third_party/pyjson5/src/json5/tests/tool_test.py b/src/third_party/devtools/third_party/pyjson5/src/json5/tests/tool_test.py
similarity index 100%
rename from src/cobalt/debug/remote/devtools/third_party/pyjson5/src/json5/tests/tool_test.py
rename to src/third_party/devtools/third_party/pyjson5/src/json5/tests/tool_test.py
diff --git a/src/cobalt/debug/remote/devtools/third_party/pyjson5/src/json5/tool.py b/src/third_party/devtools/third_party/pyjson5/src/json5/tool.py
similarity index 100%
rename from src/cobalt/debug/remote/devtools/third_party/pyjson5/src/json5/tool.py
rename to src/third_party/devtools/third_party/pyjson5/src/json5/tool.py
diff --git a/src/cobalt/debug/remote/devtools/third_party/pyjson5/src/json5/version.py b/src/third_party/devtools/third_party/pyjson5/src/json5/version.py
similarity index 100%
rename from src/cobalt/debug/remote/devtools/third_party/pyjson5/src/json5/version.py
rename to src/third_party/devtools/third_party/pyjson5/src/json5/version.py
diff --git a/src/cobalt/debug/remote/devtools/third_party/pyjson5/src/pylintrc b/src/third_party/devtools/third_party/pyjson5/src/pylintrc
similarity index 100%
rename from src/cobalt/debug/remote/devtools/third_party/pyjson5/src/pylintrc
rename to src/third_party/devtools/third_party/pyjson5/src/pylintrc
diff --git a/src/cobalt/debug/remote/devtools/third_party/pyjson5/src/run b/src/third_party/devtools/third_party/pyjson5/src/run
similarity index 100%
rename from src/cobalt/debug/remote/devtools/third_party/pyjson5/src/run
rename to src/third_party/devtools/third_party/pyjson5/src/run
diff --git a/src/cobalt/debug/remote/devtools/third_party/pyjson5/src/sample.json5 b/src/third_party/devtools/third_party/pyjson5/src/sample.json5
similarity index 100%
rename from src/cobalt/debug/remote/devtools/third_party/pyjson5/src/sample.json5
rename to src/third_party/devtools/third_party/pyjson5/src/sample.json5
diff --git a/src/cobalt/debug/remote/devtools/third_party/pyjson5/src/setup.cfg b/src/third_party/devtools/third_party/pyjson5/src/setup.cfg
similarity index 100%
rename from src/cobalt/debug/remote/devtools/third_party/pyjson5/src/setup.cfg
rename to src/third_party/devtools/third_party/pyjson5/src/setup.cfg
diff --git a/src/cobalt/debug/remote/devtools/third_party/pyjson5/src/setup.py b/src/third_party/devtools/third_party/pyjson5/src/setup.py
similarity index 100%
rename from src/cobalt/debug/remote/devtools/third_party/pyjson5/src/setup.py
rename to src/third_party/devtools/third_party/pyjson5/src/setup.py
diff --git a/src/cobalt/debug/remote/devtools/third_party/typescript/METADATA b/src/third_party/devtools/third_party/typescript/METADATA
similarity index 100%
rename from src/cobalt/debug/remote/devtools/third_party/typescript/METADATA
rename to src/third_party/devtools/third_party/typescript/METADATA
diff --git a/src/cobalt/debug/remote/devtools/third_party/typescript/README.chromium b/src/third_party/devtools/third_party/typescript/README.chromium
similarity index 100%
rename from src/cobalt/debug/remote/devtools/third_party/typescript/README.chromium
rename to src/third_party/devtools/third_party/typescript/README.chromium
diff --git a/src/cobalt/debug/remote/devtools/third_party/typescript/ts_library.py b/src/third_party/devtools/third_party/typescript/ts_library.py
similarity index 100%
rename from src/cobalt/debug/remote/devtools/third_party/typescript/ts_library.py
rename to src/third_party/devtools/third_party/typescript/ts_library.py
diff --git a/src/cobalt/debug/remote/devtools/third_party/typescript/tsconfig.json b/src/third_party/devtools/third_party/typescript/tsconfig.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/third_party/typescript/tsconfig.json
rename to src/third_party/devtools/third_party/typescript/tsconfig.json
diff --git a/src/cobalt/debug/remote/devtools/third_party/typescript/typescript.gni b/src/third_party/devtools/third_party/typescript/typescript.gni
similarity index 100%
rename from src/cobalt/debug/remote/devtools/third_party/typescript/typescript.gni
rename to src/third_party/devtools/third_party/typescript/typescript.gni
diff --git a/src/cobalt/debug/remote/devtools/tsconfig.json b/src/third_party/devtools/tsconfig.json
similarity index 100%
rename from src/cobalt/debug/remote/devtools/tsconfig.json
rename to src/third_party/devtools/tsconfig.json
diff --git a/src/cobalt/debug/remote/devtools/v8/include/js_protocol.pdl b/src/third_party/devtools/v8/include/js_protocol.pdl
similarity index 100%
rename from src/cobalt/debug/remote/devtools/v8/include/js_protocol.pdl
rename to src/third_party/devtools/v8/include/js_protocol.pdl
diff --git a/src/third_party/ffmpeg_includes/METADATA b/src/third_party/ffmpeg_includes/METADATA
index 77aaba5..368b0f4 100644
--- a/src/third_party/ffmpeg_includes/METADATA
+++ b/src/third_party/ffmpeg_includes/METADATA
@@ -24,4 +24,6 @@
   # Note: "version" and "last_upgrade_date" for the version contained in each
   # sub-directory is unknown. The version specified in the sub-directory name
   # corresponds to the version of libavcodec, not the version of ffmpeg/libav.
+  license_type: RESTRICTED
+
 }
diff --git a/src/third_party/flac/METADATA b/src/third_party/flac/METADATA
index 16366d2..8b4c4ee 100644
--- a/src/third_party/flac/METADATA
+++ b/src/third_party/flac/METADATA
@@ -17,4 +17,5 @@
     month: 10
     day: 9
   }
+  license_type: NOTICE
 }
diff --git a/src/third_party/freetype2/METADATA b/src/third_party/freetype2/METADATA
index a0f1137..64e86e4 100644
--- a/src/third_party/freetype2/METADATA
+++ b/src/third_party/freetype2/METADATA
@@ -17,4 +17,5 @@
     month: 05
     day: 12
   }
-}
\ No newline at end of file
+  license_type: NOTICE
+}
diff --git a/src/third_party/glm/METADATA b/src/third_party/glm/METADATA
index db0592b..69c0907 100644
--- a/src/third_party/glm/METADATA
+++ b/src/third_party/glm/METADATA
@@ -17,4 +17,5 @@
     month: 9
     day: 25
   }
+  license_type: NOTICE
 }
diff --git a/src/third_party/google_benchmark/METADATA b/src/third_party/google_benchmark/METADATA
index be8140a..2f26782 100644
--- a/src/third_party/google_benchmark/METADATA
+++ b/src/third_party/google_benchmark/METADATA
@@ -18,4 +18,5 @@
     month: 12
     day: 2
   }
+  license_type: NOTICE
 }
diff --git a/src/third_party/googletest/METADATA b/src/third_party/googletest/METADATA
index 5f4faaa..f4fb390 100644
--- a/src/third_party/googletest/METADATA
+++ b/src/third_party/googletest/METADATA
@@ -10,4 +10,5 @@
     type: GIT
     value: "https://github.com/google/googletest"
   }
+  license_type: NOTICE
 }
diff --git a/src/third_party/harfbuzz-ng/METADATA b/src/third_party/harfbuzz-ng/METADATA
index edbbd96..e7d4402 100644
--- a/src/third_party/harfbuzz-ng/METADATA
+++ b/src/third_party/harfbuzz-ng/METADATA
@@ -15,4 +15,5 @@
     month: 11
     day: 24
   }
+  license_type: NOTICE
 }
diff --git a/src/third_party/icu/METADATA b/src/third_party/icu/METADATA
index a50c13c..010858a 100644
--- a/src/third_party/icu/METADATA
+++ b/src/third_party/icu/METADATA
@@ -18,4 +18,5 @@
     month: 1
     day: 26
   }
+  license_type: NOTICE
 }
diff --git a/src/third_party/inspector_protocol/METADATA b/src/third_party/inspector_protocol/METADATA
index a70f4ac..e82edec 100644
--- a/src/third_party/inspector_protocol/METADATA
+++ b/src/third_party/inspector_protocol/METADATA
@@ -17,4 +17,5 @@
     month: 11
     day: 23
   }
+  license_type: NOTICE
 }
diff --git a/src/third_party/jinja2/METADATA b/src/third_party/jinja2/METADATA
index b84b654..d7004b1 100644
--- a/src/third_party/jinja2/METADATA
+++ b/src/third_party/jinja2/METADATA
@@ -14,4 +14,5 @@
     month: 8
     day: 7
   }
+  license_type: NOTICE
 }
diff --git a/src/third_party/khronos/METADATA b/src/third_party/khronos/METADATA
index 5ae20ad..8482186 100644
--- a/src/third_party/khronos/METADATA
+++ b/src/third_party/khronos/METADATA
@@ -17,4 +17,5 @@
     month: 12
     day: 5
   }
+  license_type: NOTICE
 }
diff --git a/src/third_party/libdav1d/METADATA b/src/third_party/libdav1d/METADATA
index 02d0cea..0c9b304 100644
--- a/src/third_party/libdav1d/METADATA
+++ b/src/third_party/libdav1d/METADATA
@@ -17,4 +17,5 @@
     month: 12
     day: 2
   }
+  license_type: NOTICE
 }
diff --git a/src/third_party/libevent/BUILD.gn b/src/third_party/libevent/BUILD.gn
index e934454..597d42c 100644
--- a/src/third_party/libevent/BUILD.gn
+++ b/src/third_party/libevent/BUILD.gn
@@ -36,45 +36,80 @@
 
   defines = [ "HAVE_CONFIG_H" ]
 
-  if (is_mac || is_ios) {
-    sources += [
-      "kqueue.c",
-      "mac/config.h",
-      "mac/event-config.h",
-    ]
-    include_dirs = [ "mac" ]
-  } else if (is_linux) {
-    sources += [
-      "epoll.c",
-      "linux/config.h",
-      "linux/event-config.h",
-    ]
-    include_dirs = [ "linux" ]
-  } else if (is_android) {
-    sources += [
-      "android/config.h",
-      "android/event-config.h",
-      "epoll.c",
-    ]
-    include_dirs = [ "android" ]
-  } else if (is_nacl_nonsfi) {
+  if (is_starboard) {
     sources -= [
+      "buffer.c",
+      "evbuffer.c",
       "evdns.c",
       "event_tagging.c",
       "evrpc.c",
       "http.c",
+      "poll.c",
       "select.c",
       "signal.c",
+      "strlcpy.c",
     ]
-    sources += [
-      "nacl_nonsfi/config.h",
-      "nacl_nonsfi/event-config.h",
-      "nacl_nonsfi/random.c",
-      "nacl_nonsfi/signal_stub.c",
-    ]
-    include_dirs = [ "nacl_nonsfi" ]
+
+    if (sb_libevent_method == "epoll") {
+      sources += [ "epoll.c" ]
+    } else if (sb_libevent_method == "poll") {
+      sources += [ "poll.c" ]
+    } else if (sb_libevent_method == "kqueue") {
+      sources += [ "kqueue.c" ]
+    }
+    include_dirs = [ "starboard" ]
+    if (is_linux) {
+      # sources += [ "epoll_sub.c" ]
+      include_dirs += [ "starboard/linux" ]
+      libs = [ "rt" ]
+    }
+    if (is_android) {
+      include_dirs += [ "starboard/linux" ]
+      libs = [ "rt" ]
+    }
+    cflags_c = [ "-Wno-unused-function" ]
+    public_deps = [ "//starboard/common" ]
+  } else {
+    if (is_mac || is_ios) {
+      sources += [
+        "kqueue.c",
+        "mac/config.h",
+        "mac/event-config.h",
+      ]
+      include_dirs = [ "mac" ]
+    } else if (is_linux) {
+      sources += [
+        "epoll.c",
+        "linux/config.h",
+        "linux/event-config.h",
+      ]
+      include_dirs = [ "linux" ]
+    } else if (is_android) {
+      sources += [
+        "android/config.h",
+        "android/event-config.h",
+        "epoll.c",
+      ]
+      include_dirs = [ "android" ]
+    } else if (is_nacl_nonsfi) {
+      sources -= [
+        "evdns.c",
+        "event_tagging.c",
+        "evrpc.c",
+        "http.c",
+        "select.c",
+        "signal.c",
+      ]
+      sources += [
+        "nacl_nonsfi/config.h",
+        "nacl_nonsfi/event-config.h",
+        "nacl_nonsfi/random.c",
+        "nacl_nonsfi/signal_stub.c",
+      ]
+      include_dirs = [ "nacl_nonsfi" ]
+    }
+    configs -= [ "//build/config/compiler:chromium_code" ]
   }
 
-  configs -= [ "//build/config/compiler:chromium_code" ]
   configs += [ "//build/config/compiler:no_chromium_code" ]
 }
diff --git a/src/third_party/libevent/METADATA b/src/third_party/libevent/METADATA
index 4662aab..b9adb7c 100644
--- a/src/third_party/libevent/METADATA
+++ b/src/third_party/libevent/METADATA
@@ -15,4 +15,5 @@
     month: 1
     day: 5
   }
+  license_type: NOTICE
 }
diff --git a/src/third_party/libjpeg-turbo/METADATA b/src/third_party/libjpeg-turbo/METADATA
index 3c7d44e..35e49ff 100644
--- a/src/third_party/libjpeg-turbo/METADATA
+++ b/src/third_party/libjpeg-turbo/METADATA
@@ -17,4 +17,5 @@
     month: 5
     day: 21
   }
+  license_type: NOTICE
 }
diff --git a/src/third_party/libjpeg/BUILD.gn b/src/third_party/libjpeg/BUILD.gn
new file mode 100644
index 0000000..928ae35
--- /dev/null
+++ b/src/third_party/libjpeg/BUILD.gn
@@ -0,0 +1,104 @@
+# Copyright 2021 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.
+
+static_library("libjpeg") {
+  # We never use system libjpeg, so just make the non-system target.
+  sources = [
+    "jcapimin.c",
+    "jcapistd.c",
+    "jccoefct.c",
+    "jccolor.c",
+    "jcdctmgr.c",
+    "jchuff.c",
+    "jchuff.h",
+    "jcinit.c",
+    "jcmainct.c",
+    "jcmarker.c",
+    "jcmaster.c",
+    "jcomapi.c",
+    "jconfig.h",
+    "jcparam.c",
+    "jcphuff.c",
+    "jcprepct.c",
+    "jcsample.c",
+    "jdapimin.c",
+    "jdapistd.c",
+    "jdatadst.c",
+    "jdatasrc.c",
+    "jdcoefct.c",
+    "jdcolor.c",
+    "jdct.h",
+    "jddctmgr.c",
+    "jdhuff.c",
+    "jdhuff.h",
+    "jdinput.c",
+    "jdmainct.c",
+    "jdmarker.c",
+    "jdmaster.c",
+    "jdmerge.c",
+    "jdphuff.c",
+    "jdpostct.c",
+    "jdsample.c",
+    "jerror.c",
+    "jerror.h",
+    "jfdctflt.c",
+    "jfdctfst.c",
+    "jfdctint.c",
+    "jidctflt.c",
+    "jidctfst.c",
+    "jidctint.c",
+    "jinclude.h",
+    "jmemmgr.c",
+    "jmemnobs.c",
+    "jmemsys.h",
+    "jmorecfg.h",
+    "jpegint.h",
+    "jpeglib.h",
+    "jquant1.c",
+    "jquant2.c",
+    "jutils.c",
+    "jversion.h",
+  ]
+
+  if (is_starboard) {
+    sources -= [
+      # These are for decoding directly off of disk. They aren't
+      # currently used, and we probably should always be decoding from
+      # memory.
+      "jdatadst.c",
+      "jdatasrc.c",
+    ]
+    configs -= [ "//starboard/build/config:size" ]
+    configs += [ "//starboard/build/config:speed" ]
+  }
+
+  if (!is_win) {
+    output_name = "jpeg"
+  }
+
+  public_configs = [ ":libjpeg_config" ]
+
+  if (is_clang) {
+    cflags = [ "-Wno-format-security" ]
+  }
+
+  deps = [
+    "//starboard:starboard_headers_only",
+    "//starboard/common",
+  ]
+}
+
+config("libjpeg_config") {
+  include_dirs = [ "." ]
+}
diff --git a/src/third_party/libjpeg/METADATA b/src/third_party/libjpeg/METADATA
index 6651864..c616de0 100644
--- a/src/third_party/libjpeg/METADATA
+++ b/src/third_party/libjpeg/METADATA
@@ -14,4 +14,5 @@
     month: 03
     day: 27
   }
-}
\ No newline at end of file
+  license_type: NOTICE
+}
diff --git a/src/third_party/libpng/METADATA b/src/third_party/libpng/METADATA
index fc75d8c..8dd6fcb 100644
--- a/src/third_party/libpng/METADATA
+++ b/src/third_party/libpng/METADATA
@@ -13,4 +13,5 @@
     month: 7
     day: 7
   }
+  license_type: NOTICE
 }
diff --git a/src/third_party/libvpx/METADATA b/src/third_party/libvpx/METADATA
index bd8ced5..8173d88 100644
--- a/src/third_party/libvpx/METADATA
+++ b/src/third_party/libvpx/METADATA
@@ -17,4 +17,5 @@
     month: 7
     day: 29
   }
+  license_type: NOTICE
 }
diff --git a/src/third_party/libwebp/METADATA b/src/third_party/libwebp/METADATA
index 7f1dc7d..51d741c 100644
--- a/src/third_party/libwebp/METADATA
+++ b/src/third_party/libwebp/METADATA
@@ -17,4 +17,5 @@
     month: 4
     day: 21
   }
+  license_type: NOTICE
 }
diff --git a/src/third_party/libxml/METADATA b/src/third_party/libxml/METADATA
index 1025a57..7600572 100644
--- a/src/third_party/libxml/METADATA
+++ b/src/third_party/libxml/METADATA
@@ -15,4 +15,5 @@
     month: 5
     day: 1
   }
+  license_type: NOTICE
 }
diff --git a/src/third_party/linux-syscall-support/METADATA b/src/third_party/linux-syscall-support/METADATA
index b5273c9..375e633 100644
--- a/src/third_party/linux-syscall-support/METADATA
+++ b/src/third_party/linux-syscall-support/METADATA
@@ -18,4 +18,5 @@
     month: 3
     day: 11
   }
+  license_type: NOTICE
 }
diff --git a/src/third_party/llvm-project/METADATA b/src/third_party/llvm-project/METADATA
index 5980726..12738cd 100644
--- a/src/third_party/llvm-project/METADATA
+++ b/src/third_party/llvm-project/METADATA
@@ -17,4 +17,5 @@
     month: 2
     day: 8
   }
+  license_type: NOTICE
 }
diff --git a/src/third_party/llvm-project/libunwind/BUILD.gn b/src/third_party/llvm-project/libunwind/BUILD.gn
new file mode 100644
index 0000000..9f9f33e
--- /dev/null
+++ b/src/third_party/llvm-project/libunwind/BUILD.gn
@@ -0,0 +1,86 @@
+# Copyright 2021 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.
+
+static_library("unwind_starboard") {
+  sources = [
+    "src/AddressSpace.hpp",
+    "src/assembly.h",
+    "src/CompactUnwinder.hpp",
+    "src/config.h",
+    "src/dwarf2.h",
+    "src/DwarfInstructions.hpp",
+    "src/DwarfParser.hpp",
+    "src/EHHeaderParser.hpp",
+    "src/libunwind.cpp",
+    "src/libunwind_ext.h",
+    "src/Registers.hpp",
+    "src/RWMutex.hpp",
+    "src/UnwindCursor.hpp",
+    "src/Unwind-EHABI.cpp",
+    "src/Unwind-EHABI.h",
+    "src/UnwindLevel1.c",
+    "src/UnwindLevel1-gcc-ext.c",
+    "src/UnwindRegistersRestore.S",
+    "src/UnwindRegistersSave.S",
+    "src/Unwind-sjlj.c",
+  ]
+
+  if (is_apple) {
+    sources += [ "src/Unwind_AppleExtras.cpp" ]
+  }
+
+  public_deps = [
+    "//starboard/common",
+    "//starboard/elf_loader:evergreen_info",
+  ]
+
+  configs += [ ":internal_config" ]
+  all_dependent_configs = [ ":dependents_config" ]
+}
+
+config("dependents_config") {
+  include_dirs = [ "include" ]
+  defines = [
+    # Ensure that __external_threading is used for threading support.
+    "_LIBCPP_HAS_THREAD_API_EXTERNAL",
+    "LLVM_PATH=" + rebase_path("//third_party/llvm-project/llvm/", root_build_dir),
+  ]
+}
+
+config("internal_config") {
+  configs = [
+    ":dependents_config",
+    "//starboard/build/config:starboard_implementation",
+  ]
+
+  cflags = [ "-Wno-unused-command-line-argument" ]
+  cflags_cc = [
+    "-std=c++11",
+    "-fPIC",
+    "-Werror=return-type",
+    "-fvisibility-inlines-hidden",
+    "-funwind-tables",
+    "-W",
+    "-Wall",
+    "-Wextra",
+    "-Wwrite-strings",
+    "-Wno-error",
+    "-Wno-unused-parameter",
+  ]
+  defines = [
+    # Build libunwind with concurrency built upon Starboard mutexes and
+    # condition variables.
+    "_LIBUNWIND_HAS_STARBOARD_THREADS",
+  ]
+}
diff --git a/src/starboard/linux/x64x11/vulkan/starboard_platform.gyp b/src/third_party/lz4_lib/BUILD.gn
similarity index 62%
copy from src/starboard/linux/x64x11/vulkan/starboard_platform.gyp
copy to src/third_party/lz4_lib/BUILD.gn
index 82c4436..653f9fd 100644
--- a/src/starboard/linux/x64x11/vulkan/starboard_platform.gyp
+++ b/src/third_party/lz4_lib/BUILD.gn
@@ -1,4 +1,4 @@
-# Copyright 2017 The Cobalt Authors. All Rights Reserved.
+# Copyright 2021 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.
@@ -11,8 +11,19 @@
 # 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.
-{
-  'includes': [
-    '../shared/starboard_platform_target.gypi',
-  ],
-}
+
+static_library("lz4") {
+  include_dirs = [ "." ]
+  defines = [
+    "LZ4_USER_MEMORY_FUNCTIONS",
+    "XXH_NAMESPACE=LZ4_",
+  ]
+
+  sources = [
+    "lz4_all.c",
+    "lz4starboard.c",
+    "xxhash.c",
+  ]
+
+  public_deps = [ "//starboard:starboard_headers_only" ]
+}
\ No newline at end of file
diff --git a/src/third_party/lz4_lib/METADATA b/src/third_party/lz4_lib/METADATA
index 2013738..f9cd0eb 100644
--- a/src/third_party/lz4_lib/METADATA
+++ b/src/third_party/lz4_lib/METADATA
@@ -19,4 +19,5 @@
     month: 11
     day: 15
   }
+  license_type: NOTICE
 }
diff --git a/src/third_party/markupsafe/METADATA b/src/third_party/markupsafe/METADATA
index b645ccc..47bc43d 100644
--- a/src/third_party/markupsafe/METADATA
+++ b/src/third_party/markupsafe/METADATA
@@ -15,4 +15,5 @@
     month: 5
     day: 21
   }
+  license_type: NOTICE
 }
diff --git a/src/third_party/mini_chromium/METADATA b/src/third_party/mini_chromium/METADATA
index 43a1757..37eb033 100644
--- a/src/third_party/mini_chromium/METADATA
+++ b/src/third_party/mini_chromium/METADATA
@@ -19,4 +19,5 @@
     month: 3
     day: 31
   }
+  license_type: NOTICE
 }
diff --git a/src/third_party/mini_chromium/base/BUILD.gn b/src/third_party/mini_chromium/base/BUILD.gn
index 11fdf46..ac91b33 100644
--- a/src/third_party/mini_chromium/base/BUILD.gn
+++ b/src/third_party/mini_chromium/base/BUILD.gn
@@ -165,6 +165,6 @@
 
   public_configs = [ ":base_public_config" ]
   if (is_starboard) {
-    configs -= [ "//starboard/build/config:include_root" ]
+    configs -= [ "//build/config/compiler:default_include_dirs" ]
   }
 }
diff --git a/src/third_party/modp_b64/METADATA b/src/third_party/modp_b64/METADATA
index f75833f..34722b8 100644
--- a/src/third_party/modp_b64/METADATA
+++ b/src/third_party/modp_b64/METADATA
@@ -10,4 +10,5 @@
     type: GIT
     value: "https://github.com/client9/stringencoders"
   }
+  license_type: NOTICE
 }
diff --git a/src/third_party/musl/METADATA b/src/third_party/musl/METADATA
index 1a35696..138c1fd 100644
--- a/src/third_party/musl/METADATA
+++ b/src/third_party/musl/METADATA
@@ -17,4 +17,5 @@
     month: 9
     day: 4
   }
+  license_type: NOTICE
 }
diff --git a/src/third_party/opus/BUILD.gn b/src/third_party/opus/BUILD.gn
new file mode 100644
index 0000000..6062de9
--- /dev/null
+++ b/src/third_party/opus/BUILD.gn
@@ -0,0 +1,272 @@
+# Copyright 2021 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.
+
+declare_args() {
+  sb_enable_opus_sse = true
+}
+
+static_library("opus") {
+  sources = [
+    "celt/_kiss_fft_guts.h",
+    "celt/arch.h",
+    "celt/bands.c",
+    "celt/bands.h",
+    "celt/celt.c",
+    "celt/celt.h",
+    "celt/celt_decoder.c",
+    "celt/celt_encoder.c",
+    "celt/celt_lpc.c",
+    "celt/celt_lpc.h",
+    "celt/cwrs.c",
+    "celt/cwrs.h",
+    "celt/ecintrin.h",
+    "celt/entcode.c",
+    "celt/entcode.h",
+    "celt/entdec.c",
+    "celt/entdec.h",
+    "celt/entenc.c",
+    "celt/entenc.h",
+    "celt/fixed_c5x.h",
+    "celt/fixed_c6x.h",
+    "celt/fixed_debug.h",
+    "celt/fixed_generic.h",
+    "celt/float_cast.h",
+    "celt/kiss_fft.c",
+    "celt/kiss_fft.h",
+    "celt/laplace.c",
+    "celt/laplace.h",
+    "celt/mathops.c",
+    "celt/mathops.h",
+    "celt/mdct.c",
+    "celt/mdct.h",
+    "celt/mfrngcod.h",
+    "celt/modes.c",
+    "celt/modes.h",
+    "celt/os_support.h",
+    "celt/pitch.c",
+    "celt/pitch.h",
+    "celt/quant_bands.c",
+    "celt/quant_bands.h",
+    "celt/rate.c",
+    "celt/rate.h",
+    "celt/stack_alloc.h",
+    "celt/static_modes_fixed.h",
+    "celt/static_modes_float.h",
+    "celt/vq.c",
+    "celt/vq.h",
+
+    "include/opus.h",
+    "include/opus_defines.h",
+    "include/opus_types.h",
+    "include/opus_multistream.h",
+
+    "src/analysis.h",
+    "src/mlp.h",
+    "src/opus_private.h",
+    "src/tansig_table.h",
+
+    "silk/A2NLSF.c",
+    "silk/ana_filt_bank_1.c",
+    "silk/API.h",
+    "silk/biquad_alt.c",
+    "silk/bwexpander.c",
+    "silk/bwexpander_32.c",
+    "silk/check_control_input.c",
+    "silk/CNG.c",
+    "silk/code_signs.c",
+    "silk/control.h",
+    "silk/control_audio_bandwidth.c",
+    "silk/control_codec.c",
+    "silk/control_SNR.c",
+    "silk/debug.c",
+    "silk/debug.h",
+    "silk/decoder_set_fs.c",
+    "silk/decode_core.c",
+    "silk/decode_frame.c",
+    "silk/decode_indices.c",
+    "silk/decode_parameters.c",
+    "silk/decode_pitch.c",
+    "silk/decode_pulses.c",
+    "silk/dec_API.c",
+    "silk/define.h",
+    "silk/encode_indices.c",
+    "silk/encode_pulses.c",
+    "silk/enc_API.c",
+    "silk/errors.h",
+    "silk/gain_quant.c",
+    "silk/HP_variable_cutoff.c",
+    "silk/init_decoder.c",
+    "silk/init_encoder.c",
+    "silk/Inlines.h",
+    "silk/inner_prod_aligned.c",
+    "silk/interpolate.c",
+    "silk/lin2log.c",
+    "silk/log2lin.c",
+    "silk/LPC_analysis_filter.c",
+    "silk/LPC_fit.c",
+    "silk/LPC_inv_pred_gain.c",
+    "silk/LP_variable_cutoff.c",
+    "silk/macros.h",
+    "silk/MacroCount.h",
+    "silk/MacroDebug.h",
+    "silk/main.h",
+    "silk/NLSF2A.c",
+    "silk/NLSF_decode.c",
+    "silk/NLSF_del_dec_quant.c",
+    "silk/NLSF_encode.c",
+    "silk/NLSF_stabilize.c",
+    "silk/NLSF_unpack.c",
+    "silk/NLSF_VQ.c",
+    "silk/NLSF_VQ_weights_laroia.c",
+    "silk/NSQ.c",
+    "silk/NSQ_del_dec.c",
+    "silk/pitch_est_defines.h",
+    "silk/pitch_est_tables.c",
+    "silk/PLC.c",
+    "silk/PLC.h",
+    "silk/process_NLSFs.c",
+    "silk/quant_LTP_gains.c",
+    "silk/resampler.c",
+    "silk/resampler_down2.c",
+    "silk/resampler_down2_3.c",
+    "silk/resampler_private.h",
+    "silk/resampler_private_AR2.c",
+    "silk/resampler_private_down_FIR.c",
+    "silk/resampler_private_IIR_FIR.c",
+    "silk/resampler_private_up2_HQ.c",
+    "silk/resampler_rom.c",
+    "silk/resampler_rom.h",
+    "silk/resampler_structs.h",
+    "silk/shell_coder.c",
+    "silk/sigm_Q15.c",
+    "silk/sort.c",
+    "silk/stereo_decode_pred.c",
+    "silk/stereo_encode_pred.c",
+    "silk/stereo_find_predictor.c",
+    "silk/stereo_LR_to_MS.c",
+    "silk/stereo_MS_to_LR.c",
+    "silk/stereo_quant_pred.c",
+    "silk/structs.h",
+    "silk/sum_sqr_shift.c",
+    "silk/tables.h",
+    "silk/tables_gain.c",
+    "silk/tables_LTP.c",
+    "silk/tables_NLSF_CB_NB_MB.c",
+    "silk/tables_NLSF_CB_WB.c",
+    "silk/tables_other.c",
+    "silk/tables_pitch_lag.c",
+    "silk/tables_pulses_per_block.c",
+    "silk/table_LSF_cos.c",
+    "silk/tuning_parameters.h",
+    "silk/typedef.h",
+    "silk/VAD.c",
+    "silk/VQ_WMat_EC.c",
+    "src/analysis.c",
+    "src/mlp.c",
+    "src/mlp_data.c",
+    "src/opus.c",
+    "src/opus_decoder.c",
+    "src/opus_encoder.c",
+    "src/opus_multistream.c",
+    "src/opus_multistream_decoder.c",
+    "src/opus_multistream_encoder.c",
+    "src/repacketizer.c",
+
+    # Floating point decoding files
+    "silk/float/autocorrelation_FLP.c",
+    "silk/float/burg_modified_FLP.c",
+    "silk/float/bwexpander_FLP.c",
+    "silk/float/corrMatrix_FLP.c",
+    "silk/float/encode_frame_FLP.c",
+    "silk/float/energy_FLP.c",
+    "silk/float/find_LPC_FLP.c",
+    "silk/float/find_LTP_FLP.c",
+    "silk/float/find_pitch_lags_FLP.c",
+    "silk/float/find_pred_coefs_FLP.c",
+    "silk/float/inner_product_FLP.c",
+    "silk/float/k2a_FLP.c",
+    "silk/float/LPC_analysis_filter_FLP.c",
+    "silk/float/LPC_inv_pred_gain_FLP.c",
+    "silk/float/LTP_analysis_filter_FLP.c",
+    "silk/float/LTP_scale_ctrl_FLP.c",
+    "silk/float/main_FLP.h",
+    "silk/float/noise_shape_analysis_FLP.c",
+    "silk/float/pitch_analysis_core_FLP.c",
+    "silk/float/process_gains_FLP.c",
+    "silk/float/regularize_correlations_FLP.c",
+    "silk/float/residual_energy_FLP.c",
+    "silk/float/scale_copy_vector_FLP.c",
+    "silk/float/scale_vector_FLP.c",
+    "silk/float/schur_FLP.c",
+    "silk/float/SigProc_FLP.h",
+    "silk/float/sort_FLP.c",
+    "silk/float/structs_FLP.h",
+    "silk/float/warped_autocorrelation_FLP.c",
+    "silk/float/wrappers_FLP.c",
+
+    "silk/float/apply_sine_window_FLP.c",
+  ]
+
+  if (!sb_enable_opus_sse && (target_cpu == "x86" || target_cpu == "x64")) {
+    sources += [
+      "celt/x86/celt_lpc_sse4_1.c",
+      "celt/x86/celt_lpc_sse.h",
+      "celt/x86/pitch_sse.c",
+      "celt/x86/pitch_sse.h",
+      "celt/x86/pitch_sse2.c",
+      "celt/x86/pitch_sse4_1.c",
+      "celt/x86/vq_sse2.c",
+      "celt/x86/vq_sse.h",
+      "celt/x86/x86cpu.c",
+      "celt/x86/x86cpu.h",
+      "celt/x86/x86_celt_map.c",
+      "silk/x86/main_sse.h",
+      "silk/x86/NSQ_del_dec_sse4_1.c",
+      "silk/x86/NSQ_sse4_1.c",
+      "silk/x86/VAD_sse4_1.c",
+      "silk/x86/VQ_WMat_EC_sse4_1.c",
+      "silk/x86/x86_silk_map.c",
+    ]
+  } else if (target_cpu == "arm" || target_cpu == "arm64") {
+    configs += [ ":opus_arm_defines" ]
+  }
+
+  configs += [ ":opus_internal" ]
+  public_configs = [ ":opus_public" ]
+}
+
+config("opus_internal") {
+  include_dirs = [
+    "celt",
+    "include",
+    "silk",
+    "silk/float",
+    "starboard",
+  ]
+  defines = [ "HAVE_CONFIG_H" ]
+}
+
+config("opus_public") {
+  include_dirs = [ "." ]
+}
+
+config("opus_arm_defines") {
+  if (!is_starboard) {
+    defines = [
+      "OPUS_ARM_ASM",
+      "OPUS_ARM_INLINE_ASM",
+      "OPUS_ARM_INLINE_EDSP",
+    ]
+  }
+}
diff --git a/src/third_party/opus/METADATA b/src/third_party/opus/METADATA
index d1ed98a..3ebc166 100644
--- a/src/third_party/opus/METADATA
+++ b/src/third_party/opus/METADATA
@@ -17,4 +17,5 @@
     month: 6
     day: 14
   }
+  license_type: NOTICE
 }
diff --git a/src/third_party/ots/METADATA b/src/third_party/ots/METADATA
index 9d43d6d..01b8ef4 100644
--- a/src/third_party/ots/METADATA
+++ b/src/third_party/ots/METADATA
@@ -17,4 +17,5 @@
     month: 2
     day: 19
   }
+  license_type: NOTICE
 }
diff --git a/src/third_party/ply/METADATA b/src/third_party/ply/METADATA
index bd4d017..47368bd 100644
--- a/src/third_party/ply/METADATA
+++ b/src/third_party/ply/METADATA
@@ -14,4 +14,5 @@
     month: 2
     day: 17
   }
+  license_type: NOTICE
 }
diff --git a/src/third_party/protobuf/METADATA b/src/third_party/protobuf/METADATA
index 0579e44..f218dc8 100644
--- a/src/third_party/protobuf/METADATA
+++ b/src/third_party/protobuf/METADATA
@@ -16,4 +16,5 @@
     month: 5
     day: 16
   }
+  license_type: NOTICE
 }
diff --git a/src/third_party/proxy_py/METADATA b/src/third_party/proxy_py/METADATA
index 050e610..58e70f5 100644
--- a/src/third_party/proxy_py/METADATA
+++ b/src/third_party/proxy_py/METADATA
@@ -17,4 +17,5 @@
     month: 2
     day: 8
   }
+  license_type: NOTICE
 }
diff --git a/src/starboard/linux/x64x11/vulkan/starboard_platform.gyp b/src/third_party/pulseaudio_includes/BUILD.gn
similarity index 80%
rename from src/starboard/linux/x64x11/vulkan/starboard_platform.gyp
rename to src/third_party/pulseaudio_includes/BUILD.gn
index 82c4436..f2a0b08 100644
--- a/src/starboard/linux/x64x11/vulkan/starboard_platform.gyp
+++ b/src/third_party/pulseaudio_includes/BUILD.gn
@@ -1,4 +1,4 @@
-# Copyright 2017 The Cobalt Authors. All Rights Reserved.
+# Copyright 2021 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.
@@ -11,8 +11,7 @@
 # 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.
-{
-  'includes': [
-    '../shared/starboard_platform_target.gypi',
-  ],
+
+config("pulseaudio_includes") {
+  include_dirs = [ "pulseaudio.12.2" ]
 }
diff --git a/src/third_party/pulseaudio_includes/METADATA b/src/third_party/pulseaudio_includes/METADATA
index 5f60bca..bd68f71 100644
--- a/src/third_party/pulseaudio_includes/METADATA
+++ b/src/third_party/pulseaudio_includes/METADATA
@@ -14,4 +14,5 @@
     month: 7
     day: 16
   }
+  license_type: RESTRICTED
 }
diff --git a/src/third_party/quirc/METADATA b/src/third_party/quirc/METADATA
index 440dae2..182c986 100644
--- a/src/third_party/quirc/METADATA
+++ b/src/third_party/quirc/METADATA
@@ -17,4 +17,5 @@
     month: 1
     day: 31
   }
+  license_type: NOTICE
 }
diff --git a/src/third_party/skia/METADATA b/src/third_party/skia/METADATA
index 9d25230..e7ad8a5 100644
--- a/src/third_party/skia/METADATA
+++ b/src/third_party/skia/METADATA
@@ -22,4 +22,5 @@
     month: 10
     day: 28
   }
+  license_type: NOTICE
 }
diff --git a/src/third_party/sqlite/METADATA b/src/third_party/sqlite/METADATA
index 2044f8d..db56e9f 100644
--- a/src/third_party/sqlite/METADATA
+++ b/src/third_party/sqlite/METADATA
@@ -18,4 +18,5 @@
     month: 5
     day: 19
   }
+  license_type: UNENCUMBERED
 }
diff --git a/src/third_party/super_fast_hash/METADATA b/src/third_party/super_fast_hash/METADATA
index 0541a6c..d996f91 100644
--- a/src/third_party/super_fast_hash/METADATA
+++ b/src/third_party/super_fast_hash/METADATA
@@ -9,4 +9,5 @@
     type: HOMEPAGE
     value: "http://www.azillionmonkeys.com/qed/hash.html"
   }
+  license_type: NOTICE
 }
diff --git a/src/third_party/v8/METADATA b/src/third_party/v8/METADATA
index 8522c17..9206324 100644
--- a/src/third_party/v8/METADATA
+++ b/src/third_party/v8/METADATA
@@ -19,4 +19,5 @@
     month: 8
     day: 26
   }
+  license_type: NOTICE
 }
diff --git a/src/third_party/v8/toolchain.gypi b/src/third_party/v8/toolchain.gypi
index c16480e..816cecd 100644
--- a/src/third_party/v8/toolchain.gypi
+++ b/src/third_party/v8/toolchain.gypi
@@ -182,7 +182,7 @@
         'cflags!': [ '-Wall', '-Wextra' ],
         'cflags': [ '-Wno-return-type', '-Wno-int-in-bool-context' ],
       }],
-      ['v8_target_arch=="arm64" or v8_target_arch=="x64"', {
+      ['v8_enable_pointer_compression', {
         'defines': [
           # enables pointer compression on 64 bit platforms for Cobalt.
           'V8_COMPRESS_POINTERS',
diff --git a/src/third_party/v8/v8.gyp b/src/third_party/v8/v8.gyp
index db2a8ed..03e13ec 100644
--- a/src/third_party/v8/v8.gyp
+++ b/src/third_party/v8/v8.gyp
@@ -246,11 +246,10 @@
     'v8_compiler_sources': ['<!@pymod_do_main(third_party.v8.gypfiles.GN-scraper "<(V8_ROOT)/BUILD.gn"  "v8_compiler_sources = ")'],
 
     'conditions': [
-      ['v8_target_arch=="arm64" or v8_target_arch=="x64"', {
-        # Enable pointer compression (sets -dV8_COMPRESS_POINTERS).
-        'v8_enable_pointer_compression%': 1,
+      ['(target_arch=="arm64" or target_arch=="x64") and disable_v8_pointer_compression==0', {
+         'v8_enable_pointer_compression': 1,
       }, {
-        'v8_enable_pointer_compression%': 0,
+         'v8_enable_pointer_compression': 0,
       }],
       ['v8_enable_i18n_support', {
         'torque_files_v8_root_relative': [
@@ -281,21 +280,18 @@
   },
   'targets': [
     {
-      'target_name': 'run_torque',
-      'type': 'none',
+      'target_name': 'fake_torque_output',
       'hard_dependency': 1,
-      'dependent_settings': {
-        'direct_include_dirs': [
-          '<(torque_output_root)',
-        ],
-      },
+      'type': 'none',
       'actions': [
         {
-          'action_name': 'run_torque_action',
-          'inputs': [  # Order matters.
-            '<(PRODUCT_DIR)/<(EXECUTABLE_PREFIX)torque<(host_executable_suffix)',
-            '<@(torque_files_v8_root_relative)',
-          ],
+          'action_name': 'no-op',
+          # For some reason, if we put these outputs under target run_torque, they
+          # will be rebuilt unconditionally even if their template files are not
+          # modified. This could be a bug in our gyp runner.
+          # As a solution, we put the outputs here in its own target so that ninja
+          # will know that some target does provide these generated files and ninja
+          # does not rebuild them all the time.
           'outputs': [
             '<(torque_output_root)/torque-generated/bit-fields.h',
             '<(torque_output_root)/torque-generated/builtin-definitions.h',
@@ -323,6 +319,35 @@
             '<(torque_output_root)/torque-generated/internal-class-definitions-inl.h',
             '<(torque_output_root)/torque-generated/exported-class-definitions.h',
             '<(torque_output_root)/torque-generated/exported-class-definitions-inl.h',
+          ],
+          'inputs': [],
+          'action': [
+            # Windows gyp runner does not like empty actions.
+            'echo',
+          ],
+        },
+      ],
+    },
+    {
+      'target_name': 'run_torque',
+      'type': 'none',
+      'hard_dependency': 1,
+      'dependent_settings': {
+        'direct_include_dirs': [
+          '<(torque_output_root)',
+        ],
+      },
+      'dependencies': [
+        'fake_torque_output',
+      ],
+      'actions': [
+        {
+          'action_name': 'run_torque_action',
+          'inputs': [  # Order matters.
+            '<(PRODUCT_DIR)/<(EXECUTABLE_PREFIX)torque<(host_executable_suffix)',
+            '<@(torque_files_v8_root_relative)',
+          ],
+          'outputs': [
             '<@(torque_outputs)',
           ],
           'action': [
diff --git a/src/third_party/web_platform_tests/METADATA b/src/third_party/web_platform_tests/METADATA
index ed441db..6e201b9 100644
--- a/src/third_party/web_platform_tests/METADATA
+++ b/src/third_party/web_platform_tests/METADATA
@@ -17,4 +17,5 @@
     month: 11
     day: 20
   }
+  license_type: NOTICE
 }
diff --git a/src/third_party/web_platform_tests/resource-timing/test_resource_timing.js b/src/third_party/web_platform_tests/resource-timing/test_resource_timing.js
index 2862e16..d9618e6 100644
--- a/src/third_party/web_platform_tests/resource-timing/test_resource_timing.js
+++ b/src/third_party/web_platform_tests/resource-timing/test_resource_timing.js
@@ -3,19 +3,9 @@
 var waitTimer;
 var expectedEntries = {};
 
-var initiatorTypes = ["iframe", "img", "link", "script", "xmlhttprequest"];
+var initiatorTypes = ["img", "link", "script", "xmlhttprequest"];
 
 var tests = {};
-setup(function() {
-    for (var i in initiatorTypes) {
-        var type = initiatorTypes[i];
-        tests[type] = {
-            "entry": async_test("window.performance.getEntriesByName() and window.performance.getEntriesByNameType() return same data (" + type + ")"),
-            "simple_attrs": async_test("PerformanceEntry has correct name, initiatorType, startTime, and duration (" + type + ")"),
-            "timing_attrs": async_test("PerformanceEntry has correct order of timing attributes (" + type + ")")
-        };
-    }
-});
 
 function resolve(path) {
     var a = document.createElement("a");
@@ -53,10 +43,6 @@
             element = null;
         }
         switch (type) {
-        case "iframe":
-            url = resolve("resources/resource_timing_test0.html");
-            element.src = url;
-            break;
         case "img":
             url = resolve("resources/resource_timing_test0.png");
             element.src = url;
@@ -161,14 +147,9 @@
 
     t["timing_attrs"].step(function test() {
         var actual = window.performance.getEntriesByName(expected.name)[0];
-        assert_equals(actual.redirectStart, 0, "redirectStart time");
-        assert_equals(actual.redirectEnd, 0, "redirectEnd time");
         assert_true(actual.secureConnectionStart == undefined ||
                     actual.secureConnectionStart == 0, "secureConnectionStart time");
         assert_equals(actual.fetchStart, actual.startTime, "fetchStart is equal to startTime");
-        assert_greater_than_equal(actual.domainLookupStart, actual.fetchStart, "domainLookupStart after fetchStart");
-        assert_greater_than_equal(actual.domainLookupEnd, actual.domainLookupStart, "domainLookupEnd after domainLookupStart");
-        assert_greater_than_equal(actual.connectStart, actual.domainLookupEnd, "connectStart after domainLookupEnd");
         assert_greater_than_equal(actual.connectEnd, actual.connectStart, "connectEnd after connectStart");
         assert_greater_than_equal(actual.requestStart, actual.connectEnd, "requestStart after connectEnd");
         assert_greater_than_equal(actual.responseStart, actual.requestStart, "responseStart after requestStart");
diff --git a/src/third_party/websocket-client/METADATA b/src/third_party/websocket-client/METADATA
index e2f04e1..9766107 100644
--- a/src/third_party/websocket-client/METADATA
+++ b/src/third_party/websocket-client/METADATA
@@ -17,4 +17,5 @@
     month: 3
     day: 20
   }
+  license_type: NOTICE
 }
diff --git a/src/third_party/woff2/METADATA b/src/third_party/woff2/METADATA
index 0b9b324..98a685fc 100644
--- a/src/third_party/woff2/METADATA
+++ b/src/third_party/woff2/METADATA
@@ -17,4 +17,5 @@
     month: 11
     day: 13
   }
+  license_type: NOTICE
 }
diff --git a/src/third_party/zlib/BUILD.gn b/src/third_party/zlib/BUILD.gn
index f1ed18e..6ff84b9 100644
--- a/src/third_party/zlib/BUILD.gn
+++ b/src/third_party/zlib/BUILD.gn
@@ -63,6 +63,10 @@
   }
 
   configs += [ ":zlib_internal_config" ]
+  if (is_starboard && !is_debug) {
+    configs -= [ "//starboard/build/config:size" ]
+    configs += [ "//starboard/build/config:speed" ]
+  }
 
   public_configs = [ ":zlib_adler32_simd_config" ]
 }
@@ -123,6 +127,10 @@
     }
 
     configs += [ ":zlib_internal_config" ]
+    if (is_starboard && !is_debug) {
+      configs -= [ "//starboard/build/config:size" ]
+      configs += [ "//starboard/build/config:speed" ]
+    }
 
     public_configs = [ ":zlib_arm_crc32_config" ]
   }
@@ -175,6 +183,10 @@
     ":zlib_internal_config",
     "//build/config/compiler:no_chromium_code",
   ]
+  if (is_starboard && !is_debug) {
+    configs -= [ "//starboard/build/config:size" ]
+    configs += [ "//starboard/build/config:speed" ]
+  }
 
   public_configs = [ ":zlib_inflate_chunk_simd_config" ]
 }
diff --git a/src/third_party/zlib/METADATA b/src/third_party/zlib/METADATA
index cca4f2e..3993673 100644
--- a/src/third_party/zlib/METADATA
+++ b/src/third_party/zlib/METADATA
@@ -18,4 +18,5 @@
     month: 10
     day: 15
   }
+  license_type: NOTICE
 }